ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

磁盘系统管理-2 LVM和磁盘配额

2022-07-05 19:03:29  阅读:257  来源: 互联网

标签:系统管理 gh1 luoji01 dev juan01 LVM 磁盘 xfs root


概述

了解查看
LVM 概述#
全称Logical Volume Manager,可以动态调整磁盘容量,提高磁盘管理灵活性。

在安装CentOS 7的过程中选择自动分区时,默认就是以LVM的方案安装的系统。

但是/boot分区必须独立出来,不能基于LVM创建。

PV 物理卷#
物理卷,Physical Volume,是LVM机制的基本存储设备,通常对应一个普通分区或是整个硬盘。

创建物理卷时,会在分区或磁盘头部创建一个用于记录LVM属性的保留区块,并把存储空间分割成默认大小为4MB的基本单元(Physical Extend,PE),从而构成物理卷。

普通分区先转换分区类型为8e;整块硬盘,可以将所有的空间划分为一个主分区再做调整。

VG 卷组#
卷组,Volume Group,是由一个或多个物理卷组成的一个整体。可以动态添加、移除物理卷,创建时可以指定PE大小。

LV 逻辑卷#
逻辑卷,Logical Volume,建立在卷组之上,与物理卷没有直接关系。格式化后,即可挂载使用。

三者关系#

通过以上对三者的解释可以看出,建立LVM的过程。首先,将普通分区或整个硬盘创建为物理卷;然后,将一个或多个物理卷创建为卷组;最后,在卷组上分割不同的数据存储空间形成逻辑卷。有了逻辑卷,就可以格式化、挂载使用了。

LVM常用命令

功能 PV 管理命令 VG 管理命令 LV 管理命令
Scan(扫描) pvscan vgscan lvscan
Create(建立) pvcreate vgcreate lvcreate
Display(显示) pvdisplay vgdisplay lvdisplay
Remove(移除) pvremove vgremove lvremove
Extend(扩展) / vgextend lvextend
Reduce(减少) / vgreduce lvreduce

LVM实验

硬盘分区

[root@gh1 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@gh1 ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x184bcc5e 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

[root@gh1 ~]# fdisk -l /dev/sd{b,c} | grep -i "linux lvm"
/dev/sdb1            2048    20971519    10484736   8e  Linux LVM
/dev/sdc1            2048    20971519    10484736   8e  Linux LVM

转换物理卷

[root@gh1 ~]# pvcreate /dev/sd{b,c}1
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.

创建名称为juan01卷组,并添加sdb1和sdc1

[root@gh1 ~]# vgcreate juan01 /dev/sd{b,c}1
  Volume group "juan01" successfully created

划分大小为15G,名称为luoji01的逻辑卷,再扩容10G,剩下的空间创建名称为逻辑02的逻辑卷

[root@gh1 ~]# lvcreate -L 15G -n luoji01 juan01
  Logical volume "luoji01" created.
[root@gh1 ~]# lvextend -L +10G /dev/juan01/luoji01
  Size of logical volume juan01/luoji01 changed from 15.00 GiB (3840 extents) to 25.00 GiB (6400 extents).
  Logical volume juan01/luoji01 successfully resized.
[root@gh1 ~]# lvcreate -l 100%free -n luoji02 juan01
  Logical volume "luoji02" created.

格式化逻辑卷,stu01为xfs,stu02为ext4,

[root@gh1 ~]# mkfs.xfs /dev/juan01/luoji01
meta-data=/dev/juan01/luoji01    isize=512    agcount=4, agsize=1638400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=6553600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=3200, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@gh1 ~]# mkfs.ext4 /dev/juan01/luoji02
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
983040 inodes, 3930112 blocks
196505 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
120 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成  

设置自动挂载,挂载后就可以使用了。

[root@gh1 ~]# mkdir /mnt/guazai{10,11}
[root@gh1 ~]# vim /etc/fstab
/dev/juan01/luoji01 /mnt/guazai10 xfs defaults 0 0
/dev/juan01/luoji02 /mnt/guazai11 ext4 defaults 0 0
[root@gh1 ~]# mount -a

[root@gh1 ~]# df -hT
文件系统                   类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root    xfs        10G  4.5G  5.6G   45% /
devtmpfs                   devtmpfs  974M     0  974M    0% /dev
tmpfs                      tmpfs     991M     0  991M    0% /dev/shm
tmpfs                      tmpfs     991M   11M  981M    2% /run
tmpfs                      tmpfs     991M     0  991M    0% /sys/fs/cgroup
/dev/sda1                  xfs       197M  144M   54M   74% /boot
tmpfs                      tmpfs     199M   12K  199M    1% /run/user/42
tmpfs                      tmpfs     199M     0  199M    0% /run/user/0
/dev/mapper/juan01-luoji01 xfs        25G   33M   25G    1% /mnt/guazai10
/dev/mapper/juan01-luoji02 ext4       15G   41M   14G    1% /mnt/guazai11

扩容实验

添加一块10G硬盘sdd,类型改为Linux LVM,ID为8e

[root@gh1 ~]# fdisk -l /dev/sd{b..d} | grep -i "linux lvm"
/dev/sdb1            2048    41943039    20970496   8e  Linux LVM
/dev/sdc1            2048    41943039    20970496   8e  Linux LVM
/dev/sdd1            2048    20971519    10484736   8e  Linux LVM

将、/dev/sdd1转换物理卷

[root@gh1 ~]# pvcreate /dev/sdd1
  Physical volume "/dev/sdd1" successfully created.

查看juan01卷组,进行扩容并再次查看

[root@gh1 ~]# vgdisplay juan01
  --- Volume group ---
  VG Name               juan01
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               39.99 GiB
  PE Size               4.00 MiB
  Total PE              10238
  Alloc PE / Size       10238 / 39.99 GiB
  Free  PE / Size       0 / 0   
  VG UUID               F21OK0-hb4p-WznS-JTKn-NviS-TXqO-tbyAGn


[root@gh1 ~]# vgextend juan01 /dev/sdd1
  Volume group "juan01" successfully extended
[root@gh1 ~]# vgdisplay juan01
  --- Volume group ---
  VG Name               juan01
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <49.99 GiB
  PE Size               4.00 MiB
  Total PE              12797
  Alloc PE / Size       10238 / 39.99 GiB
  Free  PE / Size       2559 / <10.00 GiB
  VG UUID               F21OK0-hb4p-WznS-JTKn-NviS-TXqO-tbyAGn

对luoji01和luoji02扩容5G

[root@gh1 ~]# lvextend -L +5G /dev/juan01/luoji01
  Size of logical volume juan01/luoji01 changed from 25.00 GiB (6400 extents) to 30.00 GiB (7680 extents).
  Logical volume juan01/luoji01 successfully resized.

[root@gh1 ~]# lvextend -l +100%free /dev/juan01/luoji02
  Size of logical volume juan01/luoji02 changed from 14.99 GiB (3838 extents) to <19.99 GiB (5117 extents).
  Logical volume juan01/luoji02 successfully resized.

使用xfs_growfs

和resize2fs在线调整大小

[root@gh1 ~]# xfs_growfs /dev/juan01/luoji01
meta-data=/dev/mapper/juan01-luoji01 isize=512    agcount=4, agsize=1638400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=6553600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=3200, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 6553600 to 7864320

[root@gh1 ~]# resize2fs /dev/juan01/luoji02
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/juan01/luoji02 is mounted on /mnt/guazai11; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/juan01/luoji02 is now 5239808 blocks long.

[root@gh1 ~]# df -Th
文件系统                   类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root    xfs        10G  4.5G  5.6G   45% /
devtmpfs                   devtmpfs  1.5G     0  1.5G    0% /dev
tmpfs                      tmpfs     1.5G     0  1.5G    0% /dev/shm
tmpfs                      tmpfs     1.5G   11M  1.5G    1% /run
tmpfs                      tmpfs     1.5G     0  1.5G    0% /sys/fs/cgroup
/dev/sda1                  xfs       197M  144M   54M   74% /boot
/dev/mapper/juan01-luoji01 xfs        30G   33M   30G    1% /mnt/guazai10
/dev/mapper/juan01-luoji02 ext4       20G   44M   19G    1% /mnt/guazai11
tmpfs                      tmpfs     299M   12K  299M    1% /run/user/42
tmpfs                      tmpfs     299M     0  299M    0% /run/user/0

卸载实验

umount卸载挂载

[root@gh1 ~]# umount /mnt/guazai11 /mnt/guazai10

lvremove移出卷组中所有逻辑卷

[root@gh1 ~]# lvremove /dev/juan01/luoji02
Do you really want to remove active logical volume juan01/luoji02? [y/n]: y
  Logical volume "luoji02" successfully removed

[root@gh1 ~]# lvremove /dev/juan01/luoji01
Do you really want to remove active logical volume juan01/luoji01? [y/n]: y
  Logical volume "luoji01" successfully removed

vgremove移出卷组

[root@gh1 ~]# vgremove juan01
Do you really want to remove volume group "juan01" containing 1 logical volumes? [y/n]: y
  Logical volume juan01/luoji01 contains a filesystem in use.

pvremove移出物理卷

[root@gh1 ~]# pvremove /dev/sd{b..d}
  Device /dev/sdb excluded by a filter.
  Device /dev/sdc excluded by a filter.
  Device /dev/sdd excluded by a filter.

磁盘配额

磁盘配额概述

1.作用范围:只在指定的分区有效。

2.限制对象:主要针对用户、组进行限制,对组账号限制,组内所有用户的使用总和不能超过限制。

3.限制类型:磁盘容量限制(Block),默认单位KB、文件数量限制(Inode)。

4.限制方法:软限制、硬限制。软限制默认7天内允许超过,会有警告。硬限制不允许超过,硬限制应当比软限制大,否者软限制失效。

xfs_quota -x -c 'limit -u bsoft=N bhard=N isoft=N ihard=N 用户名' 挂载点

xfs实验

关闭SELinux,若启用SELinux功能,不是所有的目录都能设定quota,默认quota仅能对/home进行设定。

[root@gh1 ~]# setenforce 0

分区sdb1,xfs格式化,挂载

临时添加挂载
[root@gh1 ~]# fdisk /dev/sdb1

[root@gh1 ~]# mkfs.xfs /dev/sdb1

[root@gh1 ~]# mount -o usrquota,grpquota /dev/sdb1 /data/shiya

永久添加挂载
[root@localhost ~]# vim /etc/fstab
//添加
/dev/sdb1        /data/shiya      xfs     defaults,usrquota,grpquota      0 0

查看sdb1的磁盘配额是否生效

[root@gh1 ~]# mount |grep sdb1
/dev/sdb1 on /data/shiya type xfs (rw,relatime,attr2,inode64,noquota)

如果未成功重新挂载
[root@gh1 ~]# umount /mnt/stu01/
[root@gh1 ~]# mount -a
[root@gh1 ~]# df -Th |grep sdb1
/dev/sdb1               xfs        10G   33M   10G    1% /data/shiya

创建名为ceshi的测试用户

[root@gh1 ~]# useradd ceshi && echo "000000" | passwd --stdin ceshi
更改用户 ceshi 的密码 。
passwd:所有的身份验证令牌已经成功更新。

设置磁盘配额数据

[root@gh1 ~]# xfs_quota -x -c 'limit -u bsoft=100M bhard=200M isoft=2ihard=5 ceshi' /data/shiya/

方便测试,放开权限,切换到ceshi用户

[root@gh1 ~]# chmod 777 /data/shiya/
[root@gh1 ~]# su - ceshi

文件数量配额测试

[ceshi@gh1 shiya]$ touch {1..8}.txt
touch: 无法创建"8.txt": 超出磁盘限额
[ceshi@gh1 shiya]$ ls
1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt
[ceshi@gh1 shiya]$ rm -f *

磁盘空间配额测试

[ceshi@gh1 shiya]$ dd if=/dev/zero of=/data/shiya/1.txt bs=10M count=25
dd: 写入"/data/shiya/1.txt" 出错: 超出磁盘限额
记录了21+0 的读入
记录了20+0 的写出
209715200字节(210 MB)已复制,0.628763 秒,334 MB/秒
[ceshi@gh1 shiya]$ ls -lh
总用量 200M
-rw-rw-r-- 1 ceshi ceshi 200M 7月   5 18:00 1.txt
[ceshi@gh1 shiya]$ touch 2.txt
touch: 无法创建"2.txt": 超出磁盘限额

查看配额使用情况

[ceshi@gh1 shiya]$ su root
密码:
[root@gh1 shiya]# xfs_quota -x -c 'report -abi' /data/shiya/
User quota on /data/shiya (/dev/sdb1)
                               Blocks                                          Inodes                     
User ID          Used       Soft       Hard    Warn/Grace           Used       Soft       Hard    Warn/ Grace     
---------- -------------------------------------------------- -------------------------------------------------- 
root                0          0          0     00 [--------]          3          0          0     00 [--------]
ceshi          204800     102400     204800     00  [6 days]          1          5          7     00 [--------]

Group quota on /data/shiya (/dev/sdb1)
                               Blocks                                          Inodes                     
Group ID         Used       Soft       Hard    Warn/Grace           Used       Soft       Hard    Warn/ Grace     
---------- -------------------------------------------------- -------------------------------------------------- 
root                0          0          0     00 [--------]          3          0          0     00 [--------]
ceshi          204800          0          0     00 [--------]          1          0          0     00 [--------]

标签:系统管理,gh1,luoji01,dev,juan01,LVM,磁盘,xfs,root
来源: https://www.cnblogs.com/970618z/p/16448282.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有