FreeBSD関連Tips

FreeBSDに限らないかもしれないが、FreeBSDに関して試行錯誤した記録である。

RAID

いわゆる「サーバ」機をインストールすることになり、 ハードディスクを2台搭載してソフトウェア的にRAID1を構成することとした。
webで調べるとatacontrolが簡単そうである。 webの情報は非常に役に立ったが、バージョンの違いなのかはまったところもある。
# atacontrol create RAID1
# atacontrol addspare RAID1 
# atacontrol rebuild 0
webページではリビルドが完了するまでシェルプロンプトに戻らないことに なっているが、FreeBSD 5.3-RELEASEではコマンド発行後直ちに シェルプロンプトが表示される。
何かエラーがあってリビルドが行われないのかと思うが、実際には バックグラウンドでリビルドが進行している。その様子は以下のコマンドで 確認できる。
# atacontrol status 0

RAID1 6.0-RELEASEの場合

行った手順のみ記載しておく。
なお、S-ATAディスクを使用し、2台のディスクはata4-masterにad8、ata5-masterにad10として認識されている。
古いマザーボード、古いBIOSでは、2台のディスクがata0-master、ata0-slaveの ように同じチャネルになることがある。この場合、RAID1の再構築ができないので 注意のこと。具体的には、以下の手順でミラーを外すときに、外すディスクを チャネルでしか指定できないので、一方のディスクだけを外す、という指定が できないためである。
  1. ad8にOSをインストール
  2. シングルユーザモードで起動
  3. # mount -a
    
    により、すべてのディスクを読み書き可能な状態でマウントする。
  4. /etc/fstabを編集
    ディスクad8の代わりにRAIDディスクのar0を使用するように書き換える。
  5. RAID1を構築する。
    # atacontrol create RAID1 ad8 ad10
    
    ad8がMASTER、ad10がMIRRORになる。 ここで、RAID1の状態を確認すると'READY'となるのだが、実際にはMIRRORにはデータはコピーされていない。
  6. いったんMIRRORを外す。
    # atacontrol detach ata5
    
  7. ここでリブートするとよい。再起動時にシングルユーザモードを指定すること。
    再起動後は、RAID1はMIRRORディスクのないDEGRADE状態になる。いわば片肺状態である。
  8. '/'と'/usr'をread onlyでマウントする。
    # mount -u -o ro /
    # mount -o ro /usr
    
    '/usr'としてマウントすべきパーティションは、/etc/fstabで確認するとよい。
    ここで'/usr'をマウントしないと、以下のrebuildのときに/usr/bin/niceがない というメッセージが表示されて、rebuildが全く進行しない状態になるので注意のこと。 なお、/usrを/と別パーティションにしていない場合は、当然ながら/usrのマウントは必要ない。
  9. RAID1にディスクを追加する。
    # atacontrol addspare ar0 ad10
    
    MIRRORディスクがない状態だったので、ディスクad10はMIRRORとして登録される。
    ここで'addspare'ではなく'atacontrol attach ata5'を実行すると、新規にRAID1ディスクar1が構成され、 ata5のディスク(ここではad10)はar1のMIRRORディスクとして登録されてしまう。
    正しくは'attach'ではなく'addspare'コマンドを使用する。
  10. RAID1を再構築する。
    # atacontrol rebuild ar0
    
    Enterキーを押すと直ちにコマンドプロンプトが表示されるが、バックグラウンドで再構築が進行する。進行状況は、以下のコマンドで確認できる。
    # atacontrol status ar0
    
    なお、'/'や'/usr'をread onlyではなくread/writeでマウントすると、いったん 再構築が100%になった後でまた再構築がスタートする、というように再構築が 完了しないので、間違いなくread onlyでマウントするよう注意のこと。

2005年12月21日(2008年3月18日改訂)

UPS(無停電電源)

無停電電源APC Smart-UPS 1500

最初、upsdをインストールした。 ログをみると、シリアルケーブル経由でFreeBSDと通信しているように思える。 ところが、UPS入力側の電源を切断しても全くFreeBSDが反応しない。
(作文途中)