プロの⁠プロによる⁠プロのためのLinux

クラウド時代のOSの使われ方

自動車を運転するのは、免許さえ取れれば誰でもできます。でも、故障した自動車は、免許を持っていても修理できない人がほとんどでしょう。大昔の自動車の場合、しくみがわかっている人だったら修理できるかもしれません。昔の自動車はシンプルな部品で構成されていて、現代のように電子化がされていないからです。その原理さえわかっていれば、修理できることもあります。現代のブラックボックス化されたエンジンは専門工具がなければいじることすらできません。さらに隅々まで電子化がされていますので故障の原因を考えるのもプロでなければ正しい答えと対策できなくなっています(インジェクションのエンジンなどは専用コンピュータが必要ですね⁠⁠。

Linuxも自動車に似ています。多くのWebデザイナーやWeb管理者は、いまだったらクラウド環境にインストール……といってもすでにOSのイメージファイルをシステム設定画面でクリックして選ぶだけですが、とても気軽に使うことができます。仮想空間にインスタンスとして動くLinux環境にWebサーバをインストールしてCMS(Contents Management System)を設定して、何らかのサービスを自分の都合に合わせて使うことができます。

ところがWebサーバの処理能力を超えるようなアクセスがあったり、想定外のエラーがあったとき、原因を探りながら正しい対策をとれる方はいるのでしょうか。今はすごく簡単にインターネットを利用したサービスが構築できますが、それが当たり前になっています。多くの自動車でボンネットを開けても中身がわからないように、ブラックボックスになっていますが、サービスを進める基盤であるOSもそのように扱われているように私は思います。エラーが起きても原因がわからない。これはシステムを運用していく上で、致命的な欠点になる恐れがあります。

システムを深くじっくり知る

プロになるためのLinuxシステムシリーズの3冊目であるプロのためのLinuxシステム・10年効く技術は、Red Hat Enterprise Linux をベースにしたものですが、汎用性も重視した構成になっています。1冊目の『プロのためのLinuxシステム構築・運用技術』は、おもに運用技術を中心に解説しました。SAN(Storage Area Network)やiSCSIなどのストレージ技術やVLAN(Vitual LAN⁠⁠、L2/L3ルーティングなど、普通の書籍では取り上げにくい技術情報を解説しました。その中でもLinuxサーバの問題切り分けについては、筆者の経験の結晶とも言えるもので、読者からおおいに支持を集めました。カーネルダンプの取り方など、既存の書籍ではあまり取り上げてこなかった(だけど重要な)技術を取り上げたからです。

2冊目の『プロのためのLinuxシステム・ネットワーク管理技術』は、Software Design誌でもよくテーマになる、iptablesをはじめとして、これもLinuxのネットワークシステムをつぶさに解説しました。OpenLdapの設定について原理から基本設定、そしてその思想まで基礎の基礎がわかるようになっているのも特長です。

さて、3冊目の今回は、さらにLinuxの基本構造にまで踏み込み解説をしました。たとえばこんな記述があります。第1章でパーティションテーブルの説明ですが、

1セクタのサイズは512バイトですので、510~511バイト(0バイトが先頭なので最後は511バイトですね)の2バイト余りますが、ここにはお約束で0xAA55という値が記録されます。この値が異なっているディスクは、MBR(マスターブートレコード)が壊れていると判断されます。

これを読んだとき、技術って面白いなと思いました。Linuxのシステムはこのようになっていて、けっこうシンプルで理解しやすいと納得できたのです。これは一例ですが、このように、⁠わかりやすい」解説が本書では徹頭徹尾なされています(もちろん3冊ともすべてこの調子です。ぜひエンジニアの方々は楽しんでください⁠⁠。

仮想環境で素振りせよ

さてさて、自分でLinuxを勉強したいとき、それも複数サーバでネットワークを構築してルーティングやなにやらいろいろ試してみたいときがあります。昔はPC/AT互換機を買いそろえ、イーサネットケーブルでつなぎ、などなど大変な作業をしなければなりませんでしたが、本書でお勧めしているのは、KVMなどの仮想環境の利用です。仮想環境上に、ターゲットとなるOSをインストールし、複数のサーバでシステムを構築し、いろいろな実験が可能になりました。これを本書では、⁠第2章 マシンがないとは言わせない! 仮想化でここまでできるインフラ環境構築」で紹介しました。仮想環境だったら、誰にも迷惑をかけることなく、さまざまな動作実験ができます。こうした解説だけでなく、シェルスクリプトの書き方や、カーネルのソースコードの読み方も行っています。例のLinuxのうるう秒問題はコードレベルで知ることができる唯一の本ではないでしょうか。

おわりに

おかげさまで、シリーズ3作ともに増刷を達成しています。こうした本が支持を集めるのは、その背景にクラウドやレンタルサーバ、ホスティングなどでOSの知識や情報が必要とされているからに違いありません。やはりITのプロたるもの、システムの中身を深く知り、それを仕事に生かしていくのが稼ぎの道です。本書シリーズで、社会的なシステム基盤となっているLinux技術をきわめてください。