ルートボリュームをXFSに変換するか、2つ目のボリュームを作成できます。個人的には、後者の方が柔軟性が高いので、後者を好みます。
オプション1:ルートボリュームをXFSに変換する
- インスタンスを停止します(終了ではありません)(インスタンスAとしましょう)
- 新しいインスタンスを開始します(インスタンスBとしましょう)
- インスタンスAからルートボリュームを切り離し、インスタンスBに接続します。
- 2番目のEBSボリュームを作成し、インスタンスBに接続します
- 新しいEBSボリュームをXFSとしてフォーマットします(
xfsprogs
まだ行っていない場合はインストールします)
- すべてのデータを最初のボリュームから新しいボリュームにコピーします(例:を使用
rsync -aHAXxSP /source /target
)
- インスタンスBから新しいボリュームを切り離し、インスタンスAのルートボリュームとして接続します。
- インスタンスAを起動
- インスタンスBを終了します(元のルートボリュームは存続するはずです。好みに応じて機能するまで保持してください)。
ルートボリュームを別のインスタンスに接続する理由は、使用中のボリュームでは困難な一貫性を実現するためです。
オプション2:データを2番目のEBSボリュームに移動する
- 2番目のEBSボリュームを作成し、インスタンスに接続します。XFSとしてフォーマットしてマウントする
- 新しいボリュームに移動するディレクトリを特定します(考慮すべきものとしては、/ var / log、/ var / lib / mysql、/ var / www、/ var / spool / mail、/ var / vmail)。
- 書き込みロックを削除するために、できるだけ多くのサービスを停止します
lsof | grep /path/to/dir
残りの書き込みロックを確認するために使用します
- ディレクトリを新しいEBSボリュームに移動します
- 新しいディレクトリを古い場所にマウントバインドします(つまり
mount -o bind
/mnt/path/to/dir /orig/path/to/dir
)
- ディレクトリごとに繰り返します
- サービスを開始して、すべてが機能していることを確認します
/etc/fstab
ファイルを編集して、マウントポイントを永続的にします。例えば:/mnt/path/to/dir /orig/path/to/dir bind defaults,noatime,bind 0 0
再起動して、すべてが存続し、機能することを確認します。ルートボリュームを少し縮小することも検討してください。うまくいけば、すべてのデータが削除されてもルートボリュームが大きくならない(または変化しない)はずです。
(言及のポイントとして、にfsfreeze
含まれているを使用してext4ファイルシステムをフリーズできる可能性がありますutil-linux-ng
)。