iSCSIドライブでしかもZFSなんだからサーバーにはたくさんメモリがいるよね!? ってことで、せっかくamd64化したのだからと メモリをたくさん積んでみることにしました。2GBのモジュール4つで計8GBです。同じパーツは先日買ったばかりなのですが、さらに値段が下がっていて 今回は ¥3,980 x 2でした。8GBなんてスゴい量のメモリを積んでも1万円でおつりがくるなんてスゴい時代になってますよね。
そして、DRAMといっしょにUSBメモリも買ってみました。うちのHP Proliant ML110 G5 には箱体内部にUSBポートがあるのです。
ここにUSBメモリを差すとこうなります。
もちろんUSBメモリからのブートも可能。ZFSで使う場合、障害時に交換が簡単なのはHDD全域をZFSプールにするやり方。それだとどうしてもミラーに使うドライブの他に起動ドライブが必要になります。以前はHDDを使っていたのですが、消費電力の問題もあって今回は4GBのUSBメモリを買ってみました。高速版と書いてあったのですが、リード20MB/s,ライト6MB/s程度であんまり速くなかったです。実際に使われるのはカーネルのロードまでで速度は重要ではないのでこれでもなんとか使えるでしょう。
ということで、ZFS化の準備はすべて整いました。iSCSIブートが今のところ出来ないことを考えればメモリは8GBも必要なかったかもしれませんが、これでダメなら諦めがつきます(^_^)。前回は残念な結果に終わりましたが、はたして今回は無事ZFSに移行できるでしょうか。
iSCSIブートで一番てっとり早いのはインテルのNICを使うこと。インテルのNICはうちのサーバに刺さってるのですが、これは安物なのでダメで、必要なのは「サーバ・アダプタ」という名称のものとなります。ということで早速お買い上げ、インテル PRO/1000 PT サーバ・アダプタ EXPI9400PT 。イマドキのNICとしては非常に高くて ¥11,645でした。
ちなみに、これは手元にあったデスクトップアダプタ(EXPI9300PT ¥6,000ぐらい)との比較。どっちがどっちかわかります? わかんないですよね。てゆーかハードウェアは全く一緒なのでは?(^_^) まぁ高価なNICには値段相応の付加価値を付けるってのは理解できなくもないのですが、私の用途ではサーバに使ってるのが「デスクトップ・アダプタ」で、デスクトップPCに使おうとしてるのがiSCSI起動できる「サーバ・アダプタ」ってのがなんとも妙なところです。
さて、サーバ・アダプタを使うと付属のツールを使ってiSCSI起動用のROMを有効にできます。下でハマった通り大きいiSCSIディスクを作成してWindowsが起動できるかどうか実験してみました。あらかじめROMでIPアドレス等の設定を済ませているので、ドライバさえ組み込めばインストール・起動可能なはずです。
ということで、原因はよくわかんないのですが、せっかくサーバー・アダプタを買ったのに今のところ何の役にもたっていません(苦笑)。Windows Server 2003 で使えないのはさすがにおかしいので、「BIOS設定のところでなんか間違えてる」「iscsi-targetに問題がある」「試験で使った安物PCが変てこ仕様」のどれかでしょう。はたしてこのNICが期待通り動作する日は来るのでしょうか?
□ 関連記事
01/19 | ( 通りすがりさん ) |
自分はDellサーバから外したPTですが、 Intelの最新2.2.96だとCtrl+Dの画面が出ず DellのIntel_LAN_10.0_DOSUtil_A00とかにある2.0.8で正常動作(Win2008ブート) でした。 Win7はNG他OSはまだ未検証ですが、古いバージョンの方が良い場合があるかも? | |
01/20 | ( たかたに ) |
どうもありがとうございます。うちのPTにはCDが付いてたのでCtrl+Dを出すことは困らなかったのですが、確かにWindowsのドライバは版によって挙動が違うので、もっと古いのでやってみるのも良いかもしれません。こんど挑戦するときは試してみますね。 |
iSCSIの実験中に気がついたこと。
iscsi-target を動かすと、指定した大きさファイルが即座に作成されます。Windowsのインストールを行うにはそこそこの空き容量が必要ですが、作成場所のファイルシステムの空きは30GB弱でした。
toriyu# df /var/smb Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad1s1e 50777034 17653268 29061604 38% /var/smb
そこで、iSCSIのドライブを25GBで指定してファイル iscsi-target を起動しました。
toriyu# ls -l total 48 -rw-r--r-- 1 root wheel 26843545600 Jan 11 14:26 iscsi-target0
念のために空き容量を確認するために df コマンドを再度実行してみました。
toriyu# df /var/smb Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad1s1e 50777034 17653316 29061556 38% /var/smb
えーと、えーと、48KBしか減ってません。
あり? 操作を間違えたのでしょうか? 桁を間違えてないか、単位を間違えてないか何度も何度も確認しました。でも間違っていませんでした。別の方法でも確認してみました。
toriyu# ls -s total 48 48 iscsi-target0 toriyu# du -ks /var/smb/iscsi 50 /var/smb/iscsi
ファイルシステムが壊れてるのでしょうか? 一度 umount して fsck してみましたが、特にエラーは表示されません。はて? なんじゃこりゃ? と困っていたのですが、調べてみるとこういうのは穴あきファイル(sparse file)というのだそうです。
穴あきファイルとは、内部に NULL データを含むファイルで、なおかつディスク上には一部データの実体が存在しないファイル、である。
だそうで、ファイルサイズを超えてシークしたあと書き込みすれば作成されるとか。そんなとこにシークしたらエラーにになったり、書き込み出来たとしたら間のデータは不定になるような気がしますが、「何もない」ことがちゃんと管理されてるのですな。
てことで実験。
toriyu# dd if=/dev/zero of=Hugefile seek=1 bs=1000G count=0 0+0 records in 0+0 records out 0 bytes transferred in 0.000019 secs (0 bytes/sec) toriyu# ls -l total 64 -rw-r--r-- 1 root wheel 1073741824000 Jan 11 14:55 Hugefile toriyu# ls -s total 64 64 Hugefile
ほほぉ、こんなのがあったのですねー。知っててもあまり得することは無いかもしれませんが、知らないとおもっきりハマるわけで(←経験者)、良い勉強になりました。