VPS:升级后如何更新可用硬盘空间?

VPS:升级后如何更新可用硬盘空间?

我对 OVH 上托管的 VPS 进行了升级,具体来说,VPS CLOUD 1VPS 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

在 OVH 中调整 XFS 文件系统大小确实很容易。不要必须使用救援模式。只需使用 growpart 和 xfs_grow 命令。

看看我如何将根分区从 10GB 调整到 20GB

在此处输入图片描述

答案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

相关内容