達人が語る、インフラエンジニアの心得

第3回トラブルを利用しろ

これまでは、トラブルコールに慣れる(?)方法、そしてトラブル対応の取り組み方について書いてきましたが、今回は「いかにトラブルを利用するかについて書いてみます。

トラブルが成長の糧になる?!

トラブルというのは望んでやってくるものではないので、あまり利用価値はありませんが、それでも多少は利用できるポイントがあります。

最大の利用価値は、⁠トラブル対応を通じて成長する」というものです。人間、切羽つまっている時のほうが、はるかに早く成長することができるものです。その理由を考えてもしょうがないのですが、しいて考えてみると、真剣さ、集中力が違う」というのと、時間感覚が違う」というのがありそうです。

時間感覚というのは、経験したことがある人も多くいると思いますが、危機的状況だとスローモーションに感じるというアレですね。

ちなみにここで言う(成長のために利用できる)トラブルは、安定して運用しているサービスに障害が発生するという、いわゆるトラブルもですが、それ以外にも「問題ないと思ってオープンしたら実は大丈夫じゃなかった」という、それただの見切り発車というかテスト不足だろ、っていうものも含みます。

要は偉い人に「おい、冗談じゃないぞ早く直せよ!!」って言われていたり、自分で「やっべー、これすぐ何とかしなきゃ!!」とか思っている状況。切羽つまっていて、かつ自分でなんとか解決可能で、かつちょっとハードル高い?というものならなんでもいいんです。⁠あ、これはこうすれば直るわ」とわかってるものでは、もちろん成長はしませんね。

まずは、トラブルを成長に利用できる条件をちょっと整理してみましょう。

  • 1. 一刻も早く解決しないと、⁠何らかの理由により)ヤバイ状況である
  • 2. 自分には責任感がある or 怖い上司とかがいる
  • 3. 自分の実力ではちょっと(もしくはかなり)厳しいけど、頑張れば解決できそう
  • 4. 周囲に頼る人がいない
  • 5. 自分は成長するための良い素材だ

くらいでしょうか。他にもあるかもしれません。

成長レベルとトラブル難易度の関係

それはさておき。

トラブルのときの成長速度っていったら、本当にハンパじゃないですね。もう極端な話、普通にやるときの1週間分の経験値を30分くらいで稼いだりもできます。そしたら1ヵ月もしたらすごい達人に!!と言いたいところですが、そもそもそんな頻繁にトラブルが起きては困りますね。

あとはまあ、ほど良く難易度の高いトラブルがそうそう都合良く起きない、っていうのもあります。最初のうちは、たいていのトラブルが自分の経験値稼ぎの役に立つわけですが、さすがに最初のころだと難易度高すぎてどうにもならないっていうケースも十分ありえます。まあ、そんなレベルのうちに、周囲に誰もいない状況に陥ることはないというか、あったらその環境に問題があるってことになりますが…。

ドラクエで、スタート直後にバラモスとかミルドラース出てきたら、誰もそこから先に行けないよもうブックオフで売る!って感じです。逆に、いつまでもスライムばっかりだとレベル上がんねえ!!もうやだブックオフで売る! っていうのもあります。ドラクエがちょうどいい感じに自分が都合良く成長できるキャラにいつも囲まれているように、良い環境であれば自分ならだいたい解決できる、でももしかしたらちょっと厳しいケースもあるかも、っていう場所に配置されるでしょう。

もちろん、自分のレベルが上がってくれば、あまり経験値を上げられるようなイベントは相対的に発生しなくなります。

これは私の感覚ですが、全体を10段階に分けて、上から4番目くらいのランクになると、楽に解決するか苦労するかはともかく、解決できないトラブルというのは事実上なくなる気がします。そのランクに来るまでに身につけたスキルを駆使すれば、どんな状況でも大概なんとかできるようになる、もしならなければ、それはランク最上位の人でも解決できない、っていう感じですね。

じゃあランク1番目の人と4番目の人は何が違うんだ?っていうと、解決までの速度ですね。そういう意味では、4番目くらい(あくまで感覚ですよ)のランクになった人には、場を任せられるというか、最後の砦にできるってことになります。

システムの「トラブル多発地帯」

トラブルが起こる箇所というのはいろいろありますが、やっぱり一番よくトラブルが起こるのはHDD周辺、というか「物理的に回転するもの」のあたりです。

昔むかーし働いていた会社では、よくファイルサーバを売ってましたが、当時(1995年くらい)はネットで常時サービスという感じでもなかったので、年末年始になるとみんなサーバを落としたりします。んで、HDDって軸がすり減っていくものですが、まあすり減っても、回っているうちは大丈夫だったりするんですね。でも1回止めてしまうと、そこからは二度と回らなかったりします。

なので、正月休み明けは、ファイルサーバの障害の連絡がたくさんありました。風物詩です。まあその当時は営業やってたので、自分でトラブル対応してたわけじゃないですが。なので壊れそうなHDDがある場合、再起動しないほうがいいです。再起動するなら全部データを拾ってからにしましょう。

ということで、ルータやスイッチよりは、サーバやファイルサーバのほうが障害を起こしやすいと思います。ただ、サーバっていうのは、まあ障害が起こっても何とかなることが多いんですね。不安な気持ちでfsckを見守ったりというのはありますが、そもそも最近はファイルシステムがjournalなのでfsckとかしませんね。もちろんsingle user modeでも起動しないようなケースではなかなか厳しいですが、コンソールをつないでrootになれれば、まず原因は究明できるし、究明できればなんとかなるものです。

そこへ行くと、ルータとかスイッチとかロードバランサといったいわゆるハコモノは、限定されたインターフェースしか用意されてないので、厳しいことが多いですね。まあ今ではハコモノも中身はLinuxやFreeBSDで、そこに専用のShellを乗っけてるだけ、っていうパターンが増えてきましたが。

本当にあった恐い話

本当はトラブル実話シリーズは、それ専用で連載を1回費すつもりなんですが、ここでは1つだけ実例を。

あるデータセンターでCiscoの7xxxやExtremeのBlackDiamond、Summit(L3)がうじゃうじゃ、という環境があったんですが、⁠ある」経緯によりそれらの機器やサーバの管理パスワードが1つもわからないという状況に陥ったことがありました。

あ、ちなみにもちろんそれは自分が働いていたデータセンターではなく、お客さんが預けていた別のデータセンターでの話です。そこのサーバとネットワーク機器を移設するって話になったのですが、もう管理パスワードがわからないのでどうしようもありません。まあ、どうしようもなかったのは、CiscoやサーバじゃなくてExtremeだったんですけどね。

Ciscoはパスワードをリセットするシーケンスがあるので、それで1台ずつ地味に復旧というか、新しいパスワードを設定していきました。もちろん、サーバなんてのは(そのときはSolarisでしたが)CDブートするなりsingleで起動するなりすれば、どうにでもなります。

ところが(今は知らないですけど当時の)Extremeは、パスワードリセットすると設定が全部消えるという、すごく素敵な仕様でした。今でもそうなのかな。中身の設定がどうなってるかもわからないし、設定が全部吹っ飛んで、元の状態まで推測で再構成するというのは、なかなか難易度が高いです。

RIPやOSPFのようなダイナミックなルーティングプロトコルに関しては、Ciscoのほうでrouting情報見れば、少なくともどんなルーティングをしているかはわかりますが、スタティックなルーティングやCiscoに流れてない、Extremeだけで完結しているようなセグメントはもうわかりません。

とりあえず、できることとして、Extreme以外は全部パスワード復旧させて、ルーティングも記録をとって、やれることはやりました。でも、Extremeの設定を吹っ飛ばしたら再構成できるか、正直五分五分だ!という、あの当時としては珍しく、自分でもなんとかできるかわからないという事態でした。

ところが、諦めなければ良いことがあるものです。サーバを復旧させていって、それらのサーバの役割を調べていたら、あるサーバでは何故かradiusdが動いています。もしや?と思って、radiusdの設定ファイルに書かれているパスワードをExtremeに入れてみたら…。

なんということでしょう。あっさり入れました。これで一気に10台くらいあったExtremeが手中に。あのときは気持ち良かったですねえ。

まあ、この例ではたいして経験値は稼げていないですし、かつExtremeの認証がradiusdに入っていたのはたまたまで、これがローカル認証だったらもう駄目だったわけで、スキルで解決したわけでもないですが。ただそれでも、CiscoやExtremeや、他にもいろんな種類の機器のパスワードリセットの方法を身につけたり、多少は稼げる経験値もありました。

このケースではこの後、そんなパスワード事件などかわいいと思えるような事態に直面するわけですが……。それは、もしかしたらいずれ書くかもしれないし、書かない(書けない)かもしれません。

トラブル解決の決め手となるスキルは?

トラブルに限った話ではないですが、ある程度のレベルに達してくると、英語力というのがどうしても必要になってきますね。すべての情報が遅延なく日本語で存在すれば良いですが、翻訳されていない情報は多いです。たとえば機器のマニュアルでも、チュートリアルは翻訳されているけどリファレンスはされてないとか、必要なものほどされていないものです。

自分のレベルが上がってくると、日本語で得られる情報で解決できるものはもうすでにクリアしていて、経験値を稼げるような(それはつまり、自分が最後の砦になっているような)トラブルは英語で情報を集めないと解決できない、という事態も増えてきます。それはマニュアルだったりGoogle先生だったりMLだったりさまざまですが、でもやっぱり、英語というかネイティブではない言語っていうのは、テンション低いときはあんまり手が伸びないものですよね(そんなことないですか? 筆者はそうです。しゃべる/聞くは楽しいですが、読むのは何か疲れます⁠⁠。

でもトラブルのときは、そんなことを言ってられません。そもそも情報がないことだって多いのだから、たとえ英語でも、そこに解決の鍵があれば万々歳、むしろその英語の情報に感謝感激、喜んで読みますよ!!って感じです。

人間って現金ですねえ。でも本当にそういうときは、⁠喜んで読むよ!嬉しい!」っていう気分満載です。つまり稼げる経験値は技術力だけじゃなくて、言語能力も!ってことですね、まあ英語だけですが。あとはGoogle先生に教えてもらうための検索スキルも上がりますね。とにかく必死なので、実にいろいろなスキルが上がります。

トラブル対応中→対応後の心得

ただ、ここまで書いてきた話全部、最初のほうで書いた「責任感がある」っていう部分がすごく重要です。

「ヤバイ!マズイ!」という強い気持ちがなければそもそも成立しない話です。第1回でも書きましたが、トラブルに直面して成長しない人は、向いていないとしか言いようがないです。人間、命の危険にさらされれば、力も出るし頭も回ります。いわゆる火事場のクソ力ってやつです。命が危険にさらされなくても、自分の責任において必死であれば、力も出るし頭も回るというものです。

それから、トラブル対応するときには、前向きな気持ちが重要です。⁠やべー、これ無理かも」と思うよりは「いや絶対なんとかなるでしょ」と思うほうが、解決できる可能性が高くなります。

筆者がよくやっていた自分マインドコントロールは、⁠こんな現象、絶対他の人も遭遇してるよ! だから絶対何か解決策あるよ!!世界で自分だけが遭遇する現象なんてそんなそうそうあるもんじゃないし!!」というものです。

あと、⁠解決したときヒーローだなーこれ」とか考えると、さらにアドレナリンたくさん出てきたりします。実際に自分で見たわけじゃないので、アドレナリンかどうかわからないですが、前向きに考えることで脳を活性化させるホルモンは何か出ています。セロトニン?ドーパミン? よくわかりませんその辺は。

あ、あと最後にひとつ。トラブル対応しているときは、すごく脳が回転しています。なので普段以上の力というか、本来の力が出たりします。でもそんな状態は、解決したらそんな長く続きません。なので、解決したらすぐに自分で記録を取るなり、誰かに記録とってもらうなりしましょう。記憶力いい人は別ですが、筆者なんて、あとから自分でどうやったか思い出せないことなんて、山ほどありましたから。

おすすめ記事

記事・ニュース一覧