本文介绍了管理LVM逻辑卷的常见操作
创建LVM逻辑卷
- 使用pvcreate将三块磁盘标记为LVM物理卷
$ pvcreate /dev/sda1 /dev/sdb1 /dev/adc1
- 将LVM物理卷组成卷组其名为myg,使用vgs命令查看状态
$ vgcreate myvg /dev/sda1 /dev/sdb1 /dev/sdc1
- 在卷组上创建逻辑卷,在卷组myvg中创建逻辑卷mylv
$ lvcreate -L 2G -n mylv myvg
- 在逻辑卷上创建文件系统
$ mkfs.ext4 /dev/myvg/mylv
- 挂载逻辑卷到/mnt目录
$ mount /dev/myvg/mylv /mnt
切分卷组
- 使用pvscane查看卷组中由多少剩余空间
- 使用pvmove命令将所有物理扩展单元从/dev/sdc1移动到/dev/sdb1,移动完成后可以通过pvscan看到/dev/sdc1使用空间为空
- 使用vgsplit切分处yourvg卷组,使用vgs查看两个卷组
$ lvcgange -a n /dev/myvg/mylv
$ vgsplit myvg yourvg /dev/sdc1
- 在新卷组上创建逻辑卷
$ lvcreate -L 5G -n yourlv yourvg
- 创建文件系统然后挂载
$ mkfs.ext4 /dev/yourvg/yourlv
$ mount /dev/yourvg.yourlv /mnt
删除逻辑卷中的磁盘
- 使用pvs -o+pv_used命令查看那卷组跨越了哪些物理卷
- 如果其他物理卷有剩余空间可以用pvremove命令将/dev/sdb1上的扩展单元移动到其他物理卷上
$ pvremove /dev/sdb1
- 使用vgreduce命令将物理卷/dev/sdb1从卷组中移除
$ vgreduce myvg /dev/sdb1
- 如果卷组中其他物理卷空间不足可以新加一块物理卷然后将/dev/sdb1移动到新物理卷上然后删除/dev/sdb1
$ pvcreate /dev/sdd
$ vgextend myvg /dev/sdd1
$ pvmove /dev/sdb1 /dev/sdd1
$ vgreduce myvg /dev/sdb1
合并卷组
合并卷组可以合并不活动的卷组到一个活动的卷组中或者合并到另一个不活动的卷组中
$ vgmerge -v dest_vg source_vg
修改逻辑卷大小
- 使用lvextend命令增加逻辑卷大小
- 扩展逻辑卷到指定大小
$ lvextend -L 12G /dev/myvg/homevol
- 增加逻辑卷指定大小
$ lvextend -L +1G /dev/myvg/homevol
- 一般来说逻辑卷大小改变文件系统大小会自动修改
管理LVM物理卷
- 使用lvmdiskscan命令扫描可用于物理卷的块设备
- 使用pvdisplay查看物理卷是否被逻辑卷使用
$ pvdisplay /dev/hda1
- 使用lvm命令查看lvm帮助和配置
$ lvm help
- 查看物理卷
$ pvs
$ pvdisplay
$ pvscan
- 查看卷组
$ vgs
$ vgdisplay
$ vgscan
- 查看逻辑卷
$ lvs
$ lvdisplay
$ lvscan
逻辑卷快照
LVM快照功能支持创建在某一时刻的虚拟镜像而不中断服务,但是快照不能替代备份。
- 从卷组中创建逻辑卷origin
$lvreate -L 1G -n origin VG
- 创建一个100M的快照逻辑卷snap
$ lvcreate --size 100M --snapshot --name snap /dev/VG/origin
- 查看原始逻辑卷状态
$ lvdisplay /dev/VG/origin
- 显示原始卷和快照卷的使用比例
$ lvs -a -o +devices
快照卷在满了的时候会变成不可用状态,它挂载的文件系统会被强制卸载避免挂载点的读写错误。可以在/etc/lvm/lvm.conf中配置snapshot_autoextend_threshold 和 snapshot_autoextend_percent来执行自动扩容策略。但是LVM不允许创建比原始卷加上元数据更大的快照卷,因此自动增长到一定大小上限就不会再自动增长。
快照卷合并
$ lvconvert --merge VG/snap
lvm支持合并多个快照,如果由多个快照都有tag标签,它会依次执行合并
$ lvconvert --merge @some_tag