AWSのEBSダイエット

rsyncの以前にメモした方法では、うまくいっていない事が判明。

 

と。いう事で。

 

  1. ターゲットインスタンスを停止し、スナップショット(big-snap)を作成
  2. big-snapからボリューム(big-volume)を作成
  3. 減量させたボリューム(small-volume)も作成
  4. ターゲットインスタンスをスタート(他に活きているインスタンスが無かったので・・・)
  5. big-volumeとsmall-volumeを4のインスタンスへデタッチ
    big-volumeは、/dev/xvdf。small-volumeは、/dev/xvdg。ってな具合。
  6. ターゲットインスタンスにシェルログインし、rootになり、
  7. e2fsck -f /dev/xvdf
  8. resize2fs -M -p /dev/xvdf
    これをすると、blocksizeが表示されるので、この数字を使ってチャンクナンバー(ddのcount)を計算する。
    blocks * 4 / (chunk_size_mb * 1024) 切り上げで整数に。
    ちなみにchunk_size_mbは、16Mが推奨。(chunk_size_mb = 16)
  9. dd if=/dev/xvdf ibs=16M of=/dev/xvdg obs=16M count=チャンクナンバー(整数値)
  10. resize2fs -p /dev/xvdg
  11. e2fsck -f /dev/xvdg
  12. で。big-volumeとsmall-volumeをデタッチ
  13. samll-volumeのスナップショットをとり、そのスナップショットからイメージ(AIM)を作成
  14. 作ったAIMをLaunch。(CPUは、ターゲットインスタンスを参照し、キメ打ち)

で。ダイエット版がブートしました。