ECS云服务器多块云盘构建LVM逻辑卷完整教程与性能优化最佳实践详解指南
一、LVM简介
在Linux磁盘管理体系中,LVM(Logical Volume Manager)是绕不开的核心工具。它通过在物理硬盘和分区之间建立抽象逻辑层,实现分区尺寸的动态调整与弹性扩展。
这种架构的最大价值在于:无需停机即可在线调整逻辑卷容量,原有数据毫发无损。即使后续添加新磁盘,已上层的逻辑卷也完全不受影响。若需进一步提升云盘I/O吞吐能力,可将多块同容量云盘组建RAID0后再挂载至逻辑卷。
图1:LVM逻辑示意图(图片来源于互联网)
二、创建LVM卷
2.1步骤一 创建物理卷PV
下面演示如何用5块云盘通过LVM构建弹性可扩展逻辑卷,操作全流程如下。
root@lvs06:~# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda252:0040G0 disk└─vda1 252:1040G0 part /vdb252:16 0 1T0 diskvdc252:32 0 1T0 diskvdd252:48 0 1T0 diskvde252:64 0 1T0 diskvdf252:80 0 1T0 disk
step1:使用root账户登录云服务器
step2:执行以下命令为云盘创建PV物理卷
pvcreate <磁盘路径1> ... <磁盘路径N>
说明:磁盘路径对应云盘设备名称;如需添加多块,将设备名依次列出,用空格分隔。示例如下(目标设备为/dev/vdb~vdf):
root@lvs06:~# pvcreate/dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdfPhysical volume "/dev/vdb" successfully created.Physical volume "/dev/vdc" successfully created.Physical volume "/dev/vdd" successfully created.Physical volume "/dev/vde" successfully created.Physical volume "/dev/vdf" successfully created.
step3:使用lvmdiskscan命令查看服务器上的物理卷清单:
lvmdiskscan | grep LVM
返回结果如下:
root@lvs06:~# lvmdiskscan | grep LVM/dev/vdb[ 1.00 TiB] LVM physical volume/dev/vdc[ 1.00 TiB] LVM physical volume/dev/vdd[ 1.00 TiB] LVM physical volume/dev/vde[ 1.00 TiB] LVM physical volume/dev/vdf[ 1.00 TiB] LVM physical volume5 LVM physical volume whole disks0 LVM physical volumes
2.2步骤二 创建卷组(VG)
step1:执行vgcreate命令创建卷组
vgcreate <卷组名> <物理卷路径1>……<物理卷路径N>
执行示范:
root@lvs06:~# vgcreate lvm_01/dev/vdb/dev/vdc /dev/vdd /dev/vde /dev/vdfVolume group "lvm_01" successfully created
说明:
1.卷组名:可自定义命名
2.物理卷路径:填写已创建的PV设备路径,多个PV用空格分隔
3.输出"Volume group XXX successfully created"即为创建成功。
step2:向已有卷组添加新的物理卷
vgextend 卷组名称<物理卷路径1>……<物理卷路径N>
例如向卷组lvm_01中新增一块物理卷/dev/vdg:
root@lvs06:~# pvcreate /dev/vdgPhysical volume "/dev/vdg" successfully created.root@lvs06:~# vgextendlvm_01/dev/vdgVolume group "lvm_01" successfully extended
step3:卷组创建后可通过vgs、vgdisplay命令查看详细信息
root@lvs06:~# vgsVG #PV #LV #SN Attr VSizeVFreelvm_01 6 0 0 wz--n- <6.00t <6.00t
2.3步骤三 创建逻辑卷(LV)
step1:执行lvcreate命令创建逻辑卷
lvcreate [-L <逻辑卷大小>][ -n <逻辑卷名称>] <卷组名称>
参数说明:
1.逻辑卷大小:需小于卷组剩余可用空间,单位支持MB、GB、TB
2.逻辑卷名称:自定义命名
3.卷组名称:指定该逻辑卷所属的卷组
以下创建了一个4TB的逻辑卷(实际命令中为5T,示例保持一致):
root@lvs06:~# lvcreate -L 5T -n lv01 lvm_01Logical volume "lv01" created.
step2:使用lvdisplay查看逻辑卷的完整信息:
root@lvs06:~# lvdisplay--- Logical volume ---LV Path/dev/lvm_01/lv01LV Namelv01VG Namelvm_01LV UUIDsvB00x-l6Ke-ES6M-ctsE-9P6d-dVj2-o0h3KzLV Write Accessread/writeLV Creation host, time lvs06, 2019-06-06 15:27:19 0800LV Statusa vailable# open 0LV Size5.00 TiBCurrent LE 1310720Segments 6Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:0
2.4步骤四 创建并挂载文件系统
step1:在逻辑卷上创建文件系统
mkfs.文件系统格式逻辑卷路径
对上一节创建的lv01逻辑卷制作为ext4格式:
root@lvs06:~# mkfs.ext4/dev/lvm_01/lv01mke2fs 1.44.1 (24-Mar-2018)Creating filesystem with 1342177280 4k blocks and 167772160 inodesFilesystem UUID: 2529002f-9209-4b6a-9501-106c1145c77fSuperblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,102400000, 214990848, 512000000, 550731776, 644972544Allocating group tables: doneWriting inode tables: doneCreating journal (262144 blocks): doneWriting superblocks and filesystem accounting information:done
step2:挂载文件系统至指定挂载点
mount逻辑卷路径 挂载点
操作及确认结果:
root@lvs06:~# mount/dev/lvm_01/lv01/media/lv01root@lvs06:~# df -hFilesystem SizeUsed A vail Use% Mounted onudev12G 0 12G 0% /devtmpfs2.4G3.7M2.4G 1% /run/dev/vda1 40G3.6G 34G10% /tmpfs 12G 0 12G 0% /dev/shmtmpfs5.0M 05.0M 0% /run/locktmpfs 12G 0 12G 0% /sys/fs/cgrouptmpfs2.4G 02.4G 0% /run/user/0/dev/mapper/lvm_01-lv015.0T 89M4.8T 1% /media/lv01
三、进阶场景
3.1扩展逻辑卷以及系统容量
Step1:使用lvextend命令扩展逻辑卷容量
lvextend [-L /- <增减容量>] <逻辑卷路径>
参数说明:
1.增减容量:若卷组有余量即可扩容;扩容后需同步扩容文件系统才能生效
2.逻辑卷路径:指定需扩容的逻辑卷的完整路径
以下示例将/dev/lvm_01/lv01扩容500GB:
root@lvs06:~# lvextend -L 500GB /dev/lvm_01/lv01Size of logical volume lvm_01/lv01 changed from 5.00 TiB (1310720 extents) to <5.49 TiB (1438720 extents).Logical volume lvm_01/lv01 successfully resized.
step2:使用pvs命令查看物理卷使用情况
root@lvs06:~# pvsPV VG FmtAttr PSize PFree/dev/vdb lvm_01 lvm2 a--<1024.00g 0/dev/vdc lvm_01 lvm2 a--<1024.00g 0/dev/vdd lvm_01 lvm2 a--<1024.00g 0/dev/vde lvm_01 lvm2 a--<1024.00g 0/dev/vdf lvm_01 lvm2 a--<1024.00g 0/dev/vdg lvm_01 lvm2 a--<1024.00g <523.98g
step3:扩容文件系统(resize2fs)
resize2fs逻辑卷路径
执行及反馈:
root@lvs06:~# resize2fs/dev/lvm_01/lv01resize2fs 1.44.1 (24-Mar-2018)Filesystem at /dev/lvm_01/lv01 is mounted on /media/lv01; on-line resizing requiredold_desc_blocks = 640, new_desc_blocks = 703The filesystem on /dev/lvm_01/lv01 is now 1473249280 (4k) blocks long.
step4:使用df -h确认文件系统扩容结果
root@lvs06:~# df -hFilesystem SizeUsed A vail Use% Mounted onudev12G 0 12G 0% /devtmpfs2.4G3.7M2.4G 1% /run/dev/vda1 40G3.6G 34G10% /tmpfs 12G 0 12G 0% /dev/shmtmpfs5.0M 05.0M 0% /run/locktmpfs 12G 0 12G 0% /sys/fs/cgrouptmpfs2.4G 02.4G 0% /run/user/0/dev/mapper/lvm_01-lv015.5T 83M5.2T 1% /media/lv01
