Linux-LVM的介绍、创建、删除
LVM简介
LVM,Logical Volume Manger,是linux内核提供的一种逻辑卷管理功能,由内核驱动和应用层工具组成,它是在硬盘的分区基础上,创建了一个逻辑层,可以非常灵活且非常方便的管理存储设备。
LVM利用Linux内核的device-mapper功能来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间,避免为正在使用的磁盘重新分区的麻烦、为调整分区而不得不移动其他分区的不便,它相比传统的分区系统可以更灵活地管理磁盘。
一、LVM的基本组成
1、物理卷 (PV,Physical Volume)
一个可供存储LVM的块设备. 如硬盘分区(MBR或GPT分区)、SAN 的硬盘、RAID 或 LUN,一个回环文件, 一个被内核映射的设备 (例如 dm-crypt),它包含一个特殊的LVM头,它是 LVM 构建的实际硬件或存储系统。
2、卷组 (VG,Volume Group)
卷组是对一个或多个物理卷的集合,并在设备文件系统中显示为 /dev/VG_NAME。
3、逻辑卷 (LV,Logical Volume)
逻辑卷是可供系统使用的最终元设备,它们在卷组中创建和管理,由物理块组成,实际上就是一个虚拟分区,并显示为 /dev/VG_NAME/LV_NAME,通常在其上可以创建文件系统。
4、物理块 (PE,Physical Extends)
一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。
lvm在linux磁盘管理中的位置图:
依次为:disk -> partition -> PV -> VG -> LV -> fs,也即磁盘->分区->物理卷->卷组->逻辑卷->文件系统。
其创建也是按照这个顺序,下面会详细介绍。
二、LVM的优缺点
1、优点
比起传统的硬盘分区管理方式,LVM更富于灵活性:
(1) 将多块硬盘看作一块大硬盘
(2) 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
(3) 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。
(4) 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。
(5) 可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。不过LVM上的文件系统也需要重新调整大小,好在某些文件系统(例如ext4)也支持在线操作。
(6) 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
(7) 允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。
(8) 支持各种设备映射目标(device-mapper targets),包括透明文件系统加密和缓存常用数据(caching of frequently used data)。这将允许你创建一个包含一个或多个磁盘、并用LUKS加密的系统,使用LVM on top 可轻松地管理和调整这些独立的加密卷 (例如. /, /home, /backup等) 并免去开机时多次输入密钥的麻烦。
2、缺点
(1) 在系统设置时需要更复杂的额外步骤。
(2) Windows系统并不支持LVM,若使用双系统,你将无法在Windows上访问LVM分区。
三、LVM的使用
1、添加磁盘
2、物理卷(PV)相关操作
①、通过lvmdiskscan命令列出可被用作pv的设备
# lvmdiskscan
②、使用pvcreate命令创建pv
# pvcreate device1 device2 ...
root# pvcreate /dev/sd{b..e}
③、查看当前所有PV信息
可以通过pvs、pvscan、pvdisplay这三个命令查看pv信息
注意: 如果你用的是未格式化过且擦除块(erase block)大小小于1M的SSD,请采用以下命令pvcreate --dataalignment 1m /dev/sda来设置对齐(alignment)。
3、卷组(VG)相关操作
①、创建卷组
使用命令vgcreate创建卷组
# vgcreate vg_name pv1 pv2 ...
root# vgcreate vg01 /dev/sd{b..e}
创建卷组vg_01,并把物理卷/dev/sdb /dev/sdc /dev/sdd /dev/sde加入该卷组。
②、查看卷组信息
可以通过vgs、vgscan、vgdisplay查看卷组。
4、逻辑卷(LV)相关操作
①、创建LV
使用lvcreate命令
# 创建逻辑卷
lvcreate -L <lv_size> <vg_name> -n <lv_name>
# 将卷组vg_name下所有剩余空间给创建的lv_name逻辑卷
lvcreate -l +100%FREE <vg_name> -n <lv_name>
root# lvcreate -L 1G vg01 -n lv01
该逻辑卷创建完后,你就可以通过/dev/mapper/vg01-lv01或/dev/vg01/lv01来访问它。
②、查看lv
命令lvs、lvscan、lvdisplay查看
③、扩容逻辑卷
通过命令lvextend:
# lvextend -L <extend_size> <lv_path>
root# lvextend -L +1G /dev/vg01/lv01
注意:如果扩容的逻辑卷已经挂载到具体文件系统,则需要执行resize2fs或者xfs_growfs(针对xfs文件系统)命令使修改生效,可以通过df -Th或者blkid查看lv所挂载的文件系统类型。
resize2fs <mount_point> 针对的是ext2、ext3、ext4文件系统
xfs_growfs <mount_point> 针对的是xfs文件系统,这里必须为挂载点,而非文件系统本身。
5、格式化并挂载LV(逻辑卷)
上面逻辑卷LV创建之后,通常是已经可以在/dev/mapper/或者/dev/vg_name/下面找到该逻辑卷了,如果找不到的话,可以执行如下命令:
#modprobe dm-mod
#vgscan
#vgchange -ay
①、格式化逻辑卷
现在可以在该逻辑卷上创建文件系统:
# mkfs.<filesystem_type> /dev/mapper/<vg_name>-<lv_name>
或者
# mkfs.<filesystem_type> /dev/<vg_name>/<lv_name>
root# mkfs.xfs /dev/vg01/lv01
②、挂载
# mount /dev/mapper/<vg_name>-<lv_name> <mount_point>
或者
# mount /dev/<vg_name>/<lv_name> <mount_point>
root# mkdir /lv_data root# mount /dev/vg01/lv01 /lv_data
注:挂载点请选择你所新建的逻辑卷(例如:/dev/mapper/vg01-lv01),不要使用逻辑卷所在的实际分区设备(即不要使用:/dev/sdb1)
永久挂载
root# echo “/dev/mapper/vg01-lv01 /lv_data xfs default 0 0” >> /etc/fstab root# mount -a root# df -lh
三、LVM的删除
①、卸载挂载点
# umount <mount_point>
root# umount /lv_data
②、删除逻辑卷
# lvremove /dev/mapper/<vg_name>/<lv_name>
或者
# lvremove /dev/<vg_name>/<lv_name>
root# lvremove /dev/vg01/lv01
③、删除卷组
# vgremove <vg_name>
root# vgremove vg01
④、删除物理卷
# pvremove <pv_name>
root# pvremove /dev/sd{b..e}
⑤、删除/etc/fstab添加的信息
# vim /etc/fstab
本文来自博客园,作者:业余砖家,转载请注明原文链接:https://www.cnblogs.com/yeyuzhuanjia/p/17402453.html