我对 OVH 上托管的 VPS 进行了升级,具体来说,VPS CLOUD 1
比VPS CLOUD 2
以前的解决方案多了 25gb(总共 50gb)。
此 VPS 上安装的是 CentOS 7.2.1511
结果是df -HT
[root@srv ~]# df -HT
File system Tipo Dim. Usati Dispon. Uso% Montato su
/dev/vda1 xfs 27G 12G 16G 42% /
devtmpfs devtmpfs 2,1G 0 2,1G 0% /dev
tmpfs tmpfs 2,1G 0 2,1G 0% /dev/shm
tmpfs tmpfs 2,1G 18M 2,1G 1% /run
tmpfs tmpfs 2,1G 0 2,1G 0% /sys/fs/cgroup
tmpfs tmpfs 405M 0 405M 0% /run/user/0
结果是fdisk -l | grep Disk
[root@srv ~]# fdisk -l | grep Disk
Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Disk label type: dos
其他磁盘信息:
[root@srv ~]# fdisk -l /dev/vda
Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 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
Identificativo disco: 0x000af71d
Dispositivo Boot Start End Blocks Id System
/dev/vda1 * 2048 52428799 26213376 83 Linux
我尝试过这个:
[root@srv ~]# xfs_growfs /dev/vda1 -D 53.7G
meta-data=/dev/vda1 isize=256 agcount=13, agsize=524224 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=6553344, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data size 53 too small, old size is 6553344
和这个:
[root@srv ~]# xfs_growfs -d /dev/vda1
meta-data=/dev/vda1 isize=256 agcount=13, agsize=524224 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0
data = bsize=4096 blocks=6553344, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data size unchanged, skipping
显然没有成功。
[更新] parted 上的命令
输出pr
:
模型:Virtio 块设备 (virtblk) 迪斯科/dev/vda:53.7GB 驱动器尺寸(逻辑/物理):512B/512B 分区表:msdos 迪斯科旗帜: 起始编号 精细 尺寸 类型 文件系统 旗帜 1 1049kB 26,8GB 26,8GB 主 xfs avvio 2 26,8GB 53,7GB 26,8GB 主 xfs
我怎么能够扩张可用磁盘空间没有破坏数据?重启服务器没问题。
答案1
xfs_growfs -d /dev/vda1
资本-D
增长到指定规模在文件系统块中,并且它不理解“G”。因此它假设您需要 53 个文件系统块,但失败了。
小写字母-d
增大至最大尺寸。
如果您想要特定的大小,您应该以块为单位进行计算,例如,从 fdisk 输出,最大大小为 26213376。然后 -D 26213376 也会将其从您现在拥有的 6553344 个块增长到最大值。
答案2
以下是我刚刚测试过的逐步解决方案OVH VPS 2016 SSD 1 (10GB)到OVH VPS 2016 SSD 2 (20GB)分区增长到最大新大小。
环境是CentOS 7使用其默认西弗斯文件系统。
调整大小后,新分区即可启动并且所有数据都保留在原处。
步骤 0. 升级到更高级别的 VPS 计划
在 OVH 仪表板上执行升级。
升级过程中不能处于救援模式。
步骤 1. 启动进入救援模式
root@rescue-pro:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 10G 0 disk
└─vda1 254:1 0 10G 0 part /
vdb 254:16 0 20G 0 disk
└─vdb1 254:17 0 10G 0 part /mnt/vdb1
上图显示vdb
升级后有20GB空间,原有分区vdb1
有10GB挂载在/mnt/vdb1
步骤2. 安装要使用的工具
root@rescue-pro:/# apt-get update
root@rescue-pro:/# apt-get install xfsprogs
root@rescue-pro:/# apt-get install parted
救援模式没有附带xfs_growfs
用于扩展 XFS 文件系统的工具。
parted
在扩大文件系统之前,我们将使用它将底层分区调整为新的大小。
步骤 3. 调整底层分区的大小
root@rescue-pro:~# umount /mnt/vdb1
我们需要先卸载该分区,然后才能应用更改。
root@rescue-pro:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 10G 0 disk
└─vda1 254:1 0 10G 0 part /
vdb 254:16 0 20G 0 disk
└─vdb1 254:17 0 10G 0 part
确认它已被卸载。
root@rescue-pro:~# parted
此时救援设备vda
已选定,我们需要切换到我们将要操作的设备。
(parted) select /dev/vdb
Using /dev/vdb
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 10.7GB 10.7GB primary xfs boot
(parted) unit s
将显示单位切换至sector
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 41943040s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 2048s 20971519s 20969472s primary xfs boot
(parted) rm 1
以上将消除现有的分区。
这是我最犹豫要不要演的部分。
经过大量研究并确认不会破坏数据后,我们将恢复一切。
(parted) mkpart
Partition type? primary
File system type? xfs
Start? 2048s
End? 100%
上述操作将重新创建具有驱动器空间分配最大大小的分区。
根据以上结果相应地回答问题print
。
2048s
是起始扇区,这就是为什么我们将单位切换为sector
,确保它与print
上面的结果相同。
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 41943040s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 2048s 41943039s 41940992s primary xfs
验证新的分区表。
请注意,boot
标志不见了。
(parted) set 1 boot on
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 41943040s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 2048s 41943039s 41940992s primary xfs boot
设置boot
标志并再次打印出分区表进行验证。
(parted) quit
退出并应用所有更改。
您将看到以下注释,您可以忽略它,因为调整大小后分区号是相同的。
Information: You may need to update /etc/fstab.
步骤4.验证调整大小的分区
root@rescue-pro:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 10G 0 disk
└─vda1 254:1 0 10G 0 part /
vdb 254:16 0 20G 0 disk
└─vdb1 254:17 0 20G 0 part
现在我们可以看到vdb1
全尺寸20GB
重新挂载分区并检查磁盘空间。
root@rescue-pro:~# mount /dev/vdb1 /mnt/vdb1
root@rescue-pro:~# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 9.9G 608M 8.8G 7% /
udev 10M 0 10M 0% /dev
tmpfs 388M 144K 388M 1% /run
/dev/vda1 9.9G 608M 8.8G 7% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 775M 0 775M 0% /run/shm
/dev/vdb1 10G 2.1G 8.0G 21% /mnt/vdb1
我们可以看到挂载的分区又回来了,所有数据都在原位,但是大小还是10GB
步骤 5. 扩大 XFS 分区
root@rescue-pro:~# xfs_growfs -d /mnt/vdb1
meta-data=/dev/vdb1 isize=256 agcount=6, agsize=524224 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=2621184, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2621184 to 5242624
上述命令将其扩大/mnt/vdb1
至可用的最大大小。
使用挂载点而不是块设备。
root@rescue-pro:~# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 9.9G 608M 8.8G 7% /
udev 10M 0 10M 0% /dev
tmpfs 388M 144K 388M 1% /run
/dev/vda1 9.9G 608M 8.8G 7% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 775M 0 775M 0% /run/shm
/dev/vdb1 20G 2.1G 18G 11% /mnt/vdb1
再次检查磁盘空间,我们可以看到现在/mnt/vdb1
已经成功增长到20GB
步骤 6. 最后一步 - 重启并退出救援模式
shutdown -h now
返回 OVH 仪表板并使用Reboot VPS
退出救援模式。
启动后恢复正常的VPS环境。
[root@vps]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 2.1G 18G 11% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 17M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
tmpfs 386M 0 386M 0% /run/user/0
[root@vps]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 20G 0 disk
└─vda1 253:1 0 20G 0 part /
验证上述内容,表明根分区已成功调整为完整分区20GB
我发现没有关于如何在升级 OVH VPS 后执行根分区大小调整的完整文档。
XFS 文件系统让事情变得棘手。
希望这个分步说明能够帮助任何遇到同样问题的人。
答案3
答案4
我使用的是 Debian,但所使用的工具在大多数 Linux 发行版中都很常见,因此在 CentOS 上应该可以完全相同地工作。
我已经将 OVH VPS SSD 1 (10GB) 升级到 OVH VPS SSD 2 (20GB),并使用 ext3 根文件系统。升级可以在线、安全地完成,只需几秒钟。
购买升级后,VPS 将重新启动。文件系统尚未发生任何变化。
user@vps2:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 387M 5.3M 381M 2% /run
/dev/vda1 9.9G 7.5G 2.0G 80% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
tmpfs 387M 0 387M 0% /run/user/1001
但parted
会向您显示底层磁盘确实已升级。
user@vps2:~$ sudo parted /dev/vda
GNU Parted 3.2
Using /dev/vda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) pr
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 10.7GB 10.7GB primary ext3 boot
我将其更改为扇区单位并执行分区大小调整。
(parted) unit s
(parted) resizepart
Partition number? 1
Warning: Partition /dev/vda1 is being used. Are you sure you want to continue?
Yes/No? Yes
End? [20971519s]? -1s
(parted) pr
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 41943040s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 41943039s 41940992s primary ext3 boot
(parted) quit
Information: You may need to update /etc/fstab.
分区现在已调整大小。接下来,我需要调整文件系统的大小。
user@vps2:~$ sudo resize2fs -p /dev/vda1
resize2fs 1.43.4 (31-Jan-2017)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/vda1 is now 5242624 (4k) blocks long.
对于 XFS 文件系统,调整大小命令如下:
sudo xfs_growfs /
瞧!, 任务完成。
user@vps2:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 387M 5.3M 381M 2% /run
/dev/vda1 20G 7.5G 12G 40% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
tmpfs 387M 0 387M 0% /run/user/1001