如何正确“扩展”Linux 设备映射器分区?

Sum*_*min 8 device-mapper

我在 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
Run Code Online (Sandbox Code Playgroud)

我查看物理卷:

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
Run Code Online (Sandbox Code Playgroud)

这加起来是 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
Run Code Online (Sandbox Code Playgroud)

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

Number  Start   End     Size    File system  Name     Flags
        111GB   299GB   188GB   Free Space
Run Code Online (Sandbox Code Playgroud)

在 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
Run Code Online (Sandbox Code Playgroud)

我应该如何进行扩展?顺序是什么(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
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢。

mzh*_*ase 16

如何扩展 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
Run Code Online (Sandbox Code Playgroud)

LVM 的解释

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

  1. 文件系统
  2. 大号ogical V olumes
  3. V olume ģ roups
  4. P物质环境的V olumes
  5. (分区)
  6. 硬件

让我们从下往上。

在底部你有硬件。大惊喜。最重要的是你有PV。现在这就是令人困惑的地方。您可以将 PV 作为驱动器本身或分区。LVM 不需要分区。您可以将原始块设备添加为 PV。但是,许多人无论如何都会创建分区。这件事情是由很多原因导致的。例如,与需要分区的工具或人员的向后兼容性。如果系统管理员不知道布局并看到一个“空”磁盘,他可能会认为该磁盘是空的,尽管它是一个 PV!这就是您有时将分区用作 PV 的原因。

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

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

在 VG 之上,您还有 LV。这就是您实际将文件系统置于其之上的内容。您可以将 LV 视为一种分区。你可以在这里找到它们:

/dev/VGName/LVname
Run Code Online (Sandbox Code Playgroud)

所以一个 LV 总是属于一个 VG,但每个 VG 可以有多个 LV。

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

为什么循环

环路难题:没有环路设备!Parted 在 LVM 上找不到分区表(应该是这样),所以它只显示“循环”。