LVM学习点滴
创建一个凌驾于RAID上的LVM
1、底层RAID的搭建
[root@linux ~]#fdisk /dev/sda #创建分区并把分设置为raid格式(fd)
[root@linux ~]#mknod /dev/md0 b 9 0 #创建RAID使用的块文件
[root@linux ~]#mdadm -C /dev/md4 -l 5 -n 3 -x 2 /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8 /dev/sda9
#将分区sda5、sda6、sda7做成raid5格式并将sda8、sda9做为热备盘使用md4块设备。
[root@linux ~]# mdadm --detail /dev/md0 #查看刚刚创建的raid5的详细信息。
我们可以通过上面的操作创建多个raid阵列来做到物理层的安全冗余。
2、LVM的搭建
[root@linux ~]# pvcreate /dev/md0 #将创建的raid设备初始化为PhysicalVolume。
[root@linux ~]# pvdisplay /dev/md0 #查看刚刚初始化成pv的raid设备
[root@linux ~]# vgcreate home /dev/md0 /dev/md1 #将相应的pv添加到VolumeGroup并以home为vgname
[root@linux ~]# vgdisplay home #查看刚刚创建的VG
[root@linux ~]# lvcreate -L 200M -n home home #在VG(home)上创建以home为名称的logicalvolume设备设定大小为200M
[root@linux ~]# lvdisplay home #查看相应logicalvolume设备详细信息
3、LVM的管理
扩大lv空间(假设vg空间已经没有而且pv设备也都是新添加的)
将新添加的设备做raid搭建pv初始化等操作
[root@linux ~]# vgextend home /dev/md2 #将做好的pv设备添加在vg(home)当中去
[root@linux ~]# vgdisplay home #查看下现在vg的容量应该已经增加了
[root@linux ~]# lvextend /dev/home/home -L 300G #将lv设备扩展成自己想要的大小
[root@linux ~]# resize2fs /dev/home/home #在线同步格式新添加lv容量
这里可以使用df -h查看下刚刚新扩展的目录容量比以前大了。
减小lv空间
[root@linux ~]# umount /dev/home/home #卸载挂载的lv设备
[root@linux ~]# e2fsck -f /dev/home/home #检测分区情况
[root@linux ~]# resize2fs /dev/home/home 200G #将lv调整成自己想要的大小(注意:最好大于原实际数据的大小)
[root@linux ~]# lvreduce /dev/home/home -L 200G #再将lv中不使用的pe在pv中释放掉(如果不做这一步操作将无法减小vg)
然后再将设备挂载到相应目录并用df -h查看分区空间已经减小为200G了,而且里面的数据还都在。
从vg空间中取出空闲的pv
减小vg空间是为了把vg当中空闲的pv取出,可是当我们在vg上面创建lv的时候就会把vg当中的pv对应到相应的lv,所以我们要想取出空闲的pv就要先把lv卸载掉并释放出所占用的pv上面的pe。
[root@linux ~]# umount /dev/home/home #卸载挂载的lv设备
[root@linux ~]# e2fsck -f /dev/home/home #检测分区情况
[root@linux ~]# resize2fs /dev/home/home 200G #将lv调整成自己想要的大小(注意:最好大于原实际数据的大小)
[root@linux ~]# lvreduce /dev/home/home -L 200G #再将lv中不使用的pe在pv中释放掉(如果不做这一步操作将无法减小vg)
以上4步是减小lv空间的操作
[root@linux ~]# pvdisplay #查看所有PV当Allocated PE为0时才可以从vg当中来移除
--- Physical volume ---
PV Name /dev/md2
VG Name home
PV Size 407.50 MB / not usable 3.50 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 101
Free PE 101
Allocated PE 0
PV UUID rJ7ydC-wcLy-7n1P-aZRh-ibuU-jUOA-y0z3Fm
--- Physical volume ---
PV Name /dev/md0
VG Name home
PV Size 101.88 MB / not usable 1.88 MB
Allocatable yes (but full)
PE Size (KByte) 4096
Total PE 25
Free PE 0
Allocated PE 25
PV UUID ygNgVd-cPso-2x4x-Gamb-4xFq-WpX9-AlbKux
[root@linux ~]# vgreduce home /dev/md2 #移除空闲的pv
移除掉这个pv设备之后,里面已没有什么数据,可以任意处理。
用LVMsnapshot来备份数据
[root@linux ~]# lvcreate -L 220M -s -n backup /dev/home/home #创建home的快照命名为backup
[root@linux ~]# mkdir /backup #创建相备份目录
[root@linux ~]# mount /dev/home/backup /backup #将快照分区挂载到新建的目录当中
快照只是把创建快照时的那一刻的数据重新copy到一个lv上面,不影响原lv的正常使用。随后就是tar备份的操作