6月 302012
 

 先週はファーストサーバ株式会社がサービスしているレンタルサーバでデータ消失事件が発生し、一部では何かと話題になっていた。サイボウズや EC CUBE をエンドユーザには ASP 的に売っていたこともあって、スケジュールが消えたりトランザクション情報が消えたりと何かと大変だったらしい。

 個人的にはバックアップを取っていない状態で RAID5 が崩壊したりしたこともあったし、何よりも業務として SaaS 的なものをいくつか扱っていることもあって、今回のインシデントは決して対岸の火事ではなく、他山の石としたい事例だった。後出しじゃんけんにはなるが、いくつか思ったことを書いておきたい。

 6/30 時点で「大規模障害の概要と原因について(中間報告)」が上がっているが、これを読む限りは今回のポイントはいくつかあって、ファーストサーバ側だと

  • そもそも「別のマシンでバックアップを取っている」と書いて売っているのに「同じマシンの別ドライブにバックアップ」だったのは違うのではないか? → ウェブサイト側に修正が入った
  • バックアップ「環境」と「データのバックアップ」は別物じゃないのか?
  • 複数世代管理されていないバックアップはバックアップとはいわない。
  • スタンバイ機を更新したときにデータ保全まで検証できなかったのか?
  • そもそもバックアップ系のスクリプト作成タスクは、バックアップを書き戻す手順まで作って初めてタスク完了じゃないのか?
  • SLA100% って相当コストがかかるよね? 無理じゃない?
  • 実は社員が地雷を仕込んでいたのではないか? バックアップ・リストアスクリプトのコードレビューはやった?

あたりだろうか。特にバックアップの複数世代は本当は重要で、今回はたまたま問題発生後すぐに分かったからいいものの、実運用では問題発生から数日~数週間後に判明することも多い。バックアップを 1 世代しか取っていない場合はこういうケースで詰んでしまう。レンタルサーバの場合、1 顧客に割り当てる見込みディスク容量が非常に多いこともあって複数世代バックアップは難しいが、SLA100% を謳うならやはり外せないポイントだろう。

Continue reading »

5月 262012
 

 我が家のネットワーク環境には、3ware 9650SE-4LPML で RAID 運用しているサーバが 2 台ある。そのうち 1 台、この blog 用の MySQL も稼動しているマシンの 3DM2 から以下のようなメールが来た。

May 24, 2012 02:02.03PM - Controller 0
ERROR - Drive timeout detected: port=1

 タイムアウトしただけでデグレードはしていないので HDD の故障というわけではない。そこで、smartmontools で S.M.A.R.T. 情報を取得してみた。

 通常、ハードウェア RAID カードの場合、RAID カード上のプロセッサが各 HDD にデータを読み書きする仕様になっている。そのため、ホスト側の CPU からはドライバがなくても RAID アレイが 1 台のディスクドライブに見えるしブートも可能となる反面、実ドライブにアクセスすることはできない。だが、3ware や LSI の RAID カードの場合、smartctl にオプション -d 3ware,N を追加することで実ドライブの S.M.A.R.T. 情報を取得することができる。N はポート番号で、デバイスファイルは /dev/twaX を指定する。X はコントローラ番号となる。

Continue reading »

5月 082012
 

 かなり以前に Postfix を DKIM 対応にするネタを書いたが、その後、dkim-milter は OpenDKIM にリプレイスされた。遅ればせながら今回、OpenDKIM に乗り換えてみた。dkim-milter のままでも問題はないが、1 MTA で複数のドメインに対して複数の DKIM-Signature を付けられるようになったので、ぜひ乗り換えるべきだと思う。

Continue reading »

4月 042012
 

 前回、Gentoo Box の Apache を 2.4.1 に上げたメモを書いたが、2.2 から 2.4 にするに当たって Upgrading to 2.4 from 2.2 – Apache HTTP Server を読むべきだと書いた。ただ、現状で公式に日本語翻訳されたものがないので、例によって超意訳をしてみた。間違いがある場合は指摘していただけるとうれしい。

Continue reading »

4月 032012
 

 2月にリリースされた GA 宣言済みの Apache 2.4.1 だが、ちょこちょこベンチマークも上がってきている(ftp-adminの憂鬱: Apache httpd 2.4.1を試してみた)。Gentoo Linux でも ~amd64 に降りてきたので、我が家ではここまでパフォーマンスを気する必要も無いこともあり、まずは LAN 内で動いているもののみ試してみた。2.2 からのアップグレードだとはまりポイントが何箇所かあるので、まずは何よりも Upgrading to 2.4 from 2.2 – Apache HTTP Server を熟読したほうがよい。(追記: 和訳してみた。Apache HTTPサーバ – Upgrading to 2.4 from 2.2 超意訳版)

 Linux 上でとりあえず静的ファイルをホストしているだけの Apache なら、ハマるポイントは 2 箇所ある。

  • Invalid command ‘User’, perhaps misspelled or defined by a module not included in the server configuration
  • Invalid command ‘Order’, perhaps misspelled or defined by a module not included in the server configuration

Continue reading »

2月 172012
 

 少し前に、息子に金魚を買ってあげようと思ってペットショップに行ったのだが、そこで格安で売られているチワワを見つけてしまい、ついつい買ってしまった。当時生後2ヶ月半前後で、特に障害もない。むしろチワワとしてもかなり可愛い部類に入っていて、どう見ても15万前後するような犬が Mac mini を買うような感覚で買えるお値段だったのでお救いするしかないと思った次第。

チワワ

 結局我が家ではリビングに犬用サークルを置いてそこで飼っているが、深夜帯は1匹そこで寝ていることもあって、室温の相当な低下が予想される。だが、当然寝ているのでどれくらいの室温になっているか全く不明なので、Strawberry Linux から出ている USB-RH を設置して、Gentoo Linux と ZABBIX を組み合わせてモニタリングすることにした。

USB-RH
Continue reading »

1月 252012
 

 自宅サーバに限らず、インターネットでサーバを立てる場合、その死活監視が問題になる。要件としては、

  • 24 時間 365 日自動で監視すること。
  • 問題が発生した場合は、メールや IRC などで迅速に通知できること。
  • L2・L3 レベルに加えて、Web死活監視など L7 レベルの監視もできると望ましい。

あたりだろうか。さらに死活監視内容は 2 パターンあって、

  • ネットワーク内の全てのサーバ機器が正常に動作しているか監視。
  • ネットワーク外からサービスが正常に見えているか監視。

となる。ネットワーク外からネットワーク内のサーバ機器全てが見える状況はセキュリティの観点から全くあり得ないので、前者と後者は常にセットで実施する必要がある。そして後者は監視対象とは別のネットワークに置く必要がある。理由は簡単で、

  • 監視対象のネットワークが存在する回線に問題がある場合、ネットワーク内にある死活監視からはアラートを送信できない。
  • 参照する DNS の場所やファイアウォールのルールなどの関係で、ネットワーク内から見えるステータスとネットワーク外から見えるステータスが同じとは限らない。

が挙げられる。

 長らく我が家の自宅サーバは外部死活監視が存在しない状況だったが、ISP の仕様上、10,800 秒 (= 7 日) ごとに接続が切れること、そのタイミングで外側のネットワークインターフェイスを named が listen しなくなることがあることから、さくらの VPS で外部死活監視を行うことにした。

Continue reading »