最近はR2検証に向けて数年ぶりに環境全部作りなおしているので、検証がまったく進んでおりません(´・ω・`)
Windows Server 2012 R2から簡単なPowerShellコマンドレットを利用して、SMBの帯域制限ができるようになりました。
細かく設定できるわけでは無くカテゴリ単位で設定することになります。
「Default」は全てのSMB通信、その他「VirtualMachine」と「LiveMigration」は名前の通りです。
- Smb Bandwidth Limitの有効化
- 追加されるコマンドレット
設定用GUIは用意されていないため、PowerShellコマンドレットにて設定します、試しに
”Get-Command *SMBband* |Out-GridView”を実行してみると、下画像のように3個のコマンドレットが追加されている事が分かります。
- 各コマンドレットのパラメータ
- Set-SmbBandwidthLimit
指定したトラフィックカテゴリの帯域上限値を設定する。
-BytesPerSecond:帯域の上限値
1048576以上 KBやMBという形式でも指定可能
※bpsでは無くbyte/sです
-Category:制限するカテゴリ
例:Set-SmbBandwidthLimit -BytesPerSecond 10MB -Category Default
- Remove-SmbBandwidthLimit
指定したトラフィックカテゴリの帯域上限値を削除する
トラフィックカテゴリを指定しないと全ての設定が削除されます。
- Get-SmbBandwidthLimit
現在設定されている帯域上限値を取得する
- Set-SmbBandwidthLimit
では実際に設定して確認してみましょう(・ω・)
今回は最初ということでトラフィックカテゴリ「default」のシンプルなファイルサーバー同士の制限を設定してみます。(意訳:まだIB Hyper-Vクラスタの設定が終わってないorz)
※コマンドレットを実行する場合、管理者で実行する必要があります。
環境概要的な何か
表のGbEではなく裏のInfinibandを利用してコピーしています
- まずは何も設定されていない状態
コマンドレットで確認
帯域使用率
- 10MB/sに制限した状態でコピー開始
”Set-SmbBandwidthLimit -BytesPerSecond 10MB -Category Default”で設定し”Get-SmbBandwidthLimit”で確認
帯域使用率
- 途中から100MB/sへ制限変更
”Set-SmbBandwidthLimit -BytesPerSecond 100MB -Category Default”で設定し”Get-SmbBandwidthLimit”で確認
帯域使用率 - 最後に制限削除
”Remove-SmbBandwidthLimit”で設定を削除し”Get-SmbBandwidthLimit”で確認
帯域使用率
このような感じで、設定後即時反映されるようになっています。
また、この機能をインストールすると、カテゴリごとのインスタンスに対応したパフォーマンスカウンタの項目も追加されます。
以上ヾ(‘ω’)ノ゛