ビジネスデータの増加によりElastic Compute Service (ECS) インスタンスのシステムディスクが過負荷になっていて、システムディスクの負荷を軽減するために特定のディレクトリに保存されているビジネスデータをデータディスクで保存する場合は、このトピックの操作を実行できます。 このトピックでは、特定のディレクトリに格納されているビジネスデータをデータディスクに転送し、そのディスクを使用してディレクトリに書き込まれた後続のビジネスデータを格納する方法について説明します。
このトピックの操作にはデータ移行が含まれます。これは、ビジネスシステムの通常の操作に影響を与える可能性があります。 ディスクの負荷を軽減するために、システムディスクのサイズを変更することを推奨します。 詳細については、「手順1: ディスクのサイズを変更してディスク容量を拡張する」をご参照ください。
前提条件
システムディスク使用率が100% 未満です。
重要このトピックの操作は、システムディスクの使用率が100% 未満の場合にのみ実行できます。 ECSインスタンスにログインし、df -hコマンドを実行して、ルートパーティションの使用率が100% に達しているかどうかを確認します。 ルートパーティションの使用率が100% に達した場合、問題のトラブルシューティングを行います。 詳細については、「Linuxインスタンスのディスク容量不足の問題の解決」をご参照ください。
システムディスクにビジネスデータを格納するデータディスクは、次の要件を満たしています。
データディスクは使用中 (In_use) 状態です。
データディスクは初期化され、ディスクのファイルシステムはマウントされません。 データディスクを初期化する方法については、「Linuxインスタンスでデータディスクを初期化する」をご参照ください。
次の例では、/userdataディレクトリに格納されているビジネスデータがAlibaba Cloud Linux 3.2104の /dev/vdb1パーティションに転送されます。 /userdataをビジネスデータを転送するディレクトリの名前に置き換え、/dev/vdb1をビジネスデータを転送するパーティションまたはデバイスの名前に置き換えます。
ワークフロー
手順
ステップ1: データをシステムディスクにバックアップする
偶発的な操作によるデータ損失を防ぐため、システムディスクのスナップショットを作成してディスクデータをバックアップすることを推奨します。 詳細については「スナップショットの作成」をご参照ください。
スナップショットに対して課金されます。 スナップショットの課金については、「スナップショット」をご参照ください。
手順2: 業務データをシステムディスクからデータディスクにコピーする
次のコマンドを実行して、/temporaryという名前のファイルディレクトリを作成し、データディスクパーティションをディレクトリにマウントします。
sudo mkdir /temporary sudo mount /dev/vdb1 /temporary
/userdataディレクトリ内のデータを、データディスクパーティションがマウントされている /temporaryディレクトリにバックアップします。 /userdataを、データをバックアップするディレクトリの実際の名前に置き換えます。
sudo cp -v /userdata/* /temporary
rsyncツールをインストールしてファイルをコピーし、コピーの進行状況を表示することもできます。
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に変更します。
sudo mv /temporary /userdata
/dev/vdb1データディスクパーティションを /userdataディレクトリにマウントします。 /dev/vdb1を実際のパーティション名に、/userdataを実際のディレクトリ名に置き換えます。
sudo mount /dev/vdb1 /userdata
df -Thコマンドを実行して、データディスクパーティションがディレクトリにマウントされているかどうかを確認します。 次の図は、/dev/vdb1パーティションが /userdataディレクトリにマウントされていることを示しています。
ステップ4: ビジネスシステムが期待どおりに実行されるかどうかを確認する
業務システムをすぐに再起動して、業務システムが期待どおりに実行されているかどうかを確認することを推奨します。
業務システムが期待どおりに実行されることを確認したら、/userdata_bakディレクトリを削除します。