LVM Disk Extending
将多块磁盘配置为 LVM 后合并为一整块分区.
Record
查看当前磁盘状态, nvme0n1
创建了一块 LVM 卷, 接下来要将 sda
扩展到 vgubuntu-root
上:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 63.5M 1 loop /snap/core20/1974
loop2 7:2 0 63.3M 1 loop /snap/core20/1828
loop3 7:3 0 349.7M 1 loop /snap/gnome-3-38-2004/143
loop4 7:4 0 349.7M 1 loop /snap/gnome-3-38-2004/140
loop5 7:5 0 73.9M 1 loop /snap/core22/817
loop6 7:6 0 49.9M 1 loop /snap/snapd/18357
loop7 7:7 0 46M 1 loop /snap/snap-store/638
loop8 7:8 0 12.3M 1 loop /snap/snap-store/959
loop9 7:9 0 53.3M 1 loop /snap/snapd/19457
loop10 7:10 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop11 7:11 0 485.5M 1 loop /snap/gnome-42-2204/120
sda 8:0 0 1.8T 0 disk
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 931.5G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
└─nvme0n1p2 259:2 0 931G 0 part
├─vgubuntu-root 253:0 0 930.1G 0 lvm /
└─vgubuntu-swap_1 253:1 0 976M 0 lvm [SWAP]
格式化 /dev/sda
为一块 LVM 卷:
$ sudo fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.34)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助): n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p): p
分区号 (1-4, 默认 1): 1
第一个扇区 (2048-3907029167, 默认 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3907029167, 默认 3907029167):
创建了一个新分区 1,类型为“Linux”,大小为 1.8 TiB。
分区 #1 包含一个 ntfs 签名。
您想移除该签名吗? 是[Y]/否[N]: Y
写入命令将移除该签名。
命令(输入 m 获取帮助): p
Disk /dev/sda:1.84 TiB,2000398934016 字节,3907029168 个扇区
Disk model: CT2000MX500SSD1
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x8f780ae0
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 2048 3907029167 3907027120 1.8T 83 Linux
Filesystem/RAID signature on partition 1 will be wiped.
命令(输入 m 获取帮助): t
已选择分区 1
Hex 代码(输入 L 列出所有代码): 8e
已将分区“Linux”的类型更改为“Linux LVM”。
命令(输入 m 获取帮助): w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
查看当前磁盘状况:
$ sudo fdisk -l
Disk /dev/loop0:4 KiB,4096 字节,8 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop1:63.46 MiB,66531328 字节,129944 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop2:63.29 MiB,66359296 字节,129608 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop3:349.71 MiB,366682112 字节,716176 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop4:349.71 MiB,366678016 字节,716168 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop5:73.88 MiB,77443072 字节,151256 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop6:49.86 MiB,52260864 字节,102072 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop7:45.95 MiB,48160768 字节,94064 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/nvme0n1:931.53 GiB,1000204886016 字节,1953525168 个扇区
Disk model: Samsung SSD 980 1TB
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):16384 字节 / 131072 字节
磁盘标签类型:gpt
磁盘标识符:46A0E5CD-961C-48E4-9C62-E3E15E31EDFB
设备 起点 末尾 扇区 大小 类型
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI 系统
/dev/nvme0n1p2 1050624 1953523711 1952473088 931G Linux LVM
Disk /dev/sda:1.84 TiB,2000398934016 字节,3907029168 个扇区
Disk model: CT2000MX500SSD1
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x8f780ae0
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 2048 3907029167 3907027120 1.8T 8e Linux LVM
Disk /dev/mapper/vgubuntu-root:930.6 GiB,998638616576 字节,1950466048 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):16384 字节 / 131072 字节
Disk /dev/mapper/vgubuntu-swap_1:976 MiB,1023410176 字节,1998848 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):16384 字节 / 131072 字节
Disk /dev/loop9:53.26 MiB,55844864 字节,109072 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop8:12.33 MiB,12922880 字节,25240 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop10:91.7 MiB,96141312 字节,187776 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop11:485.53 MiB,509100032 字节,994336 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
使用 pvcreate
创建 /dev/sda1
物理卷:
$ sudo pvcreate /dev/sda1
Physical volume "/dev/sda1" successfully created.
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/nvme0n1p2
VG Name vgubuntu
PV Size 931.01 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 238338
Free PE 0
Allocated PE 238338
PV UUID iXC7Sc-Ifeq-dSA4-601o-IFg4-YHFi-1fpxFl
"/dev/sda1" is a new physical volume of "<1.82 TiB"
--- NEW Physical volume ---
PV Name /dev/sda1
VG Name
PV Size <1.82 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID saAITP-FMN0-NsFe-9QzR-uVNm-mHCz-piSntC
使用 vgextend
将 /dev/sda1
放入 vgubuntu
卷组中:
$ sudo vgextend vgubuntu /dev/sda1
Volume group "vgubuntu" successfully extended
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/nvme0n1p2
VG Name vgubuntu
PV Size 931.01 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 238338
Free PE 0
Allocated PE 238338
PV UUID iXC7Sc-Ifeq-dSA4-601o-IFg4-YHFi-1fpxFl
--- Physical volume ---
PV Name /dev/sda1
VG Name vgubuntu
PV Size <1.82 TiB / not usable <4.09 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 476931
Free PE 476931
Allocated PE 0
PV UUID saAITP-FMN0-NsFe-9QzR-uVNm-mHCz-piSntC
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/vgubuntu/root
LV Name root
VG Name vgubuntu
LV UUID EuzaTo-BC1d-qz7c-U8iv-l2qK-NAIi-LZEBS6
LV Write Access read/write
LV Creation host, time ubuntu, 2023-07-11 20:49:31 +0800
LV Status available
# open 1
LV Size 930.05 GiB
Current LE 238094
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 512
Block device 253:0
--- Logical volume ---
LV Path /dev/vgubuntu/swap_1
LV Name swap_1
VG Name vgubuntu
LV UUID 8rnXEm-O2ON-iCnQ-G5uZ-SQNL-FDnW-76COpW
LV Write Access read/write
LV Creation host, time ubuntu, 2023-07-11 20:49:31 +0800
LV Status available
# open 2
LV Size 976.00 MiB
Current LE 244
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 512
Block device 253:1
使用 lvextend
将 /dev/vgubuntu/root
进行扩展:
$ sudo lvextend -l +100%FREE /dev/vgubuntu/root
Size of logical volume vgubuntu/root changed from 930.05 GiB (238094 extents) to <2.73 TiB (715025 extents).
Logical volume vgubuntu/root successfully resized.
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/vgubuntu/root
LV Name root
VG Name vgubuntu
LV UUID EuzaTo-BC1d-qz7c-U8iv-l2qK-NAIi-LZEBS6
LV Write Access read/write
LV Creation host, time ubuntu, 2023-07-11 20:49:31 +0800
LV Status available
# open 1
LV Size <2.73 TiB
Current LE 715025
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 512
Block device 253:0
--- Logical volume ---
LV Path /dev/vgubuntu/swap_1
LV Name swap_1
VG Name vgubuntu
LV UUID 8rnXEm-O2ON-iCnQ-G5uZ-SQNL-FDnW-76COpW
LV Write Access read/write
LV Creation host, time ubuntu, 2023-07-11 20:49:31 +0800
LV Status available
# open 2
LV Size 976.00 MiB
Current LE 244
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 512
Block device 253:1
最终 vgubuntu-root
被扩展为 2.7T:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 63.5M 1 loop /snap/core20/1974
loop2 7:2 0 63.3M 1 loop /snap/core20/1828
loop3 7:3 0 349.7M 1 loop /snap/gnome-3-38-2004/143
loop4 7:4 0 349.7M 1 loop /snap/gnome-3-38-2004/140
loop5 7:5 0 73.9M 1 loop /snap/core22/817
loop6 7:6 0 49.9M 1 loop /snap/snapd/18357
loop7 7:7 0 46M 1 loop /snap/snap-store/638
loop8 7:8 0 12.3M 1 loop /snap/snap-store/959
loop9 7:9 0 53.3M 1 loop /snap/snapd/19457
loop10 7:10 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop11 7:11 0 485.5M 1 loop /snap/gnome-42-2204/120
sda 8:0 0 1.8T 0 disk
└─sda1 8:1 0 1.8T 0 part
└─vgubuntu-root 253:0 0 2.7T 0 lvm /
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 931.5G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
└─nvme0n1p2 259:2 0 931G 0 part
├─vgubuntu-root 253:0 0 2.7T 0 lvm /
└─vgubuntu-swap_1 253:1 0 976M 0 lvm [SWAP]
重新定义文件系统大小:
$ sudo resize2fs /dev/vgubuntu/root
resize2fs 1.45.5 (07-Jan-2020)
/dev/vgubuntu/root 上的文件系统已被挂载于 /;需要进行在线调整大小
old_desc_blocks = 117, new_desc_blocks = 350
/dev/vgubuntu/root 上的文件系统大小已经调整为 732185600 个块(每块 4k)。
$ df -h
文件系统 容量 已用 可用 已用% 挂载点
udev 24G 0 24G 0% /dev
tmpfs 4.7G 2.6M 4.7G 1% /run
/dev/mapper/vgubuntu-root 2.7T 136G 2.5T 6% /
tmpfs 24G 611M 23G 3% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 24G 0 24G 0% /sys/fs/cgroup
/dev/loop0 128K 128K 0 100% /snap/bare/5
/dev/loop1 64M 64M 0 100% /snap/core20/1828
/dev/loop2 64M 64M 0 100% /snap/core20/1974
/dev/loop3 74M 74M 0 100% /snap/core22/817
/dev/loop4 350M 350M 0 100% /snap/gnome-3-38-2004/143
/dev/loop5 486M 486M 0 100% /snap/gnome-42-2204/120
/dev/loop6 350M 350M 0 100% /snap/gnome-3-38-2004/140
/dev/loop7 46M 46M 0 100% /snap/snap-store/638
/dev/loop8 50M 50M 0 100% /snap/snapd/18357
/dev/loop9 13M 13M 0 100% /snap/snap-store/959
/dev/loop11 54M 54M 0 100% /snap/snapd/19457
/dev/loop10 92M 92M 0 100% /snap/gtk-common-themes/1535
/dev/nvme0n1p1 511M 6.1M 505M 2% /boot/efi
tmpfs 4.7G 92K 4.7G 1% /run/user/1000
References
Linux下使用lvm将多块盘合并
Centos LVM磁盘合并方法
5.4. Logical Volume Administration
Extend LVM partition after resizing disk – Linux