逻辑卷管理器LVM(Logical Volume Manager)可将多块数据盘或分区“合并”成一个可动态扩容的存储池。
工作原理
创建逻辑卷主要包含四个步骤:
创建物理卷 (pvcreate): 将数据盘标记为LVM专用。
创建卷组 (vgcreate): 将标记为LVM专用的物理卷合成一个存储资源池。
创建逻辑卷 (lvcreate): 从卷组中划分出指定大小的逻辑分区。
创建并挂载文件系统 (mkfs & mount): 为逻辑卷建立文件读写规则并分配访问路径,完成此步后逻辑卷即可投入使用。
如图所示,两块40 GiB的数据盘(/dev/vdb 和 /dev/vdc)被初始化为物理卷后加入名为 vg_01的卷组,形成80 GiB的存储池。随后从中划出55 GiB的逻辑卷 lv01 供系统使用。
操作步骤
步骤一:创建物理卷
创建物理卷会删除数据盘中数据,请确保数据盘为空。
登录ECS实例。
访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。
进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。
安装LVM工具。
Alibaba Cloud Linux、CentOS类型
sudo yum install -y lvm2Debian、Ubuntu类型
sudo apt-get install -y lvm2运行
sudo lsblk -f命令,获取目标设备名称。sudo lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINT vda ├─vda1 ├─vda2 vfat 7938-FA03 /boot/efi └─vda3 ext4 root 33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 / vdb vdc vdd └─vdd1如果
FSTYPE非空,则表示已初始化,不可创建物理卷。如果
FSTYPE为空:当设备不存在分区,目标设备名称与设备名称一致。示例中数据盘
vdb目标设备名称为vdb。数据盘vdc目标设备名称为vdc。当设备存在分区,目标设备名称为期望添加的分区名称。示例中数据盘
vdd目标设备名称为vdd1。
创建物理卷。
设备名称之间用空格间隔,将命令中的
<目标设备名称>调整为上一步中获取到的目标设备名称后执行。sudo pvcreate /dev/<目标设备名称>.../dev/<目标设备名称>以目标设备为
vdb和vdc为例,执行:sudo pvcreate /dev/vdb /dev/vdc生成两个40 GiB的物理卷。输出包含
successfully created,表示物理卷创建成功。
步骤二:创建卷组
创建卷组。
自定义
<卷组名称>,并将命令中的<目标设备名称>调整为步骤一获取的目标设备名称后执行。sudo vgcreate <卷组名称> /dev/<目标设备名称>.../dev/<目标设备名称>以创建卷组名称为
vg_01,并添加vdb、vdc为例,执行:sudo vgcreate vg_01 /dev/vdb /dev/vdc。输出包含
successfully created,表示卷组创建成功。查看卷组剩余可用容量。
运行
sudo vgs命令,根据VFree字段,获取并记录卷组剩余可用容量。sudo vgs
步骤三:创建逻辑卷
创建逻辑卷。
sudo lvcreate -L <逻辑卷大小> -n <逻辑卷名称> <卷组名称>以创建逻辑卷名称为
lv01,逻辑卷大小为55 GiB,卷组名称为vg_01为例,执行:sudo lvcreate -L 55g -n lv01 vg_01。参数
说明
<逻辑卷大小>需小于卷组剩余可用容量。
<逻辑卷名称>自定义创建的逻辑卷名称。
<卷组名称>替换为创建卷组时自定义的卷组名
输出
Logical volume "<逻辑卷名称>" created,表示逻辑卷创建成功。查看逻辑卷信息。
运行
sudo lvdisplay命令,根据LV Path字段,获取并记录逻辑卷路径,用于后续创建文件系统使用。sudo lvdisplay--- Logical volume --- LV Path /dev/vg_01/lv01 LV Name lv01 VG Name vg_01 LV UUID NgcCdz-efSY-vCrm-E35b-Dg6p-LNYq-xxxxxx LV Write Access read/write LV Creation host, time iZbp13kehgn0kh64txxxxxx, 2025-09-15 16:57:21 +0800 LV Status available # open 0 LV Size 55.00 GiB Current LE 14080 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0示例中
lv01的逻辑卷路径为/dev/vg_01/lv01。
步骤四:创建并挂载文件系统
创建文件系统。
与xfs相比,ext4更适合处理小文件。
ext4
创建ext4文件系统。
将
<逻辑卷路径>替换为步骤三获取的路径后执行。sudo mkfs -t ext4 <逻辑卷路径>示例中,逻辑卷路径为
/dev/vg_01/lv01,需执行sudo mkfs -t ext4 /dev/vg_01/lv01。验证创建是否成功。
运行
sudo lsblk -f,若输出中目标设备的FSTYPE为ext4,表示配置成功。
xfs
安装xfsprogs工具。
Alibaba Cloud Linux、CentOS类型:
sudo yum install -y xfsprogsDebian、Ubuntu类型:
sudo apt-get install -y xfsprogs
创建xfs文件系统。
将
<逻辑卷路径>替换为步骤三获取的路径后执行。sudo mkfs -t xfs <逻辑卷路径>示例中,逻辑卷路径为
/dev/vg_01/lv01,需执行sudo mkfs -t xfs /dev/vg_01/lv01。验证创建是否成功。
运行
sudo lsblk -f,若输出中目标设备的FSTYPE为xfs,表示配置成功。
创建并挂载系统目录。
sudo mkdir <挂载目录> && sudo mount <逻辑卷路径> <挂载目录>参数
说明
<逻辑卷路径>替换为创建逻辑卷时获取的路径。
<挂载目录>自定义
<挂载目录>,应为以/开头的路径,不可重复,目录需为空,否则会覆盖其下内容,导致原文件无法访问,可能影响业务。以将逻辑卷路径
/dev/vg_01/lv01挂载至新创建的/mnt/lv01为例,需执行sudo mkdir /mnt/lv01 && sudo mount /dev/vg_01/lv01 /mnt/lv01。检查文件系统是否挂载成功。
运行
sudo lsblk命令,若目标设备存在挂载目录(MOUNTPOINT)信息,表示文件系统挂载成功。重要当前为临时挂载,重启后失效。为使重启后数据仍可访问,建议配置开机自动挂载。
常见问题
如何添加新的物理卷至已有卷组?
安装工具时提示“404 Not Found”如何解决?
CentOS 6、Debian 9/10/11操作系统已结束生命周期,需要先切换Centos源地址或Debian 9/10/11源地址后再进行工具安装。
重启后使用sudo df -Th,没有逻辑卷的挂载信息怎么办?
问题原因:没有配置开机自动挂载。
问题处理:
为保证后续重启挂载信息不丢失,建议配置开机自动挂载。
创建逻辑卷时,提示“Volume group "vg01" has insufficient free space (23038 extents): 51200 required.”怎么办?
创建的逻辑卷大小需小于卷组剩余可用容量。
相关文档
若逻辑卷空间不足,可通过lvextend指令扩容逻辑卷。