ASUSTOR AS-204TEレビュー: iSCSIデバイスとしてサーバーと接続する


AS-204TE関連の記事一覧はこちらより

QNAPやNetgear、ASUSTORのAS-204TEみたいな高機能なNASキットにはだいたいiSCSIの機能がついていますね。サーバーで動かしているKVMの仮想マシンのディスクを保存する場所に使えると思って、やってみることにしました。

iSCSIとはこういうもので

iSCSI - Wikipedia

記憶装置とコンピュータの通信に使うSCSIコマンドを、IPネットワーク経由で送受信するためのプロトコル。

iSCSIとは - 意味/解説/説明/定義 : IT用語辞典

昔なつかしいSCSIデバイスと同じものではないのですが、そこで利用されていたSCSIのプロトコルをTCP/IP上で利用できるプロトコルらしいです。

よくストレージデバイスに利用されているようです。テープデバイスもそうでしょうかね? 一見するとネットワークに出るのでサーバー?と思われますが、 イニシエーター と呼ばれるクライアント的なホスト/デバイスと ターゲット と呼ばれるサーバー的なホスト/デバイスの1体1で接続して利用します。同時接続は許されてしまっている、 排他的な実装ではない(複数ユーザーで書き込みが許されている) ので、特定のシチュエーション(仮想マシンサーバーのライブマイグレーションとか)に使う以外は、基本的に1体1での接続を守る必要があります。

で、既存のネットワークのストレージサーバーと何がメリットがあるのかなと思ったのですが、

  • よく利用されるsamba(CIFS)より性能が高い
  • 普通の物理ストレージデバイスと同じように扱える

のがメリットのようです。

普通のストレージデバイスというのはいわゆるHDDなどのディスクやフラッシュディスクのようなことで、iSCSIのストレージを接続したあとにパーティションの作成、ファイルシステムの作成、フォーマットの作業が必要になります。マウントもmountコマンドが利用できるので悩むことはあまり無いです。

NAS側でiSCSIターゲットの作成をする

早速やってみます。今回は、AS-204TEをiSCSIターゲットにし、Ubuntu ServerをiSCSIイニシエータにします。UbuntuでiSCSIを扱うときにはこちらを参考にしてみました。

AS-204TEではメインメニューのストレージマネージャより作成できます

作成ボタンを押すと、新規iSCSIデバイスの作成がスタートします。

メニューが3つありますが、初回は一番上の「1つのLUNを持つiSCSIターゲット」を選択すると良いです。

ここのLUNと言うのは、Logical Unit Number(論理ユニット番号)と言います。これは自分もよく理解していないのですが、iSCSIターゲットでは以下の様な構成がされるようです。

ターゲット側で、仮想的なディスクを定義します。仮想マシンの仮想ディスクみたいなもの?だと思います。それを定義し、イニシエータ側で接続、それをマウントすることができるようになるようです。

iSCSIのストレージを使うとき、iSCSIターゲットと、それに属するLUNの作成がそれぞれ必要になります。

次では、ターゲットの名前を決めます。IQNはiSCSI Qualified Nameといって、iSCSIの識別名だそうです。

チェックサムの設定がありますが、今回は行っていません。(していいことがあるかまだわかってなかったので)

認証を使うか設定します。CHAP認証だそうです。(あまりよく理解していないので以下を参考に。。。

LUN を作成します。シンプロビジョニングは利用したディスクスペースのみNAS側で消費される設定です。LUNサイズはイニシエータ側で使いたいディスクのサイズを指定します。

確認のあとに終了を押してiSCSIのデバイスを作成します。

作成すると元の画面に戻ってきます。IQNやマップしたiSCSI LUNで結果が確認できます。

Ubuntu Serverのイニシエータへ接続

ではUbuntu Server側のイニシエータでiSCSIターゲットを接続し、作成したLUNをマウントします。

(あまり見せたくない情報は隠しています)

Ubuntu Server側には、イニシエータとしてをインストールします。

sudo apt-get install open-iscsi

まずは、iSCSIターゲットを探させます。

$ sudo iscsiadm -m discovery --type sendtargets --portal 192.168.35.120
192.168.35.120:3260,1 iqn.2011-08.com.asustor:as-204te-fefefe.kvm
# iqn名は一部変更しています。

見つかったiqnの指定をして、ログインします。

sudo iscsiadm -m node --targetname iqn.2011-08.com.asustor:as-204te-fefefe.kvm --login

すると、/dev/disk/by-path/[iqn]が出現します。同時に/dev/sd*デバイスも出現します。/dev/sd*は実際は/dev/disk/by-path/側を指しているシンボリックリンクです。

$ hiroshi@snd-server:~$ ls -la /dev/disk/by-path/ip-192.168.35.120\:3260-iscsi-iqn.2011-08.com.asustor\:as-204te-fefefe.kvm-lun-0
lrwxrwxrwx 1 root root 9 4月 10 15:57 /dev/disk/by-path/ip-192.168.35.120:3260-iscsi-iqn.2011-08.com.asustor:as-204te-fefefe.kvm-lun-0 -> ../../sdd

あとは、このデバイスをディスクのパーティションの作成、ファイルシステムでのフォーマットを行います。今回の例は/dev/sddとします。ファイルシステムはext4とします。

Partedの例として

$ sudo parted /dev/sdd
GNU Parted 2.3
/dev/sdd を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) unit GB
# LUNのすべてのディスクスペースを使います。
(parted) mkpart primary ext4 0 -0
(parted) print
モデル: ASUSTOR iSCSI Storage (scsi)
ディスク /dev/sdd: 429GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: msdos

番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 524kB 429GB 429GB primary

(parted) quit

$ sudo mkfs.ext4 /dev/sdd1

パーティションを作ると、dev/disk/by-path/の中にあiSCSIターゲット名-part*

最後に、マウントします。マウントのターゲットは/dev/disk/by-path/の中にある、iSCSIターゲット名-part* の指定

sudo mount /dev/disk/by-path/ip-192.168.35.120\:3260-iscsi-iqn.2011-08.com.asustor\:as-204te-fefefe.kvm-lun-0-part1 /vm-images

マウントされると、AS-204TEのストレージマネージャでは以下のように表示されます。

設定できればあとは通常のディスクとして利用できます。LUNのサイズは変更できます。作成、接続した状態のLUNのサイズを変更しても、イニシエータ側ではすぐに反映されたように見えませんでした(parted freeで見ても空き容量が出てこなかった)。LUNのこういった変更の反映方法を知らなかったのですが、イニシエータ側でパーティションを作りなおしました。(つまり中身を全て消す)

追記:2015-04-13 23:37: /etc/fstabに記述する

(すっとぼけて書き忘れていました。)

/etc/fstabに記載して再起動した時にも接続できるようにします。

$sudo vim /etc/fstab

/dev/sdb1       /vm-images        ext4    defaults,auto,\_netdev 0 0

もしくは、UUIDで良いと思います。

UUID="[iscsi partition UUID]"       /vm-images        ext4    defaults,auto,\_netdev 0 0

注意として、オプションにautoと_netdevが必要になります。 autoは自動的にマウントさせる、_netdevはネットワークデバイスで、ネットワークが動いた時点でマウントさせろという意味のようです。(NFSしか働かないと書いてあるのでいらない気がするのですが、どうなんでしょうね?) このオプションについてはUbuntuのガイドにも記述されていました。

Fstab - Community Help Wiki

Debianのドキュメントや、ではautoがなかったので、必須ではないかもしれませんね。_netdevは必須のようです。 SAN/iSCSI/open-iscsi - Debian Wiki www.open-iscsi.org/docs/README

自分はこのオプションを入れ忘れて、再起動した後にboot途中で止まって何らかのキー(sを入れたら動いた)を入れないと起動しませんでした。結構焦るので注意。

性能

性能ですが、bonnie++というベンチマークソフトで計測してみた結果がこちらです。

コマンドは以下のとおり。htmlファイルは適当な名前にしてます

$sudo bonnie++ -d /path/to/mountpoint -s 1024 -r 256 -u root | bon_csv2html > bonnie++\_disk.html

ホストマシン システムディスク(SATA HDD)

Version 1.97Sequential OutputSequential InputRandom
Seeks
Sequential CreateRandom Create
SizePer CharBlockRewritePer CharBlockNum FilesCreateReadDeleteCreateReadDelete
K/sec% CPUK/sec% CPUK/sec% CPUK/sec% CPUK/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU
server1G6809811247691155106406597++++++++4562716++++++++++++++++++++++++++++++++++++++++++++++++
Latency15690us3302us136us3365us231us8944usLatency88us396us442us137us122us68us

iSCSI

Version 1.97Sequential OutputSequential InputRandom
Seeks
Sequential CreateRandom Create
SizePer CharBlockRewritePer CharBlockNum FilesCreateReadDeleteCreateReadDelete
K/sec% CPUK/sec% CPUK/sec% CPUK/sec% CPUK/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU
server1G6829810035181011455424996++++++++32771116++++++++++++++++++++++++++++++++++++++++++++++++
Latency14364us1194us135us3940us102us7256usLatency149us471us425us87us108us47us

遜色ない感じですね。

おまけ: AS-204TE sambaサーバー

追記:2015-04-13

iSCSIの対比として、mount.cifsでマウントしたsambaサーバーのディスク性能も見てみました。

Version 1.97Sequential OutputSequential InputRandom
Seeks
Sequential CreateRandom Create
SizePer CharBlockRewritePer CharBlockNum FilesCreateReadDeleteCreateReadDelete
K/sec% CPUK/sec% CPUK/sec% CPUK/sec% CPUK/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU
server1G106198829959425274371496858464221.35165111293021761741247451211
Latency10357us133us537ms27092us73184us159msLatency262ms224ms230ms205ms6506us112ms

sambaでの性能を見ると、やっぱりiSCSI早いんですね。使うところではちゃんと使わないと。

雑感

実はこのiSCSIデバイスはKVM側でストレージプールとして利用する予定でした。ストレージプールとして登録して中にディスクイメージをおいたりISOイメージファイルをおいたりする場所にする予定でした。

でしたが、KVM側でiSCSIの接続を行うとパーティションでしか扱えないことがわかって、KVM側にはiSCSIデバイスをマウントしたディスクへ、ディレクトリベースのストレージプールとして登録しました。

仮想マシンのイメージファイルは、マシンをシャットダウンした後に、もともと保存していたサーバー内蔵のディスクからrsyncしてiSCSIデバイスへコピーした後に、稼働させています。

後々にライブマイグレーションできるといいなあと思ってやってたのですが、これで出来るかはちょっとわからないですね。とはいえ、仮想マシンのディスクがNAS側に写せましたし、性能も申し分無いのでいろいろと安心かなと。

ASUSTOR NAS AS-204TE
B00H8LTJJC

ASIN : B00H8LTJJC
Amazonで詳しく見る
Powered by Amazon Quick Affiliate (JP)

こちらはAmazonアソシエイトプログラム参加リンクです