ネットワーク負荷をかけずにデータを転送する(QoSポリシーでの帯域制御)

Windows Server
スポンサーリンク

WindowsやWindows Serverで、ネットワーク帯域制御する方法はいくつかあります。その中で、操作が簡単なのはQoSポリシーを設定する方法です。今回は、本番システムサーバからの大容量データ転送を例として、制御方法を紹介します。コンセプトは「本番システムに悪影響を与えないこと」。

要件例

データ移行のために、遠隔地にあるサーバー(Windows Server)から10GBの大容量データを転送する必要がある。サーバーとは100Mbps程度の転送能力をもつ回線で接続されている。何も考えずにデータ転送すると、ネットワーク帯域を圧迫してしまい、システムの動作に支障が生じる。システムに影響がない程度に、負荷を抑えてデータを転送したい

設定概要

データを外付けHDDに入れて輸送します・・・というのは冗談です。場合によってはそれも有効ですが、今回は既設ネットワークで転送する方法です。

いくつか方法はありますが、ここではGUIで簡単に行える「QoSポリシー」を使った方法を紹介します。ただし、この方法は送信方向しか制御することができません。データを転送する元、このケースではサーバーの設定を変更する必要があります。

設定方法

データ送信元のサーバーで、「ファイル名を指定して実行」を開き「gpedit.msc」と入力し、ローカールグループポリシーエディターを起動します。下図のように、[コンピューターの構成] > [Windowsの設定] > [ポリシーベースのQoS] を選択し、メニューから[操作] – [新規ポリシーの作成]を実行します。

下図の画面が開きます。ポリシー名は任意のものを指定します。「DSCP値を指定する」はOFFにします。[出力方向のスロットル率を指定する]でデータの転送量を指定します。今回のケースでは、最大100Mbpsの転送能力を持つ回線の10%弱である8Mbpsなら、システムに影響がないと判断したとします。ここで、“bps”(ビット/秒)でなく”Bps”(バイト/秒)で指定する点に注意して下さい。8Mbpsとしたければ、8で割った1MBpsとします。「次へ」をクリックします。

次の下図の画面はデフォルトのままとして、「次へ」をクリックします。

次に現れる下図の画面では、帯域制御する相手側のコンピューターを限定します。デフォルトの「すべての宛先IPアドレス」とすると、誰彼構わず通信速度を落とすため、システムの本来の動作に支障をきたしてしまいます。ですので、例えば移行データの転送先が「192.168.50.100」だとすると、下図のように「192.168.50.100/32」と指定します。(転送先が192.168.50.* の場合は「192.168.50.0/24」)

最後の画面です。下図のように赤枠の部分を「TCPとUDP」とします。通信プロトコルがTCPだけだと分かっている場合は、デフォルトのTCPのみとしても構いません。このケースでは、限定したコンピューターとのすべての通信を制限するため、このようにしています。分からなければ、こちらをお勧めします。

「完了」をクリックして、QoSポリシーが作成されれば、設定は完了です。設定すれば(特に「gpupdate」コマンドを実行しなくても)、すぐに効き始めます。このケースでは、該当サーバーから192.168.50.100に対して、10MB程度のファイルを転送してみましょう。1MBpsの速度に制限されていれば、10秒程度かかるはずで、大体それくらいかかればOKです。逆に1~2秒で転送が完了するようなら、効いていないので設定を見直します。

おわりに

今回の記事は以上です。不備やご意見等ありましたら、下のコメント欄やtwitterからお願いします。

Windows Server の知識をさらに深めるには、書籍もおすすめです。Windows Server は実は機能が豊富で、Webに情報がないケースも多いです。無駄に探し回らないために、良書を手元に置いておくと効率的です。おすすめの本は、以下記事にまとめています。

もとだて

最後まで読んでいただきありがとうございました。

フィードバック

コメント