-
逻辑卷管理器(LVM:Logical Volume Manager)
- 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
详细介绍:百度一下,你就知道!
(1)将设备指定为物理卷,物理卷是用固定大小的物理区域(Physical Extent)来定义的 (2)用一个或者多个物理卷来组成一个逻辑卷组(Volume Group) (3)在卷组上创建类似于磁盘分区的逻辑卷(Logical Volumes) - 逻辑卷设备名:/dev/dm-# 由于设备名无法辨别到底是哪个卷组上的逻辑卷,通常创建逻辑卷时系统会自动生成指向设备的软链接: (1)/dev/mapper/VG_NAME-LV_NAME #/dev/mapper/vol0-lv0 (2)/dev/VG_NAME/LV_NAME #/dev/vol0/lv0 - 逻辑卷快照: (1)快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享。 (2)由于快照区与原本的LV共用很多PE的区块,因此快照去与被快照的LV必须在同一个VG,系统恢复的时候的文件数量不能高于快照区的实际容量。
-
PV管理工具:
- 显示pv信息: pvs # 简要显示pv信息 pvdisplay #详细显示
- 创建和移除pv: pvcreate /dev/device #将硬盘初始化为物理卷(PV) pvremove /dev/device #移除物理卷
-
卷组(VG)管理工具:
- 显示VG信息: vgs vgdisplay
- 创建卷组: vgcreate [options] VG_NAME PV_DEVICE #vgcreate 选项 卷组名 PV设备名 -s : 指定卷组上的物理卷的PE大小
- 增加、删除卷组设备: vgextend VG_NAME PV_DEVICE #增加一个新的PV到卷组 vgreduce VG_NAME PV_DEVICE #删除设备
- ** 删除卷组:** vgremove VG_NAME
-
逻辑卷(LV)管理工具:
- 显示LV信息: lvs lvdisplay
- 创建逻辑卷: lvcreate (-L|-l) x -n LV_NAME VG_NAME -L : 指定逻辑卷的大小,以"kKmMgGtT"为单位,如:10G -l : 以PE块数为单位,如:当PE的大小为4M时,10G的空间=2560块PE lvcreate -l 60%VG -n LV_NAME VG_NAME #用VG60%的空间来创建LV lvcreate -l 100%FREE -n LV_NAME VG_NAME #用VG所有剩余的空间来创建LV
- 删除逻辑卷: lvremove /dev/VG_NAME/LV_NAME
- 重设文件系统大小: fsadm [options] resize device [new_size[BKMGTEP]] resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size] #增加或减少LV大小时要先修改文件系统的大小
- 扩展逻辑卷:
lvextend -L [+]n[mMgGtT] /dev/VG_NAME/LV_NAME
lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME - 缩减逻辑卷: lvreduce -L [+]n[mMgGtT] /dev/VG_NAME/LV_NAME
-
LVM快照:
- 创建快照: lvcreate -L 1G -s -n lvname-snapshot -p r /dev/VG_NAME/LV_NAME #快照相当于一个新的lv;-s:创建快照;-n:快照名;-p r:设置快照为只读;/dev/VG_NAME/LV_NAME:要创建快照的逻辑卷
- 恢复快照: lvconvert --merge /dev/VG_NAME/lvname-snapshot <br>
<br>
-
创建LVM:
- 首先准备三块不同大小的硬盘:
- (1)创建物理卷(PV): pvcreate /dev/sd{b,c,d} #将sdb,sdc,sdd初始化为物理卷(PV) pvs #查看pv信息 http://i2.51cto.com/images/blog/201712/07/5d213551a4fb52d14a1d7648a0338b68.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
- (2)创建卷组(VG): vgcreate vg0 /dev/sd{b,c,d} #在刚才的物理卷上创建一个卷组vg0 vgs
- (3)创建逻辑卷(LV): lvcreate -n lv0 -L 180G vg0 #从vg0中分配180G的空间,用来创建逻辑卷lv0
- (4)格式化逻辑卷并挂载: ll /dev/vg0/lv0 #ll命令可以看到/dev/vg0/lv0这个设备其实是个软链接,链接到/dev/dm-0 mkfs.xfs /dev/vg0/lv0 #将设备格式化成xfs文件系统 mount /mnt/lv0 #用mount挂载之后就可以正常使用了
-
扩展逻辑卷:
- (1)查看卷组中的可用空间: vgdisplay #vgdisplay可以看到所有卷组的信息,当然我们只有一个卷组vg0
- (2)将剩余的空间全部分配给lv0: lvextend -l +100%FREE /dev/vg0/lv0 #-l +100%FREE : 就是将所有的空闲的空间分配给lv0
(3)同步文件系统空间: df -h |grep lv0 #因为刚才我们的操作都是在挂载的状态下执行的,所以用df -h可以看到, #虽然我们成功将lv0扩容了,但是文件系统并没有变大,所以我们要同步一下文件系统。 xfs_growfs /mnt/lv0 #xfs_growfs可以扩展xfs文件系统,这里我们没有加任何选项,也就是将文件系统扩展至最大
![](http://i2.51cto.com/images/blog/201712/07/e813185f40a94e4c4b0770bf1cc52590.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
-
缩减逻辑卷:
-
(1)取消挂载: umount /mnt/lv0
-
(2)检查文件系统 fsck -f /dev/vg0/lv0 #ext系列文件系统需要做这一步,我们是xfs,忽略即可
-
(3)调整文件系统大小:
-
<font color=red size=4>xfs文件系统并不支持减小空间,如果非要减小的话,只能调整重新格式化才能挂载使用,当然格式化之后数据什么的肯定是会丢失的了。 所以,这里划重点!重要的事情说三遍,这是第二遍,第...三...遍......!!!</font>
-
ext系列的可以减小: lvreduce -L -100G /dev/vg0/lv0 #将lv0的空间减少100G resize2fs /dev/vg0/lv0 #ext系列文件系统使用这个命令调整
- <font color=red size=4>当然我假装不知道xfs不能减少的样子:</font>
xfs_growfs /dev/vg0/lv0/
mount /dev/vg0/lv0 /mnt/lv0
- <font color=red size=4>然后就.... 只能重新格式化了:</font>
-
-
快照:
-
先在/mnt/lv0下创建一些文件:
-
创建快照: lvcreate -L 20G -s -n lvname-snapshot -p r /dev/vg0/lv0
-
然后我们把刚才在/mnt/lv0下创建的文件删除并且恢复快照: rm -fr /mnt/lv0/* ls /mnt/lv0/ umount /mnt/lv0 lvconvert --merge /dev/vg0/lvname-snapshot #使用快照恢复 mount /dev/vg0/lv0 /mnt/lv0
-
删除快照: lvremove /dev/vg0/lvname-snapshot #若已经使用快照恢复,快照将会自动删除
-