(ヽ'ω`) < FSCTでWindowsファイル共有サービスのパフォーマンスを測定する2 - ネットワーク-
(ヽ´ω`) < ネットワークについて
前回の記事でFSCTでは3つの役割のPCが必要という事を解説した。
(ヽ'ω`) < FSCTでWindowsファイル共有サービスのパフォーマンスを測定する - 概要- - (ヽ´ω`) < *****
複数台のPCが存在し、テスト対象はWindowsファイル共有サービスなので、当然3つの役割を担当するPCはネットワークに接続されている必要がある。
ここでテストの敷居が多少高くなり、サーバとクライアントのPCにはデータ通信(実際の負荷)用のネットワークと、テストをコントロールするためのネットワーク、2つのNICが必要となる。
物理・仮想を問わず、通常のファイルサーバやミドル~ハイエンドのNASであれば、NICが2つ以上最初からついていたり、増設は簡単だと思うが、ローエンドのNASの場合はどうするか。恐らくだが、そもそもFSCTではそういった製品のテストを想定していないと思われる。
(ヽ'ω`) < テスト用ネットワークの構築
添付の説明文書では、テスト用ネットワークとして4つの形態を例に上げている。
各形態の概要図については、添付の説明文章内の"FSCT Architecture"の"Networking"を参照していただきたい。
Basic
基本的なスタイル。
サーバと各クライアントはNICを2つ持ち、1つを負荷生成用に使用し、もう一方をテストのコントロールに割り当てる。当然、テストではない環境ではクライアントのNICは1つだけとなる。
おそらく、通常のオフィスなどで最も一般的な形態と思われる。
Segmented
2台以上のクライアントを別々のLANセグメントに配置することで、負荷を分散する。サーバはLANセグメントの数だけNICが必要となる。
1つ重要なことが書いてあって、1Gbpsの回線あたり、4,000ユーザをまかなうことができるとある。
これはhpのPDF文章でも、"FSCTの経験則"として記載されている。
http://h50146.www5.hp.com/products/storage/whitepaper/pdfs/4AA3-8726jpn.pdf
4000以上のユーザがいる場合は、LANセグメントとNICを分割することで、効果的に
使用状況にも大きく左右されると思うが、参考として覚えておくと良い。
Shared
サーバと各クライアントは3つ以上のNICをを持ち、2つ以上のNICを負荷生成用に使用する。
実運用時、各クライアントは別LANセグメントのIPを2つ持つ事になるのだが、サービスレイヤでロードバランシングされるのかな?
という事で軽く検索してみると、Windows Server 2012とSMB3.0の組み合わせで、SMBマルチチャネルという機能が追加されたらしい。
Segmentedの場合、クライアント通信を行うのはそのLANセグメントに属する1つのNICだけだが、Sharedの形態でSMBマルチチャネルが有効な場合は複数のNICが使われるっぽい。
Windows Server 2012 R2 のネットワークの注意事項 - SMB Multichannel (1) - 仮想化でプリセールスしてるSEの一日
NIC Team は Ethernet (L2) ヘッダーの情報で送信パスを決定しますが*1、Multichannel は L7 ベースでコントロールするため、この時点では送信元や宛先に関するヘッダー情報は持っていません。このため、宛先などは一切考えず、到達できるすべてのパスを用いてラウンドロビン的に送ろうとします。
上記ページの図を見ても、複数のLANセグメント(別のサブネット)の通信をまとめてファイル転送が行われている。
逆に同一セグメントの場合はどうなるの? といった疑問だが、Windowsファイル共有に限った話ではなく、Windowsネットワーク全般の話で、同一セグメントでの複数IP付与は想定してないらしい。
How multiple adapters on the same network are expected to behave
複数NICを使用しての通信ということになるとNICチーミングと同じでは? と思われるかもしれないが、NICチーミングはあくまでもL2/3でのロードバランシングなので、単一の相手との通信ではNICのワイヤスピード以上が出ることはない。
また、あるパスでエラーが発生しても、その他のパスを使用して転送が行われるため、サービスの可用性も向上する。
Network fault tolerance. When clients simultaneously use multiple network connections, the clients can continue without interruption despite the loss of a network connection.
SMBマルチチャネルの設定はデフォルトでOnになっていて、複数パスが存在する場合、自動的に構成が行われるので、特に管理者は難しい設定を行う必要はない。
必要がないだけで、経路の制御などを行いたい場合は、ちゃんとそのための方法が用意されている。
Windows Server 2012 R2 のネットワークの注意事項 - SMB Multichannel (3) - 仮想化でプリセールスしてるSEの一日
NIC Teaming
名前の通り、サーバ側のNICをチーミング構成にすることで負荷分散を行う。実際に負荷が分散されるかは、チーミングモードの設定と、運用環境に依る。
チーミングモードについては、以下のページに詳しい。
運用:Windows Server 2012 R2のNICチーミング機能(LBFO)をマスターする (2/3) - @IT
Windows Server 2012 R2であれば、動的モードにしておけば問題ないだろう。
(ヽ'ω`) < どのネットワーク形態がいいの?
FSCTの経験則から、1GbpsのNICが搭載されていれば、4000ユーザまではBasicでも問題が無いとのこと。
Sharedの形態でSMBマルチチャネルが有効であれば、パフォーマンスと可用性が向上するので理想的。
ただ、実際には複数のLANセグメントを接続できない場合が多いだろうから(サービスではなく、ネットワーク設計の問題)、NIC Teamingが現実的だろうか。
(ヽ'ω`) < 画像引用しろよ、文章だけだとわかりにくいだろ
そもそもこの記事自体も説明文章の内容そのまんまなので、ここに画像までやったら引用の範囲を超えますので(ヽ'ω`)
(ヽ'ω`) < あれ? 実際にテスト実行するんじゃないのか?
SMBマルチチャネルの話が少し長くなったので、
(ヽ'ω`) < 次で