ユースケースを実現するための 2 つのオプションがあることを確認してください。
ルート ボリュームを 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
)。