openfilerでマルチパス(VMware ESX3.5)
いままでCentOSのtgtdを利用してiSCSI環境を組んでいたがHubがトラブルを起こすと仮想マシンが全滅してしまうという致命的問題がありOpenfilerを検証中。
使用サーバは Dell Poweredge2900、Openfilerは、2.3の64ビット版である。
Openfilerはまだまだ検証途中だが
- マルチパスは動いた(ESXから認識した)
- bondインターフェイスも動いているぽい?
- 再接続等でのトラブルはいまのところない。(マルチパスでの検証はまだ)
- OpenManageが標準でサポートされていない。
- パフォーマンスはおおむね良いが、シーケンシャルリードの値が悪い? (CrystalDiskMarkで計測、HDD、RAID、ネットワークの問題かも。)
tgtdの問題点といいところ
- マルチパスが設定できなかった。(SCSI IDを同一にできない?)
- 一度ESXから切断されると二度とつながらなかったりする。(仕様らしい)
- CentOSを使っていたので、OpenManageがちゃんと動く
- パフォーマンスはネットワーク上限まで出る。
- CentOSのアップデートやメンテナンスが困難
マルチパスの組み方が忘れそうなのでまとめ
まず、普通にiSCSIターゲットで公開する。(面倒だから省略)
※CHAP Authenticationは、「Volume」の項目と「Services」の項目の二カ所を設定しないと発見できないので注意。
公開したTargetIQNとは別のTargetをもう一つ作る
そこに、公開しているボリュームを再度LUNマッピングする。
要は、同じHDDを二つのTargetで同時に公開すればよい。
このとき、Targetの名前をわかりやすくしておくと便利
(例)
iqn.2006-01.com.openfiler:iscsi01
iqn.2006-01.com.openfiler:iscsi02
この状態で、ESXからiSCSI検索をするとマルチパス構成になったりもするが
どの経路で接続されるかは不定になってしまうのでもうすこし細工をする。
前提として、eth(bond)インターフェイスが2つ以上ある必要がある。
仮に、eth1とeth2がiSCSI用ネットワークだとして、
それぞれ、eth1(10.0.0.1/16) eth2(10.1.0.1/16)というアドレスを持っているとする。
まず「System」タブから、「Network Access Configuration」を設定する。
Name | Network/Host | Netmask | Type |
---|---|---|---|
10.0.0.0 | 10.0.0.0 | 255.255.0.0 | Share |
10.1.0.0 | 10.1.0.0 | 255.255.0.0 | Share |
次に、「Volume」タブから、右の「iSCSI Targets」を選択して
1つめのターゲットを選択する。「Select iSCSI Target」のところね。
選択したら、「Network ACL」のタブを選択して
Name | Network/Host | Netmask | Access |
---|---|---|---|
10.0.0.0 | 10.0.0.0 | 255.255.0.0 | Allow |
10.1.0.0 | 10.1.0.0 | 255.255.0.0 | Deny |
といった感じで設定する。
次に、2つめのターゲットを選択して
Name | Network/Host | Netmask | Access |
---|---|---|---|
10.0.0.0 | 10.0.0.0 | 255.255.0.0 | Deny |
10.1.0.0 | 10.1.0.0 | 255.255.0.0 | Allow |
と設定すればよい
こうすれば、iscsi01は10.0.0.0経由で、iscsi02は10.1.0.0経由で
接続されるので耐障害性があがるハズである。
もちろん物理的に経路を分けておかなければ意味がないのは言うまでもない。
実は、実際に片方を切断してちゃんと復旧するのかはまだ実験していない。