図1 Linuxを使いこなしていくにはシステム管理の知識修得が必要
図1 Linuxを使いこなしていくにはシステム管理の知識修得が必要
[画像のクリックで拡大表示]
図2 システム管理の主な作業内容
図2 システム管理の主な作業内容
[画像のクリックで拡大表示]
図3 運用ポリシーの策定で考慮すべき内容
図3 運用ポリシーの策定で考慮すべき内容
[画像のクリックで拡大表示]

 マルチユーザー環境向けに作られたLinuxを使いこなすには,多かれ少なかれシステム管理者としてのスキルが求められる。ここでは,システム管理者の作業内容を把握すると同時に,管理体制確立に欠かせない運用ポリシーの重要性を理解しよう。

 「Linuxをインストールして半年から1年ほど経過し,ある程度使えるようになってきた」ユーザーや,「最近LANやインターネットに接続したサーバーを構築した」ユーザー,あるいはLinux技術者に共通して求められるスキルは何?。答えは,「システム管理」。言い替えれば,Linuxを搭載したPCを使い続ける以上,避けて通れないのがシステム管理に関する知識の修得である(図1[拡大表示])。

活用には管理者の知識修得が不可欠

 LinuxなどのUNIX系OSはそもそも,複数のユーザーが1台のシステムを同時に使用するマルチユーザー環境での利用を前提に作られている。UNIX系OSのユーザーは,システム内部のすべてのファイルやコマンドを操作できるシステム管理者(スーパーユーザー)と,システム管理者から許可された機能だけを利用できる一般ユーザーの2種類に分類される。システム全体にかかわる設定は,スーパーユーザーしか実施できない。

 ひとたびPCにLinuxをインストールすると,各種の設定を行う際はスーパーユーザーとなって作業することになる。例えば,プリンタを使えるようにする,ソース・ファイルをコンパイルしてソフトをインストールするといった,PCを活用するために必要な基本的な作業を行うときなどに,システム管理者の権限(root権限)を取得して操作する必要が生じる。

自分しか使わないときでも重要

 このように,Linux搭載機のユーザーが自分1人しかいない場合でも,root権限を持つ状態で各種操作を行うわけだ。試しにLinuxをインストールしてみる程度ならシステムが使えなくなっても問題ないが,本格的にシステムを活用するようになると,運用管理に関する知識や,それにまつわる各種コマンドなどの使い方の習得が不可欠となる。

 仮に,電源ケーブルに足を引っかけて,稼働中のLinux搭載機の電源が遮断されてしまったとする。その場合,電源を入れただけではシステムが正しく元の状態に復帰するとは限らない。場合によっては,ハード・ディスク上にある大切なデータを失うことになる。そうしたときでも,ハード・ディスクのチェックと修復を行うコマンドの使い方を知っていれば,たいていの場合はシステムを元の状態に戻すことが可能だ。

 とりわけ,Linuxを搭載したPCをサーバー用途で使用する場合には,システム管理の知識修得がより重要になる。サーバー用途に使うのなら,常時システムを監視して,サーバーが提供するサービス,例えばWebサーバーやファイル/プリント・サーバーとしての機能を安定して提供できるように維持しなければならないためだ。最近ではWebサーバーなどインターネットに接続することを前提にしたシステムにLinuxサーバーを用いることが多い。こうした場合は,不正侵入や不正利用を防ぐためにもシステム管理のスキルが要求される。サーバー設置時にはシステム構築作業に神経をすり減らしてしまい,システム管理のことにまで注意が行き届かないが,構築後にはシステム管理が最も大切な作業になることを頭の片隅に入れておきたい。

運用管理の作業内容と必要なスキル

 一口に運用管理と言ってもその作業内容は多岐にわたる。主な作業内容は,図2[拡大表示]のように大きく3つに分類できる。

 一般的な管理者の作業は,システムを設定して想定ユーザーにサービスを提供し,そのサービスが安定して提供できているかを監視すると同時に,障害発生に備えてデータ等をバックアップするというものだ。もちろん,万が一トラブルが発生したときには,障害を速やかに取り除いてバックアップ・データをリストアする必要がある。

 作業内容を見ると分かるように,管理作業には日常的に行うべきものと,必要に応じて実施するものがある。日常的に行うのは,システム監視やバックアップといった週次,日次で実施すべきものだ。こうした作業は,プログラムを定期的に実行するcronやシェル・スクリプトを使ってなるべく自動化し,作業負荷を軽くしておこう。そうしないと,必要に応じて実施する作業に追われたときに,リソース監視やログ・チェックなどの作業がおろそかになりがちなためだ。

 必要に応じて行うのは,システム設定やリストアなどである。例えば,人事異動などでシステムの利用者が変更されたときには,既存ユーザーの削除や新規ユーザーの追加を行う必要が出てくる。

 これらの作業はシステム管理一般で求めれるものであり,Linux搭載機だからといって特別変わったことはない。ただし,Linux搭載機のシステム管理者は,ある程度はLinux独自のノウハウの習得が求められることと,Linuxを含めたフリーソフトの扱いに特に気を配る必要がある。

 Linux独自のノウハウが求められるのは,主にLinuxカーネルが保持するリソース関連のアカウンティング情報*1と商用UNIXのそれが異なることと,OSが動作する仕組みが異なることによる。

 例えば,主メモリーやCPUの負荷率や使用状況を表示するコマンドのvmstatは,Linuxと商用UNIXの両方で提供されているが,そのコマンドを実行したときの出力内容が微妙に異なる。そのため,後述するようにLinuxのメモリー管理の仕組みを知らないと主メモリーの状況を正しく把握できないのである。

 また,Linuxを搭載したシステムでは商用UNIXを使った場合と異なり,OSそのものがフリーソフトだし,使用しているアプリケーションもフリーソフトであることが多い。こうしたフリーソフトは,頻繁にセキュリティ・パッチやバージョンアップ版が提供されているため,そうした情報を常にチェックしておくことも大切だ。

運用ポリシーを策定しよう

 システム管理を行う上で重要なのは,システムの運用ポリシーをきっちりと策定しておくことである。運用ポリシーとは,システムの目的や,ユーザー対象,利用形態,管理体制などをまとめたものだ(図3[拡大表示])。例としてWebサーバーを立ち上げる場合を考えてみよう。そのときには,そのWebサーバーがだれからどのように使われるのか,またそのWebの内容(コンテンツ)はだれが制作するのかなどを明確に決めておく。その方針に沿って,ユーザー設定やシステム内のファイルのアクセス権限といったシステム設定,常時監視しなければならないプロセスやログ,バックアップしておくファイルなどシステム管理の具体的な内容が決まる。

 このように,特にサーバー用途では,しっかりした運用ポリシーが無いとシステム管理作業の具体的な手順を決められないし,セキュリティ上の不備が生じる可能性が出てくる。システム管理に先立って,まずは適切な運用ポリシーを策定しておこう。