Mar 31, 2008
-桜- ぽ休み消化 [その他]
何ヶ所か行ってきた。自転車でふらりと行ってくる範囲。
- 水元公園(東京都 葛飾区)
- 隅田公園(東京都 墨田区/台東区)
- 上野公園(東京都 台東区)
小合溜の土手
土手上の遊歩道
これは3/30(日)の撮影。隅田公園や上野公園は人が多くてたまらんがここはそんなことはなかった。少し離れた江戸川沿いの方の遊歩道も桜があるがそちらは本当に人がまばら。
平日なので人はそれなり
上野公園の動物園へ向かう桜並木。それなりに人は多い。
動物園側から
上野公園の桜は隅田公園に比べて大きい
Smart Switch [computer]
買ってみた。- コレガ CG-SSW08GTR
Smart Switchというような名前で売られている1000BASE-T対応のSwitch。 Spanning-Tree, Port/Tag VLAN対応。実質低価格のL2 Switchだと思うが何か違うのかな?
定価4万ぐらいだが2万円台で買える。NETGEARの製品にも同程度のもの(GS-108T SNMPの機能あり)のがあり迷ったが、CG-SSW08GTRの方が小型で消費電力が低いのでこちらにした。SNMPは個人の家で使う分には無くてもいいと思った。
買った動機は、VLAN使えたらいくらか便利かな?というあたり。 図の上のような構成が下の形でも実現できる"かも"しれない。
取り合えずSWに刺しておけば設定でネットワークの構成は変更できる。 NIC2枚刺しの必要をなくすことが一番の目的。
色々買った [music]
- 死蝋月比古「純血鬼爛」(Arcangelo ARC-1126 2625円)
- CYCLONE, TorN, 月比古 : 初台 The Doors 前売り3000円
- The Tangent 「not as good as the book」(ベル・アンティークMAR-081352-3 3600円 )
- ポチャカイテ・マルコ「ドッペルゲンガー」(Arcangelo ARC-1119 1575円)
- レッド・ツェッペリン「プレゼンス」(ワーナー WPCR-75008 1800円)
少し前に買った。月比古のアコースティックユニットらしい。
月比古のサイト
あれだけ作詞の仕事をやっているのに結構ライブやっているみたいですね。
バイオリンをフィーチャーして割と落ち着いたいい感じの曲に、畑亜貴さんの破滅系歌詞が炸裂する。実に私好みのアルバム。「ヴォーカルロリータなニュアンス」という表現を見たことがあるが確かに感じは出てる。畑亜貴のこの路線は極端に好き嫌いが分かれるだろうからダメな人は触れずにメジャー系/作詞家の畑亜貴だけ鑑賞すればいい。 (Hなジャケ表もいいね)
4/19に五十嵐久勝(元ノヴェラと言ったら古いか)氏のHM系バンドCYCRONEのデビューライブとのジョイントでライブがあるらしいので1枚チケット買った。 五十嵐氏のボーカルを生で聞けるのも楽しみ。
五十嵐氏の名前を素で間違えていました...ごめんなさい
新宿のユニオンで買った。まだ結構あるみたいだから興味のある人はGo! (ここを読んでいる奴でそんな奴はいるのか?)
The Tangentの4枚目。2枚組のコンセプトアルバム。なんか中途半端なライブアルバムを聞いた後だけに心配だったが、これは標準以上で安心した。
4曲入りのミニアルバム。1作目の後に作られたものかな?内容的には1作目と同じ路線。ヴァイオリンをフィーチャーしたディストーションバリバリのチェンバーロック。 「純血鬼爛」もチェンバーロックっぽいところあるし、そういうのは確かに好きですね。私は。
キャンペーンで対象CD3枚買ったら500円キャッシュバックってやっていたので買った。(他の2枚は前に別に買っているのよ) そういえばこれが発売されたときの渋谷陽一の番組での紹介聞いていたよなー、と思ったり思わなかったり。
Mar 17, 2008
FreeBSD上のiSCSIとZFS [computer]
(3/18)iscsi.hのパス明記、ほか細かな修正FreeBSD7.0ではiSCSI initiatorとZFSが使えるようになっている。 組み合わせて使うと幸せになれることもあるかもしれない。 ネットワーク越しのデバイスを一つのボリュームにまとめることができる。RAID-Zのボリュームに後から追加を行って容量を増やすことも簡単にできる。
SolarisではZVOLを使いZFSのボリュームを仮想物理ボリュームとしてiscsiのtarget(サーバ)に使うことができるようになっているが、この機能はFreeBSDでは現状サポートされていない。 ZVOLをiSCSIで直接使えると構成の自由度はさらに上がることは間違いないが、この機能がなくても十分にiSCSIは使える機能だと思う。
iSCSIのinitiator(クライアント)のデバイスをZFSで利用することは問題なくできる。またFreeBSDではNetBSD由来のiscs-targetが移植されておりマウントしたZFS上のファイルをiSCSIのtargetとして使用することはできるので少々気持ち悪くはあるがtarget側にZFSを使うこともできる。
おまじない
FreeBSD7.0R時点ではiscsi_initiatorはtargetを同時に4つまでしか利用できないようになっている。ネットワーク越しにRAID-Zを構築しようとする場合4つでは不足しがちなので制限に引っかかりそうなら増やしておいた方がいい。
/usr/src/sys/dev/iscsi/initiator/iscsi.h --- iscsi.h.orig 2008-03-16 20:03:47.000000000 +0900 +++ iscsi.h 2008-03-16 13:51:29.000000000 +0900 @@ -38,7 +38,8 @@ #define ISCSIDEV "iscsi" -#define ISCSI_MAX_TARGETS 4 //64 +/* #define ISCSI_MAX_TARGETS 4 //64 */ +#define ISCSI_MAX_TARGETS 64 #define ISCSI_MAX_LUNS 4
カーネルモジュールで使っている場合はモジュールを作り直しカーネルに組み込んでいる場合はカーネルを再構築する。 時間に余裕があるなら普通にカーネル再構築すれば確実。 お好みに応じてZFSやSCSIまわりの設定をやっておくと吉。
portsのNetBSD由来のiscsi-targetを使ってローカルで試す場合 例えば/usr/local/etc/iscsi/targetsをこんな風にする。 1Gbyteづつのファイルを割り当ててみる。
# extents file start length extent0 /usr/local/tmp/iscsi-target0 0 1024MB extent1 /usr/local/tmp/iscsi-target1 0 1024MB extent2 /usr/local/tmp/iscsi-target2 0 1024MB extent3 /usr/local/tmp/iscsi-target3 0 1024MB extent4 /usr/local/tmp/iscsi-target4 0 1024MB extent5 /usr/local/tmp/iscsi-target5 0 1024MB # target flags storage netmask target0 rw extent0 127.0.0.1/32 target1 rw extent1 127.0.0.1/32 target2 rw extent2 127.0.0.1/32 target3 rw extent3 127.0.0.1/32 target4 rw extent4 127.0.0.1/32 target5 rw extent5 127.0.0.1/32
ローカルホストなので認証なしでもいいよね?
あとは/etc/rc.confにiscsi_target_enable="YES"を書いて /usr/local/etc/rc.d/iscsi_target startでtarget側の準備は完了
initiator側の設定は/etc/iscsi.confに行う
iscsi0 { # nickname targetaddress = localhost targetname = iqn.1994-04.org.netbsd.iscsi-target:target0 } iscsi1 { # nickname targetaddress = localhost targetname = iqn.1994-04.org.netbsd.iscsi-target:target1 } : :iscontrolを実行するとdaデバイスとして見えるようになる。
#iscontrol -n iscsi0 -t localhost #iscontrol -n iscsi1 -t localhost : # camcontrol devlist <NetBSD NetBSD iSCSI 0> at scbus0 target 0 lun 0 (pass0,da0) <NetBSD NetBSD iSCSI 0> at scbus0 target 1 lun 0 (pass1,da1) <NetBSD NetBSD iSCSI 0> at scbus0 target 2 lun 0 (pass2,da2) <NetBSD NetBSD iSCSI 0> at scbus0 target 3 lun 0 (pass3,da3) <NetBSD NetBSD iSCSI 0> at scbus0 target 4 lun 0 (pass4,da4) <NetBSD NetBSD iSCSI 0> at scbus0 target 5 lun 0 (pass5,da5)
ほーらこんなにdaデバイスが生えた
# ps ax | grep iscontrol 4745 ?? Is 0:00.01 iscontrol -t localhost -n iscsi0 4749 ?? Is 0:00.01 iscontrol -t localhost -n iscsi1 4753 ?? Is 0:00.01 iscontrol -t localhost -n iscsi2 4757 ?? Is 0:00.01 iscontrol -t localhost -n iscsi3 4761 ?? Is 0:00.01 iscontrol -t localhost -n iscsi4 4765 ?? Is 0:00.01 iscontrol -t localhost -n iscsi5
それぞれiscontrolがdaemonとして動いているのでsessionを終了する場合は各 プロセスに対してHUPを送る。shutdownするときには先にsessionを終了させな いと暫く待たされる。
おもむろにRAID-Zでボリュームを作る
# zpool create tank raidz da0 da1 da2 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz1 ONLINE 0 0 0 da0 ONLINE 0 0 0 da1 ONLINE 0 0 0 da2 ONLINE 0 0 0 # df /tank Filesystem 1K-blocks Used Avail Capacity Mounted on tank 2051200 0 2051200 0% /tank
1GBのデバイス3つでRAID-Zを構成している。1つ分パリティに使われる換算になるので2GBのボリュームとなっている。
# time dd if=/dev/urandom of=/tank/hoge count=100000 100000+0 records in 100000+0 records out 51200000 bytes transferred in 8.058210 secs (6353768 bytes) # df /tank Filesystem 1K-blocks Used Avail Capacity Mounted on tank 2051200 50048 2001152 2% /tank
RAID-Zを構成するデバイスを置き換えてみよう。
# zpool replace tank da0 da3 # zpool status tank pool: tank state: ONLINE scrub: resilver completed with 0 errors on Sun Mar 16 21:25:34 2008 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz1 ONLINE 0 0 0 replacing ONLINE 0 0 0 da0 ONLINE 0 0 0 da3 ONLINE 0 0 0 da1 ONLINE 0 0 0 da2 ONLINE 0 0 0
少し待つと同期がかかってda3の内容が有効になり自動的にda0はRAID-Zの構成 から外れる。
# zpool status tank pool: tank state: ONLINE scrub: resilver completed with 0 errors on Sun Mar 16 21:25:34 2008 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz1 ONLINE 0 0 0 da3 ONLINE 0 0 0 da1 ONLINE 0 0 0 da2 ONLINE 0 0 0 errors: No known data errors # df /tank Filesystem 1K-blocks Used Avail Capacity Mounted on tank 2051200 50048 2001152 2% /tank
RAID-Zのボリュームに追加を行ってみる。zpool addでボリュームにもう一組RAID-Zを追加して全体の容量を増やす。これは実質的にはRAID-Z+RAID-Zのストライピングになるはず。
# zpool add tank raidz da0 da4 da5 # zpool status tank pool: tank state: ONLINE scrub: resilver completed with 0 errors on Sun Mar 16 21:25:34 2008 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 raidz1 ONLINE 0 0 0 da3 ONLINE 0 0 0 da1 ONLINE 0 0 0 da2 ONLINE 0 0 0 raidz1 ONLINE 0 0 0 da0 ONLINE 0 0 0 da4 ONLINE 0 0 0 da5 ONLINE 0 0 0 # df /tank Filesystem 1K-blocks Used Avail Capacity Mounted on tank 4103040 50048 4052992 1% /tank
1GBのデバイス6個を使って4GBの高信頼性ボリュームを作成した。 追加は簡単にできるが減らす方は難しい(w
RAID-Zを使っている場合同じサイズのボリュームをまとめていくなら簡単。 iSCSIを使えば柔軟にネットワーク越しにストレージを確保できるので、突発 的にストレージが必要になった場合には使える手段だと思う。
今のところiSCSI+ZFSの信頼性は不明だが、高い信頼性が得られるのであれば最初からストレージを分散させておきzpoolにまとめて共有するというような使い方もありだろう。
こういう実験が簡単にできてしまうのもありがたい。