今回は、前回予告した通り、筆者が経験したことのある修羅場について書いてみます。なかなか微妙な内容で、セミナーとかパネルディスカッションとか(飲みの席とか)では話したことはあるのですが、字にするのはたぶん初めてです。
普通修羅場というと、技術的なトラブルに関するものだと思うのですが、ある程度の経験値を積むと、対処できない技術的なトラブルというのはなくなるものです。もし対処できない技術的なトラブルがあるとすると、もうそれは誰にもどうにもできないので諦めるしかないとかになります。ここであえて「技術的な」と書いたのは、意味があります。筆者が経験した修羅場は技術的なものではなく、法的というか金銭的なものでした。
[Case1]ネットワーク機器差し押さえでルータ13台→4台に
まず1つめは、あるデータセンターの運用をサポートというか代行していたときのことです。そのデータセンターは実は購入しているネットワーク機器のほとんどの代金を払っておらず、ある日突然、裁判所の執行官という人がその機器を購入した業者を連れて差し押さえにきたという事件がありました。
私は急いでそのデータセンターに数人で駆けつけました。自社のデータセンターではなく運用を請け負っていただけなので、機器を差し押えられてそこのサービスが停止しても、本来は埒外のことではあるのですが、インフラエンジニアというのはどういう形にせよネットワークやサーバが止まるのはとても嫌なものなので、なんとかしたいと思ってしまうものです。
撤去秒読み! 待ったなし
現場に到着してみると、裁判所から来た人と、機器を販売した会社(A社とします)の管理部長のような人が来ていました。それはもう強硬な態度で、今日残りの金額を払ってもらわなかったら全部機器を持っていくと言われました。
正確に覚えてはいないのですが、たしか13台程度のネットワーク機器があり、そのうち9台が差し押さえというか撤去の対象だったと思います。その内訳というのは、Ciscoの75xx(当時のハイエンドルータです)を始めとして5、6台、またExtreme(当時Cisco対抗の新進気鋭の会社)が7、8台というような状況でした。それらのネットワークがスタティックルーティングやOSPFによってルーティングされていました。
正直、13台の構成から9台がなくなるというのはかなり困った状況です。今から思えば無謀ですが、とりあえずドアの前に数人ディフェンスで立たせておいて[1]、なんとか思いとどまってもらうよう話をしてみました。
機器の代金を支払う云々は、その当時自分が働いていた会社の話ではなくて、そのデータセンターをもっている会社(B社とします)のことなので、もうこれはどうにもなりません。またそのB社の人にはなかなか連絡がつかない状況で、もはや八方ふさがりでした。まあ、機器の代金を払っていないということは、連絡がついてもどうにもならなかった気もしますが。
なので、A社の管理部長のような人に、せめて9台ではなくて4、5台とかそのくらいにしてくださいという話をした覚えがあります。でもそれらの話は一切聞いてもらえず、とにかく今日支払ってもっていかないか、全部もっていくかの二択だということです。その管理部長の人も、携帯電話で上司の人に早くカタをつけろと怒られている場面を見ました。私もしょうがないので「そのデータセンターを持っているB社に急いで連絡を取ろうとしているので、とにかくそれまで待ってくれ」と正直に伝えるしかない状況でした。
撤去作戦開始
そんなこんなで状況が膠着してしまって、執行官の人にも「早くしてくださいよー」と言われて、もうこれはどうにもならないかなーと思いかけたころ、その時までは現場には自分のチームつまりエンジニアしかいなかったのですが、数時間経過したところでそういう法的な話がわかる人がようやく到着しました。そこでA社とのやり取りはその人にまかせて、ここでようやくネットワーク図をじっくり見ることができました。
30分ほどかけて考えてみると、なんとか残りの4台でネットワークをギリギリ再構築できるメドが立ちました。残る4台の機器に、バックボーンのroutingができる(BGPが扱える)機器があり、またポート数が多い機器(L3スイッチ)もあったのが幸いでした。ただ、本当にギリギリで、ポートが1つ余るくらいだったので、2つ以上ポートが死んでいたらもうおしまいです。そこで、当時自分がいた会社でもExtremeの機器を扱うIT商社と付合いがあったので、そこに連絡して代替になるような機器をしばらく貸してくれとお願いしたところ、快く聞いてもらえました。
この時点で、B社には相変わらず連絡がとれない状況だったので、A社の人と執行官の人に「差し押さえしてもらっていいです」と伝えました。
しばらくしてA社のエンジニアが10人くらい到着しました。そこでA社のエンジニアに、機器を撤去して欲しい順を伝えました。A社のエンジニアは「支払いがないから差し押さえだ!」という感じではなく、淡々と撤去作業をする感じでしたので、そういった要望は快く聞いてもらえました。エンジニア同士の共感とかあったのかもしれません。
9台撤去する際に、まずOSPFのエリアごとにネットワークの再設定をして、そこにぶら下がるサーバを順次別のネットワーク機器に収容していき、それが終わったらshutdownして撤去、という手順を繰り返していきました。
そして最後に、大本のCisco 75xxが残りました。このルータはバックボーンにつながっていてBGP routingをしているので、さすがに残った機器で代替はできません。ところがその時、幸いなことに、私がいた会社(C社にしましょう)のデータセンターからB社のデータセンターに、管理用の回線(広域イーサネット)を2本引きこんでいたのです。そこでB社のデータセンターからその2本を使って上流をC社に向けて、C社からBGPのannounseをしてあげることにしました。この2本の管理用の回線がなかったら、もうどうにもならなかったですね。
何だこのチームの能力は……
そうこうしているうちに、先ほど頼んだIT商社から「機器をお持ちしましたー!」とまるで出前のようにExtremeのスイッチが届きました。結果的にはそのExtremenのスイッチは使わなかったのですが、代替機ができたことで精神的な安堵感はかなり増しました。
こうして、ルータやスイッチを1台ずつ落とすそばから他の機器を再設定していっていくし、代替機も届くしという状況で、A社のエンジニアがぼそっと「なんだこのチームの能力は……」というようなことを言っていたそうです。
そしていよいよ、あとはBGPのrerouteだけという状況になりました。BGPだけはリモートから作業したくなかったので、C社のデータセンターに急いで戻ることにしました。そこでA社の人に「今日は1日すみませんでした。これで自社に戻ります」と伝えたときには、それまで1日中、升毅のような顔だった管理部長が笑って「おつかれさまでした」と言ったのがとても印象的でした。
結局、13台中9台の機器を撤去されたのですが、トータルのサービスダウンは30分程度で済みました。まあ本来はB社がA社にちゃんと代金を支払ってさえいれば良かったのですが、それでもエンジニアとしてはサービスダウンでB社のお客さんに迷惑がかかるのが最小限で済んで良かった、と思いました。
[Case2]消えたエンジニア──パスワードはどこに?
撤収エンジニアの置きみやげ
2つ目は、これもまたB社の話なのですが、B社はA社にお金を払っていなかったのに加えて、エンジニアにも給料を払っていませんでした。そしてエンジニアがみんないなくなってしまったのです。まあ、なのでC社で運用を代行することになったのですが……。ところがB社のエンジニアは置き土産というか、機器のパスワードを明かさないままいなくなってしまいました。
筆者はB社とエンジニアたちのやりとりは知りませんが、「パスワードが欲しければ金を払え」というようなやり取りがあったのかもしれません。
B社の人からは、パスワードなしの状態をなんとかして欲しいと結構な無茶を言われましたが、もちろんネットワークやサーバ機器にはパスワードリカバリの機能があるのが一般的です。まずサーバは全部Solarisだったので、CDブートでかたっぱしから復旧させていきました。またCiscoや他のネットワーク機器もパスワードリカバリの手順があるのでそれに従って、端から復旧させていきました。
ところが、Extremeだけは状況が違いました。
Extremeの機器はパスワードをリセットすると、設定も全部消えてしまうのです。ネットワーク機器の2/3くらいはExtremeだったので、Extremeの設定を見ずにネットワークのルーティングマップを作ることはできません。でもその設定を見るためにパスワードリセットすると設定が消えてしまうのです。これはさすがに困りました。
Radiusサーバの謎を解け
ところがある日、復旧させたSolarisの中で、用途が良くわからない機器があったので中身を調べていると、それはRadiusサーバであることがわかりました。B社でダイアルアップサービスをやってるわけでもないのに、なんでRadius?と一瞬思いましたが、もしかしてExtremeの機器はRaduis認証なのではないかと思い、Raduisの設定を書き換えてパスワードを変更し、そのパスワードでExtremeにログインしたらビンゴ! 見事全ての機器にログインすることができました。
[Case3]サーバ持ち出しシャットアウト!ネットワーク経由でデータ救出
最後の3つ目は、これは当時いた会社(C社)でのことです。あるプロバイダ(D社にしましょう)が倒産して民事再生をすることになり、C社でそれを引き受けることになりました(この件は社名の推測ができそうです……)。
ところがD社は倒産しているので、いろいろな会社に債務がある状況です。まあそれを整理しましょう、というのが民事再生という手続なのですが、そうはいっても納得しない会社はたくさんありました。D社のサーバを置いているデータセンターの会社(E社にしましょうか)もその1つでした。
債権があるから持ち出し厳禁!
私は民事再生とかにはそれほど詳しくないので、裁判所の手続きでC社が引き受けることになったのだから、淡々とD社のネットワークを移設しよう、と思っていました。なのでE社のデータセンターに出向いて、機器の搬出作業を行いました。ところが、1/3ほどの機器を搬出した時点でE社の偉い人が出てきて「うちはD社に債権があるんだから持って行っては駄目だ」と、ドアを閉めてしまいました。
正直なところ、そのときは「あれ、民事再生の手続が決まっているのにそんなことあるのか?」と思ったのですが、詳しい人に聞いてみたところ、「商事留置権」という権利があって、債権者が債務者の物を物理的に持っている場合にはそれを渡さなくていい、という法律があるそうなのです。それまでに持ち出した1/3の機器は、持ち出してしまっているので別にいいそうなのですが、残った機器は当然渡してくれません。
残った2/3の機器の中には、ユーザのマスターデータベースなどもありました。機器は別に他のサーバで代替することもできますが、データはさすがにどうもなりません。ただ、ネットワーク経由のアクセスは許可されていました。しょうがないので、データベースをdumpして、インターネット経由でコピーすることにしました。たださすがにでかいデータだったので、コピーしおわるまでに1週間くらいかかりました。
データを移されては価値はなし?
無事に全部コピーしおわったので、C社のデータセンターに環境を構築してそのデータをリストアしたところ、無事に認証等行えるようになったことがわかったので、E社に「もうデータは移したし、残った機器はいらなくなったので好きにしてください」と伝えたところ、そうすると今度は留置している機器が債権と相殺されてしまうとまずいのか「いや、やっぱり機器は渡しますからどうぞ持って行ってください」と言われました。
「だったら最初から渡してくれればいいのに…」とも思いましたが、データをコピーして環境を構築して、機器が本当にいらないという状況になったからそういう展開になったのは言うまでもありません。というかE社も、まさかデータを全部まるまるコピーして、別の機器で再構成するとは思わなかったそうです。でもそれしか手段がないのだから、普通に考えればそうするような気もするのですが。
こうして無事に、E社の環境を再構築することができました。
今回はちょっと息抜きで、技術的なトラブルではなく、金銭とか法律とエンジニアというちょっと変わったテーマの内容でした。もちろん、そういった場面には遭遇しないほうがいいことは、言うまでもありません。