OVHでホストされているVPSを、具体的にはVPS CLOUD 1
からVPS CLOUD 2
にアップグレードしました。これは、以前のソリューションよりも25 GB多い(合計50 GB)。
この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
コマンドを使用した出力:
Modello:Device a blocchi Virtio(virtblk) Disco/dev/vda:53,7GB Dimensione del settore(logica/fisica):512B/512B Tabella delle partizioni:msdos Flag del disco: Numero Inizio Fine Dimensione Tipo File system Flag 1 1049kB 26,8GB 26,8GB primary xfs avvio 2 26,8GB 53,7GB 26,8GBプライマリxfs
どうすればexpand使用可能なディスク領域withoutデータを破棄できますか?サーバーの再起動は問題ではありません。
xfs_growfs -d /dev/vda1
大文字-D
は指定されたサイズに拡大します ファイルシステムブロック内 、そして 'G'を理解できません。そのため、53個のファイルシステムブロックが必要であると想定していたため、失敗しました。
小文字-d
は最大サイズまで大きくなります。
特定のサイズが必要な場合は、ブロックで計算する必要があります。 fdisk出力からの最大サイズは26213376です。次に、-D 26213376も、現在の6553344ブロックから最大サイズに拡大します。
これが私がテストした段階的な作業ソリューションですOVH VPS 2016 SSD 1(10GB)からOVH VPS 2016 SSD 2(20GB)へのアップグレード最大の新しいサイズに成長します。
環境はCentOS 7であり、デフォルトは[〜# 〜] xfs [〜#〜]ファイルシステム。
サイズ変更後、新しいパーティションはすべてのデータを適切に配置して起動できます。
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
に/mnt/vdb1
に10GBがマウントされていることを示しています。
root@rescue-pro:/# apt-get update
root@rescue-pro:/# apt-get install xfsprogs
root@rescue-pro:/# apt-get install parted
レスキューモードには、XFSファイルシステムを拡張するためのツールxfs_growfs
は付属していません。
ファイルシステムを拡張する前に、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
この時点で、レスキューデバイス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
上記は[〜#〜] remove [〜#〜]既存のパーティションになります。
これは私が演奏するのを最も躊躇している部分です。
多くの調査とデータが破壊されないことの確認の後、すべてを取り戻します。
(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.
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 /
上記を確認して、ルートパーティションがフルに正常にサイズ変更されたことを確認します20GB
OVH VPSのアップグレード後にこのルートパーティションのサイズ変更を実行する方法に関する完全なドキュメントがないことがわかりました。
XFSファイルシステムはそれをトリッキーにしているものです。
このステップバイステップのメモが同じ問題に直面している人を助けることを願っています。
検索の後、あなたの答えの助けを借りて、最終的に私は方法を見つけます(多かれ少なかれ)。
1。新しいパーティションを作成します
仮想ディスクにfdiskを与える
〜$ fdisk /dev/vda fdiskへようこそ(util-linux 2.23.2)。 変更はメモリ内にのみ残ります。それらを書いてください。 writeコマンドを使用する前に注意してください。 Comando(m per richiamare la guida): ん
n
コマンドを実行します
パーティションタイプ: pプライマリ(1プライマリ、0拡張、3フリー) e拡張 選択(デフォルトp): p
ここでp
を選択して、新しいプライマリパーティションを作成します。
Numero della partizione(2-4、デフォルト2): <入力> Primoセクター(52428800-104857599、predefinito 52428800): <入力> Utilizzo del valore predefinito 52428800 最後のセクター、+セクターまたは+ size {K、M、G}(52428800-104857599、predefinito 104857599): <入力>
enter
を押す前に情報を確認し、最初のセクターが最初のパーティションの最後のセクターの次のセクターであることを確認してください。私の場合、vda1
の最後のセクターは52428799なので、次のセクターは52428800です。
コマンド(リヒマーマレラギダあたりm): w La tabella delle partizionièstata alterata! chiamata di ioctl()per rileggere la tabella delle partizioni。 WARNING:Re-readingエラー16でパーティションテーブルが失敗しました:Dispositivo o risorsa occupata。 カーネルはまだ古いテーブルを使用しています。新しいテーブルは、 次の再起動時、またはpartprobe(8)またはkpartx(8)を実行した後で使用されます。 Sincronizzazione dei dischi in corso。
w
と入力して、パーティションをディスクに書き込みます。 partprobeを使用してこれらのパーティションを再スキャンすることもできるため、再起動は必要ありません。次のコマンドを実行して、新しく作成されたパーティションをスキャンします。
〜$ 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.
パーティションのサイズが変更されました。次に、ファイルシステムのサイズを変更する必要があります。
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 voila!、仕事完了。
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を更新する最も簡単な方法(これを行う前にサーバーをバックアップすることをお勧めします)
ここでは、HDは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
でパーティションを作成してから、p
および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/en/public-cloud/put_an_instance_in_rescue_mode /
パーティションがマウントされていない場合は、前の手順のfdisk
を正しいcylinders
で呼び出す必要があります。