Linux 第25天 lvm

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


猜你喜欢

转载自blog.51cto.com/winthcloud/2160763