印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
MovableType SSD に障害発生,そして主の鍵は冷たい鍵箱の中に

ブログサーバの SSD に障害が発生した。復旧しようとするも,Apache が起動してくれない。情報はすべてブログの中にあり。まさに「鍵は鍵箱の中」状態。

■ ■ ■

昨年2013年にブログサーバのハードディスクを SSD に換装した (nlog(n): ThinkPad T42 のハードディスクを SSD に換装)。ディスクアクセスが高速になり快適だったのだが,最近 IO Error を頻繁に出すようになってしまった。fsck をかけると悪くなる一方。これは何とかしなければ。

OS とデータの復旧

応急処置的に古い 2.5 インチハードディスクを掘り出してきて,データをコピーすることで,データがすべて吹っ飛ぶというような最悪の事態は免れた。バックアップは重要だ (してないけど)。大まかな復旧手順は以下の通り。

  1. SSD の壊れかけのデータを外付けハードディスクにコピー (/etc, /var, /home)
  2. SSD をハードディスクに換装
  3. Vine Linux 4.2 を CD からインストール
  4. インストールしたディスクに退避データを上書き
  5. 上書きしたデータごとハードディスクを fsck
  6. パッケージのアップデートと追加インストール (apt-get, cpan)

SSD から退避したデータは,レイディオのように壊れかけているので (笑),戻した後に fsck をかけることが必要である。一度目はこれを忘れていたので,ネットワークにつながっていたのに接続を更新したら二度とつながらなくなるなどの不可解な現象に見舞われた。

失敗したのは /usr/local をバックアップしていなかったことである。/usr はどうせ CD から復旧できるからと高をくくっていたら,/usr/local は復旧できないことに後から気がついた。次もまた忘れちゃうと思うので,もう /usr/local でなくて /etc/local にしてしまおうかと思っている。

Bind

自宅内ネットワークの名前解決に bind を再インストール。これがないと始まらない。そういえば,bind についてはブログ記事にしていなかったような…。

ダイナミック DNS

Dyn.com の更新プログラムをインストール (nlog(n): ddclient 3.8.1 の設定)。

Apache 関連

Apache モジュールのインストール

まずは mod_perl2 から (nlog(n): Apache2+mod_perl2 で MovableType 2.661)。

# apt-get install mod_perl2

libapreq2 のインストールには apache2-devel と sqlite3-devel が必要というのは,Apache の起動に失敗したエラーログから分かる。順番にインストールする手順は以下の通り。

# apt-get install apache2-devel sqlite3-devel
$ wget http://search.cpan.org/CPAN/authors/id/I/IS/ISAAC/libapreq2-2.13.tar.gz
$ tar xf libapreq2-2.13.tar.gz
$ cd libapreq2-2.13
$ ./configure
$ make
# make install

mod_fcgid のインストールもソースから。

$ wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz
$ tar xf mod_fcgid-2.3.9.tar.gz
$ cd mod_fcgid-2.3.9
$ ./configure.apxs
$ make
# make install

PHP5 のインストールはパッケージで。

# apt-get install libphp5 php5-devel php5-apache2
# apt-get install php5-imap php5-mysql php5-sqlite

CPAN モジュール

Apache の SSL 起動に必要な CPAN モジュールのインストール。

# cpan -i IO::Socket::SSL
# cpan -i Apache::DBI

オレオレ証明書を移行し忘れたので作り直し (nlog(n): Apache を SSL 対応に)。

Movable Type 関連

Movable Type 起動のために以下をインストール。

# cpan -i Jcode
# cpan -i Apache2::Request
# apt-get install MySQL-server MySQL-client MySQL-devel perl-DBD-MySQL
# apt-get install perl-GD

mt-build で表示されるエラーでモジュール不足をチェックしてインストール。

# cpan -i Test::Fatal
# cpan -i LWP::UserAgent
# cpan -i HTML::TreeBuilder
# cpan -i HTML::TreeBuilder::Select
# cpan -i Unicode::Escape

困ったのは次のエラー。

Got an error: Can't locate object method "new" via package "MT::App::CMS" at mt.cgi line 37, <DATA> line 855.

mt.cgi の 37 行目ではプラグインを呼び出していたので,プラグインが使っている CPAN モジュールをインストール。

# cpan -i HTML::Filter
# cpan -i Digest::SHA1
# cpan -i Class::Accessor::Lite
# cpan -i Text::TestBase
# cpan -i Lingua::JA::Regular::Unicode

追加で自作プラグイン用の CPAN モジュールも (笑)。

# cpan -i Date::Calc
# cpan -i Calendar::Japanese::Holiday

携帯用サイトのために次のモジュールをインストール。

# cpan -i HTML::Template

その他

Webalizer も再インストール (nlog(n): Webalizer のインストール)。

# cpan -i Escape
# cpan -i URI::Escape::XS    
# apt-get install gd
# rpm -ivh webalizer-2.01_10-1tpu3.i386.rpm

おわりに

Apache の設定他,ほとんどのコンフィグレーションファイルは残っていたにも関わらず,再構築には手間と時間がかかった。休日返上マジ勘弁。データセンターを使うという手もいずれは考えなければならんな。Movable Type 2.661 の情報が少ないというのも困りもの。Google 検索すると自分のサイトの情報が出てきてしまう。う〜ん。

2014年6月28日追記:
修理に出すのを忘れてしまいました (nlog(n): SSD を修理に出すのを忘れていたら保証が切れた)。

Posted by n at 2014-02-10 23:08 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?