
Linux磁盘逻辑卷管理
1.基础概念
- 物理卷(PV):把常规的块设备(硬盘,分区等可以读写数据的设备)通过pvcreate命令对其进行初始化,就成了物理卷
- 卷组(VG):把多个物理卷的容量组成一个逻辑整体,可以从里面灵活分配容量
- 逻辑卷(LV):从卷组中划分部分空间成为一个可以读写数据的逻辑单元。需要对其格式化然后挂载使用
2.创建逻辑卷
流程步骤:
- 1.创建物理卷, 添加物理磁盘
- 2.创建卷组, 添加物理卷加入到该卷组
- 3.在卷组中划分逻辑卷
//1.准备物理磁盘 [root@cloud~]# lsblk |grep "sd[bcd]" sdb 8:16 0 1G 0 disk sdc 8:32 0 1G 0 disk sdd 8:48 0 1G 0 disk //1.将磁盘加入pv [root@linux-node1 ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. //检查pv创建情况 [root@linux-node1 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb lvm2 --- 1.00g 1.00g //2.创建名为datavg的卷组 [root@linux-node1 ~]# vgcreate datavg /dev/sdb Volume group "datavg" successfully created //检查卷组 [root@linux-node1 ~]# vgs VG #PV #LV #SN Attr VSize VFree datavg 1 0 0 wz--n- 1020.00m 1020.00m //3.创建逻辑卷, 分配名称, 以及大小, 指定卷组 [root@linux-node1 ~]# lvcreate -L 100M -n lv1 datavg Logical volume "datalv1" created. //检查逻辑卷 [root@linux-node1 ~]# lvscan ACTIVE '/dev/datavg/lv1' [100.00 MiB] inherit //4.格式化文件系统 [root@linux-node1 ~]# mkfs.xfs /dev/datavg/lv1 //挂载并使用 [root@linux-node1 ~]# mkdir /lv1 [root@linux-node1 ~]# mount /dev/datavg/lv1 /lv1/ [root@linux-node1 ~]# df -h Filesystem Size Used Avail Use% Mounted on ... /dev/mapper/datavg-lv1 97M 5.2M 92M 6% /lv1
3..卷组池管理
扩展卷组VG, 扩大VG卷组
//1.新硬盘加入pv [root@cloud~]# pvcreate /dev/sdc 2.使用vgextend扩展 [root@cloud~]# vgextend datavg /dev/sdc Volume group "datavg" successfully extended 移除卷组VG, 移除vg组中某一块硬盘 [root@cloud~]# vgreduce datavg /dev/sdb Removed "/dev/sdb" from volume group "datavg" 数据迁移卷组VG, 同一卷组的磁盘才可以进行在线迁移//1.检查当前逻辑卷VG中PV使用情况
[root@cloud~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb vg1 lvm2 a -- 2.00g 1.76g /dev/sdc vg1 lvm2 a -- 2.00g 2.00g //2.pvmove在线数据迁移至其他pv [root@cloud~]# pvmove /dev/sdb /dev/sdb: Moved: 41.33% /dev/sdb: Moved: 100.00% //3.检查是否将sdb数据迁移至sdc [root@cloud~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb vg1 lvm2 a -- 2.00g 2.00g /dev/sdc vg1 lvm2 a -- 2.00g 1.76g
4.扩容逻辑卷
逻辑卷的扩展, 取决于vg卷中剩余多少容量, 扩展容量不能超过卷组VG
[root@server0 ~]# vgs VG #PV #LV #SN Attr VSize VFree vg1 2 2 0 wz --n- 1.88g 1.00g 1.扩展lv逻辑卷 //增加800M分配给逻辑卷 {注意: 800M +800M 不一样} [root@cloud~]# lvextend -L +800M /dev/datavg/lv1 //分配磁盘池中多少百分比给逻辑卷 [root@cloud~]# lvextend -l +50%FREE /dev/datavg/lv1 2.扩展fs文件系统 //xfs扩容 [root@server0 ~]# xfs_growfs /dev/datavg/lv1 //ext扩容 [root@server0 ~]# resize2fs /dev/datavg/lv1对
ext4文件系统的逻辑卷裁剪容量首先自己创建一个1G的逻辑卷作为裁剪的对象 # lvcreate -n uplooking -L 1G finance # mkfs.ext4 /dev/finance/uplooking # mkdir /finance/uplooking # mount /dev/finance/uplooking /finance/uplooking/ # cp /etc/host* /finance/uplooking/ 1、如果已经挂载,必须先卸载 # umount /dev/finance/uplooking 2、裁剪容量,必须是先检测文件系统 # fsck -f /dev/finance/uplooking # resize2fs /dev/finance/uplooking 512M 3、调整完毕后采取裁剪逻辑卷容量 # lvreduce -L 512M /dev/finance/uplooking WARNING: Reducing active logical volume to 512.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce uplooking? [y/n]: y 4、强烈建议裁剪后,再次检测文件系统 # fsck -f /dev/finance/uplooking 5、挂载测试 如果能够挂载,一般说明裁剪成功,文件系统没有损坏 # mount /dev/finance/uplooking /mnt ... /dev/mapper/finance-uplooking 472M 1.6M 435M 1% /mnt 而且文件系统容量被刷新了4.缩小逻辑卷
5.删除逻辑卷