https://www.amulet.co.jp/shop-blog/?p=4712
2013年11月15日
日常業務で大きなファイルのやりとりがモタつくこと、ありませんか?
会社や自宅のLANでサイズの大きなファイルをやり取りするとき、「もう少しスピードが出れば…」と感じることはないでしょうか。以前このブログで高速なNASを構築した際に、ボンディングというネットワークインターフェイス(LANポート)の冗長化を行いました。
ボンディングはネットワークインターフェイスの冗長化だけではなく、データ転送スピードの高速化を目的に行うこともできます。今回はLANポートを3つ使ってボンディングを行い、ベンチマーク測定、ファイル転送速度の計測等を試してみました。結果だけ見たい方は、最後の計測結果をご覧ください。
ストレスの無いLAN環境を!
サクサクのLAN環境は、好きですか?
答えはほとんどの方が「Yes!」だと思います。実際GB単位のデータをコピーする際に何分もかかると、気が散ってしまうものです。
「ステータスバーを見つめる時間を短くしたい」、そんな思いで今回の実験はスタートしました。
自宅LAN、社内LANなどLAN環境はあらゆるところに存在します(応仁のLANや島原のLANなんていう乙なものもありましたね)。ちょっと速度が遅いかなと感じた時に、この記事がお役に立てば幸いです。
【下準備】カテゴリ5のLANケーブルを排除!
では、実際に何をやったかご紹介していきます。おそらく大半の方はLANケーブルには「カテゴリ」というものが存在することはご存知だと思います。「カテゴリ」とはその名の通りLANケーブルの通信速度に応じた分類のことで、現在市販されているものはほとんどがカテゴリ「5e」以上のものです。
LANケーブルのカテゴリについては、価格.comにわかりやすい説明がありました。
http://kakaku.com/pc/lan-cable/guide_0810/
筆者の実験環境ではカテゴリ5のLANケーブルがまだ使われていたので、パフォーマンスを得るためにカテゴリ6に統一することにしました。
カテゴリはLANケーブルに直接印字されている(「cat 6」など)ので、この機会に確認してみて下さい。自宅ではまだカテゴリ5のケーブルを使っていました…orz
今回目指すもの
下準備で揃えたカテゴリ6のLANケーブルを使えば、1Gbps(理論上は125MB/s)のデータ転送速度を得る事ができます。今回はその125MB/sの限界突破を目指します。
使ったもの
実験で使ったものは以下の通りです。
- Windowsデスクトップ 1台(NICは3つ、サーバ兼クライアント)
Intel Core i7 -3770K 16GBメモリ 2TB SATA ハードディスク - Linuxデスクトップ 1台(NICは3つ、サーバ用)
Intel Core i5-2600S 16GBメモリ 2TB SATA ハードディスク - Linuxデスクトップ 1台(NICは3つ、クライアント用)
- MacBook Pro (無線でのテスト用)
- Gigabit LAN対応のハブ 1台
- カテゴリ6のLANケーブル 6本(折れないツメいいですね!)
仕組みとして必要な要件とは?
- ハードウェアに2つ以上のGigabit Ethernetがある
- OSがボンディング(チーミング)をサポートしている
- LANケーブルが接続しているハブが1000BASE-TXに対応している
実験環境ネットワーク図
ボンディングの設定
用意したWindowsとLinuxにボンディングの設定をしていきます。ちなみにLinuxでは「ボンディング」、Windowsでは「チーミング」と言うようです。
【Linux側の設定】
LinuxはCentOS 6.4を使用しました。CentOSでのボンディング設定は以前こちらの記事で書きました。また、以下のブログでも非常に丁寧に解説されているのでご参照ください。
BondingによるNIC冗長化
http://www.oss-d.net/centos/bonding
【Windows側の設定】
「スタート」 > 「コントロールパネル」 > 「デバイスマネージャー」 > 「ネットワークアダプター」 を選択すると、現在何本のNICが有効になっているかを確認することができます。
(オンボードのNICと併せて増設しているNICのドライバもインストールしておいて下さい)
次に、実際にチーミングの設定をしていきます。WindowsのチーミングについてはIntelのサイトに詳しい解説がありました。細かな機能を知りたい方は以下のリンクをご覧下さい。
ネットワーク・コネクティビティー |
アドバンスド・ネットワーキング・サービス (ANS) チーミング機能の使用方法 |
http://www.intel.com/jp/support/network/sb/cs-009747.htm
今回は「アダプティブ ロード バランシング」を採用することにしました。
チーミングの設定方法については、スクリーンショット付きで非常にわかりやすいサイトがありました。
http://kirishima.it/pc/intel_nic_teaming.html
設定が完了したら、実際にチーミングした内容が反映されているか確認してみましょう。
「コントロールパネル」 > 「ネットワークと共有」からアクティブなネットワークの状態を確認します。
今回の実験環境では、Windowsに3本のNICがあるため、1Gbps×3で理論上は3Gbpsの帯域速度を獲得できているのがわかります。この状態でベンチマークツールとネットワーク上でのファイルコピーを行い、測定値を比較してみることにします。
実験内容
実験は3つの方法で行いました。
- CrystalDiskMarkによる読み書き速度のテスト
- Lan Speed Testによるスループットの計測
- SCPでのファイル転送速度の計測
計測結果
1. CrystalDiskMarkによる読み書き速度のテスト
Windows上にボンディング接続のマシンと、LAN1本での接続のマシンをマウントして、CrystalDiskMarkによる読み書きの計測を行います。計測値の差から実際にボンディングの効果はどれほどなのか確認できます。
ボンディングされたサーバ
LAN1本で接続されたサーバ
【結果】
いずれの項目でも、ボンディングされたサーバの方はそうでない方と比べて約5倍くらいのスピードが出ています。サーバの性能(CPU、メモリ容量)によるところが若干考えられますが、アクセス先のストレージはいずれもSATA接続のハードディスクです。
【おまけ】
MacBook Proで無線LAN経由での計測値
もはや有線接続とは比べるまでもありません…
2. Lan Speed Testによるスループットの計測
CrystalDiskMarkでの計測と同じく、Windows上にボンディング接続のマシンと、LAN1本での接続のマシンをマウントして、Lan Speed Testによるスループットの計測を行います。計測値の差から実際にボンディングの効果はどれほどなのか確認します。使用するデータ量は100MBです。計測結果の「Mbps」の項目に注目し、CrystalDiskMarkでの単位と合わせるために1/8をかけて数値を算出します。
ボンディングされたサーバ
LAN1本で接続されたサーバ
【結果】
それぞれの「Mbps」の値に注目し、単位MB/sに換算すると以下のようになりました。
ボンディングされたサーバ
書込み:約46MB/s
読込み:約90MB/s
LAN1本で接続されたサーバ
書込み:約11MB/s
読込み:約12MB/s
明らかに帯域速度が異なることがわかります。Lan Speed Testではデータの転送速度を測っているため、ケーブル上を流れるデータの総量により近い値になっています。
3. SCPでのファイル転送速度の計測
①LinuxボンディングサーバとLinuxボンディングクライアント
②LinuxボンディングサーバとWindowsチーミングクライアント
で、SCPによるファイル転送速度の計測を行います。
Linuxではscpコマンド、WindowsではWinSCPを使います。ファイルサイズは200MB〜4.2GBのもので行いました。
【結果】
まずはLinuxでの計測結果です。
149MB/sや134MB/sなど、1Gbpsの理論的限界値である125MB/sを超えています!
これはLAN1本で接続されたサーバでは絶対に出せない数値です。
次にWindowsでの計測結果です。WindowsではLinuxよりもはるかに遅い数値になりました。
何がボトルネックになっているのか原因はわかりませんが、もう少しソフトウェアのチューニングが必要かもしれません。
特別な機械は何一ついりません
以上簡単ですが、ボンディングを行った場合とそうでない場合でのパフォーマンスの違いを見てきました。設定作業は慣れるまで少し戸惑うことがあるかもしれませんが、ボンディング(チーミング)設定をして快適なネットワーク環境にチャレンジしてみて下さい。
ボンディング設定のネットワークのご相談承ります。
実際にボンディングによってどれだけネットワーク帯域が高速化できるのかや、VNCでの動画再生で動画がどれくらいカクつくかなど、LAN環境の改善にご興味のある方、様々なご相談にも応じます。
0 コメント:
コメントを投稿