AWSのEBSダイエット
rsyncの以前にメモした方法では、うまくいっていない事が判明。
と。いう事で。
- ターゲットインスタンスを停止し、スナップショット(big-snap)を作成
- big-snapからボリューム(big-volume)を作成
- 減量させたボリューム(small-volume)も作成
- ターゲットインスタンスをスタート(他に活きているインスタンスが無かったので・・・)
- big-volumeとsmall-volumeを4のインスタンスへデタッチ
big-volumeは、/dev/xvdf。small-volumeは、/dev/xvdg。ってな具合。 - ターゲットインスタンスにシェルログインし、rootになり、
- e2fsck -f /dev/xvdf
- resize2fs -M -p /dev/xvdf
これをすると、blocksizeが表示されるので、この数字を使ってチャンクナンバー(ddのcount)を計算する。
blocks * 4 / (chunk_size_mb * 1024) 切り上げで整数に。
ちなみにchunk_size_mbは、16Mが推奨。(chunk_size_mb = 16) - dd if=/dev/xvdf ibs=16M of=/dev/xvdg obs=16M count=チャンクナンバー(整数値)
- resize2fs -p /dev/xvdg
- e2fsck -f /dev/xvdg
- で。big-volumeとsmall-volumeをデタッチ
- samll-volumeのスナップショットをとり、そのスナップショットからイメージ(AIM)を作成
- 作ったAIMをLaunch。(CPUは、ターゲットインスタンスを参照し、キメ打ち)
で。ダイエット版がブートしました。