如何正確“擴展”一個 linux 設備映射器分區?
我缺少一些關於 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 具有以下層次結構:
- 文件系統
- 邏輯卷_ _ _
- 卷組_ _
- 物理體積**_** _
- (分區)
- 硬體
讓我們從下往上。
在底部你有硬體。大驚喜。最重要的是,您有 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 上找不到分區表(應該是這樣),所以它只顯示“循環”。