Mar 31, 2008

-桜- ぽ休み消化 [その他]

何ヶ所か行ってきた。自転車でふらりと行ってくる範囲。

  • 水元公園(東京都 葛飾区)
  • koaitame

    小合溜の土手


    road

    road

    土手上の遊歩道

    これは3/30(日)の撮影。隅田公園や上野公園は人が多くてたまらんがここはそんなことはなかった。少し離れた江戸川沿いの方の遊歩道も桜があるがそちらは本当に人がまばら。

  • 隅田公園(東京都 墨田区/台東区)
  • 平日なので人はそれなり

    sumida-kouen


  • 上野公園(東京都 台東区)
  • ueno-kouen-tuuro

    上野公園の動物園へ向かう桜並木。それなりに人は多い。

    doubutuen-gawa

    動物園側から

    taiboku

    上野公園の桜は隅田公園に比べて大きい

Posted at 19:34 in その他

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使えたらいくらか便利かな?というあたり。 図の上のような構成が下の形でも実現できる"かも"しれない。

    VLan net

    取り合えずSWに刺しておけば設定でネットワークの構成は変更できる。 NIC2枚刺しの必要をなくすことが一番の目的。

    Posted at 09:41 in computer

色々買った [music]

  • 死蝋月比古「純血鬼爛」(Arcangelo ARC-1126 2625円)
  • 少し前に買った。月比古のアコースティックユニットらしい。 月比古のサイト
    あれだけ作詞の仕事をやっているのに結構ライブやっているみたいですね。

    バイオリンをフィーチャーして割と落ち着いたいい感じの曲に、畑亜貴さんの破滅系歌詞が炸裂する。実に私好みのアルバム。「ヴォーカルロリータなニュアンス」という表現を見たことがあるが確かに感じは出てる。畑亜貴のこの路線は極端に好き嫌いが分かれるだろうからダメな人は触れずにメジャー系/作詞家の畑亜貴だけ鑑賞すればいい。 (Hなジャケ表もいいね)

    4/19に五十嵐久勝(元ノヴェラと言ったら古いか)氏のHM系バンドCYCRONEのデビューライブとのジョイントでライブがあるらしいので1枚チケット買った。 五十嵐氏のボーカルを生で聞けるのも楽しみ。

    五十嵐氏の名前を素で間違えていました...ごめんなさい

  • CYCLONE, TorN, 月比古 : 初台 The Doors 前売り3000円
  • 新宿のユニオンで買った。まだ結構あるみたいだから興味のある人はGo! (ここを読んでいる奴でそんな奴はいるのか?)


  • The Tangent 「not as good as the book」(ベル・アンティークMAR-081352-3 3600円 )
  • The Tangentの4枚目。2枚組のコンセプトアルバム。なんか中途半端なライブアルバムを聞いた後だけに心配だったが、これは標準以上で安心した。


  • ポチャカイテ・マルコ「ドッペルゲンガー」(Arcangelo ARC-1119 1575円)
  • 4曲入りのミニアルバム。1作目の後に作られたものかな?内容的には1作目と同じ路線。ヴァイオリンをフィーチャーしたディストーションバリバリのチェンバーロック。 「純血鬼爛」もチェンバーロックっぽいところあるし、そういうのは確かに好きですね。私は。


  • レッド・ツェッペリン「プレゼンス」(ワーナー WPCR-75008 1800円)
  • キャンペーンで対象CD3枚買ったら500円キャッシュバックってやっていたので買った。(他の2枚は前に別に買っているのよ) そういえばこれが発売されたときの渋谷陽一の番組での紹介聞いていたよなー、と思ったり思わなかったり。

Posted at 00:37 in music

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にまとめて共有するというような使い方もありだろう。

こういう実験が簡単にできてしまうのもありがたい。

Posted at 02:19 in computer