一、LVM简介
逻辑卷: dm设备(device mapper)将多个物理设备通过软件整合成一个逻辑上的设备
LVM2:(Logical Volume Manager,Version:2)逻辑卷管理器
二、LVM架构:
PV:物理卷
单个实际的物理磁盘(可以是一个硬盘设备、一个分区、或者一个RAID)
PE:物理分区
由PV抽象划分成的多个固定大小的块(块大小由VG定义)
VG:逻辑卷组
由多个PE组合成VG,大小为PE总和
LE:逻辑盘区
当PE分配给LV使用时,就被称为逻辑盘区LE
LV:逻辑卷
将VG逻辑卷组划分为多个实际使用的单个逻辑卷LV
注意:LV逻辑卷的空间大小可以灵活调节不用格式化,数据不会丢失,方便调节面向用户使用的逻辑卷LV的大小,可以灵活扩展PV,但是减少PV会丢失数据
三、LVM的设备文件
/dev/mapper/VG名-LV名
为了方便访问由连接文件指向/dev/mapper/VG名-LV名
该连接文件为:/dev/VG名/LV
四、LV逻辑卷的创建流程:PE物理卷--->VG逻辑卷组--->LV逻辑卷
1、fdisk创建分区,并将分区改为8e:Linux LVM格式,partx -a加载到内核
2、创建PV:可以是任意的块设备(物理磁盘、分区、RAID)
3、创建VG
4、创建LV
5、格式化LV交由文件管理系统供用户使用(mkfs -t ext4 -b 1024 -L LV名 /dev/VG名/LV名)
6、挂载以面向用户使用
五、LV逻辑卷的扩展和缩小
扩展:
lvextend扩展LV逻辑卷大小
resize2fs /dev/VG名/LV名:扩展LV逻辑卷文件系统的大小
缩小:
1、umount /dev/VG名/LV名:卸载挂载;
2、e2fsck -f /dec/VG名/LV名:强制检查LV文件系统;
3、resize2fs /dev/VG名/LV名 n单位:缩减文件系统大小到n单位;
4、lvreduce -L {-n单位|n单位} /dev/VG名/LG名:缩减LV的大小
5、mount /dev/VG名/LV名:重新挂载缩减后的LV逻辑卷
六、PV、VG、LV管理工具
PV管理工具:
pvcreate /dev/sdn # 将指定的块设备创建为pv物理卷(可以是物理磁盘、分区、RAID)
-v :显示创建过程
-f :强制创建
-u :指明uuid
-t :创建测试
pvs /dev/sdn # 显示pv的简要信息(可指定设备)
pvdisplay /dev/sdn # 显示pv的详细信息(可指定设备)
pvremove /dev/sdn # 删除指定块设备pv物理卷
pvmove /dev/sdn1 /dev/sdn2 # 将pv物理卷的pe数据移动到指定pv物理卷中
pvscan /dev/sdn # 扫描指定物理卷
pvck /dev/sdn # 检测指定物理卷
pvsize /dev/sdn # 显示指定物理卷大小
pvchange /dev/sdn # 改变pv物理卷属性
-u :生成新的UUID
-x :是否允许分配PE
PE逻辑卷组管理工具:
vgcreat /VG设备名 /PV设备名 #使用指定的PV设备创建为VG设备
-s :指明PV大小(-s n单位)
补充:PE大小默认为4MB,创建后不能修改,只能重新创建
ygs /VG设备 #显示VG设备简要信息
vgdisplay /VG设备 #显示VG设备的详细信息
vgrename /vg名1 /vg名2 #重命名vg
vgextend /vg名 /dev/sdn #将指定块设备扩展添加到指定vg
vgreduce /vg名 /dev/sdn #将指定块设备重vg中移除
注意:移除前需要将该PE的数据移动到其它位置(pvmove /dev/sdn1 /dev/sdn2),否者数据会丢失
vgremove /vg名 #移除指定vg(需要先删除逻辑卷LV)
vgsplit #分割指定vg
vgscan #扫描指定vg
vgck #检查指定vg
vgchange #改变vg属性
LV逻辑卷管理工具:
lvcreat /VG名/vg名 在指定VG中创建LV逻辑卷
-L #--size指明LV逻辑卷大小(-L n单位)
-l #指明指明LV的PE个数(即大小)
-n #指明LV名
lvs /dev/VG名/LV名 #显示指定LV的简要信息
或:lvs /dev/mapper/VG名-LV名
lvdisplay /dev/VG名/LV名 #显示指定LV的详细信息
或:lvdisplay /dev/mapper/VG名-LV名
lvrename #/LV名1 /LV名2 修改LV的名字
LV逻辑卷大小扩展:
lvextend -L {+n单位|-n单位} /dev/VG名/LV名
+n单位:扩展+n单位
n单位:扩展到n单位
LV逻辑卷扩展流程:
1、lvextend扩展LV逻辑卷大小
2、resize2fs /dev/VG名/LV名:扩展LV逻辑卷文件系统的大小
补充:LV逻辑卷扩展后需要将文件管理系统扩展到相应大小
LV逻辑卷大小缩减:
lvreduce -L {-n单位|n单位} /dev/VG名/LG名 #LV逻辑卷的缩减
-n单位:缩减到-n单位
n单位:缩减到n单位
LV逻辑卷的缩减流程:
1、umount /dev/VG名/LV名 #卸载挂载;
2、e2fsck -f /dec/VG名/LV名 #强制检查LV文件系统;
3、resize2fs /dev/VG名/LV名 n单位 #缩减文件系统大小到n单位;
4、lvreduce -L {-n单位|n单位} /dev/VG名/LG名 #缩减LV的大小
5、mount /dev/VG名/LV名 #重新挂载缩减后的LV逻辑卷
补充:缩减到的空间大小不能小于以储存的文件大小
lvremove /LV名 #移除指定LV
lvscan #扫描指定LV
lvck #检查指定LV
lvmconf #lvm管理工具的配置文件
七 、逻辑卷快照(snapshot):瞬间快照存储指定卷的数据
lvcreate -L n单位 -p r -s -n /快照卷名字 /原卷名字
-L :指明快照卷大小
-P :r,定义为只读卷
-s :定义为快照卷
-n :指明快照卷和原卷
八、dd基于底层块的复制命令
基于底层块的文件复制:
dd if=/源文件 of=/目标文件 bs=n count=n
将源文件基于底层的块复制为指定文件,也可以直接复制磁盘
bs=n 指定块大小,即一次复制多大的块,单位为字节
count=n 指定块的数量,即共复制多少块的数据
所以:dd可以复制指定文件中从头到尾指定数据大小的部分数据
基于底层块的磁盘复制:
dd if=/dev/sdn1 of=/dev/sdn2 将磁盘sdn1复制到磁盘sdn2
基于底层块的磁盘MBR复制:
dd if=/dev/sdn1 of=/指定路劲文件 bs=512 count=1
将磁盘sdn1的MBR引导程序(0柱面0扇区)复制到指定文件
基于底层块的磁盘MBR复制
dd if=/dev/sdn1 of=of=/dev/sdn2 bs=512 count=1
将磁盘sdn1的MBR引导程序(0柱面0扇区)复制到sdn2的0柱面0扇区,即修复MBR磁盘引导并清除磁盘分区