逻辑卷管理器(LVM)
允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
允许在多个物理设备间重新组织文件系统
• 将设备指定为物理卷
• 用一个或者多个物理卷来创建一个卷组
• 物理卷是用固定大小的物理区域(Physical Extent,PE )来定义的
• 在物理卷上创建的逻辑卷是由物理区域(PE )组成
• 可以在逻辑卷上创建文件系统
LVM介绍
LVM: Logical Volume Manager, , Version: 2
dm: device mapper: : 将一个或多个底层块设备组织成一个逻辑设备的模块
设备名:/dev/dm-#
软链接:
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
附一张简单的lvm模型图:
lvm更改文件系统容量
LVM 可以弹性的更改LVM的容量
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量
pv管理工具
显示pv 信息
pvs :简要pv 信息显示
pvdisplay
创建pv
pvcreate /dev/DEVICE
这个表示已经创建过了
用pvdisplay命令查看下其详细信息
vg 管理工具
显示卷组
vgs
vgdisplay
创建卷组
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
创建卷组 指定vg0为卷组名字 添加/dev/sda6进卷组,然后pvdisplay命令查看下 成功
管理卷组
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
删除卷组
先做pvmove ,再做vgremove
lv 管理工具
显示逻辑卷
lvs
Lvdisplay
创建逻辑卷
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
重设文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
创建逻辑卷 查看其详细信息
然后mkfs格式化一下 vi /etc/fstab写入配置文件 mkdir /mnt/lv0创建文件夹 mount -a挂载 然后就可以正常使用了
扩展和缩减逻辑卷
扩展逻辑卷: 前提是卷组必须有空间
# lvextend -L [+]#[mMgGtT]
/dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME
如果没空间了 可以加硬盘 比如:pvcreate /dev/sdc vgextend vg0 /dev/sdc 就可以加进去了
缩减逻辑卷:
# umount /dev/VG_NAME/LV_NAME
# e2fsck -f /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME
#[mMgGtT]
# lvreduce -L [-]#[mMgGtT]
/dev/VG_NAME/LV_NAME
#mount
逻辑卷的一些相关命令:
创建逻辑卷
1、分区
fdisk /dev/sda
partx -a /dev/sda
lsblk
2、pvcreate /dev/sd{a7,b}
pvs
pvdisplay
3、vgcreate vg0 /dev/sd{a7,b}
vgs;pvs;pvdisplay;vgdisplay
4、lvcreate -n lv0 -L 10G vg0
5、mkfs.ext4 /dev/vg0/lv0
6、vi /etc/fstab
mkdir /mnt/lv0;mount -a
扩展lv
lvextend -L +10G /dev/vg0/lv0
resize2fs /dev/vg0/lv0
df -h
扩展卷组
1、pvcreate /dev/sdc
2、vgextend vg0 /dev/s
缩减逻辑卷
# umount /dev/VG_NAME/LV_NAME
# e2fsck -f /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME
#[mMgGtT]
# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
# mount
创建逻辑卷实例
·创建物理卷
pvcreate /dev/sda3
·为卷组分配物理卷
vgcreate vg0 /dev/sda3
·从卷组创建逻辑卷
lvcreate -L 256M -n data vg0
mke2fs -j /dev/vg0/data
·挂载
mount /dev/vg0/data /mnt/data
逻辑卷管理器快照
·快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
·对于需要备份或者复制的现有数据集临时拷贝以及其它操作来说,快照是最合适的选择。
·快照只有在它们和原来的逻辑卷不同时才会消耗空间。
*在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
*当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。
*快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据
*建立快照的卷大小只需要原始逻辑卷的15% ~20% 就够了。也可以使用lvextend 放大快照。
逻辑卷的原理:
快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享
由于快照区与原本的LV公用很多PE的区块,因此快照去与被快照的LV必须要在同一个VG上,系统恢复的时候的文件数量不能高于快照区的实际容量
使用lvm快照
为现有逻辑卷创建快照
#lvcreate -l 64 -s -n snap-data -p r /dev/vg0/data
挂载快照
#mkdir -p /mnt/snap #mount -o ro /dev/vg0/snap-data /mnt/snap
删除快照
#umount /mnt/databackup #lvremove /dev/vg0/databackup
练习:
·创建一个至少有两个PV 组成的大小为20G的名为testvg的VG ;要求PE 大小为16MB, 而后在卷组中创建大小为5G 的逻辑卷testlv ;挂载至/users 目录
pvcreate /dev/sd{b,c,e}{1,2} vgcreate testvg -s 16M /dev/sd{b,c,e}{1,2} lvcreate -n testlv -L 5G testvg mkfs.ext4 /dev/testvg/testlv mkdir /users vim /etc/fstab mount -a
·新建用户archlinux ,要求其家目录为/users/archlinux,而后su切换至archlinux 用户,复制/etc/pam.d目录至自己的家目录
useradd -d /users/archlinux archlinux su - archlinux cp -a /etc/pam.d/* . exit
·扩展testlv 至7G ,要求archlinux 用户的文件不能丢失
·收缩testlv 至3G ,要求archlinux
lvextend -L 7G /dev/testvg/testlv resize2fs /dev/testvg/testlv umount /users e2fsck -f /dev/testvg/testlv lvreduce -L 3G /dev/testvg/testlv mount -a
·对testlv 创建快照,并尝试基于快照备份数据,验正快照的功能
lvcreate -s -L 500M -n testlvsnap -p r /dev/testvg/testlv mkdir /mnt/testlvsnap mount /dev/testvg/testlvsnap /mnt/testlvsnap/
原创文章,作者:旧城以西,如若转载,请注明出处:http://www.178linux.com/43878