Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
13.2.3.5. iSCSI ベースのストレージプール
推奨事項
前提条件
手順13.5 iSCSI ターゲットの作成
targetcli パッケージのインストール
# yum install targetcli
targetcli コマンドセットの起動
# targetcli
ストレージオブジェクトの作成
ストレージプールを使用して、3 つのストレージオブジェクトを作成します。- ブロックストレージオブジェクトの作成
/backstores/block
ディレクトリーに移動します。- create コマンドを実行します。
# create [block-name][filepath]
以下に例を示します。# create block1 dev=/dev/sdb1
- fileio オブジェクトの作成
/fileio
ディレクトリーに移動します。- create コマンドを実行します。
# create [fileio-name][image-name] [image-size]
以下に例を示します。# create fileio1 /foo.img 50M
- ramdisk オブジェクトの作成
/ramdisk
ディレクトリーに移動します。- create コマンドを実行します。
# create [ramdisk-name] [ramdisk-size]
以下に例を示します。# create ramdisk1 1M
- この手順で作成したディスクの名前を書き留めておきます。これらは後で使用されます。
iSCSI ターゲットの作成
/iscsi
ディレクトリーに移動します。- ターゲットの作成には、以下の 2 つの方法があります。
- パラメーターを指定せずに create コマンドを実行します。iSCSI qualified name (IQN) は自動的に生成されます。
- IQN とサーバーを指定して create コマンドを実行します。以下に例を示します。
# create iqn.2010-05.com.example.server1:iscsirhel7guest
ポータル IP アドレスの定義
iSCSI 経由でブロックストレージをエクスポートするには、最初にポータル、LUN、および access control lists ACL を設定する必要があります。ポータルには、ターゲットが監視する IP アドレスと TCP、および接続するイニシエーターが含まれます。iSCSI はポート 3260 を使用します。このポートはデフォルトで設定されています。ポート 3260 への接続:/tpg
ディレクトリーに移動します。- 以下のコマンドを実行します。
# portals/ create
このコマンドを実行すると、ポート 3260 をリッスンしている利用可能な IP アドレスがすべて使用できるようになります。ポート 3260 をリッスンする IP アドレスを 1 つだけにする場合は、コマンドの末尾に IP アドレスを追加します。以下に例を示します。# portals/ create 143.22.16.33
LUN の設定と、ストレージオブジェクトのファブリックへの割り当て
この手順では、ストレージオブジェクトの作成 で作成したストレージオブジェクトを使用します。- ポータルの IP アドレスの定義 で作成した TPG の
luns
ディレクトリーに移動します。以下に例を示します。# iscsi>iqn.iqn.2010-05.com.example.server1:iscsirhel7guest
- 最初の LUN を ramdisk に割り当てます。以下に例を示します。
# create /backstores/ramdisk/ramdisk1
- 2 番目の LUN をブロックディスクに割り当てます。以下に例を示します。
# create /backstores/block/block1
- 3 番目の LUN を fileio ディスクに割り当てます。以下に例を示します。
# create /backstores/fileio/fileio1
- 作成される LUN の一覧を表示します。
/iscsi/iqn.20...csirhel7guest ls o- tgp1 ............................................................[enabled, auth] o- acls...................................................................[0 ACL] o- luns..................................................................[3 LUNs] | o- lun0......................................................[ramdisk/ramdisk1] | o- lun1...............................................[block/block1 (dev/vdb1)] | o- lun2................................................[fileio/file1 (foo.img)] o- portals.............................................................[1 Portal] o- IP-ADDRESS:3260.........................................................[OK]
各イニシエーターの ACL の作成
イニシエーターの接続時に認証を有効にします。指定した LUN を、指定したイニシエーターに制限することもできます。ターゲットとイニシエーターには一意の名前があります。iSCSI イニシエーターは IQN を使用します。- イニシエーター名を使用して、iSCSI イニシエーターの IQN を検索します。以下に例を示します。
# cat /etc/iscsi/initiator2.iscsi InitiatorName=create iqn.2010-05.com.example.server1:iscsirhel7guest
この IQN は、ACL を作成するために使用されます。 acls
ディレクトリーへ移動します。- 次のいずれかを実行して ACL を作成します。
- パラメーターを指定せずに create コマンドを実行して、すべての LUN およびイニシエーターに ACL を作成します。
# create
- 特定の LUN およびイニシエーターに ACL を作成し、iSCSI インティエーターの IQN を指定して create コマンドを実行します。以下に例を示します。
# create iqn.2010-05.com.example.server1:888
- すべてのイニシエーターに 1 つのユーザー ID とパスワードを使用するように、カーネルターゲットを設定します。
# set auth userid=user_ID # set auth password=password # set attribute authentication=1 # set attribute generate_node_acls=1
この手順を完了したら、ストレージプールをセキュリティー保護 して続行します。設定を保存します。
以前の起動設定を上書きして、設定を永続化します。# saveconfig
サービスを有効にします。
次回の起動時に保存した設定を適用するには、サービスを有効にします。# systemctl enable target.service
オプションの手順
手順13.6 RAID アレイでの論理ボリュームの設定
RAID5 アレイの作成
RAID5 アレイの作成方法は、『Red Hat Enterprise Linux 7 Storage Administration Guide』 を参照してください。RAID5 アレイに LVM 論理ボリュームを作成する
RAID5 アレイで LVM 論理ボリュームを作成する方法は、『Red Hat Enterprise Linux 7 Logical Volume Manager Administration Guide』 を参照してください。
手順13.7 検出可能性のテスト
新しい iSCSI デバイスが検出可能であることを確認します。
# iscsiadm --mode discovery --type sendtargets --portal server1.example.com 143.22.16.33:3260,1 iqn.2010-05.com.example.server1:iscsirhel7guest
手順13.8 デバイスの接続のテスト
新しい iSCSI デバイスの接続
新しいデバイス (iqn.2010-05.com.example.server1:iscsirhel7guest) を接続して、デバイスを接続できるかどうかを判断します。# iscsiadm -d2 -m node --login scsiadm: Max file limits 1024 1024 Logging in to [iface: default, target: iqn.2010-05.com.example.server1:iscsirhel7guest, portal: 143.22.16.33,3260] Login to [iface: default, target: iqn.2010-05.com.example.server1:iscsirhel7guest, portal: 143.22.16.33,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:iscsirhel7guest, portal: 143.22.16.33,3260 Logout of [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel7guest, portal: 143.22.16.33,3260] successful.
手順13.9 iSCSI ストレージプールで libvirt のシークレットを使用する
libvirt の秘密ファイルを作成する
チャレンジハンドシェイク認証プロトコル (CHAP) のユーザー名を使用して、libvirt シークレットファイルを作成します。以下に例を示します。<secret ephemeral='no' private='yes'> <description>Passphrase for the iSCSI example.com server</description> <usage type='iscsi'> <target>iscsirhel7secret</target> </usage> </secret>
シークレットの定義
# virsh secret-define secret.xml
UUID の確認
# virsh secret-list UUID Usage -------------------------------------------------------------------------------- 2d7891af-20be-4e5e-af83-190e8a922360 iscsi iscsirhel7secret
UID へのシークレットの割り当て
以下のコマンドを使用して、前の手順の出力の UUID に、シークレットを割り当てます。これにより、CHAP ユーザー名とパスワードが、libvirt が制御するシークレット一覧にあることが保証されます。# MYSECRET=`printf %s "password123" | base64` # virsh secret-set-value 2d7891af-20be-4e5e-af83-190e8a922360 $MYSECRET
ストレージプールに認証エントリーを追加します。
virsh edit を使用して、ストレージプールの XML ファイル内の<source>
エントリーを変更し、authentication type
、username
、およびsecret usage
を指定して<auth>
要素を追加します。以下に例を示します。<pool type='iscsi'> <name>iscsirhel7pool</name> <source> <host name='192.168.122.1'/> <device path='iqn.2010-05.com.example.server1:iscsirhel7guest'/> <auth type='chap' username='redhat'> <secret usage='iscsirhel7secret'/> </auth> </source> <target> <path>/dev/disk/by-path</path> </target> </pool>
注記サブ要素<auth>
は、ゲスト XML 内の<pool>
要素および<disk>
要素の異なる場所に存在します。<pool>
の場合は、<auth>
が<source>
要素内に指定されます。認証は一部のプールソース (iSCSI および RBD) のプロパティーであるため、これはプールソースの検索場所を説明する要素となります。ドメインのサブ要素である<disk>
の場合、iSCSI ディスクまたは RBD ディスクに対する認証は、ディスクのプロパティーになります。また、ディスクのサブ要素<auth>
は、ストレージプールのサブ要素とは異なります。<auth username='redhat'> <secret type='iscsi' usage='iscsirhel7secret'/> </auth>
変更を有効にします。
この変更をアクティブにするには、ストレージプールを起動する必要があります。- ストレージプールが起動していない場合は、virsh を使用したストレージプールの作成 の手順に従ってストレージプールを定義し、起動します。
- プールがすでに起動している場合は、次のコマンドを入力してストレージプールを停止し、再起動します。
# virsh pool-destroy iscsirhel7pool # virsh pool-start iscsirhel7pool
パラメーター
表13.5 iSCSI ベースのストレージプールパラメーター
説明 | XML | pool-define-as | Virtual Machine Manager |
---|---|---|---|
ストレージプールのタイプ | <pool type='iscsi'> | [type] iscsi | iscsi: iSCSI ターゲット |
ストレージプールの名前 | <name>name</name> | [name] name | 名前 |
ホストの名前。 |
<source> | source-host hostname | ホスト名 |
iSCSI IQN |
device path="iSCSI_IQN" /> | source-dev iSCSI_IQN | ソース IQN |
ターゲットを指定するパス。ストレージプールに使用されるパスになります。 |
<target> | target path_to_pool | ターゲットパス |
(必要に応じて) iSCSI イニシエーターの IQN。これは、ACL が LUN を特定のイニシエーターに制限する場合に限り必要です。 |
<initiator> | 以下の注記を参照してください。 | イニシエーター IQN |
例
<pool type='iscsi'> <name>iSCSI_pool</name> <source> <host name='server1.example.com'/> <device path='iqn.2010-05.com.example.server1:iscsirhel7guest'/> </source> <target> <path>/dev/disk/by-path</path> </target> </pool>
# virsh pool-define-as --name iSCSI_pool --type iscsi --source-host server1.example.com --source-dev iqn.2010-05.com.example.server1:iscsirhel7guest --target /dev/disk/by-path
Pool iSCSI_pool defined
図13.8 新しい iSCSI ベースのストレージプールの例を追加します。
