2012秋のファイルサーバ復旧 07 データを移動したり

前回、rsyncでデータをコピースルようにして仕事に向かいました。
帰宅してみるとrsyncは終わっていたのですが、

# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda3              14729016    1280692  12688048  10% /
/dev/sda1                101086      12180     83687  13% /boot
tmpfs                   1020808          0   1020808   0% /dev/shm
/dev/sdb             2884285104 2750092700         0 100% /var/storage/00/main
/dev/sdc             2884285104 2797531524         0 100% /var/storage/00/mirror
/dev/sdd             2884285104 2736362616   1409160 100% /var/storage/01/main
/dev/sde             2884285104 2736362632   1409144 100% /var/storage/01/mirror
/dev/sdf             2884285104 2797532508         0 100% /var/storage/02/main
/dev/sdg             2884285104    205948 2737565828   1% /var/storage/02/mirror

こんなことになってました。sdfの空きがゼロ…。
これではいままでと同じです。
しかも使用量がちょっと多い…。
空きが足りなくて全部コピーしきれてないのでは?
という不安もあるので一応もう一度rsyncしてみます。


# rsync -av /var/storage/00/main/data /var/storage/02/main
sending incremental file list

sent 6092860 bytes  received 14782 bytes  53341.85 bytes/sec
total size is 2860450281344  speedup is 468339.55

一応大丈夫でした。
使用と使用可の合計が全体量と一致しないのは何故か、ぐぐってみるとext3がリザーブ領域というものを予め確保しておいているからとのことでした。
異常ではないっぽい。

Linuxでdfを使ってディスクの使用状況を調べると、↓のように全.. - 人力検索はてな
Linuxファイルシステムを最適化する - SourceForge.JP Magazine : オープンソースの話題満載

じゃあ、不要なファイルを大量に削除したらちゃんと空きができるんだろうと思ったので、sdf→sdgのrsyncをやる前にsdbから不要なファイルだけ削除してみます。
(今後sdf側に保存しておく予定のデータだけを削除)

# cd /var/storage/00/main/data/XXXXXX
# rm -rf *

時間がかかりそうだったので放置して出社。
そして帰宅すると終わっていたので確認

# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda3             14729016   1280772  12687968  10% /
/dev/sda1               101086     12180     83687  13% /boot
tmpfs                  1020808         0   1020808   0% /dev/shm
/dev/sdb             2884285104 991249712 1746522064  37% /var/storage/00/main
/dev/sdc             2884285104 2797531524         0 100% /var/storage/00/mirror
/dev/sdd             2884285104 2736362616   1409160 100% /var/storage/01/main
/dev/sde             2884285104 2736362632   1409144 100% /var/storage/01/mirror
/dev/sdf             2884285104 2797532508         0 100% /var/storage/02/main
/dev/sdg             2884285104    205948 2737565828   1% /var/storage/02/mirror

すごく減ってます。
期待通りです。

こうなると、最初に予定していた前回の手順とは違ってくるので手順変更です。


  • 黒文字 = 変更なし
  • 黒文字取消線 = 完了
  • 赤文字 = 変更
  • 赤文字取消線 = 変更して完了
  • 青文字取消線 = やらなくなった

  1. Bの不要ディレクトリを削除(/var/log, /var/tmp, /tmp のシンボリックリンク先にしていたもの)
  2. yumでrsyncをインストール
  3. B→Cでrsyncで同期。サーバが止まる前の状態の差分反映をしていないため。
  4. B,Cドライブ(パーティション)にLABELを設定してfstabの記述をLABEL指定に変更
  5. D→Eも同様に同期。
  6. D,Eドライブ(パーティション)にLABELを設定してfstabの記述をLABEL指定に変更
  7. F,Gドライブにパーティション作成、フォーマット、LABEL設定
  8. BのデータをFにrsyncでコピー。実際のデータは100%じゃないのでFにコピーした時には98%位になるはず。
  9. AにあったデータでFに保存することにしたデータは削除
  10. Fのデータで、Aに残しておくデータを削除
  11. FのデータをGにrsyncでミラーリング。
  12. B,Cをフォーマット
  13. FからBに移動する必要のあるデータだけをディレクトリ単位でrsyncでコピー
  14. BからCへrsyncでコピー
  15. Bに移動したデータをFから削除
  16. FからGへrsyncで削除した分を反映
  17. B→Cへの反映rsyncをcronに登録
  18. D→Eも同様
  19. F→Gも同様
では空になったディレクトリを削除し、Fからデータを削除します。

# cd /var/storage/02/main/data/
# cd xxxx
# rm -rf *
# cd ../
# rmdir xxxx
(繰り返し)

削除完了。要領確認します。

# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda3             14729016   1280772  12687968  10% /
/dev/sda1               101086     12180     83687  13% /boot
tmpfs                  1020808         0   1020808   0% /dev/shm
/dev/sdb             2884285104 991249708 1746522068  37% /var/storage/00/main
/dev/sdc             2884285104 2797531524         0 100% /var/storage/00/mirror
/dev/sdd             2884285104 2736362616   1409160 100% /var/storage/01/main
/dev/sde             2884285104 2736362632   1409144 100% /var/storage/01/mirror
/dev/sdf             2884285104 1806492164 931279612  66% /var/storage/02/main
/dev/sdg             2884285104    205948 2737565828   1% /var/storage/02/mirror

減りました。Bが37%なのでFは63%付近になるだろうと思っていたけど66%でした。
これもきっと予約領域がどうとかそういうことなんだろう。

ではrsyncでF→Gのミラーリングです。

# rsync -av /var/storage/02/main/data /var/storage/02/mirror

これまた66%分なので偉い時間がかかるはず。
寝て待ちます。
朝になったら終わってるはず。

コメント