UbuntuでiSCSI対応NASをマウントする。

コミケ80前だったのでその準備もしながらだったが、先週わが家に新たなNASを導入した。
前々から目を付けていたNASキットであるThecus N4200PRO に日立のCoolSpin対応2TBハードディスク0S03224を4基(そのうち2基はバルク品)搭載し、RAID10を構成したものだ。
導入直後にディスク1基がI/Oエラーとやらで正常に認識されずトラブルシューティングをさせられたものの、その後持ち直してここ1週間ほどは安定して動作している。
SyslogやSNMP、時刻同期あたりの基本的な運用設定は済ませていたものの、まだファイル共有やユーザ・グループの設定、またこの製品が対応しているiSCSI機能についてはまだあまり手を付けていなかったので、つい先ほど手を入れてやった。
ファイル共有やユーザ・グループの設定はWeb UIからちょちょいと設定するだけで済むおもしろみのない内容なので割愛するが、僕はこれまであらゆるデバイスを通じてiSCSIという機能を使ったことがなかったので、今回うちの実験サーバとNASでiSCSIを利用できるように設定した際の記録を残しておく。

まず、NAS側でiSCSIターゲットを設定。
これもWeb UIでの設定なので詳細は割愛するが、必要だった設定項目だけ挙げておく。

  • ディスク容量の割り当て
    元々全体で約4TBのディスク容量があり、そのうち75%をファイル共有に、残り25%をiSCSIに利用できるように考えてあらかじめ配分しておいた。
    今回はそのiSCSI利用可能分から1%(約40GB)を割り当てた。
  • IQN(iSCSI Qualified Name)
    iSCSIではIQNという一意の名前を使ってターゲット-イニシエータ間でSCSI通信を行うらしく、RFC3720他でその命名規則が定められているらしい。
    N4200PROでは英数字からなるターゲット名、年、月、LUN IDしか指定しなかったが、後の手順でそれらしいIQNが生成されていることが確認できた。
  • 認証
    iSCSIターゲットでは接続の際にCHAP認証をかけることができるらしい。
    認証しないという選択肢もあったので、今回は内部のセキュアなネットワークでの接続ということで設定は省いた。

ここまでできればNAS側の準備は完了。
次はUbuntu 10.04の実験サーバでiSCSIイニシエータの設定を行った。

Ubuntu 10.04のデフォルト状態ではiSCSI関連のパッケージはインストールされていないため、いくつか参考サイトを眺めながらiSCSIイニシエータ機能を提供する open-iscsi パッケージとSCSIデバイスのリスト表示が可能になる lsscsi パッケージをインストールした。

# aptitude install open-iscsi lsscsi

UbuntuでiSCSIターゲット機能を実現する iscsitarget パッケージについての説明も各所で見られたのだが、今回はiSCSIイニシエータとして動作すればそれでよいので詳細については触れないことにした。

必要なパッケージのインストール後、iscsiadm コマンドを使ってiSCSIターゲットの情報照会とログインを実行した。
まずは -m discovery オプションを使ってNAS上に設定したiSCSIターゲットのIQNが表示されることを確認。

# iscsiadm -m discovery -t sendtargets -p <NASのIPアドレス>

なぜかわからないが、同じIQNを持ちながらも異なるIPアドレスを持つ2件のエントリが表示された。
N4200PROにはふたつのNICが搭載されており、現在はフェイルオーバモードで動作させているので有効なIPアドレスはひとつのはずなのだが、内部的にひとつアドレスを持ってしまっているのだろうか。
一方のNICをリンクダウンさせたままにしているのもひょっとするとよくないのかもしれない。
続いてiSCSIターゲットにログインし、UbuntuにNAS上の領域をSCSIデバイスとして認識させた。

# iscsiadm -m node -T <ターゲットIQN> ––login

コマンド実行後、しばらくの間コマンドの応答が返ってこなかった。
どうやら -m discovery オプションを指定して実行した際に出てきた2件のエントリの両方にログインを試みたようで、ネットワークの接続性がない1件目のエントリの接続タイムアウト待ちとなってしまったようだった。
同じことで何度も時間を取るのはイヤだったので回避する方法はないかとmanコマンドで問い合わせてみたところ、iSCSIターゲットのIPアドレス、TCPポート番号を直接指定するオプションが存在していた。
NAS側のことはまた後日調べるとして、今回確実にiSCSIターゲットに接続するためには以下のコマンドを実行すべきだった。

# iscsiadm -m node -T <ターゲットIQN> -p <IPアドレス:ポート> ––login

ちなみに、データの不整合を起こさないためにiSCSIターゲットとiSCSIイニシエータは1体1でなければならないようので、iSCSIでログインをし直す前には必ずログアウト処理を行う必要があるそうだ。

# iscsiadm -m node -T <ターゲットIQN> -p <IPアドレス:ポート> ––logout

正常にログインが行えている場合、以下のコマンドを実行するとiSCSIセッション情報が確認できる。

# iscsiadm -m session

また、lsscsi コマンドを実行すると、iSCSIで接続されたVIRTUAL-DISK としてSCSIデバイスが認識されていることが確認できる。

# lsscsi

あとは認識したSCSIデバイスをfdiskなどのツールでフォーマットし、通常のハードディスクと同様に利用すればよい。
次回起動時にも自動でiSCSIターゲットにログインしたい場合は以下のコマンドを実行し、/etc/fstab にマウント設定を記述しておく。

# iscsiadm -m node -T <ターゲットIQN> -p <IPアドレス:ポート> ––op=update ––name=node.startup ––value=automatic

ここまでの手順をたどりながら、実験サーバのディスク上にあったメールデータをNAS上のiSCSIターゲット領域に移行してみた。
ノートパソコンでIMAPS接続してメールを閲覧してみたところ、これまでと比べてメール一覧の更新、メール内容表示の速度が格段に上がっていた。
実験サーバのディスクはRAID構成にはなっていないのでディスクストライピングがある分NASの方が性能がいい、という見方もできるが、そもそもハードディスク自体の性能にも差があるしその他のディスクI/O発生頻度にも差があるので、今回入れたNASの方がI/Oが早い、という結論に至るのは仕方がないことだろう。
しかしまあ何にしても新しいNASが快適な性能を発揮してくれることがわかったので、ファイル共有の部分的な移行やサーバ、ネットワーク機器のバックアップ取得方法と格納先の見直しも進めていければと思う。

いい買いものができてよかった。

参考情報:
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0128
http://collab.nagoya-u.ac.jp/wiki/pages/viewpage.action?pageId=7274967


投稿日

カテゴリー:

,

投稿者:

タグ:

コメント

コメントを残す