Lvm
1).LVM的工作原理
LVM(Logical Volume Manager)逻辑卷管理,是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区布局,并提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在硬盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越物理硬盘。当服务器添加了新的硬盘后,管理员不必将原有的文件移动到新的硬盘上,而是通过LVM直接扩展文件系统来跨越物理硬盘。
LVM就是通过将底层的物理硬盘封装,然后以逻辑卷的方式呈现给上层应用。当我们对底层的物理硬盘进行操作时,不再是针对分区进行操作,而是通过逻辑卷对底层硬盘进行管理操作。
(2).基础术语
物理存储介质(The physical media):LVM存储介质,可以是硬盘分区、整个硬盘、raid阵列或SAN硬盘。设备必须初始化为LVM物理卷,才能与LVM结合使用。
物理卷PV(physical volume):物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质比较却包含与LVM相关的管理参数,创建物理卷可以用硬盘分区,也可以用硬盘本身。
卷组VG(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,一个卷组VG由一个或多个物理卷PV组成。可以在卷组VG上建立逻辑卷LV。
逻辑卷LV(logical volume):类似于非LVM系统中的硬盘分区,逻辑卷LV建立在卷组VG之上。在逻辑卷LV之上建立文件系统。
物理块PE(physical Extent):物理卷PV中可以分配的最小存储单元,PE的大小可以指定,默认为4MB
逻辑块LE(Logical Extent):逻辑卷LV中可以分配的最小存储单元,在同一卷组VG中LE的大小和PE是相同的,并且一一相对。
总结:多个磁盘/分区/raid–>多个物理卷PV–>合成卷组VG–>从VG划分出逻辑卷LV–>格式化LV,挂载使用。
(3).LVM的优点
卷组VG可以使多个硬盘空间看起来像是一个大硬盘。
逻辑卷LV可以创建跨多个硬盘空间的分区。
在使用逻辑卷LV时,可以在空间不足时动态调整大小,不需要考虑逻辑卷LV在硬盘上的位置,不用担心没有可用的连续的空间。
可以在线对卷组VG、逻辑卷LV进行创建、删除、调整大小等操作。但LVM上的文件系统也需要重新调整大小。
LVM允许创建快照,用来保存文件系统的备份。
注意:LVM是软件的卷管理方式,RAID是磁盘管理的方法。对于重要的数据使,用RAID保护物理硬盘不会因为故障而中断业务,再用LVM来实现对卷的良性管理,更好的利用硬盘资源。
lvm常用的命令
功能 PV管理命令 VG管理命令 LV管理命令
scan 扫描 pvscan vgscan lvscan
create 创建 pvcreate vgcreate lvcreate
display 显示 pvdisplay vgdisplay lvdisplay
remove 移除 pvremove vgremove lvremove
extend 扩展 vgextend lvextend
reduce 减少 vgreduce lvreduce
注意:查看命令有scan、display和s(pvs、vgs、lvs)。s是简单查看对应卷信息,display是详细查看对应卷信息。而scan是扫描所有的相关的对应卷。
第一步,添加4块硬盘
第二步,使用pvcreate创建逻辑卷pv
pvcreate /dev/sd[b-e]
Pvs 查看一下
Pvdisplay /dev/sdb
第三步,创建vg,使用vgcreate创建卷组VG,并且此处可以-s选项指定PE(LE)的大小,(默认PE大小4M)
vgcreate -s 16M vg2 /dev/sd[b-e]
vgdisplay vg1
Vgs
注意:PE大,读取速度快,但浪费空间。反之,读取速度慢,但节省空间。
另外还可以查看pv,会列出分配情况
Pvs
第四步,创建逻辑卷
使用lvcreate创建LV。lvcreate -n lvname -L lvsize(M,G)|-l LEnumber vgname
lvcreate -n lv1 -L 64M vg1
vcreate -n lv2 -l 16 vg1
lvs //因为vg1的PE大小是4M所以lv1与lv2的大小相等
第六步:格式化与挂载
注意:在格式化之前需要知道xfs文件系统只支持增大,不支持减小。ext2、ext3、ext4增大减小都支持。
Mkfa.ext4 /dev/vg1/lv1
Mount /dev/vg1/lv1 lv1
echo “/dev/vg1/lv1 /lv1 ext4 defaults 0 0” >> /etc/fstab //追加到开机挂载
这里的/dev/vg1/lv1实际是一个软链接,实际地址如下
ll /dev/vg1/lv1
第六步,动态扩容
首先需要确认是否有可用的扩容空间,逻辑卷LV是从卷组VG中创建的,所有在逻辑卷LV扩容前需要查看卷组VG的空间使用情况。
Vgs
在确认有多余空间的情况下,使用lvextend命令的-L选项扩展逻辑卷LV的大小
lvextend -L +100M /dev/vg1/lv1 // +100M是增加100M
lvextend -L 100M /dev/vg1/lv2 //直接使用100M是增加到100M
但是在我们使用df命令查看时,会发现我们文件系统并没有扩展
df -h /lv
这是因为文件系统也需要扩容。ext4文件系统扩容使用"resize2fs [逻辑卷名称]",xfs文件系统扩容使用"xfs_growfs 挂载点"
resize2fs /dev/vg1/lv1 //ext4文件系统扩容
df -h /lv1
当然来到CentOS7后,我们还可以使用lvextend命令的-r选项来使文件系统自动扩容
lvextend -L 200M -r /dev/vg1/lv1 //LV扩容到200M并且文件系统自动扩容
df -h /lv1
卷组的扩容相当简单,一般是LVM空间不够时,添加一块新硬盘时使用。
vgextend vg1 /dev/sdb3
第七部“:辑卷的缩小
lvreduce命令使用-L选项减少空间,-r选项减少文件系统空间,实现动态调整(这是ext4文件系统)
lvreduce -L 100M -r /dev/vg1/lv1
df -h /lv1
如果不使用-r选项,那么需要卸载挂载点再使用resize2fs调整,但这已经不是动态调整了
Lvs
lvreduce -L -20M /dev/vg1/lv1
df -h /lv1
umount /lv1 //卸载挂载点
resize2fs /dev/vg1/lv
mount /dev/vg1/lv1 /lv1 //重新挂载
df -h /lv1
如果是。Xfs格式化,使用xfs_growf扩容文件系统
xfs_growfs /lv2
第八步:删除
删除LVM步骤:umount卸载–>lvremove移除逻辑卷LV–>vgremove移除卷组VG–>pvremove移除物理卷PV
umount /lv1 //卸载挂载点
lvremove /dev/vg1/lv1 //移除逻辑卷
vgremove vg1 //移除卷组
pvremove /dev/sdb1 //移除物理卷
第九步,扩展
SSM工具:检查关于可用硬盘和LVM卷的信息。显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。
SSM的安装
yum -y install system-storage-manager
列出设备信息
ssm list dev
列出存储池信息
ssm list pool
列出卷信息
ssm list vol
SSM创建LVM
ssm create -s [lv大小] -n [lv名称] --fstype [lv文件系统类型] -p [卷组名] [设备] [挂载点]
自动把设备变成pv,创建pv、lv,格式化文件系统,自动挂载
mkdir /mail-lv
ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[1-4] /mail-lv
df -h /mail-lv/