複数人の重たいデータのバックアップも高速に

hdd

数GBまたは数十GBといった大容量データは,他の場所にコピーするだけでもかなり時間がかかります。高速なネットワークストレージに気軽に放り込めれば,空いた時間に「バックアップを取る」と固く身構えなくても良いのではないでしょうか。

今回はネットワーク共有ストレージをあたかも自分のPCにマウントしてローカルボリュームとして使えるようになる「iSCSI」の仕組みを利用して,高速なデータバックアップ環境を作ってみました。大量の動画や写真を管理している方の参考になればと思います。

取り組みイメージ

10Gb Ethernetカードを搭載したPCに2台のSSDを取付けてRAID0にし,高速なデータ転送環境を作りました。

img

 

この仕組みのいいところ

10Gb EthernetとiSCSIの組み合わせは,「社内専用高速クラウドストレージ」というイメージがわかりやすいかと思います。つまりどういうことかと言うと,コンピュータのポートにダイレクトに外付けするような「高速なデータ転送」と「使いたい時に使いたいだけ増やせる」手軽さを手にできるということです。

実験で使用したハードウェア環境の解説をしつつ,早速その利便性を見て行きましょう。

使ったもの

サーバハードウェアは,弊社のPOWERSTEP Cubeをベースに使いました。

CPUをCore i7、メモリを16GB搭載し、ストレージに1TB SSDを2台搭載、かなりパワフルな仕様に変更しています。さらに10Gb Ethernetカードを追加する事により,ネットワークを介したデータ転送を高速化しています。

img2

SSD Crucial CT1000MX200SSD1 1TBは,MTBF(平均故障時間)150万時間で,速度及び耐久性に優れたハイエンドモデルです。

MTBF [Mean Time Between Failure] 平均故障間隔

故障から次の故障までの平均的な間隔、連続稼働している時間の平均値。
数値が大きいほど、システムの信頼性が高い事を示しています。  

今回は2.5″ SSDを2台搭載したRAID 0 ですが、M.2 SSDをシステム領域とし、2.5″ SSD 4台(マザーボードのSATAポートの数の関係で最大)でデータ用領域を構築するといったこともできます。また,10Gigabit Ethernet Adapter X540-T1と排他となりますが、PCI-Express SSDの搭載も可能です。

クライアントPCには弊社のPOWERSTEP Towerを使いました。(現行モデルの一世代前のモデルです)
OSはWindows 10 Enterprise Evaluation 64bitをインストールしています。
別途ドライバプログラムを用意することなく、インストールメディアのみで各デバイスと10Gb Ethernetカードは動作しました。

10Gb Ethernetカードについて

使用製品:Intel Ethernet Converged Network Adapter X540-T1
http://www.intel.co.jp/content/www/jp/ja/network-adapters/converged-network-adapters/ethernet-x540.html

ethernet-x540-single-port-left-view-10385944

 

インテル イーサネット・コントローラー X540を搭載したRJ-45イーサーネットケーブルが使用できる10Gigabit対応PCI-Eカードです。
インテルがサーバ市場で、10Gb Ethernet(以下10GbE)を普及させる為に開発された製品です。

また、サーバ向けマザーボードにもオンボードでX540コントローラーは多く採用されています。PCIeのインターフェイスは、PCI Express 2.1 5.0GT/s x8レーンとなります。マザーボードのPCIeスロットにPCI Express 2.1以上のx8レーン、x16レーンの空きがあれば取り付けることができます。PCIeスロットに搭載する事で10GbEを使用できます。

Intel X540コントローラーには、MDI/MDI-X の自動設定機能がありますのでX540-T1を搭載した機器を一対一で接続する際でも、ツイストペアストレートケーブルを使用します。クロスオーバーケーブルを使用すると、ケーブルのクロスされている一部のペアがサポートされていない等で、低速リンクとなったり接続できない場合があります。

対応OS

Windows Server2012
Windows8
Windows Server 2008R2SP1
Windows7 SP1
Windows Server 2008SP2
Windows Vista SP2
Windows Server2003R2
Windows Server2003SP2
Linux の安定したカーネルのバージョン 3.x 、2.6
Red Hat Enterprise Linux 5 、 6
SUSE Linux Enterprise Server 10,11
FreeBSD9
VMware ESX/ESXi

転送速度

例えば、Blu-ray DISC シングルレイヤー 一枚分 25GBを転送するとします。

・1Gbit

データ容量 25GBtye ×1024×1024×1024×8bit = 214,748,364,800 bit
回線速度   1Gbps ×1000×1000×1000 = 1,000,000,000bit

転送時間 214,748,364,800 / 1,000,000,000 = 214.7483648秒(3分34.7秒)

伝送効率100%の場合などはあり得ませんので、仮に50%とします。

214.7483648 / 0.50 = 429.4967296秒

約7分095秒
・10Gbit

データ容量 25GBtye ×1024×1024×1024×8bit = 214,748,364,800 bit
回線速度  10Gbps ×1000×1000×1000 = 10,000,000,000bit

転送時間 214,748,364,800 / 10,000,000,000 = 21.47483648秒

伝送効率 50%

21.47483648 / 0.50 = 42.94967296秒

約42.95秒

計算上ですと、約10倍の転送速度が得られる事になります。
※実際には、ハードウェアの処理やOSの処理等も入りますのでこの通りの速度はでません。

この計算には、株式会社シーマン様のWeb便利ノート、転送時間・速度計算を使用させていたたきました。
http://www.cman.co.jp/

接続に使用するケーブル

10GbE の接続には、ツイストペアケーブルが使用されます。ケーブルのカテゴリにより、接続が可能な距離のは異なりカテゴリ6のケーブルでは条件付きで55m、6Aのケーブルでは100mとなっています。

カテゴリ6のケーブルは、ケーブルにシールドが無く、電気信号が長距離伝送では他のケーブルの信号による干渉(エイリアンクロストーク)が起こり障害が発生しやすい為です。一般家庭でご使用になる場合は、カテゴリ6Aのケーブルで十分ではないでしょうか。(価格単価や接続距離的な面を考慮した場合)
http://www2.elecom.co.jp/cable/lan/index.html#1

エイリアンクロストーク

複数のネットワークケーブルを配線した場合に、隣接したケーブルから受けるノイズの事です。自身も隣接するケーブルにノイズを与え、互いに電磁的な影響を及ぼし合います。

ツイストペアCAT7ケーブルのメリット

10GbEといえば、光ファイバーケーブルを使用しての導入には高額な予算が必要というイメージがありますが、ツイストペアケーブルを使えば光ファイバーと比較して、かなり安価に導入することができます。ケーブルの取り回しや入手のし易さもポイントです。
100Base-TX、1000Base-T(Gigabit)との互換性もあるので、予算に合わせての順次10GbE化も可能です。

iSCSIサーバ環境の構築

iSCSIサーバの構築手順については以下のサイトを参考にさせていただきました。

CentOS 6 – iSCSIターゲットの設定 : Server World
http://www.server-world.info/query?os=CentOS_6&p=iscsi

iSCSIサーバ(Linux)側は,/etc/sysconfig/network-scripts/ifcfg-XXX を編集してJumbo Frameの設定「MTU=9000」を追記します。

# vi /etc/sysconfig/network-scripts/ifcfg-XXX

クライアント側でもMTUに関する設定を行います。

イーサネットを高速化するジャンボ・フレーム技術
http://www.atmarkit.co.jp/ait/articles/1108/11/news103_2.html

WindowsとLinuxの両方で速度が出ていることを確認します。

◯Windows

ss7

 

◯Linux

ethtoolコマンドでNICの認識を確認します。

# ethtool enp1s0
Settings for enp1s0:
Supported ports: [ TP ]
Supported link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 10000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: external
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes

スループットの計測

iperfを使ってスループットの計測を行いました。問題なく10Gbの速度が出ていることを確認できました。

# iperf -c 192.168.1.2
————————————————————
Client connecting to 192.168.1.2, TCP port 5001
TCP window size: 95.9 KByte (default)
————————————————————
[ 3] local 192.168.1.1 port 46282 connected with 192.168.1.2 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 11.5 GBytes 9.90 Gbits/sec
# iperf -s
————————————————————
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
————————————————————
[ 4] local 192.168.1.1 port 5001 connected with 192.168.1.2 port 41538
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 11.5 GBytes 9.87 Gbits/sec

ちなみにLinuxの内部ストレージに速度は1GB/sを記録しました。

# hdparm -t /dev/md126

/dev/md126:
Timing buffered disk reads: 3212 MB in 3.00 seconds = 1070.56 MB/sec

iSCSIボリュームへの接続設定

WindowsへのiSCSIボリューム設定を行います。以下のサイトがわかりやすいと思います。

iSCSIボリュームにアクセスする方法/イニシエーター(initiator)の設定方法
http://faq.buffalo.jp/app/answers/detail/a_id/14261

速度計測

WindowsでiSCSIボリュームをローカルにマウントし,読み書きのベンチマークを取ってみました。

ss9

 

SATAで直接繋いだ時とあまり変わらない位の性能が出ていることがわかります。これくらいの速度で仕事ができれば,大容量ファイルを空き時間に放り投げておいてもストレスを感じることは少なそうです。

実験環境まるごと展示します

今週9/14(月)〜来月10/2(金)まで,この記事でご紹介した環境をそのまま店頭に展示します。10Gb Ethernetを活用した高速ネットワークストレージにご関心があればお気軽にお立ち寄り下さい。

次回はSambaを使った10Gbネットワーク共有ストレージの実験をお届けする予定です。