文章目录

  • 何为 LVM
    • 文件系统
    • MBR 和 GPT
    • LVM 相关术语
    • LVM 写入模式
  • LVM 秘籍 之 创建
    • 查看磁盘
    • 创建 PV 物理卷
    • 创建 VG 卷组
      • 指定 PE 大小
    • 创建 LV 逻辑卷
      • 指定 LE 创建 LVM 逻辑卷
    • 使用 LV 逻辑卷
  • LVM 秘籍 之 扩容
    • VG 卷组扩容
    • LV 逻辑卷扩容
      • 文件系统容量更新
        • xfs 文件系统
        • ext4 文件系统
  • 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 大小,默认 4MBTotal 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/sdcVG NamePV Size               20.00 GiBAllocatable           NOPE Size               0Total PE              0Free PE               0Allocated PE          0PV 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/sdbVG NamePV Size               20.00 GiBAllocatable           NOPE Size               0Total PE              0Free PE               0Allocated PE          0PV 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   VFreecentos     1   2   0 wz--n- <99.00g     0data_bak   2   0   0 wz--n-  39.99g 39.99g    # 这个就是我们创建的 VG 卷组

vgdisplay

  --- Volume group ---VG Name               centos      # VG 名称System IDFormat                lvm2        # 卷组的元数据格式(`lvm2` 或者 `lvm1`)Metadata Areas        1Metadata Sequence No  3VG Access             read/write  # VG 权限VG Status             resizable   # VG 状态MAX LV                0Cur LV                2Open LV               2Max PV                0Cur PV                1Act PV                1VG Size               <99.00 GiB   # VG 容量PE Size               4.00 MiB     # PE 大小,不指定的情况下,默认4MBTotal PE              25343Alloc PE / Size       25343 / <99.00 GiBFree  PE / Size       0 / 0VG UUID               Z1h9Gu-7UmL-80jT-MqyZ-rU8p-ys6a-Eg6Mcu--- Volume group ---VG Name               data_bakSystem IDFormat                lvm2Metadata Areas        2Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                2Act PV                2VG Size               39.99 GiBPE Size               4.00 MiBTotal PE              10238Alloc PE / Size       0 / 0Free  PE / Size       10238 / 39.99 GiBVG 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_dataSystem IDFormat                lvm2Metadata Areas        1Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                1Act PV                1VG Size               19.98 GiBPE Size               16.00 MiB      # 指定的 PE 为 16MTotal PE              1279           # 最大 PE 数量Alloc PE / Size       0 / 0Free  PE / Size       1279 / 19.98 GiBVG 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  VFreedata_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 Convertroot        centos   -wi-ao---- <95.00gswap        centos   -wi-ao----   4.00glv_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_bakLV Name                lv_data_bakVG Name                data_bakLV UUID                d8QhEU-Z4F8-JOip-Orls-L7BB-4sod-0cP6F4LV Write Access        read/writeLV Creation host, time localhost.localdomain, 2022-03-12 22:03:46 +0800LV Status              available# open                 0LV Size                30.00 GiBCurrent LE             7680Segments               2Allocation             inheritRead ahead sectors     auto- currently set to     8192Block 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 MiBTotal PE              10238Free  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 MiBTotal PE              1279Free  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 GiBCurrent 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 GiBCurrent 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 MiBTotal PE              10238Free  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   VFreedata_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 Converttest_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 Converttest_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 Converttest_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 Converttest_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 管理就结束了

逻辑卷管理器(LVM) 之 创扩缩秘籍相关推荐

  1. 什么是逻辑卷管理器lvm?lvm设备的管理

    lvm逻辑卷管理 基础概念 lvm设备的建立 xfs文件系统下的lvm扩容(不支持缩容) 1. 当vg中的容量充足,lv的不够了 2. 当vg中的容量不足时,添加pv EXT4文件系统下的lvm扩容和 ...

  2. Linux就该这么学---第七章(LVM逻辑卷管理器)

    第七章节-LVM技术 逻辑卷管理器(LVM,Logical Volume Manager) 1.物理卷(PV,physical Volumn) 2.卷组(VG,Volume Group) 3.逻辑卷( ...

  3. linux系统中的分区与挂载,以及使用LVM逻辑卷管理器管理物理卷,卷组,逻辑卷知识点总结

    物理设备的命名规则 在Linux系统中一切都是文件,硬件设备也不例外.既然是文件,就必须有文件名称.系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大 ...

  4. linux设置逻辑卷进不了图形界面,LVM逻辑卷管理器图形界面操作

    LVM逻辑卷管理器图形界面操作 LVM有关概念 LVM(Logical Volume Manager)即逻辑卷管理器,它最先是在Linux 2.4内核中被集成到内核中去的,它的出现改变了传统的磁盘空间 ...

  5. 文件系统,磁盘配额,数据存储,lvm 逻辑卷管理器

    文件系统 文件系统包括:ext2 ext3 (比ext2多一个日志)ext4                 iso9660(光盘文件系统)                 vfat  (相当于win ...

  6. Linux 逻辑卷管理器(LVM)

    为什么要使用逻辑卷? 逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,为了解决硬盘设备在创建分区后不易修改分区大小的缺陷.尽管对传统的硬盘分区进行强制扩容或缩容从理论上讲是可行的.但是却 ...

  7. LVM(logical volume manager) 逻辑卷管理器

    LVM(logical volume manager) 逻辑卷管理器 其中主要分为这几个概念 1物理卷-简称PV 物理卷在逻辑卷管理器中属于最底层的,任何的逻辑卷和卷组都必需依靠物理卷来建立,物理卷可 ...

  8. RHEL磁盘阵列与LVM逻辑卷管理器

    磁盘阵列和逻辑管理器 本篇博客和各位聊聊关于linux系统中的相关磁盘阵列和逻辑管理器,都是涉及到硬件方面的操作.那我们为什么需要使用LVM以及配置RAID呢? 一般在公司中服务器需要保证数据的安全性 ...

  9. LVM逻辑卷管理器,部署逻辑卷,扩容逻辑卷,缩小逻辑卷,删除逻辑卷

    1.LVM逻辑卷管理器 硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID 磁盘阵列之后,再想修改硬盘分区大小就不容易了.换句话说,当用户想要随着 ...

  10. LVM(逻辑卷管理器)

    目录 一.常用的LVM部署命令 二.部署逻辑卷 1.让新添加的两块硬盘设备支持 LVM 技术. 2.把两块硬盘设备加入到storage卷组中,然后查看卷组的状态. 3.切割出一个约为150MB的逻辑卷 ...

最新文章

  1. [hadoop源码阅读][9]-mapreduce-概论
  2. python RSA 加密与签名
  3. python基础===两个list之间移动元素
  4. 二进制转换为八进制-栈方式实现
  5. php实战 案例教程,php实战案例
  6. 配置中文_星球大战:战机中队配置需求公布 支持中文
  7. c语言程序设计 函数说课,《C语言程序设计》之函数说课课件.ppt
  8. java epoch time_Java LocalDate ofEpochDay()用法及代码示例
  9. oracle 回滚空间查询,Oracle回滚段空间回收步骤
  10. 【Javascript】学习指南
  11. 第一个动态网页——留言板
  12. Excel转PDF,Excel行数过多导致PDF折行、换行显示
  13. SimpleDateFormat多线程天坑
  14. 将数据表的纵向数据横向显示
  15. mac搜不到Android模拟器,听不到声音Android模拟器Mac
  16. RabbitMQ学习笔记(四)-消息确认机制
  17. 以太网交换芯片及PHY处理相关
  18. 免费在线鉴别邮箱是不是国外客户(真实外国人)
  19. html前端 rem布局,完美兼容各手机端的尺寸,自适应布局
  20. sam卡、M1卡、PSAM卡、IC卡区别

热门文章

  1. 简要视音频发展编年史
  2. 书柜例子解释整理表空间碎片
  3. Retrofit教程
  4. 软件测试怎么学习 ?50本关于软件测试的书籍,拿走!
  5. matlab把向量转化为矩阵,MATLAB小函数:将列向量转化为0-1矩阵
  6. 模型参数与模型超参数
  7. 博客网站软件需求分析说明书-软件工程作业
  8. 搭建 Github Pages 个人博客网站
  9. 桌面支持--PLM软件必须右键用管理员账号打开
  10. unity3d培训_005