メイン

2008年05月16日

CPUを休ませよう

最近のCPUには、 Intel SpeedStepや AMD Cool'n'Quiet と言った省電力機能がある。当然これらを使いたいと思っていたが、「多分FreeBSDではサポートされていないだろう」という誤った先入観があったため、調べていなかった。

最近鯖の消費電力が気になり始めたので、ひょっとしたら...と思って調べてみた所、このページに詳しい解説があった。詳しい内容はリンク先を読んでもらうとして、必要な作業だけ引用する:

  1. /boot/loader.confに、以下の1行を追加します。
        cpufreq_load="YES"
    
  2. /etc/rc.confに、以下の1行を追加します。
        powerd_enable="YES"
    
  3. そして再起動するか、もしくは、以下のようにコマンドを実行して、即座に試してみることも可能のようです。
        # kldload cpufreq
        # powerd
    
http://nhh.mo-blog.jp/ttt/2006/06/freebsd_cpu_9abd.html より引用
なお7.0R以降ではGENERICカーネルでcpufreqがリンクされているので、loader.confへの追加は不要。

続きを読む "CPUを休ませよう" »

2007年09月28日

netatalkの限界

サーバ移転が成功したにもかかわらず、netatalkが動作しないままであった。本サーバの内向け最重要サービスはMacのデジカメ写真の共有のため、何としても動作させる必要がある。
解決後、友人からWebDAVFSを教えてもらった。将来性を考えると、WebDAVFSに乗り換えるべきかもしれない。
旧サーバではMacがafpd(ファイル共有を行うdaemon)に接続に来た時点でafpdに不正なシグナルが送られ、Mac側では何も起こらなかった。これに対し新サーバでは、Mac側の認証ダイアログ(ユーザ名とパスワードを入力するウィンドウ)は正常に起動するが、パスワードを入れてから何も起こらないという症状だった。

続きを読む "netatalkの限界" »

2007年09月02日

困ったときのpackage頼み

6-STABLE (i386/amd64)上でvncserver(/usr/ports/net/vnc)が動かない。 どうやらxorg7.2に移行してしまったために、コンパイルが正常にできていないようである。
ところがメインサーバでは6-STABLE/xorg7.2であるにも関わらず、何も問題なくvncserverが動いている。

これらから推測すると、xorg7.2に移行する前かつportsも古い状態(xorg7.2がportsに導入される前)で vncをインストールすれば良いはずである。ところがアップグレードしてしまった以上、元に戻すことはできない。6.2-Releaseを再インストールしても、portsのバージョンが古いためソースをダウンロードできない。
これを解決するために、6.2-Releaseのpackageを利用することにした。 packageはReleaseされた時点でコンパイルされているので、バージョン問題も起こさないはずである。
早速ftpで6.2-RELEASES(i386)のpackageからvnc-4.1.2.tbzをダウンロードし、pkg_addでインストールしようとしたが、必要なモジュールがインストールされていないとエラーが出る。これらは古い情報であるので、 pkg_add -fで強制的にインストールすると、依存関係がインストールできないとエラーがでるが、インストール自体は成功する。依存関係はpkgdb -Fで簡単に直るので、心配御無用。
なお、なぜかamd64上では64bit版のvncserverが動作しない。i386版をインストールしたら使えたので、多少のエラーはあるものの、これで良しとした。 libSM (/usr/ports/x11/libSM) が無いというエラーが出る。このライブラリは、X11のSession Managerであるので、これが無ければ大半のアプリケーションが動かない。 vncserverが正常に動く保証がない。32bit版libSMもpackageからインストールしてみようかと思ったが、pkg_addではamd64版のlibSMと衝突する。この問題を解決するにはFreeBSD amd64上の32bit環境について調べる必要がある。やはり困ったときの神頼みはなかなかうまくいかない物である。

続きを読む "困ったときのpackage頼み" »

2007年06月01日

FreeBSDのSoftware RAID1構築

ATA RAIDカードで散々苦労した結果、「RAID1にhardwareなんて不要です。偉い人には(ry」と悟った.
たとえRAID I/Fが認識されても、Promise FastTrax TX2000とHGST HDT722525DLAT80 のように互換性問題を起こす可能性や、安いRAID I/FはほとんどSoftware RAIDと変わらないらしいので、それならFreeBSDのSoftware RAIDの方が余程信頼が置けると判断した.
ただし、RAID5/6ならハードウェアRAIDの方が良い。OSがクラッシュした際にRAIDカードが正常作動していれば、各ドライブで一貫性のあるデータを保持する事ができる。ソフトウェアでRAID5を行うと、OSクラッシュ時にドライブ間での一貫性を保つ事が困難で、被害が大きくなると予想されるため.
RAID1ではほぼ同時に2つのドライブに書き込むため、ソフトウェアRAIDでもOSクラッシュ時の影響は少ない.
そこでFreeBSDでソフトウェアRAIDを構築する方法を調べてRAID1を構築した。以下にその方法を示す.

注意点

ここで説明する方法では、boot Managerと共存する事ができず、必ず標準のStandard MBRが必要となる. サーバとして稼働させるなら問題にならないが、Desktop PCなどでOSの使い分けをしたいのなら、それなりに工夫する必要がある。
【追記】ここでfdisk partitionは1つしか作ってはならない。Standard MBRはmulti partitionを扱う事が出来ず、ブート時にInvalid partitionというエラーを出して止まってしまう。
disk0(ad0)にboot Managerと他のOS(Linux, Win*等)をインストールした後に、残りのATA/SATA diskにFreeBSDとMBRをインストールすれば可能ではないかと思われるが、確かめていないので保証はできない。
またすでにFreeBSDをboot managerとインストールしてしまった場合には、後に述べる方法でStandard MBRをインストールする事で可能になる。
またATA100/133の場合、ATA I/Fを2つも使ってしまうので光学ドライブ(CD-ROM, CD-R, DVD, DVD-R等のドライブ)が使えなくなる。 新しくHDDを買って構築するなら、SATA HDDをお勧めする。
( 光学ドライブはそれなりに電力を消費するので、サーバでは外しておく方が望ましい )

GEOMとは

GEOMとは、FreeBSD5.0から取り入れられたディスクのモジュール式フレームワークである。このフレームワークはディスクを操作するプログラムの為に作られている.今回作成するsoftware RAID1も、このGEOMフレームワークで実現されている.
[6/1/2007追記] なお、FreeBSD amd64 6-STABLEでもこの方法でSofware RAIDを作れる事を確認した。

続きを読む "FreeBSDのSoftware RAID1構築" »

2007年05月29日

xorg7.2へ移行

5/19/07にxorg 7.2のportsがリリースされた。
slashdot.jpで話題になっていたので気が付いたのだが、このサーバではvncでX11を使うので、アップデートする事にした。
「サーバー管理にX11などのGUIは必要ない」という意見があるが、おおむね賛成である。しかしX11を使えば大画面で複数のファイルを参照しながら管理設定できるので、非常に楽である。webmin等のGUIは使わないが、X11はマルチウィンドウ環境として使うことにしている。
作業自体は/usr/ports/UPDATINGの通り行えばスムーズに進むのだが、最後の"portupgrade -a"で大変なことになってしまった。
% stat xorg.log
98 6830084 -rw-r--r-- 1 ftns wheel 27340888 52852608 
"May 25 18:11:03 2007" "May 26 19:44:18 2007" 
"May 26 19:44:18 2007" "May 22 19:06:15 2007" 
4096 103328 0 xorg.log
この xorg.logとは今回の作業のログ(scriptによる)であるが、上記にあるとおり5/22 19:00から始まり、5/26 19:40頃やっと終了した。
もちろんconfigの入力待ちで止まっている時間も多かったが、4日もかかってしまった。しかも下の通り失敗した物もある。
** Listing the failed packages (*:skipped / !:failed)
        ! ftp/curl (curl-7.16.0)        (unknown build error)
        * www/wsdlpull (wsdlpull-1.12_1)
        * ftp/php5-curl (php5-curl-5.2.2)
        ! net/rrdtool (rrdtool-1.2.15)  (install error)
        * net/p5-RRD-Simple (p5-RRD-Simple-1.40)
        ! devel/pear (pear-1.5.0)       (install error)
        * net/pear-Net_Socket (pear-Net_Socket-1.0.6)
        * net/pear-Net_URL (pear-Net_URL-1.0.14)
        * www/pear-HTTP_Request (pear-HTTP_Request-1.4.0)
        * www/pear-HTTP (pear-HTTP-1.4.0)
        * www/pear-HTTP_Upload (pear-HTTP_Upload-0.9.1)
        * security/clamav (clamav-0.90_3)
        ! japanese/emacs-emcws (ja-emcws-21.3_9)        (install error)
        ! graphics/graphviz (graphviz-2.8)      (unknown build error)
        * lang/php5-extensions (php5-extensions-1.1)
        ! japanese/addttfont (ja-addttfont-1.11_1)      (install error)
        ! graphics/gimp (gimp-2.2,2)    (unknown build error)
--->  Packages processed: 245 done, 268 ignored, 10 skipped and 7 failed
** Could not clean up temporary directory: Directory not empty - /var/tmp/portupgradeAYRvcuDw
これらは、後からアップグレードをやり直す事で解決した。
またvncserver(net/vnc)が動かないので調べてみたところ、fixed fontが無いとエラーが出ていたので、x11-fonts/xorg-fontsを再インストールして解決した。

唯一残った問題が、xorg7.2で日本語109キーボードの設定ができない事である。FTNSは英語配列しか使わないので問題はないのだが、PE430scを手放す事にしたのでこれはJISキーボード配列にする必要がある。 ところがxorg7.2にはまだJIS107/109のサポートが無いようである。/usr/local/share/X11/xkb以下を設定すれば良いのだが...と考えていたが、xmodmapの存在を忘れていた。これでkeymapを書き換えれば、多分うまく行くはずである。

続きを読む "xorg7.2へ移行" »

2006年06月28日

日本語ファイル名をsjis/CAPからutf-8に移行

MacOSXがShift-JISのファイル名を受け付けなくなり、 utf-8のみになったようだ。
注意:MacOSXのファイル名のencodingはUTF-8ではない可能性がある。 現状での不都合は確認されていないが、afpdが盛大にエラーを出している。

これで影響を受けるのは、unix上でCAP(Columbia Univ. AppleTalk)/netatalk(Net-AppleTalk)を 使ってMacとファイル共有しており、ファイル名、フォルダ名に 漢字を使っていたユーザである。 鯖缶の自宅でもnetatlkを使っていたので、大変困ってしまった。
OSのアップデート毎にShift-JISのファイル名が使えたり、使えなくなったりしていたので、今後どうなるのか今一つ不明ではある。しかしShift-JISのサポートが完全に打ち切られるのはほぼ確実であろう。
このため、共有ファイルのFreeBSD上でのファイル名をUTF-8に移行することにした。

続きを読む "日本語ファイル名をsjis/CAPからutf-8に移行" »