Linux 第25天 lvm
时间: 20180812
lvm 是一个逻辑卷管理工具,其最大的优势就是可以将多个物理磁盘或分区的容量合并成一个大
的卷组,然后再由这个卷组来分区平时使用的分区,格式化挂载,并且可以将分区的容量动态的
添加而不影响其正常使用。 建议下层使用raid
pv
pvcreate 创建pv
pvs 显示pv信息
pvdisplay 显示pv详细信息
pvremove 移除pv
pvmove 将当前pv上的PE移动至其它pv上,前提是vg中还有空闲的pe
pvscan 扫描系统上的pv
vg
vgcreate 创建vg
-s 指定PE大小
vgs 显示vg信息
vgdisplay 显示vg详细信息
vgextend 扩展vg
vgreduce 缩减vg
vgrename 更改vg名称
vgremove 移除vg
vgimport 导入vg (将vg移至另一台机器使用)
vgexport 导出vg (将vg移至另一台机器使用)
vgchange 更改vg信息
-a y|n 激活或取消激活vg
lv
lvcreate 创建lv
-n 指定lv名称
-L 指定创建lv容量大小,直接指定数值表示创建后的容量
-s 有此设置表示所创建的lv为快照卷
lvremove 移除lv
lvextend 扩展lv
-r 在扩展逻辑卷时,同时将文件系统的大小一并同步
-L 指定增加后的容量大小,直接指定数值表示增加后的容量,+N表示分区要加多少容量
lvreduce 缩减lv容量
-L 指定要缩减的容量大小,直接指定数值表示缩减后的容量,-N表示分区要减多少容量
lvconvert 更改逻辑卷布局
--merge LV-snap 将所创建的
lvs 显示逻辑卷信息
lvdisplay 显示详细逻辑信息
创建lvm
1. 准备磁盘并创建pv
例 这里磁盘为 sdb
pvcreate /dev/sdb
pvs, pvdisplay查看所创建的pv
2. 创建vg
vgcreate -s 24m vg-sky /dev/sdb
vgs, vgdisplay 查看所创建的vg信息
3. 创建lv
lvcreate -L 500M -n lv-sky vg-sky
lvs, lvdisplay查看所创建的lv信息
4. 挂载
mkfs.xfs /dev/vg-sky/lv-sky
mkdir /mnt/lv-sky
mount /dev/vg-sky/lv-sky /mnt/lv-sky/
扩展lvm (ext系列和xfs都支持)
扩展lv时不需要卸载此分区可以实现在线扩展
1. 扩展lv分区大小
检查vg是否有空间可供扩容
vgs, vgdisplay
假如vg中没有多余空间的可供扩展lv,操作方式添加新的pv,如将sdc添加至vg中
pvcreate /dev/sdc
vgextend vg-sky /dev/sda5
lvextend -L +500M /dev/vg-sky/lv-sky
2. 扩展文件系统大小
xfs_growfs /mnt/lv-sky/
resize2fs /dev/vg-sky/lv-sky 此条可扩展ext系列的文件系统大小
或者可以省略此步骤,lvcreate -r选项可以直接通过调用fsadm命令同步扩展文件系统
缩减lvm
缩减lvm只有ext系列文件系统支持,xfs无法缩减其文件系统(处于安全考虑最好不要缩减)
缩减前查看原分区大小,我这里原分区大小为200M缩减100M
df, lvs
1. umount分区
umount /mnt/lv-sky
2. 检查文件系统e2fsck并缩减分区文件系统大小
fsck -f /dev/vg-sky/lv-sky2
3. 缩减lv
缩减文件系统容量大小
resize2fs /dev/vg-sky/lv-sky2 100M
注意后边所指的容量是缩减后的容量大小
缩减lv容量大小
lvreduce -L 100M /dev/vg-sky/lv-sky2
4. 重新挂载原分区
mount /dev/vg-sky/lv-sky2 /mnt/lv-sky2/
此时再查看分区容量大小df, lvs
跨主机迁移lvm(使用几率较小)
注意centOS6不支持xfs或需要安装相应支持的模块,centos6上的lvm可以迁移至centos7
这里举例子为 CentOS7 lv to another CentOS7,一定要注意看vg里是不是还有其它lv
因为同一个vg里的所有lv如果要移动都会被移走,
导出lv所在的centos7主机
1. 卸载lv所挂载的目录
umount /dev/vg-sky/lv-sky
2. 将vg改为非活动状态
vgchange -an vg-sky
3. 将vg导出,此时关闭文件系统,便可拔掉硬盘
vgexport vg-sky
注意: 如果另外一台机器和此机器使用的是相同的vg名称,此时可以使用vgrename
更改其名称。
导入lv的centos7机器操作
1. 导入vg
插入后会自动识别vg 可查看其状态vgdisplay
导入vg至当前系统
vgimport vg-sky
2. 激活vg
vgchange -ay vg-sky
3. 挂载lv
mount /dev/vg-sky/lv-sky /mnt/lv-sky
建立快照备份数据
快照是对某个分区建立一个在某个时间点的备份,并将其创建为一个设备,该设备挂载后可
以访问原分区在创建快照那个时间点里的所有数据,给快照所指定的容量是用来存储原分区
在创建快照后原分区里的内容发生变化后就会存储至快照卷中,而用户挂载所看到的原分区
中的内容原理是将文件和目录所指向的inode数据block备份,并展现给用户,使其可访问
原来的数据。 注意: 创建快照所指定的容量需要预估,即当创建快照那一刻至要撤消快照时
间段原分区数据变化容量大小,为创建快照的容量大小,可以再多加几个G,但是vg必须要
有相对的空闲空间.
1. 对分区创建快照
如这里准备对sdc做快照
lvcreate -s -L 2G -n sdc-snap /dev/sky_vg/
2. 挂载快照并进行备份
mount /dev/sky_vg/sdc-snap /mnt/snap
3. 还原当前快照至原分区
前提需要将快照分区和原分区都取消挂载
lvconvert --merge /dev/sky_vg/sdc-snap
此命令便会把原分区的内容恢复至快照备份时那一刻的状态
pv移除
1. 查看pv属于同一个vg的其它pv是否有空闲的pe
pvdisplay
2. 如pv所存在的vg中其它pv有足够的pe供此pv上的pe移动则可以执行
pvmove /dev/sda7
此时pv里的已经使用的pe就会被移动至其它pv上
3. 从vg中移除该pv
vgreduce /dev/sda7
4. 移除pv
pvremove /dev/sda7