何为 LVM
百度百科 - LVMLVM是
Logical Volume Manager
(逻辑卷管理
)的简写,它是Linux
环境下对磁盘分区
进行管理的一种机制传统的磁盘分区(MBR、GPT)有很大的局限性,并且数据也无法跨磁盘存储,以及磁盘的大小也无法调整,LVM 的诞生解决了这个尴尬的场面
LVM 的好处在于服务器不关机的情况下,也可以对文件系统进行扩容,只需要将新磁盘创建成 PV 后,加入需要扩容的 VG 即可
LVM 的管理过程中,ext4 和 xfs 的逻辑卷容量更新命令不同,并且 xfs 文件系统不支持缩容
LVM 的管理流程:创建PV --> 创建 VG --> 创建 LV
文件系统
负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等Linux 常见文件系统为
ext2
、ext3
、ext4
、xfs
文件系统 | EXT3 | EXT4 | XFS |
---|---|---|---|
文件系统最大容量 | 32TB | 1EB | 16EB |
单个文件最大容量 | 2TB | 16TB | 8EB |
最大文件数量 | 32000个子目录 | 无限制 | 无限制 |
代表系统 | centos5 | centos6 | centos7 |
扇区
- 将一个盘面划分为若干内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区
- 每个扇区中的数据作为一个单元同时读出或写入
- 硬盘的第一个扇区,叫做引导扇区
- 每个扇区可以存储512个字节
inode
记录文件的元数据
- 元数据:文件的
属性
,大小
,权限
,属主
,属组
,连接数
,块数量
,块的编号
- 元数据:文件的
- 一个文件占用一个 inode,同时记录此文件数据所在的 block numbber
inode 决定了文件系统中
文件的数量
- 所以空文件也会占用磁盘空间
- 当磁盘满了,实际存储数据并达不到磁盘空间最大值,可以使用
df -ih
命令查看 inode 使用情况 - 如果磁盘空间还有,但是无法创建文件,一般也是 inode 满了
block
存储文件的实际数据
- block 大小默认为 4K
- 文件越大,占用的 block 越多
- block 决定了
文件存储的空间
superblock
记录 inode 和 block 的使用情况
- 总量、使用量、剩余量等信息
i_count
- 当前文件被调用的次数(内存计数器)
当前文件被调用的进程终止时,i_count 为 0 ,此时删除的文件会释放 inode ,磁盘空间也会得到释放
- 所以很多情况下,磁盘实际占用空间不多,但是使用率却很高,是因为文件被调用的进程还没有被终止,文件已经被删除了
lsof | awk '/(deleted)/ {print $2}' | xargs kill -9
使用这个命令将被调用文件的进程杀死,来释放 inode ,以此来释放磁盘空间
i_link
- 当前文件硬链接的数量(磁盘引用计数器)
- rm 命令只能删除 i_link 数量,这也就是为什么当文件被删除的时候,磁盘空间仍然没有得到释放,是因为 i_count 没有被删除
MBR 和 GPT
MBR主引导记录
(Master Boot Record
)最大支持 2TB 磁盘空间
最大支持 4 个主分区,如果超过 4 个分区,则需要放弃一个主分区,将分区类型改为逻辑分区
GPT
全局唯一标识分区表
(GUIDPartition Table
)支持大于2T的硬盘
支持128个分区
如果有其他原理想要深入理解,可以参考下面这篇文章
LVM 相关术语
简称 | 全称 | 解释 |
---|---|---|
PV |
Physical Volume (物理卷 ) |
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。 |
VG |
Volume Group (卷组 ) |
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷 PV 组成。 可以在卷组上创建一个或多个 LV(逻辑卷)。 |
PE |
Physical Extent (物理块 ) |
PE 是物理卷PV的基本划分单元,具有唯一编号的 PE 是可以被LVM寻址的最小单元。 PE 的大小是可配置的,默认为 4MB。 |
LV |
Logical Volume (逻辑卷 ) |
类似于非 LVM 系统中的磁盘分区,逻辑卷建立在卷组 VG 之上。 在逻辑卷 LV 之上可以建立文件系统。 |
LE |
Logical Extent (逻辑块 ) |
逻辑卷LV也被划分为可被寻址的基本单位,称为LE。 在 同一个卷组 中,LE的大小和PE是相同的,并且一一对应。 |
LVM 写入模式
线性模式
- 先写完来自于同一个 PV 的 PE,再写来自于下一个 PV 的 PE。
- LVM 默认使用线性模式
条带模式
- 一份数据拆分成多份,分别写入该 LV 对应的每个 PV 中
- 读写性能较好,类似于RAID 0
- 条带模式的伸缩容会很麻烦,可能会影响数据,一般不建议使用条带模式
LVM 秘籍 之 创建
查看磁盘
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─centos-root 253:0 0 95G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sdf 8:80 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
disk
- 磁盘
part
- 分区(partition)
lvm
- 逻辑卷
rom
- 光驱
创建 PV 物理卷
磁盘处于挂载状态下,创建 PV 会有如下提示
Can't open /dev/sdb exclusively. Mounted filesystem?
磁盘不处于挂载状态,但是有文件系统的情况下,创建 PV 会有如下提示
WARNING: ext4 signature detected on /dev/sdb at offset 1080. Wipe it? [y/n]:
在创建 PV 的时候会擦除磁盘上已有的数据,所以在创建 PV 之前,一定要注意
是否存在数据
,数据无价
语法格式
单磁盘:
pvcreate /dev/sdb
多磁盘:
pvcreate /dev/sdb /dev/sdc
或者pvcreate /dev/{sdb,sdc}
(只是把指定的磁盘变成PV,并不是把这几个磁盘合成一个PV)常用参数
-f
:强制-M
:指定卷组的元数据格式,可选参数lvm2
、lvm1
,默认lvm2
-u
:指定 PV 的 UUID
pvcreate /dev/{sdb,sdc}
创建成功会有如下返回
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
查看 pv 物理卷
pvs
:显示有关物理卷的信息
pvdisplay
:显示物理卷的各种属性
pvs
看到的信息比较简单
- PV 的名称
- 绑定的vg卷组名称
- 卷组的元数据格式(
lvm2
或者lvm1
)- 卷组状态:(w)可写入;(r)只读;(z)可重新定义大小;(x)可导出;(p)部分;以及(c)集群
- PV 的大小
- PV 的可用容量
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sdb lvm2 --- 20.00g 20.00g # 这个就是我们创建的 PV 物理卷
/dev/sdc lvm2 --- 20.00g 20.00g # 这个就是我们创建的 PV 物理卷
pvdisplay
--- Physical volume ---
PV Name /dev/sda2 # PV 名称
VG Name centos # 绑定的 VG 名称
PV Size <99.00 GiB / not usable 3.00 MiB # PV 大小,可用容量
Allocatable yes (but full) # 是否可分配
PE Size 4.00 MiB # PE 大小,默认 4MB
Total PE 25343 # PE 总量(PV大小[单位MB]除以PE大小)
Free PE 0 # PE 可用容量
Allocated PE 25343 # 分配 PE 容量
PV UUID jNZEdd-Jr97-0Yi9-c7p3-W7ZP-ln3D-pgAcTG # PV UUID
"/dev/sdc" is a new physical volume of "20.00 GiB" # 新建的 PV ,通过 "/dev/sdc" 创建的
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID NAYE3B-XbBK-sTZL-JXPl-tdzm-zs61-IHjq2y
"/dev/sdb" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID AZpqZz-Cuqr-UdkZ-Ynam-B6VR-Pj7Q-svqROv
创建 VG 卷组
语法格式
vgcreate <vg_name> <pv_name>
常用参数
-l
:最大 LV 数量-p
:最大 PV 数量-M
:指定卷组的元数据格式,可选参数lvm2
、lvm1
,默认lvm2
-s
:指定 PE 大小将 /dev/sdb 和 /dev/sdc 两个 PV 分配给创建的 data_bak 名称的 VG 卷组
vgcreate data_bak /dev/{sdb,sdc}
创建成功会有如下返回
Volume group "data_bak" successfully created
查看 VG 卷组
vgs
:显示有关卷组的信息vgdisplay
:显示卷组信息
vgs
看到的信息比较简单
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <99.00g 0
data_bak 2 0 0 wz--n- 39.99g 39.99g # 这个就是我们创建的 VG 卷组
vgdisplay
--- Volume group ---
VG Name centos # VG 名称
System ID
Format lvm2 # 卷组的元数据格式(`lvm2` 或者 `lvm1`)
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write # VG 权限
VG Status resizable # VG 状态
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <99.00 GiB # VG 容量
PE Size 4.00 MiB # PE 大小,不指定的情况下,默认4MB
Total PE 25343
Alloc PE / Size 25343 / <99.00 GiB
Free PE / Size 0 / 0
VG UUID Z1h9Gu-7UmL-80jT-MqyZ-rU8p-ys6a-Eg6Mcu
--- Volume group ---
VG Name data_bak
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0
Free PE / Size 10238 / 39.99 GiB
VG UUID pOBYjn-WBiJ-SiD8-6eYD-9hiw-7qP5-vS12jS
指定 PE 大小
指定 PE 大小为 16M
vgcreate my_data /dev/sde -s 16M
查看指定 VG 卷组详细信息
vgdisplay my_data
--- Volume group ---
VG Name my_data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 19.98 GiB
PE Size 16.00 MiB # 指定的 PE 为 16M
Total PE 1279 # 最大 PE 数量
Alloc PE / Size 0 / 0
Free PE / Size 1279 / 19.98 GiB
VG UUID HjYMc2-h3yW-OPi3-YchD-VHV2-bVHD-wylK0E
创建 LV 逻辑卷
语法格式
lvcreate -L <lv_size> -n <lv_name> <vg_name>
常用参数
-l
: 指定 LE 大小
-L
:指定 LV 大小
20G
:分配指定 VG 内的 20G 空间给 LV100%FREE
:分配指定 VG 内的 100% 空闲空间给 LV-n
:指定 LV 名称查看 VG 可用空间
vgs data_bak
VFree
表示 VG 可用空间为 39.99G如果超过 VG 可用空间,则会范围类似如下的输出
Volume group "data_bak" has insufficient free space (10238 extents): 10240 required.
VG #PV #LV #SN Attr VSize VFree
data_bak 2 0 0 wz--n- 39.99g 39.99g
使用 data_bak 这个 VG 卷组,创建一个大小为 30G 的 LV 逻辑卷,命名为 lv_data_bak
lvcreate -L 30G -n lv_data_bak data_bak
查看 LV 逻辑卷
lvs
:显示有关逻辑卷信息lvdisplay
:显示逻辑卷信息
lvs
看到的内容比较少
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <95.00g
swap centos -wi-ao---- 4.00g
lv_data_bak data_bak -wi-a----- 30.00g # 这个就是我们创建的 LV 逻辑卷
lvdisplay /dev/data_bak/lv_data_bak
VG 卷组创建完成后,是被存放在
/dev
目录下的,因此lvdisplay
想要查看指定 LV 逻辑卷的时候,就要指定到路径查看
--- Logical volume ---
LV Path /dev/data_bak/lv_data_bak
LV Name lv_data_bak
VG Name data_bak
LV UUID d8QhEU-Z4F8-JOip-Orls-L7BB-4sod-0cP6F4
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2022-03-12 22:03:46 +0800
LV Status available
# open 0
LV Size 30.00 GiB
Current LE 7680
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
指定 LE 创建 LVM 逻辑卷
这种方法创建 LV 逻辑卷会比较麻烦,具体什么用途,其实我也不知道,PE 和 LE 这方面的资料太少了,一直没找到好的资料,基于尝试,发现:
- 指定 LE 的数量创建的 LV 逻辑卷大小是受到了 VG 卷组的 PE 大小影响
- VG 卷组的大小受到到 PE 大小的影响,PE 越大, VG 卷组可用空间就会越少,PE 越小,VG 卷组可用空间就越多
- PE 和 LE 在我个人理解来看,是为了更加细化 LV 逻辑卷在 VG 卷组中的配置
查看
data_bak
卷组
vgdisplay data_bak | egrep 'PE Size|Total PE|Free PE'
我们可以看到
- 一个 PE 的大小是 4M
- 总共有 10238 个 PE
- 可以 PE 有 1558 个
PE Size 4.00 MiB
Total PE 10238
Free PE / Size 1558 / <6.09 GiB
查看
my_data
卷组
vgdisplay my_data | egrep 'PE Size|Total PE|Free PE'
我们可以看到
- 一个 PE 的大小是 16M
- 总共有 1279 个 PE
- 可以 PE 有 1279 个
PE Size 16.00 MiB
Total PE 1279
Free PE / Size 1279 / 19.98 GiB
从
data_bak
卷组中创建 1000 个 LE 大小的 LV 逻辑卷
lvcreate -l 1000 -n test_le_data_bak data_bak
查看一下
test_le_data_bak
这个 LV 逻辑卷的大小
lvdisplay /dev/data_bak/test_le_data_bak | egrep 'LV Size|Current LE'
我们可以看到
- LV 逻辑卷的大小是 3.91G
- LE 的数量是 1000 个
当我们用
LE数量 * PE大小 / 1024
来计算 LV 逻辑的大小,带入进来就是:
1000 * 4M / 1024 = 3.90625G
和 LV Size 也是对应的,因为保留两位小数,所以显示小于 3.91GB
LV Size <3.91 GiB
Current LE 1000
我们以同样的方式去验证
my_data
卷组
lvcreate -l 200 -n test_le_my_data my_data
查看一下
test_le_my_data
这个 LV 逻辑卷的大小
lvdisplay /dev/my_data/test_le_my_data | egrep 'LV Size|Current LE'
我们可以看到
- LV 逻辑卷的大小是 3.12G
- LE 的数量是 200 个
当我们用
LE数量 * PE大小 / 1024
来计算 LV 逻辑的大小,带入进来就是:
200 * 16M / 1024 = 3.125G
和 LV Size 也是对应的,因为保留两位小数,所以显示 3.12 GB
LV Size 3.12 GiB
Current LE 200
使用 LV 逻辑卷
无论是 LVM 还是裸盘,想要被使用就必须先创建文件系统,我们做如下规划
test_le_data_bak
这个 LV 逻辑卷使用xfs 文件系统
test_le_my_data
这个 LV 逻辑卷使用ext4 文件系统
mkfs.xfs /dev/data_bak/test_le_data_bak
mkfs.ext4 /dev/my_data/test_le_my_data
创建目录挂载并验证
mkdir /le_ext4 /le_xf
mount /dev/data_bak/test_le_data_bak /le_xfs/
mount /dev/my_data/test_le_my_data /le_ext4/
df -Th | grep le_
可以看到已经挂载成功了用 LVM 的方式管理磁盘,并写入 fstab 文件完成开机自启会方便很多,否则需要写磁盘的 UUID 才可以,如果直接写 /dev/sdb 这种方式,会导致 fstab 异常,重启后进入不了系统的情况
/dev/mapper/my_data-test_le_my_data ext4 3.1G 9.4M 2.9G 1% /le_ext4
/dev/mapper/data_bak-test_le_data_bak xfs 3.9G 33M 3.9G 1% /le_xfs
LVM 秘籍 之 扩容
LV 逻辑卷扩容的方式其实都是一样的,但是在刷新 LV 逻辑卷容量的时候,xfs 文件系统和 ext4 文件系统所使用的命令是不同的
VG 卷组扩容
查看
data_bak
卷组
vgdisplay data_bak | egrep 'PE Size|Total PE|Free PE'
咱现在只有 6G 可以用了,但是我 LV 逻辑卷需要 10G,这个时候就要扩容 VG 卷组了
PE Size 4.00 MiB
Total PE 10238
Free PE / Size 1558 / <6.09 GiB
pvs
命令 查看 PV 物理卷的使用情况咱总共 4 块 20G 的磁盘,一开始,都已经做成了 PV 物理卷,现在还有一块
/dev/sdf
物理卷是空闲的,咱将这块物理卷扩容给 data_bak 这个 VG 卷组
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sdb data_bak lvm2 a-- <20.00g 0
/dev/sdc data_bak lvm2 a-- <20.00g <6.09g
/dev/sde my_data lvm2 a-- 19.98g <16.86g
/dev/sdf lvm2 --- 20.00g 20.00g
语法格式
vgextend <vg_name> <pv_name>
vgextend data_bak /dev/sdf
扩容成功会有如下的返回
Volume group "data_bak" successfully extended
查看
data_bak
卷组容量
vgs data_bak
可以看到,20G 已经扩容进去了
VG #PV #LV #SN Attr VSize VFree
data_bak 3 2 0 wz--n- <59.99g 26.08g
LV 逻辑卷扩容
语法格式
lvextend -L <size> <lv_name>
LV 逻辑卷扩容只能从 LV 逻辑卷所在的 VG 卷组里面获取容量
给
test_le_data_bak
LV 逻辑卷扩容
lvextend -L +16G /dev/data_bak/test_le_data_bak
查看
test_le_data_bak
LV 逻辑卷大小
lvs /dev/data_bak/test_le_data_bak
咱们之前是 3.91G,扩容了 16G之后,现在是 19.91G
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
test_le_data_bak data_bak -wi-ao---- <19.91g
给
test_le_my_data
LV 逻辑卷扩容
lvextend -L +10G /dev/my_data/test_le_my_data
查看
test_le_my_data
LV 逻辑卷大小
lvs /dev/my_data/test_le_my_data
咱们之前是 3.12G,扩容了 10G之后,现在是 13.12G
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
test_le_my_data my_data -wi-ao---- 13.12g
文件系统容量更新
虽然通过lvs
命令看到 LV 逻辑卷的容量已经增加,但是当我们使用df -Th
命令查看的时候,实际的容量并没有得到更新,这时候需要使用命令来更新,需要区别对待 xfs 文件系统和 ext4 文件系统
xfs 文件系统
咱们 xfs 文件系统的 LV 逻辑卷是
/dev/data_bak/test_le_data_bak
xfs_growfs /dev/data_bak/test_le_data_bak
查看磁盘容量是否刷新
df -Th | grep data_bak
可以看到,可用空间变成 20G 了
/dev/mapper/data_bak-test_le_data_bak xfs 20G 34M 20G 1% /le_xfs
ext4 文件系统
咱们 ext4 文件系统的 LV 逻辑卷是
/dev/my_data/test_le_my_data
resize2fs /dev/my_data/test_le_my_data
查看磁盘容量是否刷新
df -Th | grep my_data
可以看到,可用空间变成 13G 了
/dev/mapper/my_data-test_le_my_data ext4 13G 16M 13G 1% /le_ext4
LVM 秘籍 之 缩容
数据无价,缩容还是会有一定的风险存在,一定要慎重,做好数据的备份先造一些文件,缩容的时候可以简单验证
for i in $(seq 1 10);do mkdir /le_ext4/test_$i;echo "this is no.$i" > /le_ext4/test_$i/test.log;done
查看文件内容
for i in $(seq 1 10);do cat /le_ext4/test_$i/test.log;done
预期输出如下结果
this is no.1
this is no.2
this is no.3
this is no.4
this is no.5
this is no.6
this is no.7
this is no.8
this is no.9
this is no.10
缩容之前,需要先取消挂载,可以检查文件是否被进程调用
umount /dev/mapper/my_data-test_le_my_data
检查磁盘情况
e2fsck -f /dev/my_data/test_le_my_data
可以看到磁盘没有异常
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/my_data/test_le_my_data: 31/860160 files (0.0% non-contiguous), 74390/3440640 blocks
文件系统容量更新,注意,一定要先更新文件系统的容量,否则直接缩容,就会造成 LV 逻辑卷损坏(不信你试试,我试了,很惨)
resize2fs /dev/my_data/test_le_my_data 10G
重新设定 LV 逻辑卷大小语法格式
lvresize -L +/-<lv_size> <lv_name>
没有加减符号,表示指定 LV 逻辑卷的容量大小,加号表示扩容多少容量,减号表示缩减多少容量
要和文件系统更新的容量一致
lvresize -L 10G /dev/my_data/test_le_my_data
查看
test_le_my_data
LV 逻辑卷大小
lvs /dev/my_data/test_le_my_data
咱们之前是 13.12G,缩容了 3G之后,现在是 10.12G
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
test_le_my_data my_data -wi-a----- 10.12g
重新挂载 LV 逻辑卷
mount /dev/my_data/test_le_my_data /le_ext4/
查看文件系统容量
df -Th | grep my_data
可以看到,容量被缩减到 9.8G了
/dev/mapper/my_data-test_le_my_data ext4 9.8G 37M 9.2G 1% /le_ext4
再次查看文件内容
for i in $(seq 1 10);do cat /le_ext4/test_$i/test.log;done
重新设定 LV 逻辑卷大小语法格式
lvresize -L +/-<lv_size> <lv_name>
没有加减符号,表示指定 LV 逻辑卷的容量大小,加号表示扩容多少容量,减号表示缩减多少容量
要和文件系统更新的容量一致
lvresize -L 10G /dev/my_data/test_le_my_data
查看
test_le_my_data
LV 逻辑卷大小
lvs /dev/my_data/test_le_my_data
咱们之前是 13.12G,缩容了 3G之后,现在是 10.12G
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
test_le_my_data my_data -wi-a----- 10.12g
重新挂载 LV 逻辑卷
mount /dev/my_data/test_le_my_data /le_ext4/
查看文件系统容量
df -Th | grep my_data
可以看到,容量被缩减到 9.8G了
/dev/mapper/my_data-test_le_my_data ext4 9.8G 37M 9.2G 1% /le_ext4
再次查看文件内容
for i in $(seq 1 10);do cat /le_ext4/test_$i/test.log;done
到此,简单的 LVM 管理就结束了