ノートPCを使えば,バックアップ電源付きの,小型で省電力なサーバーを構築できる。本連載では,往年の名機「ThinkPad s30」を使い,「CentOS」を導入したホーム・サーバーを構築する。
自宅に思い通りに使えるサーバーを設置したいと考えているLinuxユーザーは多いだろう。いざ,設置するとなると,騒音や電気代,設置場所の確保などが問題になる。そこで,旧型の携帯ノートPCを使ってLinuxサーバーを構築してみよう。
小型・省電力を実現できるノートPC
自宅にサーバーを置くなら,24時間稼働させても気にならないほど騒音が小さく,電気代が抑えられ,場所を取らないPCを利用するのが望ましい。しかし,ここ数年のCPUの“動作周波数競争”によって,最新のPCの消費電力および発熱のレベルは大幅に上がった。設置場所と稼働時間の長さを考慮すれば,最新のデスクトップPCはホーム・サーバーに向かない。そこでお勧めしたいのが,旧型の携帯ノートPCである。
ノートPCの多くは,デスクトップPC同様,空冷ファンを搭載しているが,温度によって回転速度がコントロールされ,騒音は小さい。自宅内で24時間稼働してあまり気にならないだろう。消費電力も少ない。さらにバッテリを搭載するので,停電の心配もない。というわけで,実にホーム・サーバー向きだ。
しかも,本体が小さいだけでなく,液晶ディスプレイとキーボード,ポインティング・デバイスが一体になっている。これで,設置スペースを大幅に小さくできる。
欠点もある。まずは耐久性。ノートPCには,連続稼働を想定して設計されていない部品が多い。2.5型のハード・ディスクは,連続稼働を想定していないため,サーバー用途では壊れやすいかもしれない。しかし,ホーム・サーバーであれば,定期的にバックアップをとることで,対処できるだろう。もう1つは,拡張性の低さ。こちらは,USB端子を備えていれば,ホーム・サーバー用途で必要な周辺機器くらいならサポートできるはずだ。
テスト機は「ThinkPad s30」
写真1●日本IBMの「ThinkPad
s30」 2001年の発売当時は,小型・軽量で一世風びした。 |
今回は,日本IBMが2001年に発売した携帯ノートPCの名機「ThinkPad s30」を使い,ホーム・サーバー構築に挑戦する(写真1)。筆者の手元にあったもので,タイプは「2639-42J」。主なスペックは,CPUに600MHz動作の超低電圧版Pentium IIIを備え,メモリーは標準で128Mバイト,ハードEディスクは20Gバイトである(表1)。このままでは非力だったため,今回はメモリーを256Mバイトに,ハードEディスクを40Gバイトにアップグレードした。このくらいのスペックがあれば,Linuxを使って十分にサーバー・アプリケーションを運用できる。もちろんUSB端子を搭載しているので,ある程度の拡張性を備える。
この世代の携帯ノートは,使われないまま皆さんの家庭やオフィスで放置されている場合が結構あるだろう。もしなければ,同じようなスペックのノートPCは,中古市場で豊富に出回っており,メモリーなどが増設された状態でも3万~5万円程度で購入できる。
表1●hinkPad s30の主な仕様 記事では,メモリーを256Mバイト,ハード・ディスクを40Gバイトに増設したものを利用した。 [画像のクリックで拡大表示] |
サーバー向きのCentOSを採用
PCの機種が決まれば,次はLinuxディストリビューション選びだ。サーバー用途と言えば,定番の「Red Hat Enterprise Linux」(以下,RHEL)で決まりといきたいが,ホーム・サーバーで利用するにはライセンス料(サブスクリプション料)が負担になる。Red Hat系列で無償といえば個人向きの「Fedora Core」がある。ユーザー数が多く,面白そうな最新機能も豊富なのだが,その反面,サーバー用としては安定性に不安が残る。
サーバー用としては「Debian GNU/Linux」が有力候補になる。aptコマンドを利用したパッケージ管理を備えるなど魅力的だが,Red Hat系のユーザーにとっては使い慣れないだろう。そこで今回は,RHEL互換の「CentOS」を採用することにした。
CentOSのウリは,無償なことと,「RHELのアップデートに24時間以内に追随する」など,開発活動の活発さ。サーバー用OSとして十分利用可能だ。
カーネル2.6の4.x系を使う
CentOSには,3.x系と4.x系がある。それぞれRHELのバージョン3.x,バージョン4.xに相当する。違いは,3.xではLinuxカーネル2.4が使用され,4.xではカーネル2.6になっている点だ。カーネル2.6であれば,セキュリティ機能の「SELinux」があらかじめ利用できるよう設定されている。
どちらを利用するかはユーザー次第だが,ここでは4.xを選んだ。理由は,SELinuxが使えることに加え,拡張性のポイントになるUSB機器のサポートがカーネル2.6の方がはるかに充実しているためだ。
CentOSのインストール方法
それでは,ThinkPad s30にCentOSをインストールしよう。ノートPCでは,インストールに特別な工夫が必要な場合がある。今回利用したThinkPad s30は「1スピンドル・ノート」と呼ばれる,光学ドライブやフロッピ・ディスクを装備していないタイプだ。携帯ノートPCは,この1スピンドル・タイプが多い。従って携帯ノートPCでは「インストール・メディアをどうするか」が問題になる。
CentOSのインストールは,CDやDVDのインストール・メディアを使う方法と,ネットワーク経由でインストールする方法の2通りがある。簡単なのは,起動可能な光学ドライブを用意して,インストール・メディアを使う方法だ。しかし,起動可能な光学ドライブを持っていないユーザーも多いだろう。そこで,ネットワーク経由でインストールしてみよう。
起動方法の確保がポイント
CentOSのネットワーク・インストールは,次の3種類をサポートする。
|
このうち,光学ドライブやUSBメモリーといった周辺機器が不要なインストール方法は,(3)のネットワーク・ブートである。
PXEBootを利用したインストール
CentOSでは,「PXEBoot」と呼ばれるネットワーク・ブート方法を採用している。PXEBootとは,PXE(Preboot eXecution Environment)と呼ばれる米Intel社が策定したブート方法を利用したもので,対応のネットワーク・デバイスを搭載したPCであれば,利用できる。
手順としては,まずネットワーク・デバイスのブートROMが,DHCPサーバーからIPアドレスを取得する。次に,ブートROMによって「tftp」という通信プロトコルを使ったクライアントとしてPCが稼働し,指定されたブート・イメージをダウンロードする。最後に,このイメージを使ってPCが起動する。
PXEに対応したネットワーク・デバイスは多く,テストに使ったThinkPad s30もサポートしている。
インストール用サーバーの準備
PXEBootを利用してパソコンを起動させるには,
|
という2種類のサーバーが必要だ。サーバーを構築するために,サーバーが必要というのは矛盾しているが,この2つのサーバーの構築はさほど難しくない。インストール用の一時的なものなので,手軽に利用できるデスクトップPCなどで稼働させてしまおう。このインストール用サーバーを「仮サーバー」と呼ぶことにする。
(1)syslinuxの準備
PXEBootにはsyslinuxのPXEBoot用イメージが必要になる。Fedora Coreなどのディストリビューションでは,/usr/share/doc/syslinux*ディレクトリ(末尾の*はバージョン番号)の下にpxelinux.0というブート・イメージが用意されている。これを使おう。
筆者は,仮サーバーに「Vine Linux 3.1」を利用した。Vine Linuxでは,syslinuxのブート・イメージがバイナリ形式では配布されていない。そのため,ソース・パッケージからビルドしよう。 まず,次のコマンドでsyslinuxのソース・パッケージを入手する。
|
これでsyslinuxのソース・パッケージのSRPMが入手できる。次の手順でインストールする。
|
後は次のコマンドでリビルドする。
|
これで/usr/src/vine/BUILD/syslinux-*ディレクトリ(末尾の*はバージョン番号)内に,pxelinux.binというPXEBoot用のイメージが作成される。
このファイルをtftp経由でThinkPad s30にダウンロードできるようにすればよい。そこで,PXEBootで利用するイメージを格納するディレクトリとして,/tftpbootを作成し,その下にpxelinux.binをコピーしておこう。
|
なお,Fedora Coreなどで仮サーバーを構築した場合,先に述べたようにドキュメント・ディレクトリ内にあるpxelinux.0がそのまま使用できるので,このファイルを/tftpbootの下にコピーしておこう。ここで紹介しているように,ファイル名をpxelinux.binに変更しておくと分かりやすいだろう。
(2)DHCPサーバーの構築
次にDHCPサーバーを設定する。Vine Linuxの場合,/etc/dhcpd.confを図1の設定例を参考に修正しよう。
図1●/etc/dhcpd.confファイルの設定例 |
クライアントに配布するIPアドレスなどは,読者のシステム環境に合わせて決める。PXEBootに必要なのは,リストの最後の方にある1行だけだ。先に用意したpxelinux.binをfilenameで指定すればよい。
以上を設定したら仮サーバーでdhcpdを起動させる。
|
(3)tftpサーバーの設定
次にtftpサーバーを構築する。Vine Linuxでは,次のように実行する。
|
さらに,/etc/inetd.confに次の内容を追加する。
|
このように,in.tftpdのオプション「-s」を指定して,先に作成したディレクトリ/tfptbootを指定すればよい。設定が済んだらinetdを再起動させる。
|
(4)インストール用イメージを用意
後は,/tftpboot以下にCentOSのインストール用イメージを用意するだけだ。
CentOSのPXEBootイメージは,さまざまなサイトから入手できる。今回は,ミラー・サイトの中から「IIJ」を使った例を紹介する。
PXEBootのイメージは,i686用(Pentium 4/Athlon XPクラスのCPU)と,i586用(Pentium III,VIA C3系用のイメージ)の2種類がある。ThinkPad s30は後者なので,次のようにダウンロードしよう。
|
vmlzi586がカーネル・イメージ,initi586.imgがinitrdイメージである。使用しているパソコンのCPUがi686系なら,上記の代わりにカーネル・イメージとしてvmlinuzを,initrdのイメージとしてinitrd.imgをダウンロードすればよい。
最後に,/tftpboot/pxelinux.cfg/defaultという設定ファイルを作成し,PXEBootクライアントに先にダウンロードしたファイルをブート時にロードさせるように設定する。
|
というディレクトリを作成し,テキスト・エディタで図2を参照して/tftpboot/pxelinux.cfg/defaultを作成しよう。
図2●/tftpboot/pxelinux.cfg/defaultの設定内容 |
CentOSをインストールする
以上で準備は完了だ。ThinkPad s30を仮サーバーと同じLAN内に接続する。PXEBootを利用するためには,PCのBIOS設定で,起動デバイスを「PXEBoot」に選択しておく必要がある。
ThinkPad s30を起動すると,写真2の画面が表れるはずだ。言語を設定し,インストーラを先に進めていくと,インストール方法の選択画面にある(写真3)。ここで「FTP」を選択しよう。
写真2●インストーラが起動 |
写真3●インストール方法の選択では「FTP」を選ぶ |
すると写真4のように使用するFTPサーバーを聞いてくる。IIJのミラーを指定しよう。次のように設定する。
写真4●FTPの接続先を設定する |
|
すると,FTPサイトから残りのインストール・イメージがダウンロードされ,グラフィカルなインストーラの画面が表れる(写真5)。
写真5●CentOSのグラフィカルなインストーラに切り替わる |
以降のインストールは,Fedora Coreなどとあまり変わらない。適当なオプションを選んでインストールをしよう。
* * *
次回は,ホーム・サーバーとして必要なCentOSの初期設定を取り上げ,いくつかのネットワーク・サーバーの設定を行う予定だ。