Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。

2009年6月20日土曜日

ThinkCentre A50(8320-87J)をサーバにするときの注意点 このエントリーを含むはてなブックマーク

本記事では、ThinkCentre A50(8320-87J)にcentOSを入れて、常時立ち上げでサーバとして運用する場合に注意すべきことを書く。

カーネルパラメータ

このマシンにsshdを入れて、常時立ち上げ状態にして1日ほど経過すると、sshでログインが異常に遅くなる(あるいはログインできない)症状が発生した。また、このサーバに直接ログインを試みると、同じように異常に時間がかかったり、フリーズしたりすることもある。

ネットで調べてみると、割り込み要求を処理するapicという機能を停止して、ブートすると解決するらしい。実際に、/boot/grub/grub.confで、次のようにnoapicというカーネルパラメタを与えてブートするように設定した。

      #kernel /vmlinuz-2.6.18-xxx.xxx.xxx.el5 ro root=LABEL=/1        <-- コメント         kernel /vmlinuz-2.6.18-xxx.xxx.xxx.el5 ro root=LABEL=/1 noapic  <-- 追加 

すると、以降、上で説明した症状は現れなくなった。

追記: この設定をして、サーバを運用していたところ、1日とは言わないまでも1週間以内にはサーバがダウンしてしまう症状が現れた。ネットワークの設定ミスやケーブル不良などの他の要因を取り除いても依然として症状は現れた。一部のサービスだけがダウンしているのならまだしも、ログを見るかぎりでは、すべてのサービスのログが一斉に途切れていた。

この症状から推測すると、おそらく、ある時にとたんにOS自体がダウンしてしまったのだろう。とすると、個別のサービスの設定ミスが原因であるのが考えられないし、バグがあるとしても、何らかの報告がネット上にあるハズだが、見当たらない。ゆえに、ハードウェアがらみの原因が疑われる。

もう一度、apic関係でネットを調べてみたところ、さらに、もう1つのカーネルパラメータacpi=offを与える必要があるという情報をみつけた(というか、見落としていた)。さっそく、以下のように、grub.confを書き換えて、再起動した。

      #kernel /vmlinuz-2.6.18-xxx.xxx.xxx.el5 ro root=LABEL=/1        <-- コメント
      #kernel /vmlinuz-2.6.18-xxx.xxx.xxx.el5 ro root=LABEL=/1 noapic  <-- 追加
       kernel /vmlinuz-2.6.18-xxx.xxx.xxx.el5 ro root=LABEL=/1 noapic  acpi=off <-- さらに追加

参考URL: Ubuntuforums.org:"Sudden random drastic slow down (near freeze)"

さらに追記:また、サーバダウンが発生した。まだ1回しか確認していないが、この前の設定変更では解決しなかったようだ。実は、同じ機種のサーバをもう1台メンテナンスしているが、そちらはダウンしていない。両者の違いは、起動しているサービスおよび負荷ぐらい。

まずは起動サービスの差分を疑ってみる。実験前に、極力不要なサービスを停止した。そして、ダウンした方のサーバでacpidとampdが動いていた(他方のサーバでは動いていない)ので、これらを停止した。経過観察してみる。

OSのインストール

OSを新規インストールするとき、このタイプのThinkCentreだと少し苦労するかもしれない。インストールに使えそうなI/Fとしては、FDドライブとCDドライブとUSBとイーサネットコネクタがある。

  • 最近のlinuxはフロッピー起動の方法が使えない。ブートイメージが1.5Mに収まらなくなったとか。
  • 手元にCDに入ったOSがあれば良いが、雑誌に付いているのはDVDの場合が多い。
  • USB起動を試してみたができなかった。

順当に考えると、ネットワーク経由のインストールが残される(他にもあるかもしれないが)。何らかの方法でマシンを起動できたとしても、私の場合、プロキシ経由でしかインターネットに接続できないので、単純にHTTPあるいはFTP経由のインストールはできない。

よくWebで紹介されている方法でPXEブートでインストールする方法があるが、DHCPサーバを立てなければならない。(企業などのように)既にDHCPサーバのある内部ネットワークで、この方法はあまりやりたくない。

そこで、私のとった方法を説明する。起動イメージ(boot.iso)を取得して、CD-ROMかDVDに焼く。DVDの場合は、DVDドライブをマシンにUSB接続すること(<- DVDドライブでブートはできるが、インストールプロセスでHard Disk, FTP, HTTPなどインストール方法を聞かれるところで、DVDドライブが選択肢になくて、起動用途でしかDVDドライブは使えなかった)。

# wget http://ftp.riken.jp/Linux/centos/5.2/os/i386/images/boot.iso

isoイメージをCDやらDVDに焼く方法は、インターネットで調べたらたくさんの情報があるので、ここでは省略するが、私は、Ubuntuで普段作業しており、Braseroというツールが入っているので、それを使って作成した。

次に、この起動イメージを使って、マシンを起動した(もちろん、Baiosでデバイスの起動順位を適切に設定しておくこと)。

プロキシ経由でないと、インターネットに接続できないので、マシンを起動できたからといって、そのままインストールというわけにはいかない。ここでは、同一ネットワーク上にある他のPC(HDの空きスペースが十分あること)を使ったインストールを説明する。

方法は、この作業用PCにOSのイメージファイルをダウンロードし、さらにこのPCをwebサーバとすることで、このローカルレポジトリを内部ネットワークで公開するのである。DHCPでIPを動的に配布している場合は、インストール途中でIPが変化しないように注意が必要。

作業用PCで、webサーバをインストールする。この方法はここでは説明しない。次に、下のようにイメージファイルをダウンロードする。

# wget http://ftp.riken.jp/Linux/centos/5.2/isos/i386/CentOS-5.2-i386-bin-DVD.iso

そして、ISOファイルをweb公開用のディレクトリ(例えば、hogeユーザ用のディレクトリにcentosというディレクトリを作るなら、マウントポイントは/home/hoge/public_html/centos)にマウントする。

# mount -t iso9660 -r -o loop CentOS-5.2-i386-bin-DVD.iso /home/hoge/public_html/centos

作業用PCのIPアドレスを調べる。下のinetアドレスというところ。ここでは、説明のため、192.168.0.1とする。

# ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス 00:00:00:00:00:00 
         inetアドレス:192.168.0.1  ブロードキャスト:xx.xxx.xxx.xxx  マスク:xxx.xxx.xxx.xxx
以下、省略

作業用PCのhogeユーザのweb公開用のディレクトリに、適当なhtmlファイルを置いて 、きちんとアクセスできるか確認する。

# cd /home/hoge/public_html
# echo 'Hello, World!' > index.html

そして、http://192.168.0.1/~hogeにアクセスして、Hello, World!と表示されたらOK!

そして、インストール対象のPCを起動させてHTTPインストールを選択する。レポジトリのあるサイトとディレクトリを聞かれるので、下のように入れる。以上

サイト:192.168.0.1
ディレクトリ:/~hoge/centos

0 コメント:

キーワード

キーワード別に記事を分類してあります。クリックすると各キーワードに該当する記事たちが表示されます。

筆者について

自分の写真
趣味はコンピュータ、音楽、写真などです。