我的公司正在使用 CentOS 运行云托管。过去,当SSD达到最大容量时,他们会升级它。
据我了解,他们是通过创建主分区并将其安装在 / 上来完成的。所以我们最终在 sda 上有 4 个主分区。
现在我再次将空间从 300GB 升级到 400GB,我需要分配这 100 GB 的额外空间。
添加这 100GB 时我能做的最好的事情是什么?
我收集的一些信息:
分开 /dev/sda > 打印:
Numero Inicio Fin Tamaño Typo Sistema de ficheros Banderas
1 1049kB 525MB 524MB primary xfs arranque
2 525MB 85,9GB 85,4GB primary lvm
3 85,9GB 129GB 42,9GB primary lvm
4 129GB 322GB 193GB primary lvm
fdisk /dev/sda > p:
Disk /dev/sda: 429.5 GB, 429496729600 bytes, 838860800 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 label type: dos
Identificador del disco: 0x000a2b1e
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 167772159 83373056 8e Linux LVM
/dev/sda3 167772160 251658239 41943040 8e Linux LVM
/dev/sda4 251658240 629145599 188743680 8e Linux LVM
df -h:
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/mapper/centos-root 298G 290G 8,4G 98% /
devtmpfs 7,8G 0 7,8G 0% /dev
tmpfs 7,8G 0 7,8G 0% /dev/shm
tmpfs 7,8G 12M 7,8G 1% /run
tmpfs 7,8G 0 7,8G 0% /sys/fs/cgroup
/dev/sda1 497M 187M 311M 38% /boot
tmpfs 1,6G 0 1,6G 0% /run/user/0
lsblk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 300G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 79,5G 0 part
│ ├─centos-swap 253:0 0 2G 0 lvm [SWAP]
│ └─centos-root 253:1 0 297,5G 0 lvm /
├─sda3 8:3 0 40G 0 part
│ └─centos-root 253:1 0 297,5G 0 lvm /
└─sda4 8:4 0 180G 0 part
└─centos-root 253:1 0 297,5G 0 lvm /
sr0 11:0 1 1024M 0 rom
答案1
与此问题上看到的评论相反,由于您的分区表是Disk label type: dos
,而不是Disk label type: gpt
,因此如果不首先删除物理分区以使其充当逻辑分区容器,则不可能添加逻辑分区,因为MBR 中只有 4 个物理分区插槽。在不丢失/损坏现有数据的情况下执行此操作并非易事,因为逻辑分区的布局与物理分区的布局并不完全一致:最好不要。
xfs
您可以在正在运行的系统上(至少如果使用:CentOS 的默认系统,或者可能是其他几个文件系统)做以前可以做的事情(例如,在第一个 LVM 分区上,而不是添加新的分区),ext4
无需重新启动或停机。
有备份。总有可能出错(打字错误......)。
扩大磁盘分区
有扩展空间的分区是最后一个(因为它的块至少在这里,也占据磁盘上的最后一个位置)。这是我的答案中最棘手的部分:使用
fdisk
,注意分区 4 的开头,以及删除4.注意这个操作完成只存在于记忆中现在。重新创建一个“新”主分区 4(如上所述,不要尝试任何逻辑分区),重新使用相同的分区开始:这应该是251658240
。让它提供整个剩余大小以使其更大。警告:较新
fdisk
工具可能会提供擦除检测到的分区签名的功能,不如果现在询问或写入磁盘时执行此操作:它检测到您当前的 PV/LVM 签名。放回隔断类型
8e
(可能只是装饰性的)。如果一切正常,写入新的分区表并退出fdisk
。更新:需要明确的是,上述操作首先在内存中完成。在同一起始位置删除并重新创建分区 4(在
fdisk
内存中完成)的总体结果是扩大了分区 4。将其提交fdisk
到磁盘时,只有 MBR(即:由 表示的磁盘的第一个扇区)/dev/sda
)被重写:存储在扇区 251658240 及之后的数据没有改变。更高级别(GUI...甚至parted
resizepart
)工具会提供放大选项(parted
),但最终结果是相同的。分区 4 从未在任何时候从磁盘中删除(即使错误地从磁盘中删除了它,这仍然不会是致命的,只要它在操作系统抱怨之前在同一位置重新创建)。更新分区新大小的内核视图
因为分区正在使用(由设备映射器等),所以
fdisk
肯定会抱怨它无法让系统重新读取分区表,并且旧分区表仍在使用中。为了避免重新启动,只需使用正确的工具来更新更改的内容:partx
。这里很简单,因为只改变了分区的大小。# cat /sys/class/block/sda4/size 188743680 # partx -u /dev/sda4 $ cat /sys/class/block/sda4/size [bigger value]
验证大小现在已增加并与使用 看到的结果匹配
fdisk
。否则,可能会出现问题并需要重新启动。放大PV、LV、文件系统。某些 LVM 选项可能能够通过更少的命令链接这些选项,但以下是所有步骤
如果没有选项,它将使用所有可用空间。
# pvresize /dev/sda4
PV 上的额外空间立即在 VG 上可供 LV 使用。
# lvextend -l +100%FREE /dev/centos/root # or any other choice
然后对于 xfs:
# xfs_growfs / # remember that xfs may never shrink back
或 ext4:
# resize2fs /dev/centos/root # and ext4 can't be shrunk back while mounted