逻辑卷管理器(LVM) 之 创扩缩秘籍

简介: 逻辑卷管理器(LVM) 之 创扩缩秘籍

何为 LVM

百度百科 - LVM

LVM是 Logical Volume Manager逻辑卷管理)的简写,它是 Linux 环境下对磁盘分区进行管理的一种机制

传统的磁盘分区(MBR、GPT)有很大的局限性,并且数据也无法跨磁盘存储,以及磁盘的大小也无法调整,LVM 的诞生解决了这个尴尬的场面

LVM 的好处在于服务器不关机的情况下,也可以对文件系统进行扩容,只需要将新磁盘创建成 PV 后,加入需要扩容的 VG 即可

LVM 的管理过程中,ext4 和 xfs 的逻辑卷容量更新命令不同,并且 xfs 文件系统不支持缩容

LVM 的管理流程:创建PV --> 创建 VG --> 创建 LV

文件系统

百度百科 - 文件系统

负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等

Linux 常见文件系统为 ext2ext3ext4xfs

文件系统 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个分区

如果有其他原理想要深入理解,可以参考下面这篇文章

MBR与GPT

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:指定卷组的元数据格式,可选参数 lvm2lvm1,默认 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:指定卷组的元数据格式,可选参数 lvm2lvm1,默认 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 空间给 LV
    • 100%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 管理就结束了
目录
相关文章
|
8天前
|
Unix
逻辑卷简介
逻辑卷简介。
26 2
|
8天前
LVM(逻辑卷管理器)
LVM(逻辑卷管理器)
|
8天前
LVM(逻辑卷管理器)
LVM(逻辑卷管理器)
|
6月前
Lvm 逻辑卷管理器1
Lvm 逻辑卷管理器1
28 0
|
6月前
Lvm管理器2
Lvm管理器2
22 0
|
9月前
|
5G 内存技术
LVM逻辑卷以及配置NFS服务相关实验
LVM逻辑卷以及配置NFS服务相关实验
|
存储 关系型数据库 MySQL
逻辑卷管理| 学习笔记
快速学习逻辑卷管理
247 0
逻辑卷管理| 学习笔记
|
Oracle 关系型数据库 开发工具