【Storage】VMware 5.1からSRPなデータストアを使う 
前回までのあらすじ

 無事にSRPターゲットの起動に成功したら、どんな人でもおそらくVMwareからこれを使いたいと考えるでだろう。VMware 4.xにはSRPイニシエータがあり、これからSRPなデータストアに繋ぐことが出来たので、Supported DeviceにあるConnectX2を買えばSRPが使える!と思っていた。
 しかし、去年の後半くらいからIBを触っていき、色々調べているうちに5系になってからVMware用SRPイニシエータが配布さていないことを知り、IBを使うには10GとしてiSCSIで繋ぐしかないことを知って絶望する。SRPの良さを知ってからこの事に気がついたので、知ったときはときはマジかよ…と結構落ち込んだ。
 一応、iSCSI over IPoIBがどの程度のパフォーマンスが出るのか調べてみると、ConnectedMode(MTU 65520)が使えないので10GbEなIBのMPIOx2(20Gbリンク)でさえ5GB/s(4-5Gbps)程度しか出ないらしい。Oh…
http://communities.vmware.com/thread/39 ... p;tstart=0

if anyone in Mellanox wants IB to get market acceptance then they should support this crap! (Mellanoxの中にIBのシェアを上げたいやつがるいならこのクズをどうにかしろ!)


 全くです…

 はっきり言って、全く使い物にならないといってもいいレベルのサポート状況にうちひしがれていた中、ある情報が届く。



 キター!ConnectX2が来たら本気出す!
 そして、ようやくConnectX2が来たので試してみたのであった…


 ConnectX2はもっと前からあったのですが、 前回 無事にSRPターゲットが使えるようになったので、VMwareから接続し、どの程度パフォーマンスが出るのか試してみました。



検証環境


 今回試験に利用した構成です。

SRP ターゲット


OS
 ubuntu server 12.04
HW
 MB/Rampage Gene II
 CPU/Xeon X5647
 Mem/4GB@1333MHz x6=24GB,UDIMM
 HCA Infinihost III EX(4xDDR)
 HDD WDC WD400JD-55MS x1  ST3160318AS x6


前回作成した構成そのままです。


SRP イニシエータ(VMhost)


OS
 VMware 5.1 update1(VMware-VMvisor-Installer-5.1.0.update01-1065491.x86_64.iso)
HW
 MB/Rampage II Extreme
 CPU/Xeon E5530@定格
 HCA/ConnectX2 VPI(QDR,QSFP)
 Memory 6x4GB@1066MHz



 いつも使っているマシンが使用中だったため、前回のイニシエータから微妙に変更されています。変更点としては、MBがLanParty UTからRampage II Extremeへ、CPUがCorei7 920からXeon 5530へ、メモリのクロックが1333から1066へと変わっています。また、HCAが最初から対応ファームウェアだったので今回は実行しませんでしたが、ファームのバージョンによってはファームのアップデートが必要です。
Firmware versions:
• ConnectX®-2: 2.9.1000 and above
• ConnectX®-3: 2.11.0500 and above


VMwareのセットアップ


 インストールは、ローカルのHDDにISOからインストールしました。今思うとintel pro1000/CTを使ったiSCSI bootでもよかったのですが、その時は気がつきませんでした。。あと、RampageIIのオンボードのNIC (Marvell  88E8056) がVMWでドライバを持っていなくて認識できなかったため、隣に転がっていた1000MTを追加する羽目になりました。ハードウェア対応は要チェックですね。。

 インストールが終わったら、vSphere Clientから構成タブ→左側の「ソフトウェア」カラム→セキュリティプロファイル から、SSHとESXiシェルを有効にします。ESXiシェルを有効にするのは、SSHのログインをRSA鍵だけではなくパスワード認証も許可するためのものなので、不要な場合は以下を飛ばしてください。

SSHのパスワードログイン有効化


 ESXiシェルを有効にしたら、ローカルコンソールからAlt+F1を押してESXiシェルを立ち上げ、以下を変更します。
~ # vi /etc/ssh/sshd_config
#PasswordAuthentication no
PasswordAuthentication yes


OFED for VMware ESXiインストール



 以下のDownloadタブから 「MLNX-OFED ESXi 5.X Driver」をダウンロードします。
http://www.mellanox.com/page/products_d ... re_drivers

 または、wgetでダウンロードします。
wget h t t p://www.mellanox.com/downloads/Drivers/MLNX-OFED-ESX-1.8.1.0.zip


 次に、 マニュアル に沿ってドライバを追加していきます。
esxcli software vib install -d MLNX-OFED-ESX-1.8.1.0.zip


 そして、VMホストを再起動します。再起動したあと、ESXiシェルからesxcliを実行してドライバがロードされているかを見ます。
~ # esxcli software vib list | grep Mellanox
net-ib-cm 1.8.1.0-1OEM.500.0.0.472560 Mellanox PartnerSupported 2002-02-26
net-ib-core 1.8.1.0-1OEM.500.0.0.472560 Mellanox PartnerSupported 2002-02-26
net-ib-ipoib 1.8.1.0-1OEM.500.0.0.472560 Mellanox PartnerSupported 2002-02-26
net-ib-mad 1.8.1.0-1OEM.500.0.0.472560 Mellanox PartnerSupported 2002-02-26
net-ib-sa 1.8.1.0-1OEM.500.0.0.472560 Mellanox PartnerSupported 2002-02-26
net-ib-umad 1.8.1.0-1OEM.500.0.0.472560 Mellanox PartnerSupported 2002-02-26
net-memtrack 2013.0131.1850-1OEM.500.0.0.472560 Mellanox PartnerSupported 2002-02-26
net-mlx4-core 1.8.1.0-1OEM.500.0.0.472560 Mellanox PartnerSupported 2002-02-26
net-mlx4-ib 1.8.1.0-1OEM.500.0.0.472560 Mellanox PartnerSupported 2002-02-26
scsi-ib-srp 1.8.1.0-1OEM.500.0.0.472560 Mellanox PartnerSupported 2002-02-26


 一番下に待ちわびたsrpドライバがいたら成功です。これで、ESXiシェルを抜けます。

SRP イニシエータの接続


SRP Targetの準備


  前回 の通りtargetcliの初期設定は出来ている前提で、いつものように受け入れるセッションIDを追加するため、 SRPターゲット側でいつものように tailf /var/log/syslog します。tail(f| -F)したら、vSphereClientを起動し、構成→左側の「ハードウェア」カラム→ストレージアダプタ から、ConnectX2がいると思うので、右クリックし「再スキャン」をします。




すると、いつも通りにターゲット側にメッセージが上がると思います。
May 19 21:27:21 SRP kernel: [ 425.419379] Session : kernel thread ib_srpt_compl (PID 3662) started
May 19 21:27:21 SRP kernel: [ 425.419436] Rejected login because no ACL has been configured yet for initiator 0x8119bbffff00d8c50002c903000e7855.
May 19 21:27:21 SRP kernel: [ 425.419493] Session 0x8119bbffff00d8c50002c903000e7855: kernel thread ib_srpt_compl (PID 3662) stopped


 この 0x8119bbffff00d8c50002c903000e7855 という長いセッションIDをコピーしたら、targetcliからACLを追加します。
/> cd ib_srpt/0xfe800000000000000019bbffff00d8c5/acls/
/ib_srpt/0xfe...ff00d8c5/acls> create 0x8119bbffff00d8c50002c903000e7855
Successfully created Node ACL for 0x8119bbffff00d8c50002c903000e7855
Created mapped LUN 0.


 これで、再度vSphereClientから再スキャンをかけると、接続されます。

May 19 21:29:21 SRP kernel: [ 545.118200] Received SRP_LOGIN_REQ with i_port_id 0x8119bbffff00d8c5:0x2c903000e7855, t_port_id 0x19bbffff00d8c4:0x19bbffff00d8c4 and it_iu_len 580 on port 1 (guid=0xfe80000000000000:0x19bbffff00d8c5)
May 19 21:29:21 SRP kernel: [ 545.119125] Session : kernel thread ib_srpt_compl (PID 3948) started


LUNのフォーマット


 接続されたら、ストレージから「ストレージの追加」で今追加したLUNをフォーマットします。いつも通りです。







 これで、ようやく念願のSRPが使えるようになりました。

パフォーマンス



RAM上のディスクパフォーマンス


 まず、いつも通りに20GBを割り当てたtmpfsを作りその上にFileIOな物を作ります。targetcliから /backstores/rd_mcp create name=srp_ramtest size=10Gとやることによりこんなことをしなくてもram上にファイルを作れることを知りましたが、一応今までと統一するためにtmpfsを利用します。ファイルを作成したら、通常通りOSを入れ、起動しました。利用したのはWindwos7 UltSP1、ハードウェア割り当てはCPUに2コア、メモリに2G、その他は特にウィザードからいじっていません。
 まずはCDMの結果です。


何故か実マシンで挿したときより早い…ホストのキャッシュが効いていそうな感じがします。
ディスクのIOもどこかで詰まっているようなことはありませんでした。桁が大きすぎるためか、何故かHDTuneのモニタリングが落ちます…。



しかし、HD Ttuneだと動きが若干違いました。同期と非同期の動きなのか、VMのキャッシュが効かないような読み方をするのか、何が原因だかはいまいち分かりませんでした。どっちが本当なんでしょうか。。



そして、HD Ttuneから書き込もうとしたのですが、RAMのサイズの関係でルートデバイスしか作れなかったので書き込みの実験は出来ませんでした。

ZFS上のディスクパフォーマンス


 次に、ZFSのディスクのテストです。上の実験中はZFSのモジュールをアンロードして20GBのRAMをファイルとして割り当てていましたが、今回はまずvmdkをコピーし、RAMのファイルを取り除き、ZFSのディレクトリ上に再びコピーして起動しました。構成は前回と同じく、ディスク6本のraidz構成です。ディスクへの書き込みは時間があるときに追記しようと思います。。




 CDMとHD Ttuneの差がかなりありますが、今回はディスクの動きが見れたので、CDMのベンチ時はZFSのキャッシュに載っているためほぼReadの時にディスク負荷はかからず、HD Ttuneの時には常にディスクに負荷がかかっている、と分かりました。ディスク直に読んだときとのパフォーマンスの差は、原因がVMFS の特性であったりHDDの特性であったりするので、やはりデータストアにSSDを使わないとこれ以上のパフォーマンスは難しそうです。SSDでのZFS時の動きやL2ARCの動きを見てみたいので、誰かそこそこなSSDを束で貸してください><多分書き込み過多でぶっ壊しそうですが><

 とにかく、「元のストレージが早ければそれだけSRPの速度はでる」と言うことが分かったのでよしとします。やはりパフォーマンスは金で買うしかなさそうですね…。

hasukawa 
raidzでチェックするなら、5台(deta4台+Parity1台)って形を取ると良いってみました。
またraidz2なら、6台(data4台+Parity2台)が良いみたいです。
raidz*は、基本的にdataディスクが2^n台+Parityn台で構成せよってzfsのドキュメントでみました。
うちはraidz2 10台で構成してますが、scrubやrebuildでは劇的に遅いので台数多いのもよろしくないです。10台だったら、raidz 5台 x2 のストライプとかにする方がパフォーマンスも出るかと。
詳細は@team_eririn氏のhttp://www.ainoniwa.net/ssp/?p=224#more-224 辺りから読んで行かれるのがよろしいかと。

参考になれば幸いです。

Administrator (xmms) 
>hasukawaさん
2^n台+Parityn台で構成せよというのは存じませんでした。勉強になりました。ありがとうございます。@team_eririnさんのページはいつも参考にさせていただいてますw

しかし、このときすでに8台のHDD構成で4台RaidZの2ストライプで作ってしまったんですよねえ…w 
ただ、傾向としてはまた別に行った4台のストライブでも同じような動き(ZFS上のターゲットに連続で書き込みをしているとある程度書いたところで速度がブレ始める)をしたので、やはり書き込みが連続で長時間入るような用途には向かないようです。まあ、構造上そうなるのは分かりますが…。
SRPターゲットとして使っている分には、瞬間的なものであればVMware上のバッファであったり、LIO SRPでFileIO時にBufferedを指定していればOS側のバッファで吸収できるようですが…。

とりあえず1ヶ月近く運用してみましたが、今のところLinux+ZFS+SRPと言うアレな構成でも特に不自由なところはでていまんが、また問題が起きたら書いていこうと思います。

Mikeml 
nfmbcgneadlbg, payday loans online reviews , dapihobayqxoy

コメントを書く
必要事項とコメントを入力して下さい。









タグの挿入