web-dev-qa-db-ja.com

Dell PowerVault MD3200i dm-Debian 6.0でのマルチパス構成とパフォーマンスの障害(スクイーズ)

このiSCSIターゲットをいくつかのDebianベースのKVM仮想マシンホストに使用します。ターゲットの各冗長コントローラーには4つのイーサネットポートがあります。イニシエーターにも同様です。2つのスイッチを使用します( ZyXEL GS-2200-24)の間にトランクがあり、VLANが各パスを分離します。ジャンボフレームとフロー制御も有効にしました。

このDebianリリースのMPIOシステムは素晴らしいです:iSCSIターゲットにログインする前にdm-multipathがロードされている限り、すべてが正常に機能しますTM 事前にscsi_dh_rdacをロードする場合は、構成ファイルなしで。

これが最初の問題です。/etc/multipath.confファイルを提供すれば、デフォルトのいくつかを変更できます。 use_friendly_names yesでテストしました。これにより、見栄えの悪いWWIDを使用する代わりに、mpath0/dev/mapper/リンクが正常に作成されます。しかし、rr_min_ioをデフォルトの1000から8に変更しようとすると、無視されます。だから私はこのかわいいダンスをします:

dmsetup suspend mpath0
dmsetup table mpath0 | sed 's, 1000, 8,g' | dmsetup reload mpath0
dmsetup resume mpath0

これにより、ラウンドロビンが開始される前にクアッドリンクの1つに送信される要求の数が、デフォルトの1000から8に変更されます。これにより、実際にはマルチパステーブルが変更されます(multipath -v3 | grep paramsによる)。新しいマルチパスコードでこのデフォルトをどのように構成しますか?マルチパスがすべて動的で自己構成になる前にこれが機能したと思います...少なくとも私が読んだすべてのベンダーのドキュメント、およびWeb上の他の議論は、これが機能したと想定しています。

dd bs=100M count=50 if=/dev/zero of=/dev/mapper/mpath0-part1 & syncを使用した単純な順次書き込みは、この変更により、最大135MB /秒から最大260MB /秒になります。これが2番目の問題です。これは、イニシエーターとターゲットの間に実際にある4Gbpsではなく約2Gbpsです。 iostat -kd 1を1秒間実行すると、更新が実行され、4つのパスのうち2つだけがいっぱいになります。

このLUNはショートストロークです。その16GBは、600 6Gbpsの12スピンドルRAID10アレイの先頭にありますSASディスクは15,000rpmで回転します。これで飽和するのに十分であると期待していました。私が持っている4Gbps;私は正しいですか?

1
Luis Bruno

オンライン再構成

rr_min_ioを変更するために使用した手法は、multipathdが内部で行うことです。実行中のマップの値を調整するユーザーフレンドリーな方法はecho reconfigure | multipathd -kです。

例:これは、rr_min_ioが現在128であるNetAppです。

#dmsetup table 
 360a98000534b504d6834654d53793373:033484800マルチパス01 alua 21ラウンドロビン02 1 8:16 128 8:32128ラウンドロビン02 1 8:64 128 8:48 128 
 360a98000534b504d6834654d53793373-part1:0 33484736 linear 251:0 64 

/etc/multipath.confが変更されたため、rr_min_io1000になりました。次に、

#echo reconfigure | multipathd -k 
 multipathd> reconfigure 
 ok 

変更を確認するには:

#dmsetup table 
 360a98000534b504d6834654d53793373:033484800マルチパス01 alua 21ラウンドロビン02 1 8:16 1000 8:321000ラウンドロビン02 1 8:48 1000 8:64 1000 
 360a98000534b504d6834654d53793373-part1:0 33484736 linear 251:0 64 

Multipathdが、使用する追加の変数の広告とレポートでより良い仕事をすることができることに同意します。 delta multipathdが報告しないものは何でも、dmsetupは報告しますが、それは必ずしもdmsetupを直接使用することがそれらの設定を再構成するための最良のアイデアであることを意味するわけではありません。再構成は、ほぼすべてに対して機能します。

アクティブ-アクティブな負荷分散

導入ガイドによると、SANはアクティブ-アクティブですが、この用語は業界で誤用されています。実際には「デュアルアクティブ」である可能性があります。つまり、LUNには単一のストレージからのみアクセスできます。プロセッサはいつでも使用できますが、両方のコントローラをアクティブにして個別のLUNを駆動することができ、同じLUNに負荷分散することはできません。

ここではp79 負荷分散セクションの下。

 1つのTCP接続の2つのセッションがホストから各コントローラーに構成され(ポートごとに1つの
セッション)、合計4つのセッション)。パスフェイルオーバードライバーは、同じコントローラー上のポートへのセッション間で
 I/Oアクセスのバランスを取ります。各コントローラーに仮想ディスクがある二重
構成では、各[.____を使用してセッションを作成します。 。]両方のコントローラーのiSCSIデータポートは帯域幅を増やし、負荷分散を提供します

デュプレックス構成のコンテキストで仮想ディスクが複数使用されていることに注意してください。同じディスクを呼び出すことはありません。これは、デュアルアクティブ展開のようです。真のアクティブ-アクティブSANは通常、ファイバーチャネル展開用に予約されています。これを実現するiSCSISANが存在する可能性がありますが、iSCSIを広範囲に展開していませんが、私はこれに遭遇していません。

2
ppetraki

無視された値rr_min_ioの背後にある本当の問題は、実行中のカーネルとマルチパスツールの間の単純でサイレントなABIの不一致です。

0
Luis Bruno