清水理史の「イニシャルB」
11axのベンチも安心! 10GbE化したSynology NASにiPerf3をインストール
2019年3月18日 06:00
ユーザー作成のパッケージアプリやDockerコンテナを利用すれば、本連載でもテストに用いているネットワーク測定ツール「iPerf3」のサーバーとして、SynologyのNASを使うことはさほど難しくない。ファイルの保管やバックアップだけでなく、ネットワーク速度のベンチマークにも、NASを活用してみよう。
登場予定の1Gbps超え有線LANを備えた11axルーターのテストに向けて
2018年末にASUSから登場した「RT-AX88U」に続き、ネットギアジャパンからも「Nighthawk AX8」が発表された。さらに、Galaxy S10のWi-Fi 6対応も発表されたことで、ようやく国内でもIEEE802.11ax(Wi-Fi 6)が使える環境が整いそうだ。
こうした状況は個人的にも楽しみなのだが、同時に、「そろそろ何とかしなければ」と対応を迫られていたのが、ネットワーク機器のベンチマークテスト環境だ。
これまでは、Core i3搭載のNUCにWindows Serverをインストールし、iPerf3を稼働させていたのだが、さすがに古くなってきたし、10GBASE-Tなど、1Gbpsを超える環境のテストもちらほら登場してきたため、このまま使い続けるわけにも行かなくなってきた。
今のところは、LAN側が1Gbps止まりの11ax対応ルーターが多いため、まだ対応は可能だ。しかし、すでに海外で、ASUS、NETGEAR、TP-Linkなどが発表しているように、今後は、LAN側が1Gbpsを越える11axルーターが当たり前になってくるだろうことを考え、思い切って環境を切り替えることにした。
10GBASE-T対応させたSynology NASをiPerf3のサーバーとして使う
新しいサーバーの候補は、普段からファイルサーバーとしても活用しているSynologyのNAS「DS1517+」だ。
常時稼働しているNASをベンチマークのサーバーとしても使えれば効率的だし、2018年にネット回線、スイッチ、PC、NASと、メインの環境を10Gbps化しておいたおかげで、速度面では十分な環境が整っている。
しかしながら、最大の課題は、肝心のiPerfをどう導入するかだ。SynologyのNASにはさまざまな機能が搭載されているが、さすがにベンチマークテストのサーバーとして使うことは想定されていないため、iPerf3の実行環境は標準では用意されていない。
そこで、いろいろと調べてみたところ、2つの方法が見つかった。
1つは、ユーザーが作成したパッケージを利用する方法だ。個人制作のパッケージとなるため、信頼性の問題はあるものの、海外のSynologyのフォーラムでは、比較的古くから知られていて、実際に活用しているユーザーも少なくない。
こちらのウェブページで配布されているが、SynologyのNAS用OSである「DSM 5.2」「DSM 6.1」「DSM 6.2」の各バージョンごとに用意されており、さまざまなモデルに対応している。
もう1つは、Dockerを使う方法だ。SynologyのNASのうち、Plusシリーズより上位のモデル(対応機種はこちら)であれば、Dockerパッケージの利用が可能だ。これを利用することで、iPerf3をコンテナとして稼働させることができる。
Dockerが使えないコンシューマー向けのモデルでは、言わば“野良”パッケージを使うしかないが、筆者宅のDS1517+はどちらにも対応できたので、この両方を試してみることにした。
iPerf3のユーザー作成パッケージを試す
まずは、汎用性が高いパッケージ版から試していこう。
ウェブサイトにアクセスした後、「Iperf」メニューを開くと、いきなりディレクトリの一覧が表示される。
バージョンごとにパッケージが管理されているので、稼働中のバージョンに合わせてダウンロードする必要があるが、今回は最新バージョンの「DSM 6.2」を選択する。
すると、「.spk」という拡張子のファイルが、ズラリと表示される。どうやら、arp-scanのパッケージとiperfのパッケージの両方が保存されているので、ファイル名の先頭が「iperf」で始まるものだけに注目していこう。
注目したいのは、CPUの部分だ。SynologyのNASでは、モデルごとに搭載CPUの違いがあり、これによってパッケージも分けられている。ファイル名に含まれる「alpine」や「braswell」といったCPUコアの開発コードネームなどを参考に、自分が利用しているモデル用のパッケージをダウンロードする必要がある。
そんなこと言われても、自宅のNASに搭載されているCPUなんて知らない……。という場合も、心配する必要はない。スペックを調べてもいいが、以下で紹介するウェブページで、ほとんどのモデルのCPUを参照することができる。
これを参照すると、筆者宅のDS1517+のCPUは、Intelの「Atom C2538」で、CPUコアはAvotonとなる。このため、先のサイトから「iperf_avoton-6.2_3.6-1.spk」をダウンロードすればいいことになる。
パッケージのファイルをダウンロードしたら、手動でNASにインストールする。管理画面の「パッケージセンター」から、「手動インストール」を選択し、ダウンロードしたファイルを指定する。
ブラウザーによっては、ダウンロードしたファイルの拡張子が「.tar」になっていることがあるので、その場合は「.spk」に変更しておけばいい。
なお、個人制作のアプリパッケージなので、インストール時にはデジタル署名がないという警告が表示される。そのリスクを承知した上でインストールしてほしい。あくまでも自己責任で試して欲しい。
インストールが完了したら、iPerf3が使えるようになる。と言っても、GUIの操作画面が用意されるわけではないので、コンソールからコマンドを入力して実行する必要がある。
「コントロールパネル」の「端末とSNMP」でSSHサービスを有効化し(ポートはお好みで構わない)、SSHに対応する「PuTTY」などのターミナルクライアントを使ってNASにアクセスする。アカウントとパスワードを入力してログイン後、「iperf3 -s」と入力すれば、NASがiPerf3のサーバーとして稼働する。
次に、同一ネットワーク内にあるスマートフォンのアプリやPCなどのクライアントから「iperf3 -c 192.168.1.170」などと接続すれば、テストが実行されるはずだ。
DockerでiPerf3を稼働させる
次に、DockerでiPerf3を稼働させてみよう。あらかじめNASにDockerのパッケージをインストールした状態で、まずはiPerf3のイメージをダウンロードする。
すべてコマンドラインで実行した方が手っ取り早いが、一部の操作はGUIでも可能なので、なるべくGUIを使っていくことにしよう。
Dockerを起動したら、「レジストリ」でイメージを検索する。「iperf3」で検索すると、「networkstatic/iperf3」が表示されるので、これをダブルクリックしてダウンロードする(126MBある)。
ダウンロードが完了したら、コンテナを作るのだが、これはGUIで実行するよりもコマンドを使った方が効率的だ。SSHでログイン後、以下のコマンドを実行し、もう一度、管理者アカウントのパスワードを入力する。
sudo docker run -it --name=iperf3-server -p 5201:5201 networkstatic/iperf3 -s
これで、iPerf3サーバーがNAS上で稼働する。ユーザー作成のパッケージをインストールした後と同様に、クライアントから接続してみるといいだろう。
一度、稼働させてしまえば、GUI画面からDockerコンテナごとに起動、停止が可能になる。コンテナ画面でスイッチをオフにすれば停止し、再びオンにすれば稼働させることができる。SSHでログインしなくて済むので便利だ。
仮想化コンテナであるDockerでも、パフォーマンス面の問題はなさそうだ。「-P10」のオプションを付けてセッションを増やしてやると、10Gbpsの有線LANを経由した環境で、7~8Gbps程度の結果が得られた。
これなら、有線LANが1Gbps以上の11axルーターでも、問題なくテストできそうだ。