タイトルがもうダメすぎる。
自分は kernel の Timer Frequency を 1000Hz にしたいので kernel はできる限り手動でコンパイルしたいと思ってます。(デフォルトは 250Hz) 正直 Timer frequency はどういうときに使われるのかとかわかってないのですが、なんとなくリアルタイム OS は割り込みが 1ms だった気がするので 1000Hz にしたいというただそれだけ。
(Timer Frequency は日本語だと naoya さんのこの記事がいいですよね。というよりこの記事以外しらない)
まぁ、単に最新の kernel 使いてぇという理由が大半かも。
また、自分は Linux Vserver を使ってるので Vserver patch を当てた kernel を構築した後 iscsi-target のモジュールをコンパイルしてインストールする形をとります。
調べて無いので予想ですが Vserver と iscsi-target は競合しないと思うので共存可能と思います。(Debian にも標準で Linux-Vserver kernel 用の iscsi-target のモジュールがあるし)
Vserver パッチを適用した kernel を作る
たしか Vserver の記事でこれのやりかたは書いたので割愛します。
この記事作成時点での Vserver patch の最新が patch-2.6.30.5-vs2.3.0.36.14-pre7.diff(直リンク) であり、これに対応する Kernel は 2.6.30.5 です。2.6.30.5 は 2.6.30 がリリースされてから結構時間が経ってるよう感じるので安定している気がします。
ただし、これはまだ調べてませんが 2.6.30.4 で XFS を使ってるマシンがあったのですが稼働中に XFS のパーティションが破損し起動不可能になってしまいました。原因は他にある可能性も高いですがなんとなく XFS が破損して、それを repair して再起動かけてそれが起動成功して数時間後に落ちたので XFS が原因な気がします。ただ、C’n'Q (powernowd) を有効にしてまして、コイツが原因でフリーズすることも過去に何度も経験あるのでこいつかもしれない)
話がそれましたが、まぁ普通に作ってインストールしてその kernel で OS を起動させてください。
iscsi target モジュールをコンパイル&インストールする
これは当たり前かもれませんが、知らなければハマるので書く。というよりこれが書きたかった。
自分は最初この記事を見てコンパイルを試行したわけですが、iscsi target の iet_procfs_init とかいう関数でエラーがでてしまうんですよね。
これは iscsi target の sourceforge から tar.gz をダウンロードした古いバージョンなのが原因のようです。ちなみにバージョンは 2008/11/30 リリースの 0.4.17 です。
なので検索してみると他のディストリで同様のエラーでコンパイルが失敗するので patch を作って公開してくれてる人が居ました。なら、iscsi target の開発版バージョンならもうそのバグを修正したものがあるだろうと iscsi target の開発版バージョンを探すと、iscsi target のトップページに Developer version があったのでこれを利用します。subversion でソース管理してるようです。
また、iscsi target のコンパイルは OpenSSL のソースが必要なようなので subversion と合わせて導入します。
# aptitude install libssl-dev subversion
そして書いてあるとおり iscsi target の trunk をダウンロードします。
% svn checkout svn://svn.berlios.de/iscsitarget/trunk
コンパイルします。
# make KSRC=/home/quilva/kernel/linux-2.6.30.5
インストールします。
# make KSRC=/home/quilva/kernel/linux-2.6.30.5 install
そして、マシンをリブートさせて iscsi target が動けば OK 。
ただし iscsi target のモジュールが Debian (squeeze) の iscsi target のフロントエンド(?) よりバージョンが新しいという Warning (以下) が出ますが動いてるからいいでしょう。
quilva@usugumo:~% sudo /etc/init.d/iscsitarget start Starting iSCSI enterprise target service: WARNING: All config files need .conf: /etc/modprobe.d/alsa-base-blacklist, it will be ignored in a future release. WARNING: All config files need .conf: /etc/modprobe.d/libsane, it will be ignored in a future release. WARNING: All config files need .conf: /etc/modprobe.d/alsa-base, it will be ignored in a future release. WARNING: All config files need .conf: /etc/modprobe.d/libpisock9, it will be ignored in a future release. succeeded.
当たり前ですが iscsi target 動いてる状態で Vserver も動いてます。
久々に記事書いた。
Twitter 始めようとおもうので、始めたらまた報告します。よかったら登録してください。

Kooss
Ktkr.net
ReJEC.NET
Twitterオレもたった一人でつぶやいてるので是非~~w(寂
コメント by C — 2009年 9月5日 @ 10:44
なにがなんだかわかんねええ!
GOD!!!
コメント by りょu — 2009年 9月16日 @ 01:57
なんということだ dam it
コメント by Quilva — 2009年 9月16日 @ 04:48