Device-Mapper

如何正確“擴展”一個 linux 設備映射器分區?

  • October 26, 2016

我缺少一些關於 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,這是一個交換分區和其他幾個,但是,我有很多可用空間

我看著分開,因為它們是 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它看起來像這樣的命令,不需要創建“傳統”分區 - 對嗎?

謝謝。

如何擴展 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. 組_ _
  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 上找不到分區表(應該是這樣),所以它只顯示“循環”。

引用自:https://serverfault.com/questions/810221