Elastic Compute Service (ECS) インスタンスに接続されているディスクのサイズを変更した後、ディスク上のパーティションとファイルシステムはディスクと共に自動的に拡張されません。追加されたディスク容量を使用するには、ディスク上のパーティションとファイルシステムを手動で拡張する必要があります。このトピックでは、Linux ECS インスタンスに接続されているディスク上のパーティションとファイルシステムを拡張する方法について説明します。
ECS コンソールでクラウドディスク容量を拡張したときに、クラウドアシスタントを使用してパーティションとファイルシステムを拡張した場合は、このトピックで説明されている操作を実行する必要はありません。
前提条件
ECS インスタンスは次の要件を満たしています。
インスタンスは [実行中] (Running) 状態です。
インスタンスは、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 6 以降、Debian 8 以降、または Ubuntu 14 以降のいずれかのオペレーティングシステムを実行しています。
重要GUID パーティションテーブル (GPT) パーティションスタイルを使用し、CentOS 6 インスタンスに接続されているディスク上のパーティションとファイルシステムを拡張するには、
parted
コマンドを実行します。詳細については、「Linux インスタンスのデータディスク上のパーティションとファイルシステムをオフラインで拡張する」をご参照ください。このトピックで説明されているgrowpart
コマンドを実行しないでください。実行すると、パーティションテーブルが破損する可能性があります。ディスクが GPT パーティションスタイルを使用しているかどうかを確認します。詳細については、このトピックの「手順 1: ディスク情報を取得する」セクションをご参照ください。異なるオペレーティングシステムを実行している ECS インスタンスに接続されているディスク上のパーティションとファイルシステムを拡張する方法については、「Linux インスタンスのデータディスク上のパーティションとファイルシステムをオフラインで拡張する」をご参照ください。
ディスクは次の要件を満たしています。
ディスクは上記の ECS インスタンスに接続されており、[使用中] (In_use) 状態です。
ECS インスタンスに接続されているシステムディスクの使用率は 100% 未満です。
重要ECS インスタンスに接続されているディスクで拡張操作を実行できるのは、インスタンスに接続されているシステムディスクの使用率が 100% 未満の場合のみです。ECS インスタンスにログインし、df -h コマンドを実行して、ルートパーティションの使用率が 100% に達しているかどうかを確認します。ルートパーティションの使用率が 100% に達している場合は、問題のトラブルシューティングを行います。詳細については、「Linux インスタンスのディスク容量不足の問題を解決する」をご参照ください。
ファイルシステムがマウントされています。ファイルシステムをマウントする方法については、「Linux インスタンスでデータディスクを初期化する」トピックの「手順 3: ファイルシステムを作成してマウントする」セクションをご参照ください。
クラウドディスク容量のサイズ変更は既に済んでいますが、ECS コンソールでパーティションとファイルシステムは拡張していません。ディスクのサイズ変更方法については、「手順 1: ディスクのサイズを変更してディスク容量を拡張する」をご参照ください。
説明ECS インスタンスに接続されているディスクのサイズを変更するときに、サイズ変更方法パラメータを [オフラインサイズ変更] に設定した場合は、ディスクのサイズ変更後に ECS コンソールでインスタンスを再起動するか、API 操作を呼び出して、新しいディスクサイズを有効にする必要があります。詳細については、「インスタンスを再起動する」をご参照ください。
準備
(推奨) パーティションとファイルシステムを拡張するディスクのスナップショットを作成して、ディスクデータをバックアップします。詳細については、「スナップショットを作成する」をご参照ください。
説明ほとんどの場合、パーティションとファイルシステムの拡張によってデータが失われることはありません。誤操作によるデータの損失や例外を防ぐために、スナップショットを作成してディスクデータをバックアップすることをお勧めします。
ディスクのサイズ変更プロセスに精通している必要があります。詳細については、「概要」をご参照ください。
方法 1: クラウドアシスタントを使用してディスクのパーティションとファイルシステムを自動的に拡張する (招待プレビュー)
この機能は招待プレビューであり、特定のユーザーのみがアクセスできます。
ディスクは [実行中] 状態であり、クラウドアシスタントクライアント がインストールされています。デフォルトでは、クラウドアシスタントクライアント は、2017 年 12 月 1 日以降にパブリックイメージから作成された ECS インスタンスにプリインストールされています。詳細については、「クラウドアシスタントクライアントをインストールする」をご参照ください。
クラウドアシスタントの使用 タブの 手順 1: ディスクのサイズを変更してディスク容量を拡張する でパラメータを構成しているときに誤ってページを閉じた場合は、インスタンス詳細ページの [ブロックストレージ] タブに移動し、クラウドアシスタントを使用してパーティションとファイルシステムを拡張します。
パーティションとファイルシステムを拡張ページで、[ クラウドアシスタントの使用 ] タブをクリックします。
インスタンス詳細ページの [ブロックストレージ] タブで、クラウドアシスタントチェック機能を有効にします。
説明この機能は招待プレビューであり、特定のユーザーのみがアクセスできます。[クラウドアシスタントチェック] 設定が表示されない場合は、「方法 2: インスタンスにログインしてディスク上のパーティションとファイルシステムを拡張する」を選択してください。
パーティションとファイルシステムを拡張するディスクを選択します。[システム内ステータスチェック] 列の [2/3 チェック合格] にポインタを移動し、[パーティションとファイルシステムの拡張] をクリックします。
説明特定のオペレーティングシステムのみが、クラウドアシスタントベースのディスク容量拡張機能をサポートしています。[システム内ステータスチェック] 列が表示されない場合、または [システム内ステータスチェック] 列にチェックの失敗が表示される場合は、「方法 2: インスタンスにログインしてディスク上のパーティションとファイルシステムを拡張する」を選択してください。
クラウドアシスタントを使用してパーティションとファイルシステムを拡張します。
コマンドコンテンツセクションの下部にある [上記のコマンドを実行] をクリックして、パーティションとファイルシステムを拡張します。
説明CLI が表示されない場合は、クラウドアシスタントクエリ機能を使用できません。この場合は、「方法 2: インスタンスにログインしてディスク上のパーティションとファイルシステムを拡張する」を選択してください。
[リモートコマンドの送信] ダイアログボックスで、[実行] をクリックします。システムはインスタンス上でコマンドを実行して、ディスクのパーティションとファイルシステムを拡張します。[ ステータス ] 列に [正常] と表示されている場合は、ディスクのパーティションとファイルシステムが拡張されています。
方法 2: インスタンスにログインしてディスク上のパーティションとファイルシステムを拡張する
クラウドアシスタントを使用して ECS インスタンスに接続されているディスク上のパーティションまたはファイルシステムを拡張できない場合は、インスタンスにログインしてコマンドを実行し、パーティションとファイルシステムを拡張できます。
手順 1: ディスク情報を取得する
ディスク情報を取得します。
方法 1: CLI を使用する
Linux ECS インスタンスに接続します。
ECS コンソール にログインします。左側のナビゲーションウィンドウで、[インスタンス] をクリックします。[ インスタンス ] ページで、接続する Linux ECS インスタンスを見つけ、[ 操作 ] 列の [接続] をクリックします。詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
次のコマンドを実行して、ディスクとパーティションの情報を確認します。
sudo fdisk -lu
ディスクがパーティション分割されているかどうかを確認します。上記の図のコマンド出力は、インスタンスに 3 つのディスクがあることを示しています。
/dev/vda
という名前のシステムディスク、/dev/vdb
という名前のデータディスク、/dev/vdc
という名前の別のデータディスクです。この例では、データディスクが使用されています。コマンド出力では次のとおりです。vdb1 は、/dev/vdb データディスクが パーティション分割されている ことを示します。数字
1
はパーティション番号です。vdc は、/dev/vdc データディスクが パーティション分割されていない(raw デバイス)ことを示します。
拡張する必要があるパーティションを決定します。この例では、
/dev/vdb
データディスクが使用されています。コマンド出力では次のとおりです。[ サイズ ] フィールドには、ディスクまたはパーティションのサイズが指定されています。
/dev/vdb1
パーティションのサイズは、/dev/vdb
ディスクのサイズよりも小さくなっています。/dev/vdb1
パーティションを拡張する必要があります。説明lsblk
コマンドを実行して、どのパーティションを拡張する必要があるかを確認することもできます。ディスクのパーティションスタイルを決定します。
Disklabel type
フィールドには、ディスクのパーティションスタイルが指定されています。有効な値: dos と gpt。dos
はマスターブートレコード (MBR) パーティションスタイルを、gpt
は GPT パーティションスタイルを示します。この例では、GPT パーティション分割されたデータディスク/dev/vdb
が使用されています。データディスクの名前は /dev/vdb です。データディスク上のパーティションは GPT パーティションであり、パーティション名は /dev/vdb1 です。説明値はオペレーティングシステムによって異なります。
Disk label type
フィールドが表示されない場合は、System
フィールドを確認してパーティションスタイルを決定します。System
の値がLinux
の場合は、MBR パーティションスタイルが使用されています。値がGPT
の場合は、GPT パーティションスタイルが使用されています。以前のバージョンの fdisk を使用している場合、GPT パーティションスタイルが表示されないことがあります。パーティションスタイルを確認するには、
gdisk -l /dev/vdb
コマンドを実行します。
次のコマンドを実行して、拡張するパーティションまたはディスクのファイルシステム情報を取得します。
sudo file -s <Raw デバイス名>/<パーティション名>
上記のコマンド出力は、次のことを示しています。
/dev/vdb1 パーティションのファイルシステムタイプは Ext4 です。
パーティション分割されていない /dev/vdc raw デバイスのファイルシステムタイプは Ext4 です。
パーティション分割されていない /dev/vdd raw デバイスにはファイルシステムがありません。
説明sudo blkid コマンドを実行して、拡張するパーティションまたはディスクのファイルシステム情報を取得することもできます。
方法 2: ECS コンソールを使用する
ECS インスタンスの詳細ページに移動し、[ブロックストレージ] タブをクリックして、パーティションとファイルシステムを拡張する必要があるディスクを見つけます。
ディスクに対応する [ システム内情報 ] 列のコンテンツにポインタを移動して、ディスクのデバイス名、パーティションスタイル (パーティションテーブル形式)、パーティション名、ファイルシステムタイプ、およびマウントポイントを表示します。
説明[システム内情報] 列が表示されない場合、または [システム内情報] 列に情報が表示されない場合は、クラウドアシスタントクエリ機能を使用できません。この場合は、「方法 1: CLI を使用する」を選択してください。
ディスク上のパーティションとファイルシステムを拡張するために実行する必要がある手順を決定します。
ディスクに MBR パーティションが存在し、ディスクの新しいサイズが 2 TiB を超え、既存のパーティションを追加されたディスク領域に拡張する場合は、ディスクのパーティションスタイルを GPT に変更し、手順 2: パーティションを拡張する と 手順 3: ファイルシステムを拡張する を実行できます。
ディスクに MBR または GPT パーティションが存在し、ディスクの新しいサイズが 2 TiB を超えず、既存のパーティションを追加されたディスク容量に拡張する場合 は、手順 2: パーティションを拡張する と 手順 3: ファイルシステムを拡張する を実行します。
説明既存のパーティションを拡張する代わりに、追加されたディスク容量にパーティションを作成することもできます。詳細については、「Linux インスタンスのデータディスク上のパーティションとファイルシステムをオフラインで拡張する」トピックの「方法 2: MBR パーティションを作成してフォーマットする」セクションと「方法 4: GPT パーティションを作成してフォーマットする」セクションをご参照ください。
ディスクがパーティション分割されていないが、ファイルシステムがある場合 は、パーティションを拡張する手順をスキップして、手順 3: ファイルシステムを拡張する を実行します。
ディスクがパーティション分割されておらず、ファイルシステムもない場合 は、このトピックで説明されている操作を実行する必要はありません。
説明パーティションとファイルシステムを拡張する方法の例については、このトピックの「例」セクションをご参照ください。
手順 2: パーティションを拡張する
ディスクがパーティション分割されていないが、ファイルシステムがある場合 は、パーティションを拡張するこの手順をスキップして、手順 3: ファイルシステムを拡張する を実行します。
コマンドを実行してパーティションを拡張します。
コマンドを実行してパーティションを拡張します。この例では、Linux ECS インスタンスに接続されている /dev/vdb データディスクのサイズが ECS コンソールで 60 GiB に変更され、ディスク上の
/dev/vdb1
パーティションが 40 GiB から 60 GiB に拡張されます。インスタンスのオペレーティングシステムとディスクのパーティションスタイルに基づいて、コマンドを実行して特定のパーティションを拡張します。
Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、または CentOS 6 以降
重要CentOS 6 はサポート終了 (EOL) に達しました。Linux コミュニティのルールに従い、すべてのコンテンツが次の CentOS 6 リポジトリアドレスから削除されました: http://mirror.centos.org/centos-6/。Alibaba Cloud でデフォルトの CentOS 6 リポジトリを引き続き使用すると、エラーが報告されます。CentOS 6 の特定のインストールパッケージを使用するには、CentOS 6 リポジトリアドレスを変更します。詳細については、「CentOS 6 リポジトリアドレスを変更するにはどうすればよいですか?」をご参照ください。
GPT パーティションスタイルを使用し、CentOS 6 インスタンスに接続されているディスク上のパーティションとファイルシステムを拡張するには、parted コマンドを実行します。詳細については、「Linux インスタンスのデータディスク上のパーティションとファイルシステムをオフラインで拡張する」をご参照ください。growpart コマンドを実行しないでください。実行すると、パーティションテーブルが破損する可能性があります。
MBR パーティションスタイル
type growpart || sudo yum install -y cloud-utils-growpart sudo yum update cloud-utils-growpart sudo LC_ALL=en_US.UTF-8 growpart /dev/vdb 1
GPT パーティションスタイル (gDisk がインストールされている必要があります)
type growpart || sudo yum install -y cloud-utils-growpart sudo yum update cloud-utils-growpart type sgdisk || sudo yum install -y gdisk sudo LC_ALL=en_US.UTF-8 growpart /dev/vdb 1
Debian 9 以降または Ubuntu 14 以降
重要Debian 9 と Debian 10 は EOL に達しました。インスタンスで Debian 9 または Debian 10 を実行している場合は、オペレーティングシステムのリポジトリアドレスを変更します。詳細については、「Debian 9 または Debian 10 リポジトリアドレスを変更するにはどうすればよいですか?」をご参照ください。
MBR パーティションスタイル
sudo apt-get update sudo apt-get install -y cloud-guest-utils sudo LC_ALL=en_US.UTF-8 growpart /dev/vdb 1
GPT パーティションスタイル (gDisk がインストールされている必要があります)
sudo apt-get update sudo apt-get install -y cloud-guest-utils type sgdisk || sudo apt-get install -y gdisk sudo LC_ALL=en_US.UTF-8 growpart /dev/vdb 1
重要次の項目に注意してください。
growpart ユーティリティを使用していてエラーが報告された場合は、このトピックの「FAQ」セクションでトラブルシューティングを参照してください。
コマンドでは、
/dev/vdb
と1
をスペースで区切ります。1
はパーティション番号です。/dev/vdb と 1 を実際の値に置き換えます。システムディスク上のパーティションを拡張する場合は、コマンドの
/dev/vdb
を/dev/vda
に置き換えます。LC_ALL
環境変数を en_US.UTF-8 に設定して、中国語文字セットとの互換性を確保します。1 つのディスクに連続したパーティションがある場合は、最後のパーティションのみを拡張できます。たとえば、
/dev/vdb
データディスクには、/dev/vdb1
、/dev/vdb2
、/dev/vdb3
という名前の 3 つのパーティションがあります。この場合、最後のパーティション (/dev/vdb3
) のみ拡張できます。パーティションを拡張するには、growpart /dev/vdb 3
コマンドを実行します。ディスクがデバイス名が
/dev/nvme0n1
である Nonvolatile Memory Express (NVMe) ディスクで、/dev/nvme0n1p1
パーティションを拡張する場合は、growpart /dev/nvme0n1p1 1
コマンドではなく、growpart /dev/nvme0n1 1
コマンドを実行します。拡張 MBR パーティションの論理パーティション (ほとんどの場合、パーティション番号が 5 以上) を拡張する場合は、拡張 MBR パーティションを拡張する必要があります。たとえば、
/dev/vdb1
(プライマリ)、/dev/vdb2
(拡張)、/dev/vdb5
(論理) というパーティションが存在するとします。growpart /dev/vdb 2
コマンドを実行して /dev/vdb2 パーティションを拡張してから、growpart /dev/vdb 5
コマンドを実行して /dev/vdb5 パーティションを拡張する必要があります。
次の図のように
CHANGED
と表示されている場合は、パーティションが拡張されています。次のコマンドを実行して、新しいパーティションサイズが有効になっているかどうかを確認します。
sudo fdisk -lu
上記の図のコマンド出力では、/dev/vdb データディスクのサイズは /dev/vdb1 パーティションのサイズと同じです。これは、パーティションが拡張されていることを示しています。
説明インスタンスで CentOS 6 などの以前のバージョンのオペレーティングシステムが実行されている場合は、
reboot
コマンドを実行してインスタンスを再起動し、新しいパーティションサイズを有効にします。ほとんどの場合、インスタンスのディスクパーティションを拡張した後にインスタンスを再起動する必要はありません。CentOS 6 インスタンスのシステムディスク上のパーティションを拡張する場合、またはオペレーティングシステムのバージョンが古く、新しいパーティションサイズを認識しない場合は、新しいパーティションサイズを有効にするためにインスタンスを再起動します。サービスの継続性を確保するために、オフピーク時にインスタンスを再起動することをお勧めします。
手順 3: ファイルシステムを拡張する
論理ボリュームマネージャ (LVM) を使用してディスクパーティションを管理している場合は、ECS コンソールでディスクのサイズ変更後、LVM を使用して論理ボリューム (LV) とファイルシステムを拡張する必要があります。詳細については、「LV を拡張する」をご参照ください。
ディスクでマルチアタッチ機能が有効になっていて、ディスクがクラスタファイルシステムを使用している場合は、ディスクのサイズ変更後にクラスタファイルシステムを拡張する必要があります。この場合、このトピックで説明されている手順は適用できません。一般的なクラスタファイルシステムには、OCFS2、GFS2、Veritas CFS、Oracle ACFS、DBFS などがあります。Ext2、Ext3、Ext4、eXtensible File System (XFS)、new technology file system (NTFS) などのスタンドアロンファイルシステムを使用している場合、ディスクでマルチアタッチ機能が有効になっていると、インスタンス間でデータを同期できず、データの不整合が発生する可能性があります。詳細については、「クラウドディスクのマルチアタッチ」をご参照ください。
ディスク上のファイルシステムを拡張する必要があるかどうかを確認します。詳細については、「ディスク上のパーティションとファイルシステムを拡張するために実行する必要がある手順を決定する」の手順をご参照ください。
次のコマンドを実行して、拡張するファイルシステムのマウントディレクトリを取得します。
df -Th
Type
はファイルシステムタイプを指定します。Mounted on
はパーティションのマウントディレクトリを指定します。次の図のコマンド出力では、/dev/vdb1
パーティションのファイルシステムは Ext4 ファイルシステムであり、パーティションは /mnt にマウントされています。ファイルシステム 値に接尾辞として数字が含まれていない場合、ディスクは raw デバイスです。例:
/dev/vdc
。ファイル システムを拡張します。
ファイルシステムを拡張します。ファイルシステムの拡張に使用されるコマンドは、ファイルシステムタイプによって異なります。手順 1 で取得したファイルシステムタイプに基づいて、次のいずれかのコマンドを実行してファイルシステムを拡張します。
説明ファイルシステムと関連付けられたディスクの使用中に resize2fs ツールを使用してファイルシステムを拡張すると、ファイルシステムでデータの問題が発生する可能性があります。この問題は、イメージカーネルバージョンと resize2fs ツールのバージョンに関連していますが、ディスクサイズ変更操作には関連していません。事前にスナップショットを作成してデータをバックアップすることをお勧めします。詳細については、「スナップショットを作成する」をご参照ください。
Ext ファイルシステム (Ext2、Ext3、Ext4 など)
たとえば、拡張機能
/dev/vdb1
パーティションの Ext ファイルシステムを拡張するには、次のコマンドを実行します。sudo resize2fs /dev/vdb1
説明システムディスク上のパーティションのファイルシステムを拡張するには、コマンドの
/dev/vdb1
を/dev/vda1
に置き換えます。たとえば、拡張機能
/dev/vdc
raw デバイスの Ext ファイルシステムを拡張するには、次のコマンドを実行します。sudo resize2fs /dev/vdc
XFS ファイルシステム
たとえば、XFS ファイルシステムが /mnt ディレクトリにマウントされている場合に拡張するには、インスタンスのオペレーティングシステムに基づいて次のいずれかのコマンドを実行します。
Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、または CentOS 6 以降
type xfs_growfs || sudo yum install -y xfsprogs sudo xfs_growfs /mnt
Debian 8 以降または Ubuntu 14 以降
type xfs_growfs || sudo apt-get install -y xfsprogs sudo xfs_growfs /mnt
Btrfs ファイルシステム
たとえば、Btrfs ファイルシステムが /mnt ディレクトリにマウントされている場合に拡張するには、次のコマンドを実行します。
sudo btrfs filesystem resize max /mnt
次のコマンドを実行して、ファイルシステムが拡張されているかどうかを確認します。
df -Th
コマンド出力に表示されるファイルシステムサイズが ECS コンソールに表示されるファイルシステムサイズと同じ場合は、ファイルシステムが拡張されています。
次の図に示す
/dev/vdb1
パーティションのファイルシステムサイズ (59 GiB) は、ECS コンソールに表示されるファイルシステムサイズ (60 GiB) に近くなっています。これは、ファイルシステムが拡張されていることを示しています。ファイルシステム情報がストレージ容量を使用しているため、わずかなサイズの差があります。ファイルシステムを拡張した後、ファイルシステムサイズを確認します。
ファイルシステムサイズが指定された値に増加し、インスタンス上のビジネスアプリケーションが想定どおりに実行されている場合は、ファイルシステムが拡張されています。
ファイルシステムサイズが指定された値に増加していない場合は、作成したスナップショットを使用してディスクをロールバックします。詳細については、「スナップショットを使用してディスクをロールバックする」をご参照ください。
例
このセクションでは、パーティションとファイルシステムの拡張に使用できるサンプルコマンドを示します。例では、MBR パーティション、GPT パーティション、および raw ディスクが使用されています。コマンドは参照用です。実際のコマンドは、環境によって異なる場合があります。
例 1: MBR パーティションとパーティションの Ext4 ファイルシステムを拡張する
デバイス名: /dev/vda (システムディスク)
パーティション: /dev/vda1
ファイルシステムタイプ: Ext4
オペレーティングシステム: Alibaba Cloud Linux 3
/dev/vda1 パーティションとパーティションの Ext4 ファイルシステムを拡張するには、次のコマンドを実行します。
type growpart || sudo yum install -y cloud-utils-growpart
sudo yum update cloud-utils-growpart
sudo LC_ALL=en_US.UTF-8 growpart /dev/vda 1
sudo resize2fs /dev/vda1
例 2: GPT パーティションとパーティションの XFS ファイルシステムを拡張する
デバイス名: /dev/vdb (データディスク)
2 つのパーティション: /dev/vdb1 と /dev/vdb2
ファイルシステムタイプ: XFS
/dev/vdb2 がマウントされているディレクトリ: /mnt
オペレーティングシステム: Debian 12
/dev/vdb2 パーティションとパーティションの XFS ファイルシステムを拡張するには、次のコマンドを実行します。
sudo apt-get update
sudo apt-get install -y cloud-guest-utils
type sgdisk || sudo apt-get install -y gdisk
sudo LC_ALL=en_US.UTF-8 growpart /dev/vdb 2
type xfs_growfs || sudo apt-get install -y xfsprogs
sudo xfs_growfs /mnt
例 3: raw データディスクのファイルシステムを拡張する
デバイス名: /dev/vdc (パーティション分割されていない raw データディスク)
ファイルシステムタイプ: Ext4
オペレーティングシステム: CentOS 7
/dev/vdc raw ディスクの Ext4 ファイルシステムを拡張するには、次のコマンドを実行します。
sudo resize2fs /dev/vdc