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
# yum install scsi-target-utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tgtd サービスを開始します
tgtd サービスは物理マシンの SCSI ターゲットをホストし、iSCSI プロトコルを使用して物理マシンターゲットをホストします。tgtd サービスを開始し、chkconfig コマンドで再起動した後、サービスを永続化します。service tgtd start chkconfig tgtd on
# service tgtd start # chkconfig tgtd on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:LVM ボリュームを作成する
LVM ボリュームは、iSCSI バッキングイメージに役立ちます。LVM スナップショットとサイズ変更は、ゲスト仮想マシンにとって有益な場合があります。この例では、iSCSI を使用してゲスト仮想マシンをホストするために、RAID5 アレイ上の virtstore という名前の新しいボリュームグループに virtimage1 という名前の LVM イメージを作成します。RAID アレイを作成する
ソフトウェア RAID5 アレイの作成については、『Red Hat Enterprise Linux デプロイメントガイド』 で説明されています。LVM ボリュームグループを作成する
vgcreate コマンドを使用して、virtstore という名前のボリュームグループを作成します。vgcreate virtstore /dev/md1
# vgcreate virtstore /dev/md1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LVM 論理ボリュームを作成する
lvcreate コマンドを使用して、サイズが 20GB の virtstore ボリュームグループに virtimage1 という名前の論理ボリュームグループを作成します。lvcreate --size 20G -n virtimage1 virtstore
# lvcreate --size 20G -n virtimage1 virtstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい論理ボリューム virtimage1 は、iSCSI で使用する準備ができています。
オプション: ファイルベースのイメージを作成します
テストにはファイルベースのストレージで十分ですが、実稼働環境や重要な I/O アクティビティーにはお勧めしません。このオプションの手順では、iSCSI ターゲット用に virtimage2.img という名前のファイルベースのイメージを作成します。イメージの新しいディレクトリーを作成します
イメージを保存するための新しいディレクトリーを作成します。ディレクトリーには正しい SELinux コンテキストが必要です。mkdir -p /var/lib/tgtd/virtualization
# mkdir -p /var/lib/tgtd/virtualization
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージファイルを作成する
サイズが 10GB の virtimage2.img という名前のイメージを作成します。dd if=/dev/zero of=/var/lib/tgtd/virtualization/virtimage2.img bs=1M seek=10000 count=0
# dd if=/dev/zero of=/var/lib/tgtd/virtualization/virtimage2.img bs=1M seek=10000 count=0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux ファイルコンテキストを設定する
新しいイメージとディレクトリーの正しい SELinux コンテキストを設定します。restorecon -R /var/lib/tgtd
# restorecon -R /var/lib/tgtd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいファイルベースのイメージ virtimage2.img は、iSCSI で使用する準備ができています。
ターゲットを作成する
ターゲットは、XML エントリーを/etc/tgt/targets.conf
ファイルに追加することで作成できます。target
属性には、iSCSI Qualified Name (IQN) が必要です。IQN の形式は次のとおりです。iqn.yyyy-mm.reversed domain name:optional identifier text
iqn.yyyy-mm.reversed domain name:optional identifier text
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は以下のようになります。- yyyy-mmは、デバイスが開始された年と月を表します (例: 2010-05)。
- 逆ドメイン名 は、逆のホスト物理マシンのドメイン名です (たとえば、IQN の server1.example.com は com.example.server1 になります)。と
- オプションの識別子テキスト は、スペースを含まない任意のテキスト文字列であり、管理者がデバイスまたはハードウェアを識別するのに役立ちます。
この例では、server1.example.com のオプションの手順で作成された 2 種類のイメージの iSCSI ターゲットを、オプションの識別子 トライアル を使用して作成します。/etc/tgt/targets.conf
ファイルに以下を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/tgt/targets.conf
ファイルにdefault-driver iscsi
ドライバータイプを iSCSI として設定する行。ドライバーはデフォルトで iSCSI を使用します。重要この例では、アクセス制御なしでグローバルにアクセス可能なターゲットを作成します。安全なアクセスの実装については、scsi-target-utils を参照してください。tgtd サービスを再起動します
tgtd
サービスを再起動して、設定の変更を再ロードします。service tgtd restart
# service tgtd restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow iptable の設定
iptables を使用した iSCSI アクセス用にポート 3260 を開きます。iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT service iptables save service iptables restart
# iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT # service iptables save # service iptables restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいターゲットを確認します
新しいターゲットを表示して、tgt-admin--show コマンドでセットアップが成功したことを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告ACL リストは all に設定されています。これにより、ローカルネットワーク上のすべてのシステムがこのデバイスにアクセスできるようになります。実稼働環境用にホスト物理マシンアクセス ACL を設定することをお勧めします。オプション: テスト検出
新しい iSCSI デバイスが検出可能かどうかをテストします。iscsiadm --mode discovery --type sendtargets --portal server1.example.com
# iscsiadm --mode discovery --type sendtargets --portal server1.example.com 127.0.0.1:3260,1 iqn.2010-05.com.example.server1:iscsirhel6guest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: デバイスの接続をテストします
新しいデバイス (iqn.2010-05.com.example.server1:iscsirhel6guest) を接続して、デバイスを接続できるかどうかを判断します。iscsiadm -d2 -m node --login
# 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.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバイスの取り外しiscsiadm -d2 -m node --logout
# 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.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、iSCSI デバイスを仮想化に使用する準備が整いました。