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

CentOS / RHEL 7 で iSCSI を構成するための完全なガイド

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

iSCSI サーバーの構成

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

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

targetcli ユーティリティ

targetcli ユーティリティは、カーネルのターゲット サブシステムの構成を作成、編集、および表示するための管理シェルです。 targetcli を実行して構成シェルに入ります。

# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> help

ヘルプを実行 コマンドを targetcli プロンプトから実行して、使用可能なコマンドを表示します。以下は、利用可能な targetcli コマンドの一部です:

  • :オブジェクト階層を表示します。
  • CD :オブジェクト階層をトラバースします。
  • 作成 :ストレージ オブジェクト、ターゲット、LUN、ネットワーク ポータル、アクセス制御リストを作成する
  • 出る :targetcli シェルを終了し、構成を自動的に保存します。

「targetcli [command]」と入力して、シェルに入らずにコマンドを実行することもできます。

バックストア

バックストアは、カーネル ターゲットがクライアント システムにエクスポートする SCSI デバイスを「バックアップ」するために使用するさまざまな種類のローカル ストレージ リソースです。各バックストアが作成するローカル ストレージ リソースへのマッピングは、ストレージ オブジェクトと呼ばれます。 targetcli ls を使用します コマンドを使用して、さまざまなタイプのバックストアを一覧表示します。

# targetcli ls /backstores

バックストアの種類は次のとおりです。

  • ブロック :/dev/sda などの Linux ブロック デバイス
  • ファイル :/tmp/disk1.img などのマウントされたファイル システム上の任意のファイル
  • プシ :パススルー SCSI コマンドをサポートするすべてのストレージ オブジェクト
  • RAM ディスク :メモリ コピー RAM ディスク

targetcli シェルからブロック バックストアを作成するには:

/> cd /backstores/block
/backstores/block> create name=LUN_1 dev=/dev/xvdb

targetcli シェルから fileio バックストアを作成するには:

/> cd /backstores/fileio
/backstores/fileio> create name=LUN_3 /root/disk1.img 5G

iSCSI ターゲットの作成

targetcli シェルから iSCSI ターゲットを作成するには、cd コマンドを使用して /iscsi ディレクトリに移動します。

/> cd /iscsi
/iscsi>

デフォルトのターゲット名を使用して iSCSI ターゲットを作成するには、引数を指定せずに create コマンドを使用します。デフォルトでは、ターゲットは「iqn」によって識別されます 」識別子。これは iSCSI Qualified Name (IQN) です 、ターゲットを一意に識別します。 IQN 形式のアドレスは、ターゲットを識別するために最も一般的に使用されます。このアドレスは次のフィールドで構成されています:

  • 文字通りの意味
  • 命名機関がドメインの所有権を取得した日付 (yyyy-mm 形式)
  • 当局の逆ドメイン名
  • 命名機関によって指定されたストレージ ターゲット名の前に付けるオプションの「:」
/> cd /iscsi 
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> 

作成されたターゲットを一覧表示するには、以下のコマンドを使用します。

# targetcli ls /iscsi

リモート システムがポート 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

iSCSI LUN の作成

カーネル ターゲットは、SCSI 論理ユニットをリモート システムにエクスポートします。 targetcli シェルを使用して、以前に定義したストレージ オブジェクトをターゲットにリンクし、デバイスが使用する論理ユニット番号 (LUN) を指定します。次の例では、create コマンドを使用して、ターゲット用に 2 つの新しい LUN を作成します。 targetcli シェルから、まず cd コマンドを使用して [target/TGP] 階層内の luns ディレクトリに移動します。

/iscsi> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/
/iscsi/iqn.20....b0df6e328beb> cd tpg1/luns

次のコマンドは、以前に定義したブロック ストレージ オブジェクトから LUN を作成します。

/iscsi/iqn.20...beb/tpg1/luns> create /backstores/block/LUN_1 lun1
Created LUN 1.

ACL の作成

アクセス制御リスト (ACL) は、リモート システムから LUN へのアクセスを制限します。各イニシエーターに ACL を作成して、イニシエーターがターゲットに接続するときに認証を強制することができます。これにより、特定のイニシエータに特定のターゲットへの排他的アクセスを与えることができます。次の例では、create コマンドを使用してイニシエータの ACL を作成します。 targetcli シェルから、まず cd コマンドを使用して [target/TGP] 階層内の acls ディレクトリに移動します。

/> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/tpg1/acls 
/iscsi/iqn.20...beb/tpg1/acls> create iqn.1994-05.com.redhat:aabb51a64012
Created Node ACL for iqn.1994-05.com.redhat:aabb51a64012
Created mapped LUN 1.

iSCSI イニシエーターの構成

Linux システムを iSCSI イニシエーターとして構成するには、iscsi-initiator-utils をインストールします。 ソフトウェアパッケージ。このパッケージは Linux Open-iSCSI イニシエーターです。

# yum install iscsi-initiator-utils

このパッケージは、以下を含む複数のファイルをインストールします:

  • /etc/iscsi/iscsid.conf :iscsid および iscsiadm によって読み取られる構成ファイル。このファイルには、各構成ディレクティブの説明が多数コメントされています。
  • /sbin/iscsid :制御パスと管理機能を実装する Open-iSCSI デーモン
  • /sbin/iscsiadm :iSCSI ターゲットの検出とログインに使用される Open-iSCSI 管理ユーティリティ

/etc/iscsi/initiatorname.iscsi を編集します ファイルを開き、InitiatorName パラメータを、以前にターゲットで ACL として設定したイニシエータ名に置き換えます。このファイルには、デフォルトの iSCSI イニシエータ名が定義されています。 ACL の構成時に同じ名前を使用した場合は、ここで何も変更する必要はありません。

# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1994-05.com.redhat:aabb51a64012

systemctl コマンドを使用して、iscsid サービスを有効にして開始します。

# systemctl enable iscsid
# systemctl start iscsid
CentOS / RHEL の iscsiadm ユーティリティについて

iSCSI ディスカバリー

ディスカバリーは、ターゲットをイニシエーターに知らせるプロセスです。次の例では、SendTargets 検出メソッドを使用して、IP アドレス 192.168.12.13 でターゲットを検出します。このコマンドは、必要に応じて iscsid デーモンも開始します。

# iscsiadm -m discovery --type sendtargets –p 192.168.12.13

検出後、データベース内のノード テーブルと send_targets テーブルが更新されます:

# ls /var/lib/iscsi/nodes
iqn.2011-12.com.example.mypc:tgt1 
iqn.2011-12.com.example.mypc:tgt2 
iqn.2012-11.com.example.mypc:tgt3
# ls /var/lib/iscsi/send_targets
192.168.12.13,3260

iSCSI イニシエーター セッション

セッションは、イニシエータ ノード ポートとターゲット ノード ポート間の TCP 接続です。セッションが確立されるまで、LUN にはアクセスできません。 -l (または –login) オプションを使用してセッションを確立します:

# iscsiadm -m node -l

特定のターゲットにログインするには:

# iscsiadm -m node --targetname iqn.2011-12.com.example.mypc:tgt1 –p 192.0.2.102:3260 –l

-u (または –logout) オプションを使用して、セッションを閉じます。セッション情報を表示するには:

# iscsiadm -m session [-P [printlevel]]

印刷レベルは 1、2、3 です。それぞれ詳細が表示されます。


Cent OS
  1. CentOS / RHEL 7 :NFS サーバーと NFS クライアントの構成

  2. CentOS / RHEL 7 :firewalld の初心者向けガイド

  3. CentOS / RHEL の iscsiadm ユーティリティについて

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

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

  3. CentOS / RHEL でファイル システムを自動マウントするための初心者向けガイド

  1. CentOS / RHEL/Fedoraでカーネルをアップグレードするための究極のガイド

  2. CentOS / RHEL 7 :chrony を使用して NTP を構成する

  3. CentOS / RHEL における NFS の初心者向けガイド