12.5. iSCSI ベースのストレージプール
このセクションでは、iSCSI ベースのデバイスを使用してゲスト仮想マシンを格納する方法について説明します。
iSCSI (Internet Small Computer System Interface) は、ストレージデバイスを共有するネットワークプロトコルです。iSCSI は、IP 層で SCSI 命令を使用してイニシエーター (ストレージクライアント) をターゲット (ストレージサーバー) に接続します。
12.5.1. ソフトウェア iSCSI ターゲットの設定
scsi-target-utils パッケージは、ソフトウェアでバックアップされた iSCSI ターゲットを作成するためのツールです。
手順12.4 iSCSI ターゲットの作成
必要なパッケージのインストール
scsi-target-utils パッケージと依存するすべてのパッケージをインストールします。# yum install scsi-target-utils
tgtd サービスを開始します
tgtd サービスは物理マシンの SCSI ターゲットをホストし、iSCSI プロトコルを使用して物理マシンターゲットをホストします。tgtd サービスを開始し、chkconfig コマンドで再起動した後、サービスを永続化します。# service tgtd start # chkconfig tgtd on
オプション:LVM ボリュームを作成する
LVM ボリュームは、iSCSI バッキングイメージに役立ちます。LVM スナップショットとサイズ変更は、ゲスト仮想マシンにとって有益な場合があります。この例では、iSCSI を使用してゲスト仮想マシンをホストするために、RAID5 アレイ上の virtstore という名前の新しいボリュームグループに virtimage1 という名前の LVM イメージを作成します。RAID アレイを作成する
ソフトウェア RAID5 アレイの作成については、『Red Hat Enterprise Linux デプロイメントガイド』 で説明されています。LVM ボリュームグループを作成する
vgcreate コマンドを使用して、virtstore という名前のボリュームグループを作成します。# vgcreate virtstore /dev/md1
LVM 論理ボリュームを作成する
lvcreate コマンドを使用して、サイズが 20GB の virtstore ボリュームグループに virtimage1 という名前の論理ボリュームグループを作成します。# lvcreate --size 20G -n virtimage1 virtstore
新しい論理ボリューム virtimage1 は、iSCSI で使用する準備ができています。
オプション: ファイルベースのイメージを作成します
テストにはファイルベースのストレージで十分ですが、実稼働環境や重要な I/O アクティビティーにはお勧めしません。このオプションの手順では、iSCSI ターゲット用に virtimage2.img という名前のファイルベースのイメージを作成します。イメージの新しいディレクトリーを作成します
イメージを保存するための新しいディレクトリーを作成します。ディレクトリーには正しい SELinux コンテキストが必要です。# mkdir -p /var/lib/tgtd/virtualization
イメージファイルを作成する
サイズが 10GB の virtimage2.img という名前のイメージを作成します。# dd if=/dev/zero of=/var/lib/tgtd/virtualization/virtimage2.img bs=1M seek=10000 count=0
SELinux ファイルコンテキストを設定する
新しいイメージとディレクトリーの正しい SELinux コンテキストを設定します。# restorecon -R /var/lib/tgtd
新しいファイルベースのイメージ virtimage2.img は、iSCSI で使用する準備ができています。
ターゲットを作成する
ターゲットは、XML エントリーを/etc/tgt/targets.conf
ファイルに追加することで作成できます。target
属性には、iSCSI Qualified Name (IQN) が必要です。IQN の形式は次のとおりです。iqn.yyyy-mm.reversed domain name:optional identifier text
詳細は以下のようになります。- yyyy-mmは、デバイスが開始された年と月を表します (例: 2010-05)。
- 逆ドメイン名 は、逆のホスト物理マシンのドメイン名です (たとえば、IQN の server1.example.com は com.example.server1 になります)。と
- オプションの識別子テキスト は、スペースを含まない任意のテキスト文字列であり、管理者がデバイスまたはハードウェアを識別するのに役立ちます。
この例では、server1.example.com のオプションの手順で作成された 2 種類のイメージの iSCSI ターゲットを、オプションの識別子 トライアル を使用して作成します。/etc/tgt/targets.conf
ファイルに以下を追加します。<target iqn.2010-05.com.example.server1:iscsirhel6guest> backing-store /dev/virtstore/virtimage1 #LUN 1 backing-store /var/lib/tgtd/virtualization/virtimage2.img #LUN 2 write-cache off </target>
/etc/tgt/targets.conf
ファイルにdefault-driver iscsi
ドライバータイプを iSCSI として設定する行。ドライバーはデフォルトで iSCSI を使用します。重要この例では、アクセス制御なしでグローバルにアクセス可能なターゲットを作成します。安全なアクセスの実装については、scsi-target-utils を参照してください。tgtd サービスを再起動します
tgtd
サービスを再起動して、設定の変更を再ロードします。# service tgtd restart
iptable の設定
iptables を使用した iSCSI アクセス用にポート 3260 を開きます。# iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT # service iptables save # service iptables restart
新しいターゲットを確認します
新しいターゲットを表示して、tgt-admin--show コマンドでセットアップが成功したことを確認します。# tgt-admin --show Target 1: iqn.2010-05.com.example.server1:iscsirhel6guest System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller SCSI ID: IET 00010000 SCSI SN: beaf10 Size: 0 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: None LUN: 1 Type: disk SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 20000 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: /dev/virtstore/virtimage1 LUN: 2 Type: disk SCSI ID: IET 00010002 SCSI SN: beaf12 Size: 10000 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: /var/lib/tgtd/virtualization/virtimage2.img Account information: ACL information: ALL
警告ACL リストは all に設定されています。これにより、ローカルネットワーク上のすべてのシステムがこのデバイスにアクセスできるようになります。実稼働環境用にホスト物理マシンアクセス ACL を設定することをお勧めします。オプション: テスト検出
新しい iSCSI デバイスが検出可能かどうかをテストします。# iscsiadm --mode discovery --type sendtargets --portal server1.example.com 127.0.0.1:3260,1 iqn.2010-05.com.example.server1:iscsirhel6guest
オプション: デバイスの接続をテストします
新しいデバイス (iqn.2010-05.com.example.server1:iscsirhel6guest) を接続して、デバイスを接続できるかどうかを判断します。# iscsiadm -d2 -m node --login scsiadm: Max file limits 1024 1024 Logging in to [iface: default, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260] Login to [iface: default, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260] successful.
デバイスの取り外し# iscsiadm -d2 -m node --logout scsiadm: Max file limits 1024 1024 Logging out of session [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260 Logout of [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260] successful.
これで、iSCSI デバイスを仮想化に使用する準備が整いました。