我们有一个托管我们的 docker 的虚拟机,但目前空间不足,我已经尝试了网上的所有方法,但还没有解决任何问题,它太满了,我什至无法运行yum autremove
系统类型是 XFS,我正在尝试解决此问题,而无需删除分区并创建另一个分区。如果我无法弄清楚,我的最后一个解决方案是从以前的虚拟机版本恢复映像。
如果我在描述这个问题和术语方面缺乏知识,我深表歉意,感谢任何帮助。
df -h
显示如下
Filesystem Size Used Avail Use% Mounted on
devtmpfs 24G 0 24G 0% /dev
tmpfs 24G 0 24G 0% /dev/shm
tmpfs 24G 18M 24G 1% /run
tmpfs 24G 0 24G 0% /sys/fs/cgroup
/dev/mapper/centos-root 39G 39G 20K 100% /
/dev/sda1 1014M 197M 818M 20% /boot
/dev/sdb1 4.0T 275G 3.5T 8% /data/prom_tsdb
/dev/mapper/centos-home 19G 33M 19G 1% /home
tmpfs 4.8G 0 4.8G 0% /run/user/0
ls -la
来自 /dev/mapper
total 0
drwxr-xr-x 2 root root 120 Feb 27 17:10 .
drwxr-xr-x 20 root root 3280 Feb 27 17:10 ..
lrwxrwxrwx 1 root root 7 Feb 27 17:10 centos-home -> ../dm-2
lrwxrwxrwx 1 root root 7 Feb 27 17:10 centos-root -> ../dm-0
lrwxrwxrwx 1 root root 7 Feb 27 17:10 centos-swap -> ../dm-1
crw------- 1 root root 10, 236 Feb 27 17:10 control
lsblk -f
输出这个
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 8f8242f9-7c24-4b84-a63e-bdf525dc1050 /boot
├─sda2 LVM2_member RoHLXd-Co1E-4UZ5-TeTD-JXx0-ySlG-hPjR7m
│ ├─centos-root xfs 1329ba02-4819-43a6-b98c-64af4881b353 /
│ ├─centos-swap swap f9dfdb0b-1f24-45a9-939b-2ee49ace1461 [SWAP]
│ └─centos-home xfs 33f236ac-07aa-4552-916c-1eb34d273fab /home
└─sda3
sdb
└─sdb1 ext4 c897a887-7bdc-4ba8-b134-f76a3e96efc4 /data/prom_tsdb
sr0 iso9660 CentOS 7 x86_64 2020-11-02-15-15-23-00
答案1
看起来可能/dev/sda3
没用过。如果它实际上未使用并且足够大,可以使用,则可以将其添加到centos
LVM 卷组(简称 VG)中,然后使用其容量来扩展/dev/mapper/centos-root
.此外,如果sda3
由于某种原因不可重用,但磁盘上有未分区的空间/dev/sda
,那么现在是通过从未分区的空间创建新分区来使用它的好时机。
要验证,请使用lsblk
不带该-f
选项的选项,或fdisk -l /dev/sda
。
您可能必须先清理一点空间,以便 LVM 工具在每次操作之前成功进行 LVM 配置备份。在许多情况下,yum clean all
通过清理包管理缓存可以很好地做到这一点。
yum clean all
pvcreate /dev/sda3
vgextend centos /dev/sda3
lvextend -r -L <new size> /dev/mapper/centos-root
/dev/mapper/centos-root
所有这些都可以在安装和使用时完成。无需重新启动。
如果/dev/sda3
不够大并且sda
磁盘已完全分配(检查fdisk -l /dev/sda
是否lsblk
有该-f
选项),那么您可能需要扩展sda
虚拟磁盘。如何执行此操作取决于您使用的虚拟化主机。但完成此操作后,使用新容量还需要执行一些步骤。
首先,安装该cloud-utils-growpart
软件包,因为growpart
其中的命令使扩展分区虚拟磁盘变得非常容易。
sda
使用lsblk
或验证虚拟机的操作系统是否可以识别新增加的虚拟磁盘大小fdisk -l
。如果没有,请运行echo 1 > /sys/block/sda/device/rescan
并再次检查。
现在您可以扩展sda3
以覆盖增加的空间:
growpart /dev/sda 3
(或者如果sda3
被其他东西使用,则用于fdisk
创建一个新分区sda4
。验证是否lsblk
可以看到它;如果没有,则用于partprobe /dev/sda
重新扫描。)
如果您已经添加sda3
到centos
卷组,请使用pvresize /dev/sda3
让 LVM 知道分区的较大大小,然后lvextend
将容量添加到文件系统,与上面相同。