今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

ぶっ壊したVPSサーバーを復活させるまでの試行錯誤

VPSサーバーをぶっ壊したのが5月20日

オペミスでVPSサーバーぶっ壊した( ;∀;) - 今日の役に立たない一言 − Today’s Trifle! −

使ってるサーバーは、serversman@VPS
ぶっ壊した経緯を簡単に書くとこんな感じ。

yum remove で必須ファイルを削除してしまった
VPSを停止
・serversman@Disk をサクッと契約
・serversman@VPS の現状を serversman@Disk にバックアップ
VPSを初期化ついでにCentOS6.3にバージョンアップ
・serversman@Disk をCentOSにマウント
・backup.tar を展開するが壊れていて展開できない

というのが前回の話。

その後、backup.tar をローカルの Macbook にコピーする。最初、HTTPダウンロードしようとしたけど、やたら時間がかかるので、scp でやりなおした。

Macbook で backup.tar を展開してみたが、やっぱり壊れてて多くのファイルを展開できない。

serversman のサポートに問い合わせてみたら、数日後にこんな回答が来た。

また、お客様のbackup.tarファイルの状態についても調査を実施させていただきましたところ、弊社検証環境では、エラーも無く最後までリストア動作に問題はございませんでした。

しかしながら、お客様のbackup.tarファイルにおきましては、OS起動に必要なファイルが欠けており起動に失敗する状態でございましたため、そのことがシステムで検知された結果、リストア失敗としてお客様へ通知されているとの事でございました。

つまりバックアップされてるファイル自体は壊れてないということだ。
マウントしたserversman@Disk のファイルを、VPS上にコピーしてみた。
そこで重大な事実に気付いた。

# ls -l /mnt/smdisk/backup/backup.tar
-rwxrwxrwx 1 root root 15417006080 May 20 09:45 /mnt/smdisk/backup/backup.tar
# cp -p /mnt/smdisk/backup/backup.tar .
# ls -l backup.tar
-rwxrwxrwx 1 root root 15408374033 May 20 09:45 /mnt/smdisk/backup/backup.tar

コピーしたファイルのサイズが違うんですけどぉぉぉぉぉぉ!!!

それをGoogle+Twitterにポストした。

そしたら、Google+でsparse file じゃないかとコメントをもらった。
なるほどと思って、オプションをつけてコピーしなおしてみた。sparseオプションは auto/always/never の3種類があるけど、どれを使っても正常にコピーできなかった。

# cp -p --sparse=never /mnt/smdisk/backup/backup.tar .
# ls -l backup.tar
-rwxrwxrwx 1 root root 15408467324 May 20 09:45 backup.tar

rsync でも正常にコピーできない。

# rsync -avS /mnt/smdisk/ .
sending incremental file list
./
backup/
backup/backup.tar
rsync: read errors mapping "/mnt/smdisk/backup/backup.tar": No data
available (61)
WARNING: backup/backup.tar failed verification -- update discarded
(will try again).
backup/backup.tar
rsync: read errors mapping "/mnt/smdisk/backup/backup.tar": No data
available (61)
ERROR: backup/backup.tar failed verification -- update discarded.

sent 30837776238 bytes  received 59 bytes  4134027.25 bytes/sec
total size is 15417006080  speedup is 0.50
rsync error: some files/attrs were not transferred (see previous
errors) (code 23) at main.c(1039) [sender=3.0.6]

最初にあきらめたHTTPダウンロードを試してみた。ダウンロードが終わるまでに6時間近く待たされた。

待たされたけど、サイズが同じファイルを取得できた!!!(5月31日)
ダウンロードしたファイルをscp でサーバーにアップロード。サーバー上で tar での展開も問題なく成功。

VPS上に構築してたWebサイトを復旧できたのが6月1日。

10日以上もアクセスできない状態になったままだったので、たくさんの人に迷惑をかけた模様。たいしたことは書いてないのに、JoomlaとかWordPressのサイトはそれなりにアクセスがあったりする。


それにしても、マウントしたファイルを正常にコピーできないのはなぜなんだろう?