如何扩展 LVM

如何扩展 LVM

我缺少一些有关 Linux 磁盘管理的概念,我在单个物理卷上有一些可用空间,我想用它来扩展 ext4 文件系统,这是一个逻辑卷。

我查看了 fdisk -l - 它是一个 GPT(警告)

Disk /dev/sda: 299.4 GB, 299439751168 bytes
255 heads, 63 sectors/track, 36404 cylinders, total 584843264 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1   584843263   292421631+  ee  GPT

我查看了物理卷:

root@node-29:/home# pvs
  PV         VG      Fmt  Attr PSize  PFree
  /dev/sda4  os      lvm2 a--  62.00g 4.00m
  /dev/sda5  logs    lvm2 a--  10.00g 4.00m
  /dev/sda6  mysql   lvm2 a--  20.00g 4.00m
  /dev/sda7  narcine lvm2 a--  11.00g 4.00m

这加起来有 93GB,是一个交换分区和一些其他分区,但我有很多可用空间

我查看了 parted,因为它们是 GPT 分区 - 我想查看可用的空间:

root@node-29:/home# parted /dev/sda print free
Model: DELL PERC H710 (scsi)
Disk /dev/sda: 299GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
        17.4kB  1049kB  1031kB  Free Space
 1      1049kB  26.2MB  25.2MB               primary  bios_grub
        26.2MB  27.3MB  1049kB  Free Space
 2      27.3MB  237MB   210MB                primary
        237MB   238MB   1049kB  Free Space
 3      238MB   448MB   210MB   ext2         primary
        448MB   449MB   1049kB  Free Space
 4      449MB   67.1GB  66.6GB               primary
        67.1GB  67.1GB  1049kB  Free Space
 5      67.1GB  77.9GB  10.8GB               primary
        77.9GB  77.9GB  1049kB  Free Space
 6      77.9GB  99.4GB  21.5GB               primary
        99.4GB  99.4GB  1049kB  Free Space
 7      99.4GB  111GB   11.9GB               primary
        111GB   111GB   1049kB  Free Space
 8      111GB   111GB   21.0MB  ext2         primary
        111GB   299GB   188GB   Free Space

所有卷上都有一点可用空间,但最后一行有我想要的空间

Number  Start   End     Size    File system  Name     Flags
        111GB   299GB   188GB   Free Space

在 LVM 中,我看到设备位于 /dev/mapper 中,我查看 dmsetup

root@node-29:/home# dmsetup info
Name:              narcine-nartemp
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      252, 0
Number of targets: 1
UUID: LVM-eDmr02vsptbjvAdvX9c7VZGuI3drAkuMqYAIwCAy6EEZ2GTAopLlD96o6CmOtszP

Name:              os-swap
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        2
Event number:      0
Major, minor:      252, 4
Number of targets: 1
UUID: LVM-hMIdqpNc1W6paxT044lNpBcPUfWGA2kESL4f6dB9OJu14mKzLvnOzKMeNM6zV4SK

Name:              os-root
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      252, 3
Number of targets: 1
UUID: LVM-hMIdqpNc1W6paxT044lNpBcPUfWGA2kEcIBDlsTce6uqieEfh6ehzYfLxJwaIoEe

Name:              mysql-root
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      252, 1
Number of targets: 1
UUID: LVM-rYCHA1YXEPa6jDTS8NIHRvTXllf7jeNhT5d7pulT4efAq4TMll6ndWVuyiDYgGbs

Name:              logs-log
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      252, 2
Number of targets: 1
UUID: LVM-npxUm7C9dQX7fIrLeAGyfJxrDWKzmb9rVfJS8FEspobIPK8bnuOnDzLNdQtsY4jE

我应该如何进行扩展?顺序是什么(parted、lvm、dmsetup?)- parted 告诉我设备分区是循环的 - 这是什么意思?

Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/os-root: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  53.7GB  53.7GB  ext4


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/os-swap: 12.9GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system     Flags
 1      0.00B  12.9GB  12.9GB  linux-swap(v1)


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/logs-log: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  10.7GB  10.7GB  ext4


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/mysql-root: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  21.5GB  21.5GB  ext4


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/narcine-nartmp: 11.8GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  11.8GB  11.8GB  xfs

我希望pvsan -vv显示 /dev/sda 上的免费 PEfree - 为什么不显示呢?

让我困惑的是,这个命令dmcreate看起来像这样,没有必要创建“传统”分区 - 这是正确的吗?

谢谢。

答案1

如何扩展 LVM

cfdisk /dev/sda                        # create new partition, using all free space
pvcreate /dev/sdaX                     # initialize partition for use with LVM
vgdisplay                              # to find VG name
vgextend /dev/vgname /dev/sdaX         # this extends the volume group
lvextend -l +100%FREE /dev/vgname/root # this extends the LVM
resize2fs /dev/vgname/root             # this extends the filesystem

LVM 解释

LVM 不关心分区。LVM 具有以下层次结构:

  1. 文件系统
  2. 大号逻辑的体积
  3. 音量G团体
  4. 物理的体积
  5. (分区)
  6. 硬件

我们从下往上来。

最底层是硬件。大惊喜。最上面是 PV。现在这里变得令人困惑。你可以让 PV 成为驱动器本身或分区。LVM 不需要分区。您可以将原始块设备添加为 PV。但是,许多人还是会创建分区。这样做有很多原因。例如,与需要分区的工具或人员的向后兼容性。如果系统管理员不知道布局并看到“空”磁盘,他可能会认为磁盘是空的,尽管它是一个 PV!所以这就是您有时将分区用作 PV 的原因。

这就是您在示例中看到的,显然,无论是谁设置了服务器,都为每个 VG 创建了一个分区。

接下来是卷组。VG 是一个或多个 PV。这是保存后续所有内容的容器。由于 PV 可以是磁盘、来自 RAID 控制器的虚拟磁盘、分区等,因此 VG 可以跨越任意数量的这些内容。

在 VG 之上,您有 LV。这实际上是将文件系统放在其之上。您可以将 LV 视为分区。您可以在此处找到它们:

/dev/VGName/LVname

因此,一个 LV 始终属于一个 VG,但每个 VG 可以拥有多个 LV。

最后,将文件系统放置在 LV 之上。

为什么循环

循环难题:没有循环设备!Parted 无法在 LVM 上找到分区表(应该可以找到),因此它只显示“循环”。

答案2

添加一些额外的解决方案:

扩展物理卷

如果您只想扩展 LVM,则可以按照 mzhaase 的回答并跳过前两个命令(cfdiskpvcreate)。但是,如果您还必须扩展物理卷,我会使用以下步骤:

partprobe /dev/sda
pvresize /dev/sda3
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

在动态扩展磁盘上扩展 LVM

对于动态扩展磁盘(至少在 Hyper-V 上),我发现此脚本运行良好:

growpart /dev/sda 3
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

相关内容