Elastic Compute Service (ECS) インスタンスのシステムディスクが、増え続けるビジネスデータによって過負荷状態になっており、特定のディレクトリに保存されているビジネスデータをデータディスクに移行してシステムディスクの負荷を軽減したい場合は、このトピックで説明する操作を実行できます。このトピックでは、特定のディレクトリに保存されているビジネスデータをデータディスクに転送し、その後のビジネスデータをそのディレクトリに書き込む際にデータディスクを使用する方法について説明します。
このトピックの操作にはデータ移行が伴い、業務システムの正常な運用に影響を与える可能性があります。システムディスクのサイズを変更して、ディスクの負荷を軽減することを推奨します。詳細については、「ステップ 1:ディスクのサイズを変更してディスク容量を拡張する」をご参照ください。
前提条件
システムディスクの使用率が 100% 未満であること。
重要このトピックの操作は、システムディスクの使用率が 100% 未満の場合にのみ実行できます。ECS インスタンスにログインし、df -h コマンドを実行して、ルートパーティションの使用率が 100% に達しているかどうかを確認してください。ルートパーティションの使用率が 100% に達している場合は、問題をトラブルシューティングする必要があります。詳細については、「Linux インスタンスの「no space left」問題の解決」をご参照ください。
システムディスク上のビジネスデータを保存するデータディスクが、以下の要件を満たしていること:
データディスクが [使用中] (In_use) 状態であること。
データディスクが初期化済みであり、かつディスクのファイルシステムがマウントされていないこと。データディスクの初期化方法については、「Linux インスタンス上のデータディスクの初期化」をご参照ください。
以下の例では、Alibaba Cloud Linux 3.2104 環境で、/userdata ディレクトリに保存されているビジネスデータを /dev/vdb1 パーティションに転送します。実際の操作では、/userdata をビジネスデータを転送したいディレクトリ名に、/dev/vdb1 を転送先のパーティション名またはデバイス名に置き換えてください。
ワークフロー
操作手順
ステップ 1:システムディスクデータのバックアップ
誤操作によるデータ損失を防ぐため、システムディスクのスナップショットを作成してディスクデータをバックアップすることを推奨します。詳細については、「手動でのスナップショットの作成」をご参照ください。
スナップショットは有料です。スナップショットの課金の詳細については、「スナップショット」をご参照ください。
ステップ 2:ビジネスデータのデータディスクへのコピー
次のコマンドを実行して、/temporary という名前のファイルディレクトリを作成し、データディスクパーティションをそのディレクトリにマウントします。/dev/vdb1 を実際のパーティション名に置き換えてください。
sudo mkdir /temporary sudo mount /dev/vdb1 /temporary/userdata ディレクトリのデータを、データディスクパーティションがマウントされている /temporary ディレクトリにバックアップします。/userdata を、データをバックアップしたい実際のディレクトリ名に置き換えてください。
sudo cp -rv /userdata/. /temporaryrsync ツールをインストールしてファイルをコピーし、コピーの進捗状況を確認することもできます。
sudo yum install -y rsync rsync --progress /userdata/* /temporary
ステップ 3:データディスクのマウントポイント設定
ステップ 2 が完了したら、次のコマンドを実行して、/temporary ディレクトリにマウントされているファイルシステムをアンマウントします。
sudo umount /temporary次のコマンドを実行して、/userdata ディレクトリの名前を /userdata_bak に変更します。このディレクトリは、データ移行の例外に備えた短期的なバックアップとして使用します。
sudo mv /userdata /userdata_bak警告このステップでは、元のビジネスデータ保存ディレクトリの名前が変更されるため、業務システムでエラーが報告されたり、短期的なデータ損失が発生したりする可能性があります。データ移行が業務に与えるリスクを評価し、オフピーク時にデータ移行操作を実行することを推奨します。
次のコマンドを実行して、/temporary ディレクトリの名前を /userdata に変更します。/userdata を、ビジネスデータが保存されている実際のディレクトリ名に置き換えてください。
sudo mv /temporary /userdata/dev/vdb1 データディスクパーティションを /userdata ディレクトリにマウントします。/dev/vdb1 を実際のパーティション名に、/userdata を実際のディレクトリ名に置き換えてください。
sudo mount /dev/vdb1 /userdatadf -Th コマンドを実行して、データディスクパーティションがディレクトリにマウントされているかどうかを確認します。次の図は、/dev/vdb1 パーティションが /userdata ディレクトリにマウントされていることを示しています。

ステップ 4:業務システムの動作確認
業務システムを直ちに再起動し、正常に動作するか確認することを推奨します。
業務システムが正常に動作することを確認した後、/userdata_bak ディレクトリを削除します。