linux基础学习【12】

lvm (logical volume manager)


逻辑卷管理

pv    ##物理卷         被lv命令处理过的物理分区
vg    ##物理卷组    被组装到一起的物理卷
pe    ##物理扩展      lvm设备的最小单元,lvm时pe的整数倍
lvm ##逻辑卷       直接使用的设备,可以增大缩减并保持原有数据不变

lvm建立

建立分区并指定标签为8e
pvcreate /dev/vdb1               ##建立物理卷
vgcreate /vg0 /dev/vdb1     ##将物理卷归入卷组
lvcreate -L 20M -n lv0 vg0  ##从vg0卷组中抽出20M划为逻辑卷lv0
mkfs.xfs /dev/vg0/lv0           ##搭建文件系统
mount /dev/vg0/lv0 /mnt     ##挂载
df -h /mnt                               ##查看挂载
parted -l                                   ##查看未挂载的文件系统

查看未使用的磁盘

linux基础学习【12】


新建100M大小的分区

linux基础学习【12】


修改分区id为8e(Linux LVM)

linux基础学习【12】


pvcreate /dev/vdb1               ##建立物理卷
vgcreate /vg0 /dev/vdb1     ##将物理卷归入卷组
lvcreate -L 40M -n lv0 vg0  ##从vg0卷组中抽出20M划为逻辑卷lv0

linux基础学习【12】


格式化为xfs文件系统

linux基础学习【12】


挂载

linux基础学习【12】


监控此时的pv/vg/lv信息

linux基础学习【12】


lvm拉伸(扩容)

lvm支持热拉伸
当vg中的剩余容量充足时
lvextend -L 80M /dev/vg0/lv0    ##当cg容量足够,扩展lv0到80M
xfs_growfs /dev/vg0/lv0     ##扩展文件系统

扩展lv0到80M

linux基础学习【12】


当vg中剩余容量不足时
再次建立分区并指定标签8e
pvcreate /dev/vdb2      ##建立新的物理卷
vgextend vg0 /dev/vdb2      ##将物理卷归入卷组
lvextend -L 200M /dev/vg0/lv0   ##扩展lv0到200M
xfs_growfs /dev/vg0/lv0     ##扩展文件系统

建立新的物理卷

linux基础学习【12】


归入卷组vg0

linux基础学习【12】


扩展逻辑卷lv0到300M

linux基础学习【12】


扩展文件系统

linux基础学习【12】


针对ext文件系统的设备的拉伸和缩减

umount /mnt         ##卸载,ext不支持热缩减
mkfs.ext4 /dev/vg0/lv0      ##格式化lv0为ext4文件系统
mount /dev/vg0/lv0 /mnt     ##挂载

格式化为ext4并挂载

linux基础学习【12】


拉伸

lvextend -L 400M /dev/vg0/lv0   ##扩展逻辑卷lv0到400M
resize2fs /dev/vg0/lv0                ##扩展ext4文件系统

扩展到400M

linux基础学习【12】


扩展ext4文件系统

linux基础学习【12】


缩减

umount /dev/vg0/lv0                   ##卸载
e2fsck -f /dev/vg0/lv0                  ##强制检查文件系统
resize2fs /dev/vg0/lv0 100M        ##缩减文件系统到100M
lvreduce -L 100M /dev/vg0/lv0   ##缩减逻辑卷到100M
mount /dev/cg0/lv0 /mnt         ##挂载

卸载并检查(不支持热缩减)

linux基础学习【12】


缩减文件系统

linux基础学习【12】


缩减逻辑卷

linux基础学习【12】


缩减物理卷组

vgreduce vg0 /dev/vdb2      ##从vg0中取出vdb2
vgextend vg0 /dev/vdb2      ##将vdb2添加入vg0
注意已被占用的磁盘无法去除,缩减前需要迁移数据并解除占用

linux基础学习【12】


数据迁移

pvmove /dev/vdb1 /dev/vdb2  ##将vdb1中数据迁移到vdb2中
vgreduce vg0 /dev/vdb1      ##从vg0中取出vdb1
pvremove /dev/vdb1      ##从物理卷中删除vdb1

将vdb1中数据迁移到vdb2中,注意此时不要打断,等待100%后,命令提示符自动出现,否则有可能会损坏双方文件导致不可用

linux基础学习【12】


从vg0中取出vdb1

linux基础学习【12】


从pv中删除vdb1

linux基础学习【12】


创建lvm快照

lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0/lv0-backup /mnt
如果写入数据大于40M,会损坏设备
会自动卸载掉lv0-backup,再次挂载会报错
删除重建后看到原设备

创建并挂载

linux基础学习【12】


写入60M的数据(快照只有40M),自动损坏解除挂载

linux基础学习【12】


再次挂载报错

linux基础学习【12】


删除重建后恢复

linux基础学习【12】

猜你喜欢

转载自blog.51cto.com/13992211/2312704