web-dev-qa-db-ja.com

VPS:アップグレード後に利用可能なハードディスク容量をどのように更新できますか?

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データを破棄できますか?サーバーの再起動は問題ではありません。

5
sarcom

xfs_growfs -d /dev/vda1

大文字-Dは指定されたサイズに拡大します ファイルシステムブロック内 、そして 'G'を理解できません。そのため、53個のファイルシステムブロックが必要であると想定していたため、失敗しました。

小文字-dは最大サイズまで大きくなります。

特定のサイズが必要な場合は、ブロックで計算する必要があります。 fdisk出力からの最大サイズは26213376です。次に、-D 26213376も、現在の6553344ブロックから最大サイズに拡大します。

8
mzhaase

これが私がテストした段階的な作業ソリューションですOVH VPS 2016 SSD 1(10GB)からOVH VPS 2016 SSD 2(20GB)へのアップグレード最大の新しいサイズに成長します。

環境はCentOS 7であり、デフォルトは[〜# 〜] xfs [〜#〜]ファイルシステム。

サイズ変更後、新しいパーティションはすべてのデータを適切に配置して起動できます。

ステップ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/mnt/vdb1に10GBがマウントされていることを示しています。

ステップ2.使用するツールをインストールする

root@rescue-pro:/# apt-get update

root@rescue-pro:/# apt-get install xfsprogs

root@rescue-pro:/# apt-get install parted

レスキューモードには、XFSファイルシステムを拡張するためのツールxfs_growfsは付属していません。

ファイルシステムを拡張する前に、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

上記は[〜#〜] 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.

手順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/vdb120GBに正常に増加したことがわかります。

手順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ファイルシステムはそれをトリッキーにしているものです。

このステップバイステップのメモが同じ問題に直面している人を助けることを願っています。

2
KDX

検索の後、あなたの答えの助けを借りて、最終的に私は方法を見つけます(多かれ少なかれ)。

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は引き続き失敗します。 :(

1
sarcom

私は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
1
sargue

OVHサーバーでHDを更新する最も簡単な方法(これを行う前にサーバーをバックアップすることをお勧めします)

ここでは、HDは20Gで40GBにアップグレードされましたが、この手順を10G> 20Gで実行し、データの損失やダウンタイムはありませんでした。

以下は、すべてのコマンドとその出力のステップバイステップです

HDパスを確認する

[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

そのパスでfdiskを起動します

[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

マシンで1〜2分のsshで、サイズが以前と同じであることを確認します

[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  

注1:

Sudo fdisk -u /dev/vdaを呼び出すと、sectorsではなくcylindersが表示されます

注2:

再接続を試みても開始番号が間違っている可能性がある場合はcylindersReboot in rescue modeしてこのガイドを使用する必要があります https://docs.ovh。 com/ie/en/public-cloud/put_an_instance_in_rescue_mode /

パーティションがマウントされていない場合は、前の手順のfdiskを正しいcylindersで呼び出す必要があります。

0
GiorgosK