执行速度更快
主要内容
创建LVM文件系统,扩展和缩减文件系统,跨主机迁移文件卷组,pv搬家,逻辑卷快照
允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
允许在多个物理设备间重新组织文件系统
• 将设备指定为物理卷
• 用一个或者多个物理卷来创建一个卷组
• 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
• 在物理卷上创建的逻辑卷
是由物理区域(PE)组成
• 可以在逻辑卷上创建文件系统
LVM: Logical Volume Manager, Version 2
dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块
设备名:/dev/dm-#
软链接:
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量
用fdisk做 要改id为8e
同步partprobe
然后用d硬盘和sdb3分区做
(物理的硬件pvcerate(块设备)必须是1硬盘1分区)
前提是有分区----并且分区内容是有空的
显示pv信息
pvs:简要pv信息显示
pvdisplay
创建pv
pvcreate /dev/DEVICE
删除pv
pvremove /dev/DEVICE
检查pv
pcscan
如果出现这个表示这个磁盘或分区之前有东西必须清空他
正确的结果
显示卷组
vgs
vgdisplay
创建卷组
vgcreate 名字 磁盘
向卷组中添加成员
vgextend vg0 设备名
从卷组中删除成员
vgreduce vg0 设备名
删除卷组
先做pvmove,再做vgremove
更改卷组名字
vgrename 原名 现名
改变卷组的工作状态
vgchage -a y|n (y:可用,n不可用) 卷组名字
导出卷组
vgexport 卷组名
导入卷组
vgimport 卷组名
检查卷组
vgscan
-s也可以指定卷组PE大小 默认4M
Free PE 剩余的空间
Vgs 两个加起来总容量 14G
显示逻辑卷
lvs
Lvdisplay
创建逻辑卷
-n 起名字
-L多大的lv 后面要加从哪个卷组分(##绝对 ,+##增量)
-l 以PE个数为容量(也可以用百分比 %##free)
-s 知名创建的逻辑卷为快照
-p 设置只读属性
切记最后面试卷组vg的名字
lvcreate -L #[mMgGtT] -n NAME 卷组名字
lvcreate -l 60%VG -n mylv testvg
lvcreate -l 100%FREE -n yourlv testvg
例如:名字为mysql 从vg0分
然后就可以在/dev/vg0/mysql就可以查看设备
/dev/卷组名/逻辑卷名
这两个软连接指向同一个设备
所以在创建lv时的实际路径为/dev/dm-
然后就会看出来这两个就有type类型,说明这两个是同一个类型
创建新的文件系统
直接对他的目录创建就可以
就会出现这个—这个逻辑卷就有文件系统了
挂载(临时)
然后检测一下,在创建两个文件比较
正常创建(单个硬盘)
然后用逻辑卷创建
显然逻辑卷更快
扩展逻辑卷
lvextend -L +10G /dev/VG_NAME/LV_NAME
缩减逻辑卷
lveduce -L 10G /dev/VG_NAME/LV_NAME
更改逻辑卷名
lvrename /dev/VG_NAME/LV_NAME 名字
删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
恢复快照
lvconvert --merge /dev/VG_NAME/LV_NAME
重设文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME
lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME
**vg充足,直接扩展lv
vg不充足,先扩展vg,还可以先创建一个新的pv
**
如果逻辑卷空间不足,怎么扩展
先扩展逻辑卷lv—再扩展文件系统
Lvextend -l +1000 /dev/vg0/binlong
Xfs_growfs /mnt/mysql/ (fxs系列同步)
resize2fs /dev/vg0/binlog (ext系列同步)
或者直接一条命令
Lvextend -r -l +500 /dev/vg0/binlong
-r自动同步
用lvxtend -l +PE个数
也可以用+100%free-------->表示剩余的PE
对lv逻辑卷扩容
再看剩余空间就是没有
同步文件系统
-r 自动同步对任何文件系统都可以用
xfs的文件系统用 xfs_growfs 挂载点
Ext系列的用resize2fs 设备名
如果vg卷组不够怎么办
方法一:加硬盘-----变物理卷—加入到卷组—在同一个卷组中创建逻辑卷----创建文件系统—挂载----扩展
方法二:加硬盘----创建pv—扩展vg—扩展lv
1,新创建pv,vg,lv,并且重新创建文件系统-----挂载
将新硬盘加入到卷组扩容:用vgextend
在同一个卷组中创建逻辑卷
创建文件系统用ext4
然后挂载
然后给他扩展1000PE
同步文件系统
Ext系列的用resize2fs 设备名
2,直接扩展,不挂载
给mysql扩展
这里用了一个-r 自动同步
umount /dev/VG_NAME/LV_NAME
e2fsck -f /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
mount
缩减 —有风险的
只能缩减ext系列的
必须取消挂载—才能缩减
umount /mnt/binlong
缩减反过来–先缩减文件系统
缩减ext系列
Resize2fs 设备名 缩减到多少
如:必须先执行 e2fsck -f 设备名
检查系统完整性
缩逻辑卷的大小
Lvreduce -L 缩减到多少 设备名
创建物理卷
pvcreate /dev/sda3
为卷组分配物理卷
vgcreate vg0 /dev/sda3
从卷组创建逻辑卷
lvcreate -L 256M -n data vg0
创建文件系统
mkfs.xfs /dev/vg0/data
挂载
mount /dev/vg0/data /mnt/data
这个是针对于硬盘的(物理硬盘)
源计算机上
1 在旧系统中,umount所有卷组上的逻辑卷
2 禁用卷组
vgchange –an vg0
lvdisplay
3 导出卷组
vgexport vg0
pvscan
vgdisplay
拆下旧硬盘
在目标计算机上
4 在新系统中安装旧硬盘,并导入卷组:vgimport vg0
5 vgchange –ay vg0 启用
6 mount所有卷组上的逻辑卷
迁移:
首先改名vgrename vg0 vg1
导出卷组
关机
然后将这个文件导入另一个机子上去
可以将这个文件(硬盘)复制到另一个机子的目录中去
然后扫一下
用vgdisplay可以看到逻辑卷vg1
用 vginport vg1让他变成导入状态
然后启用他vgchange -ay vg1
最后挂载
假设sdd硬盘出故障了
怎样将他拆走(搬的是空间)
前提是给他搬家(容量得够)
确保现有逻辑卷不受影响
他所有的PE得有地放
可以缩减 ,可以加硬盘
将sdb中加一个分区主分区4 改他的标签为8e
同步partprobe
变成物理卷 pvcreate /dev/sdb4
加入到卷组中vgextent vg0 /dev/sdb4
然后搬家 pvmove /dev/sdd
这个就是将/dev/sdd上的所有PE移动到同一个卷组中的其他成员中(反正有空间)
现在就可以删除他
从卷组中移除
然后在把物理卷也删掉
Pvremove /dev/sdd
这样就OK
拆除逻辑卷中的硬盘真正的命令
删除逻辑卷
先取消挂载umount
先删逻辑卷lvremove /dev/vg1/名字
再删卷组vgremove vg1
再删物理卷pvremove /dev/sd硬盘
快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
对于需要备份或者复制的现有数据临时拷贝以及其它操作来说,快照是最合适
的选择
快照只有在它们和原来的逻辑卷不同时才会消耗空间
在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所
改变才会使用这些空间
当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中
快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的
数据
建立快照的卷大小小于等于原始逻辑卷,也可以使用lvextend扩展快照
快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享
由于快照区与原本的LV共用很多PE的区块,因此快照与被快照的LV必须在同一个VG中.系统恢复的时候的文件数量不能高于快照区的实际容量
前提要求逻辑卷和快照(也是逻辑卷)必须在同一个卷组中
快照的大小可以尽量不要超过逻辑卷
也就是 逻辑卷>=快照
将原来数据删除,修改
这样才会把元数据推送到快照里面中去
没有修改则不会推送到快照里面
假设修改一百次那么只保存最初的版本和最后的版本
中间的版本不会保存
为现有逻辑卷创建快照
-p r表示快照是只读的
lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data
挂载快照
mkdir -p /mnt/snap
mount -o ro /dev/vg0/data-snapshot /mnt/snap
恢复快照
umount /dev/vg0/data-snapshot
umount /dev/vg0/data
lvconvert --merge /dev/vg0/data-snapshot
删除快照
umount /mnt/databackup
lvremove /dev/vg0/databackup
存在uuid冲突问题
存在只读不能挂载的问题
创建快照逻辑卷
-s想到与快照标签
Snapshot是快照
-p r 只读属性 快照就变成只读的逻辑卷了(不能被修改)到最后不能挂载
挂载(不支持相同的uuid同时挂载)
-o nouuid 不让他检查uuid
不能挂载只读的快照(当时创建的是只读的快照)
所以只能重新创建快照
并且删除前一个快照
然后重新挂载
上面创建快照是没有加只读
所以在挂载时,加上只读
mount -o nouuid,ro /dev/vg0/mysql_snapshot2 /mnt/snap/
修改源数据,则快照中就会备份
最后恢复元数据
首先取消快照和元数据的挂载
这里只加快照的目录 自动设别元数据的目录
这样就给他还原了
但是逻辑卷的快照 就没了(一次性的)
不存在uuid冲突问题
也不存在只读不能挂载的问题
对/mnt/binlong做快照
恢复----同样 快照消失–一次性的
1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小
为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
2、 新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至
archlinux用户,复制/etc/pam.d目录至自己的家目录
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
5、对testlv创建快照,并尝试基于快照备份数据,验证快照的功能