日記ブログ、または雑多なメモ
2010年3月4日

iSCSIでファイルサーバと繋いでみる





 関係ない話。
 ファイルサーバ機が組み上がったときに「エコワット」という、消費電力と電気料金をおおまかに表示することができる機械を試しにコンセントとの間に挟んでおいた。 で、CPUのコア電圧下げ前に「チラッ」と表示内容を見たことがあるのだがあまりにあまりな数字が出ていたため、見なかったふりをした。 よく覚えていないが60いくつkWhだったかと思われる。
 それが、さっきふと思い出してもう一度恐る恐る見てみたら「330時間/16.7kWh/400円」になっていた。 前記のありえない分も含めた平均でここまで下がってるということは、かなりの消費電力低下になったとみえる。 大型ノート並の消費電力くらいだろか。 結果的に、よかったよかった。
 電気代も問題ではあるが、極端な低電圧でマザーのVRMにかなり負荷がかかってそうなところも気にかかるといえばかかる。 火事になっても困るし。 まあ、安物マザーというわけでもないし、何とかもってちょうだい。


 表題のiSCSI。
NFSがどーも用途からして色々と微妙に使いにくいのがわかったので、代わりとして導入してみた。 特徴としては、
・そもそもSCSI機器ということでタイマン接続/シンプルということで速い。 ただし共有はできない
・接続簡単。 接続中にネットが途切れたとしても、再びネットが通じると何もなかったかのようにそのまま使えたりするくらい頑丈(単純?)
・完全なるロカールブロックデバイスとして取り扱う

 という感じ。 導入に関しては、具体的には、

「ファイルサーバ」
FreeBSD-8.0-STABLEではtagetもinitiatorも標準搭載。 zfsのzvolでブロックデバイスを作成してtargetに設定。
# zfs create -V 30G zroot/iscsi
とやると、
/dev/zvol/zroot/iscsi
というzvolが作られ、ブロックデバイスとして取り扱われる。 これをiSCSIのtaget設定に放り込む。
#zfs set volsize=20G zroot/iscsi
などとすると後からでもサイズ変更可能。 ただしiSCSIのtarget稼働状態でやると死亡するのでiSCSIを止めてから変更するべし。
ちなみに、本家zfsでは便利なことにzvolで直接tagetに設定できるようになっている。 FreeBSDでのアップデートが待たれますな。

「クライアント」
OSX@G4Cube: globalSANのフリーのinitiatorをインストール。 即、initiatorとして使用可能。 便利な機能拡張付き
Linux@X300: open-iscsiのユーザーランドアプリだけビルドインストール。 kernelモジュールは稼働中のkernelのものを使用

 やっつけで作ったLinux用rcファイル

 以上を整備。 もっととっつきにくい物かと思っていたが意外に簡単であった。 接続後は普通の外部ドライブとして使えるので、それぞれのマシンでそれぞれのファイルシステムでフォーマット。 こりゃとてもよい。


 しかしながら、若干不満な点がOSXに絡んでいくつかある。 というか例のごとくOSXのせいだが。
・もしMacのシステムが死んだ時は、ファイルサーバ自身でHFS+をマウントできない故ネット越しのiSCSI接続でしかデータが吸い出せず、若干面倒
・ext3の場合はファイルサーバ自身でマウント可能なので面倒なし
・せっかくzvolでいくらでもボリュームサイズ変更可能なのに、HFS+がサイズ変更不可
・ext3の場合はサイズ変更可能

 吸い出しが面倒になる点は、FreeBSDのkernelに正式HFS+サポートがないため。 サーバがLinuxであれば多種多様なファイルシステムに対応しているので一挙解決するところだが、肝心のZFSがない。 残念。 ボリュームサイズ変更の方は、HFS+でも条件が合えばサイズ変更可能らしいのだが、必要な条件のうちの「GUIDパーティションでフォーマット」がディスクユーティリティでなぜかできないので無理であった。 まあ、運用上そんなにでかくサイズを取る必要もないのでよしとしとこう。


コメント欄
(投稿なし)

コメントなどありましたらこちらからどうぞ
名前
内容
 ※名前、内容ともに入力必須です
- C'sGallery Blogっぽく見えるシステム3.2 -
小武 (管理人) eta2@tim.hi-ho.ne.jp