我最近将 VPS 的 HDD 空间从 80 > 160GB 升级,但除了在 fdisks 中查看之外,它没有显示任何更改。
root@localhost:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 794M 1.2M 793M 1% /run
/dev/mapper/vg00-lv01 77G 31G 43G 43% /
tmpfs 3.9G 16K 3.9G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 456M 145M 278M 35% /boot
tmpfs 794M 0 794M 0% /run/user/0
root@localhost:~# fdisk /dev/sda
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 160 GiB, 171798691840 bytes, 335544320 sectors
Disk model: Virtual disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x520f1760
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2 999424 335544286 334544863 159.5G 8e Linux LVM
我尝试使用 resize2fs 但我得到:
root@localhost:~# resize2fs /dev/mapper/vg00-lv01
resize2fs 1.45.5 (07-Jan-2020)
The filesystem is already 20345856 (4k) blocks long. Nothing to do!
我有一种感觉,我需要创建一个新分区才能做到这一点?
让事情更让我困惑的是 vgdisplay 显示没有可用空间:
root@localhost:~# vgdisplay vg00
--- Volume group ---
VG Name vg00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <79.52 GiB
PE Size 4.00 MiB
Total PE 20357
Alloc PE / Size 20357 / <79.52 GiB
Free PE / Size 0 / 0
VG UUID ZRC0sL-qOeU-Uyfp-Qbo4-m06c-CwEt-xpFTsO
答案1
当您为操作系统扩展磁盘时,您需要执行一些任务来为 lvm 扩展它:
如果您不想重新启动系统,则需要重新扫描磁盘以寻找新的大小,例如 /dev/sda:
echo 1 > /sys/block/sda/device/rescan
你会看到新的磁盘空间(160G)
接下来需要扩展分区,属于pv
分开 /dev/sda 2 调整大小部分 100%
之后,调整 pv 的大小:
pvresize /dev/sda2
只需调整 lv 和 fs 的大小:
lvextend -l+100%FREE -r /dev/mapper/vg00-lv01
注意:为 lvextend 标记“-r”:
-r|--resizefs
Resize underlying filesystem together with the LV using fsadm(8).
但是您可以自己调整底层文件系统的大小,具体取决于您的文件系统类型:
xfs: xfs_growfs /
ext: resize2fs /
答案2
您必须在虚拟机内部检查是否可以看到可用的新空间。
fdisk -l /dev/sda #or whatever your main device is
所以你会看到你的空间是否比原来的80G多,有时你需要停止你的VM并重新启动它,大多数时候重新启动可能足以让内核检测空间变化,但如果你不能尝试这些解决方案之一:
sfdisk -R /dev/sda
partx -a /dev/sda
kpartx -a /dev/sda
hdparm -z /dev/sda
blockdev --rereadpt /dev/sda
partprobe /dev/sda
从现在开始,您的设备上可能有一些可用空间,并且您有两种方法来利用它们,(1)您可以扩展原始分区,或者(2)您可以添加新分区。
扩展分区(1)
pvs #this will give you the used partitions here 2 for the example
parted /dev/sda resizepart 2 159GB
^disk ^cmd ^part# ^pos.last.sector
最后一个数字应该是所需的结束位置,以便您可以使用的最大尺寸。
要添加第二个分区(2),只需使用fdisk sfdisk gdisk
或类似,并在末尾添加一个分区,如果使用 GPT 分区表格式,请将其标记为 8e 或 8E00。然后将第二个分区添加到 LVM。
pvcreate /dev/sda3
vgextend vg00 /dev/sda3
从现在开始,您的卷组上可能会报告一些可用空间,或者vgs
, vgdisplay
您可以扩展卷。