我升级了OVH上托pipe的VPS,特别是从VPS CLOUD 1到VPS CLOUD 2 ,其中有25GB以上的解决scheme(总共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的结果 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
显然没有成功。
[UPDATE]
带有pr命令的输出分开:
Modello:设备一个blocchi Virtio(virtblk) Disco / dev / vda:53,7GB Dimensione del settore(logica / fisica):512B / 512B Tabella delle partizioni:msdos 国旗del迪斯科: Numero Inizio Fine Dimensione Tipo文件系统标志 1 1049kB 26,8GB 26,8GB primary xfs avvio 2 26,8GB 53,7GB 26,8GB主xfs
如何在不破坏数据的情况下 扩展可用磁盘空间? 重启服务器不是问题。
xfs_growfs -d /dev/vda1
资本-D 在文件系统块中增长到指定的大小,并且不理解“G”。 因此,它假设你想要53文件系统块,失败。
小写-d增长到最大值。
如果你想要特定的大小,你应该在块中进行计算,例如从fdisk输出中,最大的大小是26213376.然后-D 26213376也将从现在的6553344个块中增加到最大值。
以下是我刚刚testing的分步工作解决scheme,从OVH VPS 2016 SSD 1(10GB)升级到OVH VPS 2016 SSD 2(20GB) ,分区增长到最大新增大小。
CentOS 7的环境是默认的XFS文件系统。
resize后,新的分区可引导所有的数据。
在OVH仪表板执行升级。
执行升级时不能进入救援模式。
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
root@rescue-pro:/# apt-get update root@rescue-pro:/# apt-get install xfsprogs root@rescue-pro:/# apt-get install parted
救援模式不带有工具, xfs_growfs来增长XFS文件系统。
在我们可以增长文件系统之前,将使用parted来调整底层分区的大小。
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
此时select救援设备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%
以上将重新创build驱动器空间分配的最大大小的分区。
从上面的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
validation新的分区表。
请注意, 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标志并再次打印分区表以validation。
(parted) quit
退出并应用所有更改。
您将看到以下注释,您可以忽略,因为分区号在resize后是相同的。
Information: You may need to update /etc/fstab.
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
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
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 /
validation以上显示根分区已被成功调整到全部20GB
我发现在升级OVH VPS之后,没有关于如何执行根分区大小调整的完整文档。
XFS文件系统是棘手的。
希望这一步一步的笔记将帮助任何人面临同样的问题。
经过search和最终的答案帮助我终于find了方法(或多或less)。
1.创build一个新的分区
在虚拟磁盘上提供一个fdisk
〜$ fdisk / dev / vda 欢迎来到fdisk(util-linux 2.23.2)。 更改将只保留在内存中,直到您决定写入它们。 在使用写命令之前要小心。 Comando(m per richiamare la guida)是什么意思?
现在给n命令
分区types:
p小学(1个小学,0个扩展,3个免费)
e扩展
select(默认p): p
现在selectp来创build一个新的主分区。
Numero della partizione(2-4,默认2): <enter>
Primo部门(52428800-104857599,预定52428800): <enter>
Utilizzo del valore predefinito 52428800
最后一个扇区,+扇区或+大小{K,M,G}(52428800-104857599,预定义104857599): <enter>
在enter前检查信息,并检查第一个扇区是第一个分区的最后一个扇区的下一个。 在我的情况下, vda1的最后一个部分是52428799,所以下一个是52428800。
Comando(m per richiamare la Guida): w La tabella delle partizionièstata alterata! Chiamata di ioctl()per rileggere la tabella delle partizioni。 警告:重新读取分区表失败,错误16:Dispositivo o risorsa occupata。 内核仍然使用旧表。 新表将用于 下一次重新启动或运行partprobe(8)或kpartx(8)后 Sincronizzazione dei dischi在corso。
键入w将分区写入磁盘。 不需要重新启动,因为您也可以使用partprobe重新扫描这些分区。 运行以下命令扫描新创build的分区。
〜$ partprobe -s
之后,我们必须增加分区,但是xfs_growfs仍然失败。 🙁
我正在使用Debian,但所使用的工具对于大多数Linux发行版来说是非常常见的,所以在CentOS上应该完全一样。
我已经使用ext3将一个OVH VPS SSD 1(10GB)升级到了OVH VPS SSD 2(20GB)和一个根文件系统。 升级可以在线完成,可以在几秒钟内完成。
购买升级后,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.
分区现在被resize。 接下来,我需要调整文件系统的大小。
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文件系统的情况下,resize命令将是:
sudo xfs_growfs /
Et瞧! , 任务完成。
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
使用OVH服务器更新HD的最简单方法(build议您在执行此操作之前先备份服务器)
这里的高清是20G,并升级到40GB,但我已经完成了这个程序与10G> 20G,没有数据丢失或宕机
下面是一步一步的所有命令与他们的输出
[root@ovh ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 16G 2,8G 86% / tmpfs 3,8G 0 3,8G 0% /dev/shm
[root@ovh ~]# sudo fdisk /dev/vda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help):
p命令查看分区,并注意开始柱面(这里是3 ) p Disk /dev/vda: 42.9 GB, 42949672960 bytes 16 heads, 63 sectors/track, 83220 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000574cf Device Boot Start End Blocks Id System /dev/vda1 * 3 41611 20970496 83 Linux Command (m for help):
d命令删除分区,并用n创build分区,然后selectp和1并放入上面提到的柱面3 d Selected partition 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-83220, default 1): 3 Last cylinder, +cylinders or +size{K,M,G} (1-83220, default 83220): Using default value 83220
w或q写入磁盘(退出而不保存) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
[root@ovh ~]# reboot && exit
[root@ovh ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 16G 2,8G 86% / tmpfs 3,8G 0 3,8G 0% /dev/shm
resize2fs来调整它的大小 [root@ovh ~]# resize2fs /dev/vda1 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/vda1 is mounted on /; on-line resizing required old desc_blocks = 2, new_desc_blocks = 3 Performing an on-line resize of /dev/vda1 to 10485504 (4k) blocks. The filesystem on /dev/vda1 is now 10485504 blocks long.
[root@ovh ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 16G 22G 43% / tmpfs 3,8G 0 3,8G 0% /dev/shm
如果您调用sudo fdisk -u /dev/vda ,它将显示sectors而不是cylinders
如果您尝试重新连接,并且您不能将错误数量的起始cylinders放入,则必须Reboot in rescue mode并使用本指南https://docs.ovh.com/ie/zh-cn/public-cloud/ put_an_instance_in_rescue_mode /
如果您的分区没有安装,则必须使用正确的cylinders来调用以前步骤的fdisk
您将需要调整设备vda上的分区大小,有很多方法可以做到这一点,但我会使用fdisk或sfdisk。
对于fdisk启动fdisk:
fdisk /dev/vda
然后删除第一个分区(d),创build一个新的分区(n),只需按回车即可接受默认设置,您还需要按a将分区标记为活动分区。
如果你有一个相当现代的sfdisk版本,你可以用这个命令以编程方式调整分区的大小来填充磁盘
echo ", +" | sfdisk -N 1 /dev/vda
下一步是通过重新启动或partprobe命令(这是parted软件包的一部分)告诉OS磁盘的新大小。
partprobe /dev/vda
最后,你将需要调整你已经得到命令的设备上的文件系统的大小,但为了完整性在下面。 请注意,除非您要使用less于整个设备,否则不需要包含-D。
xfs_growfs /dev/vda1