2010年12月アーカイブ
2010年12月30日
OpenIndiana その3 iSCSI Target
OpenIndianaからはshareiscsiでなく、COMSTARなるものが標準らしい。
で、使い方がわからずにかなり四苦八苦。。。
# svcadm enable iscsi/target # svcadm enable stmf
これでiscsi tarrgetとCOMSTARのサービスを起動。
そもそも最近のSolarisに触ったことがないのでsvcadmの流儀が最初はよくわからなかった。
まずはzfsボリュームと、そのLUを作る。
# zfs create -V 100G pool1/test # sbdadm create-lu /dev/zvol/rdsk/pool1/test
複数作ればこんな感じにLUが表示される。
# sbdadm list-lu Found 3 LU(s)GUID DATA SIZE SOURCE
-------------------------------- ------------------- ----------------
600144f020d7820000004d1a1bd70001 53687091200 /dev/zvol/rdsk/vol1/hoge
600144f020d7820000004d1adb160001 322122547200 /dev/zvol/rdsk/vol1/moge
600144f020d7820000004d1be7ac0002 214748364800 /dev/zvol/rdsk/vol1/test
次にLUごとにtarget作成
# itadm create-target
# itadm list-target -v ※ターゲット名の確認
しかしtargetを作っただけではイニシエータからはnodeが見えない。
LUをviewに追加する必要がある。単に
# stmfadm add-view 600144f020d7820000004d1a1bd70001
とかやるだけで良いのだが、ここで嵌った。
2つのLU,targetがある状態でviewに追加したのがこれ
# stmfadm list-view -l 600144F020D7820000004D1A1BD70001 ※1
View Entry: 0
Host group : All
Target group : ALL
LUN : 0
# stmfadm list-view -l 600144F020D7820000004D1ADB160001 ※2
View Entry: 0
Host group : All
Target group : ALL
LUN : 1
VMware ESXi 4.1のiSCSI Initiatorから※1に接続、マウントして利用するのは問題なかった。
が、Debian lennyのiscsiadmで※2に接続したら問題が。
# iscsiadm -m discovery --type sendtargets -p 192.168.xxx.xxx
192.168.xxx.xxx:3260,1 iqn.1986-03.com.sun:02:cdf83448-a1e5-c754-acaa-8f6f2ebcd608 ※1
192.168.xxx.xxx:3260,1 iqn.1986-03.com.sun:02:9352bf5b-e80c-4ae2-b05c-cecf870de245 ※2
# iscsiadm -m node -T iqn.1986-03.com.sun:02:9352bf5b-e80c-4ae2-b05c-cecf870de245 --login
(LUとiSCSI Target名は適当です)
ここまではふつう。で、fdisk -l したら追加されたディスクが何故か2つ。しかも1つはformat済み。
ESXiが使ってる※1まで接続されてる。危うくfdiskするところだった。# ls -l /dev/disk/by-path/
lrwxrwxrwx 1 root root 9 2010-12-30 10:37 ip-192.168.xxx.xxx:3260-iscsi-iqn.1986-03.com.sun:02:9352bf5b-e80c-4ae2-b05c-cecf870de245-lun-1 -> ../../sdf
lrwxrwxrwx 1 root root 10 2010-12-30 10:37 ip-192.168.xxx.xxx:3260-iscsi-iqn.1986-03.com.sun:02:9352bf5b-e80c-4ae2-b05c-cecf870de245-lun-1-part1 -> ../../sdf1
lrwxrwxrwx 1 root root 9 2010-12-30 10:37 ip-192.168.xxx.xxx:3260-iscsi-iqn.1986-03.com.sun:02:9352bf5b-e80c-4ae2-b05c-cecf870de245-lun-2 -> ../../sdg
同じView EntryでTarget GroupがALLになってると、別LUNもiscsiadmで一緒にloginしてしまうっぽい?
(ちゃんと調べてません)
Target Groupを改めて設定
# stmfadm create-tg tg1
# stmfadm create-tg tg2
# stmfadm list-tg
iSCSI Targetを各Target Groupに登録
# stmfadm add-tg-member -g tg1 Target名
stmfadm: STMF service must be offline
が、エラー。STMFサービスを落とさないとダメらしい。そしてSTMFを落とすとTargetとの接続は切れる。
...メンテできないとかひどい仕様らしい。一応今後に期待。
# svcadm disable stmf
# stmfadm add-tg-member -g tg1 Target名
# svcadm enable stmf
これを素早くやったらESXiは何事もなかったように再接続したので良かった。
viewに追加するときもTarget Groupを限定
# stmfadm add-view -t tg1 600144f020d7820000004d1adb160001
stmfadm: view entry exists
上書きを期待したが、やっぱり同じLUでviewがあるとダメらしい。そしてview entryを変更するコマンドがなさそう。
entryを消したらやっぱり接続中のESXiから切れると思ったが、再接続に期待して remove -> add を素早くやる。
# stmfadm remove-view -l 600144f020d7820000004d1adb160001
stmfadm: no view entries specified
LU(GUID) + View Entryの値が必要だった。
# stmfadm remove-view -l 600144f020d7820000004d1adb160001 0
# stmfadm list-view -l 600144f020d7820000004d1adb160001
stmfadm: 600144f020d7820000004d1adb160001: no views found
# stmfadm add-view -t tg1 600144f020d7820000004d1adb160001
無事成功。で、tg2の方で別LUもviewに登録したら、Debianからはtg1側に勝手に接続しなくなった。
まだ作業は終わらない...
なお、公式ドキュメントやフォーラムをそんなに漁っていないので、上記には多分に間違いが含まれていると思われる。
OpenIndiana その2
昨日のCFミラー化は成功した。コンソールログを残すの忘れたが
IDE-CFにつながったMaster, Slaveどちらを外しても起動は問題なし。
再起動時にCFをつなぎ直せばmirorの同期もOK。
ということで、データ置き場用の2TB HDD(WD20EARS) x3をSATAポートに接続、raid-zなプールを作って
SATAディスクのhot swapを実験。
# cfgadm -la | grep sata sata0/0::dsk/c2t0d0 disk connected configured ok sata0/1::dsk/c2t1d0 disk connected configured ok sata0/2::dsk/c2t2d0 disk connected configured ok sata0/3 sata-port empty unconfigured ok sata0/4 sata-port empty unconfigured ok sata0/5 sata-port empty unconfigured ok# zpool status vol1
pool: vol1
state: ONLINE
scan: none requested
config:NAME STATE READ WRITE CKSUM
vol1 ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
c2t0d0 ONLINE 0 0 0
c2t1d0 ONLINE 0 0 0
c2t2d0 ONLINE 0 0 0errors: No known data errors
# zpool offline vol1 c2t2d0
SATA0/2ポートのディスクをofflineにした↑。
# zpool status vol1 pool: vol1 state: DEGRADED status: One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scan: none requested config:NAME STATE READ WRITE CKSUM
vol1 DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
c2t0d0 ONLINE 0 0 0
c2t1d0 ONLINE 0 0 0
c2t2d0 OFFLINE 0 0 0errors: No known data errors
当然Degradedになる。そしてディスクを外す前にもうひと手間。
# cfgadm -c unconfigure sata0/2 Unconfigure the device at: /devices/pci@0,0/pci1458,b005@1f,2:2 This operation will suspend activity on the SATA device Continue (yes/no)? y # cfgadm -la | grep sata sata0/0::dsk/c2t0d0 disk connected configured ok sata0/1::dsk/c2t1d0 disk connected configured ok sata0/2 disk connected unconfigured ok sata0/3 sata-port empty unconfigured ok sata0/4 sata-port empty unconfigured ok sata0/5 sata-port empty unconfigured ok
これで実際にディスクを取り外すと
sata0/2 sata-port empty unconfigured ok
見えなくなる。
このプールをiscsi でマウントしたVMware ESXiのデータストア上に置いた仮想マシンの動作を見ていたが特に問題なし。
やっとFreeNASの移行に入れる。
2010年12月29日
NexentaStor あらため OpenIndiana その1
前回使えないと判断したNexentaStorだが
nmcコンソールからbashに入れば、debianおなじみapt-getで各種パッケージが使えるだった。
ということで、GA-G33-DS2R にIDE-CF変換を付けてCFにインストールして無事成功!
しかし、初回起動時に何かを初めて永遠に使えないのでしたorz
仕方ないのでOpenSolaris2009.06を同じくCFにインストールしたらあっさり成功。
ルートファイルシステムのミラーもできたっぽかった。
で、OpenSolarisはOracleとのゴタゴタで消え逝く運命なので、後継プロジェクトであるOpenIndianaで
12/17にリリースされた build 148 のテキストインストーラーで入れてみた(development releaseだけど)。
Writeが遅いので多少時間はかかったが無事終了。Solarisの作法がロクに分からないので偉大な先人の
ブログなど参考に、まずはシステム領域(rpool)のミラー化。
(CF-IDE変換はCF2枚挿し)
# format Searching for disks... Failed to inquiry this logical diskdone
AVAILABLE DISK SELECTIONS:
0. c1d0 <・・xH・・・・00"・・cyl 1904 alt 2 hd 128 sec 32>
/pci@0,0/pci8086,2948@1c,4/pci-ide@0/ide@0/cmdk@0,0
1. c1d1 < cyl 1904 alt 2 hd 128 sec 32>
/pci@0,0/pci8086,2948@1c,4/pci-ide@0/ide@0/cmdk@1,0
よくわからないが文字化けしているけど無視。c1d1がslaveのCFらしい。
1. を選択して fdisk コマンドから全領域をSolaris2パーティションにした上で、formatを一度終了。
format -e c1d1
この後、labelコマンドからSMIを指定(初期状態でSMIだった)。SMIでないとブートできないらしい。
(EFIでのブートの仕方もどこかで見たが面倒そうなので)
そしてrpool1(プール名はrpoolじゃなかった)をミラー化する。
# zpool attach -f rpool c1d0s0 c1d1s0
c1d1からブートできるようにgrubインストール
installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1d1s0
zpool attach から時間がたてば同期は完了してる。
# zpool status
pool: rpool1
state: ONLINE
scan: resilvered 2.43G in 0h58m with 0 errors on Wed Dec 29 01:35:07 2010
config:NAME STATE READ WRITE CKSUM
rpool1 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c1d0s0 ONLINE 0 0 0
c1d1s0 ONLINE 0 0 0
で、ここまでやってまだ片肺での起動テストはやってない。
以下次号。。。
2010年12月 8日
NexentaStor その2
前回Atomマザーで失敗したので、Intel DG45FCにて再チャレンジ。ICH10Rである。が
・USBメモリへのインストールはまたも失敗(永遠に99%)
・SATA HDDへのインストール成功。でもディスクのhot add, hot swapダメ。
hot plugはできるが、挿しなおしてもやっぱり認識しない。
ここまでやって気づいたが、ウチのESXiはディスクレスのpxe boot、DHCPとTFTPサーバはNASがやってる。
NexentaStor じゃムリだったorz
ということでOpenSolarisか別のディストリビューションで再検証しないと。。。
2010年12月 1日
NexentaStor その1
自宅サーバは現在VMware ESXi 4.0 + iSCSI Serverにて仮想化してる。
iSCSI TargetはFreeNASを使ってとりあえず安定しているのだけど
・ディスクをHot Plugできない
・負荷を掛けると不安定になるのが怖い
・そろそろ飽きた(これがメイン
ということで入れ替えを考え中。
で、安く手に入れて使ってないGA-D510UDに、OpenSolarisベースのNASアプライアンスであるところのNexentaStor CE 3.0.4を入れてみた。
が、ケチってAtomにしたのが運の尽きだろうか...
・IDE-CF変換でCFにインストールしようとして、CFの容量不足で失敗(2GB以上必要)
・4GBのCFでリトライしたが結局インストールが終わらない(Writeが遅かっただけかもしれない)
・USBメモリへのインストールに失敗
(成功したのかもしれないが、GigabyteはUSBブートできないことがよくある)
で、とりあえずIDEに余ってた3.5inch HDDをつないでやっとインストール成功、そしてブートした。
GA-D510UDはBIOS側でSATAを全てAHCIモードにしていたが、HDD(これもCF変換)の認識はOK。
しかし、Hot swapは駄目だった。。。電源ON時にSATAを挿し直すと認識しない。
Web GUI上では "Removable: No"の表示orz
次はOpenSolaris: Hardware Compatibility ListにもあるICH10でやってみるつもり