磁盘系统管理-2 LVM和磁盘配额
LVM概述
了解查看
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实验
添加2块20G磁盘,分区,ID为8e
fdisk -l | grep -i "linux lvm"
转换物理卷
pvcreate /dev/sd{b,c}1
创建juanzu1卷组,添加sdb1和sdc1
vgcreate juanzu1 /dev/sd{b,c}1
划分大小为15G,名称为luojijuan1的逻辑卷,再扩容10G,剩下的空间创建名称为luojijuan2的逻辑卷
lvcreate -L 15G -n luojijuan1 juanzu1
lvextend -L +10G /dev/juanzu1/luojijuan1
lvcreate -l 100%free -n luojijuan2 juanzu1
格式化逻辑卷,luojijuan1为xfs,luojijuan2为ext4
mkfs.xfs /dev/juanzu1/luojijuan1
mkfs.ext4 /dev/juanzu1/luojijuan2
设置自动挂载,挂载后就可以使用了。
mkdir /mnt/luojijuan{1,2}
vim /etc/fstab
/dev/juanzu1/luojijuan1 /mnt/luojijuan1 xfs defaults 0 0
/dev/juanzu1/luojijuan2 ext4 defaults 0 0
扩容实验
添加一块20G磁盘,ID为8e
fdisk -l|grep -i "linux lvm"
将/dev/sdd1转换物理卷
pvcreate /dev/sdd1
查看juan01卷组,进行扩容并再次查看
vgdisplay juanzu1
vgextend juanzu1 /dev/sdd1
vgdisplay juanzu1
对luojijuan1扩容5G,剩余空间分配给luojijuan2
lvextend -L +5G /dev/juanzu1/luojijuan1
lvextend -l 100%free /dev/juanzu1/luojijuan2
使用xfs_growfs和resize2fs在线调整大小并查看
xfs_growfs /dev/juanzu1/luojijuan1
resize2fs /dev/luojijuan2
df -Th
卸载实验
umount卸载挂载并查看
umount /mnt/luojijuan{1,2}
df -Th
lvremove移出juanzu1卷组中所有逻辑卷
lvremove -y /dev/juanzu1/luojijuan{1,2}
vgremove移出卷组
vgremove -y juanzu1
pvremove移出物理卷
pvremove /dev/sd{b..d}
磁盘配额
磁盘配额概述
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进行设定。
setenforce 0
分区sdb1,xfs格式化,挂载
临时添加挂载
mkfs.xfs -f /dev/sdb1
mount -o usrquota,grpquota /dev/sdb1 /data/
查看sdb1的磁盘配额是否生效
mount | grep sdb1
如果未成功重新挂载
umount /data
mount -a
mount -o usrquota,grpquota /dev/sdb1 /data/
df -Th
设置磁盘配额数据
xfs_quota -x -c 'linit -u bsoft=10M bhard=20M isoft=5 ihard=8 ceshi' /data
创建名为ceshi的测试用户
创建名为ceshi的测试用户,方便测试,放开权限,切换到ceshi用户
useradd ceshi && echo "000000" | passwd --stdin ceshi
chmod 777 /data/
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 [--------]