GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS / RHEL 7 で targetcli を使用して iSCSI ターゲットを構成する方法

Internet Small Computer System Interface (iSCSI) は、ストレージ デバイスを接続するための IP ベースの標準です。 iSCSI は、IP ネットワークを使用して SCSI コマンドをカプセル化し、データを長距離転送できるようにします。 iSCSI は、多数のクライアント システム間で共有ストレージを提供します。ストレージ デバイスは、サーバー (ターゲット) に接続されます。クライアント システム (イニシエータ) は、IP ネットワークを介してリモート ストレージ デバイスにアクセスします。クライアント システムには、ストレージ デバイスがローカルに接続されているように見えます。 iSCSI は既存の IP インフラストラクチャを使用し、ファイバ チャネル (FC) ストレージ エリア ネットワークの場合のように追加のケーブルを必要としません。

targetcli のインストール

1. RHEL/CentOS 7 は、iSCSI に Linux-IO (LIO) カーネル ターゲット サブシステムを使用します。 iSCSI に加えて、LIO は、Fibre Channel over Ethernet (FCoE)、Mellanox InfiniBand ネットワーク (iSER) 経由の iSCSI アクセス、Mellanox InfiniBand ネットワーク (SRP) 経由の SCSI アクセスなど、多数のストレージ ファブリックをサポートしています。 RHEL 7 では、すべてのストレージ ファブリックは targetcli で管理されます

RHEL システムを iSCSI サーバーとして構成するには、最初に targetcli ソフトウェア パッケージをインストールします。

# yum install targetcli

2. targetcli ソフトウェア パッケージをインストールすると、python-rtslib もインストールされます /usr/lib/systemd/system/target.service を提供するパッケージ ファイル。 targetcli ユーティリティを使用してストレージ ターゲットを作成、削除、および表示する前に、systemctl コマンドを使用して、iSCSI サーバーでターゲット サービスを有効にして開始します。

# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
# systemctl start target

デバイスの追加

1. ディスク /dev/xvdf を iSCSI デバイスとして Backstores /backstores/block の下に追加します。バックストアは、カーネル ターゲットがエクスポートする SCSI デバイスを「バックアップ」するために使用するローカル ストレージ リソースです。

# targetcli 
...

/> cd /backstores/block/
/backstores/block> create disk0 /dev/xvdf
Created block storage object disk0 using /dev/xvdf.

2. targetcli コマンド ラインの /backstores/block ディレクトリで「ls」を使用して新しいデバイスを確認します。

新しい IQN を作成

1. 次の例では、create コマンドを使用して、ターゲットで IQN (iSCSI 修飾名) を作成します。デフォルトのターゲット名を使用して iSCSI ターゲットを作成するには、引数を指定せずに create コマンドを使用します。デフォルトでは、ターゲットは「iqn」識別子によって識別されます。これは、ターゲットを一意に識別する iSCSI 修飾名 (IQN) です。

/>/> cd /iscsi 
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi>

2. /iscsi ディレクトリの下で ls コマンドを使用して、新しく作成された IQN を確認します。

ACL の設定

アクセス制御リスト (ACL) は、リモート システムから LUN へのアクセスを制限します。各イニシエーターに ACL を作成して、イニシエーターがターゲットに接続するときに認証を強制することができます。これにより、特定のイニシエータに特定のターゲットへの排他的アクセスを与えることができます。

2. ACL を作成する前に、クライアントからイニシエーター名 (iscsi-initiator) を見つける必要があります。クライアントで以下のコマンドを使用して、イニシエーター名を取得します。

[root@initiator ~]# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1994-05.com.redhat:aabb51a64012

2. 次の例では、create コマンドを使用してイニシエータの ACL を作成します。 targetcli シェルから、まず cd コマンドを使用して [target/TGP] 階層内の acls ディレクトリに移動します。上記のコマンドで取得したばかりのイニシエーター名を使用してください。

/> cd /iscsi/iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721/tpg1/acls 
/iscsi/iqn.20...721/tpg1/acls> create iqn.1994-05.com.redhat:aabb51a64012
Created Node ACL for iqn.1994-05.com.redhat:aabb51a64012

3. セットアップしたばかりの新しい ACL を確認します。

ターゲット ポータル グループ (TPG) の作成

新しい IQN を作成すると、デフォルトのターゲット ポータル グループ (TPG) が作成されます。ネットワーク ポータルは、IP アドレスとポートのペアです。 iSCSI ターゲットは、ネットワーク ポータルを介してリモート システムからアクセスされます。 0.0.0.0:3260 のデフォルト ポータルにより、iSCSI サーバーはポート 3260 ですべての IPv4 アドレスをリッスンできます。デフォルト ポータルを削除し、必要に応じてポータルを構成できます。 IPv4 と IPv6 の両方のアドレスがサポートされています。

1. 以下のコマンドでわかるように、デフォルトの TGP はすでに作成されています。

/> cd /iscsi/iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721/tpg1/portals/
/iscsi/iqn.20.../tpg1/portals> ls

2. リモート システムがポート 3260 で iSCSI ターゲットにアクセスできるようにするには、iSCSI サーバーで firewalld サービスを無効にするか、firewalld を構成して 3260/tcp ポートを信頼するようにします。次の例では、firewall-cmd を使用して、firewalld サービスの 3260/tcp ポートを開きます。

# firewall-cmd --permanent --add-port=3260/tcp

ポートを追加するときに –permanent オプションを含める場合は、firewall-cmd コマンドを使用して構成をリロードします。

# firewall-cmd –reload

TPG への iSCSI ディスクの追加

1. ここで、この投稿の前半で作成したディスク (disk0) をデフォルトの TPG に追加する必要があります。

/> cd /iscsi/iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721/tpg1/luns 
/iscsi/iqn.20...721/tpg1/luns> create /backstores/block/disk0 
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.1994-05.com.redhat:aabb51a64012

2. 構成を確認します。

設定を保存

最後のステップは、「saveconfig」コマンドを使用して構成を保存することです。必ず「/」ディレクトリからコマンドを実行してください。そうしないと失敗します。

/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

iSCSI イニシエーターの構成

1. iscsi-initiator で、ターゲットに対して検出を実行して、iqn が利用可能であることを確認します。

iscsiadm --mode discoverydb --type sendtargets --portal [ip-of-target] --discover
[ip-of-target]:3260,1 iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721

2. ターゲットにログイン

# iscsiadm --mode node --targetname iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721 --portal [ip-of-target] --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721, portal: [ip-of-target],3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721, portal: [ip-of-target],3260] successful.

3. 新しい iSCSI ストレージが表示されるかどうかを確認します。

# cat /proc/scsi/scsi 
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: LIO-ORG  Model: disk0            Rev: 4.0 
  Type:   Direct-Access                    ANSI  SCSI revision: 05


Cent OS
  1. CentOS / RHEL 6 で iSCSI イニシエーター (クライアント) を構成する方法

  2. CentOS/RHEL/Fedora でプロキシを構成する方法

  3. CentOS/RHEL 8 で nfsconf を使用して NFSv4 専用クライアントを構成する方法

  1. CentOS / RHEL 7 :キャッシュのみのネームサーバーを構成する方法

  2. CentOS / RHEL 6,7 :hugepage の設定方法

  3. CentOS / RHEL 7 :nmcli を使用して VLAN タギングを構成する方法

  1. CentOS / RHEL 6,7 での iSCSI の問題のトラブルシューティング方法

  2. CentOS / RHEL 6,7 :イニシエーター (iSCSI クライアント) で iSCSI ターゲットを削除する方法

  3. CentOS / RHEL 7 で iSCSI イニシエーター (クライアント) を構成する方法