iSCSIを用いた仮想化環境の構築手順:続・実践! Xenで実現するサーバ統合(2)(1/3 ページ)
仮想化ソフトウェアの「Xen」を用いてサーバを統合するのはいいけれど、肝心のデータやアプリケーションを格納するストレージはどのように配置するのが最も効果的でしょうか? 続編では仮想化とストレージの効果的な活用にフォーカスを当てていきます(編集部)
前回「切っても切れない仮想化とストレージの関係」では、仮想化とストレージの関係、そして仮想マシンを配置するストレージの構成について説明しました。今回はiSCSIのストレージを複数のホストサーバで共有し、その上で仮想マシンを稼働させる手順について解説したいと思います。
なお、Xenのホストとして同一スペックのマシンを使用し、OSはCentOS 5.1をベースとして話を進めます。
【関連記事】
http://www.atmarkit.co.jp/flinux/special/xen01/xen01.html
仮想化技術の大本命「Xen」を使ってみよう 〜 インストール & Debian環境構築編 〜
http://www.atmarkit.co.jp/flinux/special/xen02/xen01.html
仮想化技術の大本命「Xen」を使ってみよう 〜 Xen対応カスタムカーネル構築編 〜http://www.atmarkit.co.jp/flinux/index/indexfiles/xenindex.html
連載:実践! Xenで実現するサーバ統合
iSCSI構成での仮想化環境の構築
iSCSIの共有ストレージを利用した仮想化環境は図1のような構成になります。
このうち「iSCSIイニシエータ」とは、iSCSIへの接続元となるクライアントです。この記事ではiSCSIイニシエータとして「Open-iSCSI」をXenのホストサーバに実装してiSCSIに接続します。
「iSCSIターゲット」とは、イニシエータが接続するストレージのことです。本記事ではストレージ専用機を使用していますが、サーバにiSCSIターゲットソフトウェアを実装することで、iSCSIストレージを提供することも可能です。
それでは、実際のiSCSI構成のセットアップ手順について解説していきたいと思います。
Open-iSCSIの入手からインストールまで
iSCSIに接続するために「Open-iSCSI」というオープンソースのiSCSIイニシエータを使用します。
今回は執筆時の最新版である「open-iscsi-2.0-869.2」をOpen-iSCSIプロジェクトのサイトからダウンロードします。ホストサーバの任意のディレクトリから、wgetコマンドでダウンロードし、tarボールを展開します。
# wget http://www.open-iscsi.org/bits/open-iscsi-2.0-869.2.tar.gz # tar xvzf open-iscsi-2.0-869.2.tar.gz # cd open-iscsi-2.0-869.2
次に、コンパイルを行います。コンパイルにはLinuxカーネルのヘッダファイルが必要になります。makeコマンドに使用しているカーネルソースの場所を指定して実行します。なお、CentOSの開発ツール、開発ライブラリのパッケージセットはインストール済みであることが前提となります。
# make KSRC=/usr/src/kernels/2.6.18-53.1.19.el5-xen-x86_64
コンパイルが成功すると、以下のように出力されます。
Compilation complete Output file ----------------------------------- ---------------- Built iSCSI Open Interface module: kernel/scsi_transport_iscsi.ko Built iSCSI library module: kernel/libiscsi.ko Built iSCSI over TCP kernel module: kernel/iscsi_tcp.ko Built iSCSI daemon: usr/iscsid Built management application: usr/iscsiadmRead README file for detailed information.
次に、先ほどのmakeコマンドにinstallを付け加え、バイナリをインストールします。
# make KSRC=/usr/src/kernels/2.6.18-53.1.19.el5-xen-x86_64 \ install …… (中略) …… *************************************************** Setting InitiatorName to InitiatorName=iqn.2005-03.org.open-iscsi:cdbe3547eb2 To override edit /etc/iscsi/initiatorname.iscsi *************************************************** install -d /etc/iscsi/ifaces install -m 644 etc/iface.example /etc/iscsi/ifaces
インストールが成功すると、上記のように出力されます。このホストのイニシエータ名が「iqn.2005-03.org.open-iscsi:cdbe3547eb2」であることが分かります。
次に、depmodを実行してカーネルモジュールの依存関係を解決します。
# depmod -aq
ここまでがインストール作業になります。続いてOpen-iSCSIを起動し、ストレージに接続してみます。
Open-iSCSIの起動とターゲットへの接続
Open-iSCSIを起動するには、以下のコマンドを実行します。
# service open-iscsi start
これでOpen-iSCSIが起動できました。次は、iscsiadmコマンドを使ってターゲットへ接続します。
iSCSIでは、接続する際に「IQN(iSCSI Qualified Name)」を指定する必要があります。IQNとは、イニシエータやターゲットを一意に識別するための名前のことです。つまり、iSCSIストレージに接続するには、ターゲットIQNを知っている必要があるということです。
そこで、iscsiadmコマンドのdiscoveryモードを使います。discoveryモードでは、ターゲットのIPアドレスを指定して実行することで、ターゲットIQNを得ることができます。
# iscsiadm -m discovery -t sendtargets -p 172.20.192.24 172.20.192.24:3260,1 iqn.1994-04.jp.co.hitachi:rsd.d7h.t.11799.1b000
出力結果から、ターゲットIQNが「iqn.1994-04.jp.co.hitachi:rsd.d7h.t.11799.1b000」であることが分かりました。ここでiscsiadmのオプションについて少し説明しておきましょう。なお、詳細についてはmanページを参照してください。
オプション | 内容 |
---|---|
-m, --mode | モード。discovery/node/fw/sessionのいずれかを指定します |
-t, --type | Disoveryモードのタイプ。通常はsendtargetsを指定します |
-p, --portal | IPアドレスとポートを指定します。ポートのデフォルト値は3260です |
-T, --targetname | ターゲットIQNを指定します |
-l, --login | ターゲットにログインします |
-u, --logout | ターゲットからログアウトします |
表1 scsiadmのオプション |
それでは、ターゲットIQNを指定してログインしてみます。
# iscsiadm -m node -T \ iqn.1994-04.jp.co.hitachi:rsd.d7h.t.11799.1b000 -l Logging in to [iface: default, target: iqn.1994-04.jp.co.hitachi:rsd.d7h.t.11799.1b000, portal: 172.20.192.24,3260] Login to [iface: default, target: iqn.1994-04.jp.co.hitachi:rsd.d7h.t.11799.1b000, portal: 172.20.192.24,3260]: successful
ログインすることができました。fdiskコマンドで確認してみます。
# fdisk -l (中略) Disk /dev/sda: 59.0 GB, 59055800320 bytes 64 heads, 32 sectors/track, 56320 cylinders Units = シリンダ数 of 2048 * 512 = 1048576 bytes ディスク /dev/sda は正常な領域テーブルを含んでいません
ローカルディスクとは別に、新しくSCSIデバイス/dev/sdaが追加されました。ここまでくれば、あとはローカルのSCSIデバイスと同様に扱うことができます。
でも、これで終わりではありません。このままではホストを再起動したときにターゲットに接続されないので、起動時に自動的に接続できるように設定を追加します。まず、Open-iSCSIがOS起動時に起動されるようにしておきます。
# chkconfig open-iscsi on
次に、ターゲットに自動的にログインするように設定します。以下のように一度ログインしたターゲットの設定ファイルが作成されています。
# cd /etc/iscsi/nodes # cd iqn.1994-04.jp.co.hitachi:rsd.d7h.t.11799.1b000 # cd 172.20.192.24,3260,1 # vi default
この「default」ファイルの「node.startup = manual」を、以下のように変更します。
node.startup = automatic
これで再起動後も自動的にiSCSIに接続されるようになりました。
以上の手順について、ホストサーバAとBの両方で実施することで、iSCSIストレージの共有化ができます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 連載:実践! Xenで実現するサーバ統合
有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します - 特集:サーバの仮想化技術とビジネス展開の可能性
1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった - 特集:仮想化技術のアプローチと実装
1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう - 特集:仮想OS「User Mode Linux」活用法
Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 - 特集:仮想化技術の大本命「Xen」を使ってみよう(インストール & Debian環境構築編)
高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう - 特集:仮想化技術の大本命「Xen」を使ってみよう(Xen対応カスタムカーネル構築編)
Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる - 特集:IPv6、UML、セキュリティ機能の統合-全貌を現したLinuxカーネル2.6[第4章]
今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう - Linux Squareプロダクトレビュー VMware Workstation 4
PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう - 古くて新しい「サーバ仮想化技術」の行方
サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する