iSCSI のボリュームを Red Hat Enterprise Linux 8にマウントする
このチュートリアルでは、 Red Hat Enterprise Linux® 8 オペレーティングシステムを搭載したサーバーに IBM Cloud® Block Storage for Classic ボリュームをマウントする方法を説明します。 ホストの 1 つのネットワーク・インターフェースからストレージ・アレイの 2 つのターゲット IP アドレスへの 2 つの接続を作成します。
Linux® 以外のオペレーティングシステムを使用している場合は、ご使用のディストリビューションのマニュアルを参照し、マルチパスがパス優先度に ALUA をサポートしていることを確認してください。
開始前に
複数のホストが連携して管理されずに同じ Block Storage for Classic ボリュームをマウントすると、データが破損するリスクがあります。 複数のホストによって同時にボリュームに変更が加えられると、ボリューム破損が発生する可能性があります。 Microsoft Cluster Shared Volumes (CSV)、 Red Hat Global File System (GFS2)、 VMware® VMFS などのデータ損失を防ぐには、クラスター対応の共有ディスク・ファイル・システムが必要です。 詳しくは、ホストのOSのマニュアルを参照してください。
ファイアウォールをバイパスするように VLAN 上でストレージ・トラフィックを実行することをお勧めします。 ソフトウェア・ファイアウォールを介してストレージ・トラフィックを実行すると、待ち時間が増加し、ストレージ・パフォーマンスに悪影響を与えます。 ストレージ・トラフィックを独自の VLAN インターフェースにルーティングすることについて詳しくは、FAQ を参照してください。
作業を開始する前に、 Block Storage for Classic ボリュームにアクセスするホストが認証されていることを確認してください。 詳細については、コンソールでホストを承認するCLIからホストを認証するTerraform でホストを承認する。
iSCSI とマルチパス・ユーティリティーのインストール
システムが更新され、 iscsi-initiator-utils
と device-mapper-multipath
パッケージが含まれていることを確認してください。 以下のコマンドを使用してパッケージをインストールします。
sudo dnf -y install iscsi-initiator-utils device-mapper-multipath
マルチパスのセットアップ
DM Multipathは、 mpathconf
ユーティリティでセットアップします。これにより、マルチパス構成ファイル /etc/multipath.conf
が作成されます。
- /etc/multipath.conf ファイルが存在する場合、mpathconfユーティリティで編集できます。
- /etc/multipath.conf がない場合は、mpathconf ユーティリティーは /etc/multipath.conf ファイルを最初から作成します。
mpathconf ユーティリティの詳細については 、mpathconf(8)のマニュアルページを参照してください。
-
--enable
オプションを指定して、mpathconfコマンドを入力します。# mpathconf --enable --user_friendly_names n
-
/etc/multipath.conf
ファイルを以下の最小構成で編集します。defaults { user_friendly_names no max_fds max flush_on_last_del yes queue_without_daemon no dev_loss_tmo infinity fast_io_fail_tmo 5 } # All data in the following section must be specific to your system. blacklist { wwid "SAdaptec*" devnode "^hd[a-z]" devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^cciss.*" } devices { device { vendor "NETAPP" product "LUN" path_grouping_policy group_by_prio features "2 pg_init_retries 50" no_path_retry queue prio "alua" path_checker tur failback immediate path_selector "round-robin 0" hardware_handler "1 alua" rr_weight uniform rr_min_io 128 } }
設定ファイルの初期デフォルトセクションでは、マルチパスデバイスの名前が /dev/mapper/mpath nという形式になるようにシステムを設定します。ここで、
mpath n
はデバイスのWWIDです。 -
必要に応じて、構成ファイルを保存してエディターを終了します。
-
以下のコマンドを発行します。
systemctl start multipathd.service
マルチパスデーモンを起動した後でマルチパス構成ファイルを編集する必要がある場合は、変更を有効にするために
systemctl reload multipathd.service
コマンドを発行する必要があります。RHEL 8 でのデバイス・マッパー・マルチパス機能の使用に関する詳細は 、「デバイス・マッパー・マルチパスの設定」 を参照してください。
/etc/iscsi/initiatorname.iscsi ファイルの更新
IBM Cloud® コンソールからIQNを /etc/iscsi/initiatorname.iscsi
ファイルに追加します。 値を小文字で入力します。
InitiatorName=<value-from-the-Portal>
資格情報の構成
IBM Cloud® コンソールで取得したユーザー名とパスワードを使用して、 /etc/iscsi/iscsid.conf
で以下の設定を編集します。 CHAP 名には大文字を使用します。
node.session.auth.authmethod = CHAP
node.session.auth.username = <Username-value-from-Portal>
node.session.auth.password = <Password-value-from-Portal>
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = <Username-value-from-Portal>
discovery.sendtargets.auth.password = <Password-value-from-Portal>
その他の CHAP (チャレンジ・ハンドシェーク認証プロトコル) 設定はコメント化したままにします。 IBM Cloud® ストレージは、片方向認証のみしか使用しません。 相互 CHAP を有効にしないこと。
ストレージ・デバイスのディスカバーとログイン
iscsiadm ユーティリティは、 iSCSI ターゲットの検出とログイン、および open-iscsi データベースへのアクセスと管理に使用されるコマンドラインツールです。 詳細については 、iscsiadm(8)のマニュアルページを参照してください。 このステップでは、IBM Cloud® コンソールから取得したターゲット IP アドレスを使用して、デバイスをディスカバーします。
-
iSCSI アレイに対してディスカバリーを実行します。
iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>
IPアドレス情報とアクセス詳細が表示されていれば、検出は成功です。
-
iSCSI アレイにログインします。
iscsiadm -m node --login
構成の検証
-
iSCSI セッションが確立されていることを検証します。
iscsiadm -m session -o show
-
複数のパスがあることを検証します。
multipath -l
このコマンドはパスを報告します。 正しく構成されている場合、各ボリュームには1つのグループがあり、 iSCSI セッションの数と同じ数のパスが存在します。 単一パスでボリュームをアタッチすることは可能ですが、サービスの中断を防ぐためには、両方のパスで接続が確立されていることが重要です。
MPIO が正しく構成されていないと、ネットワーク障害が発生した場合や、IBM Cloud® チームが保守を実行するときに、ストレージ・デバイスが切断され、オフラインと表示されます。 MPIOは、これらのイベント発生時に追加の接続レベルを提供し、ボリュームへの確立済みのセッションをアクティブな読み取り/書き込み操作で維持します。
-
接続しているデバイスに関するパーティション表をリストします。
fdisk -l | grep /dev/mapper
デフォルトでは、ストレージ・デバイスは
/dev/mapper/<wwid>
に接続されます。 WWID は、ボリュームが存在する間は永続します。 コマンドは、次の例のような情報を報告します。Disk /dev/mapper/3600a0980383030523424457a4a695266: 73.0 GB, 73023881216 bytes
この例では、
3600a0980383030523424457a4a695266
という文字列がWWIDです。 アプリケーションは WWID を使用する必要があります。 multipath.conf で「user_friendly_names」または「alias」キーワードを使用することで、より読みやすい名前を割り当てることも可能です。 詳細については 、multipath.conf
のマニュアルページをご覧ください。ボリュームはホスト上にマウント済みであり、アクセス可能です。 次に、ファイル・システムを作成できます。
ファイル・システムの作成 (オプション)
新しくマウントされたボリュームにファイル・システムを作成するには、以下の手順に従います。 ファイル・システムは、ほとんどのアプリケーションでボリュームを使用するために必要です。 2 TB より小さいドライブの場合は fdisk
を使用し、2 TB より大きいディスクの場合は parted
を使用します。
fdisk
を使用したファイル・システムの作成
-
ディスク名を取得します。
fdisk -l | grep /dev/mapper
返されるディスク名は、
/dev/mapper/XXX
のようになります。 -
ディスク上にパーティションを作成します。
fdisk /dev/mapper/XXX
XXX は、ステップ 1 で返されたディスク名を表します。
-
新規パーティション上にファイル・システムを作成します。
fdisk –l /dev/mapper/XXX
-
新しいパーティションは、
XXXp1
に似た形式でディスクにリストされ、サイズ、タイプ(83)、 Linux® が続きます。 -
次のステップで必要になるので、パーティション名をメモします。 (XXXp1 がパーティション名を表します。)
-
ファイル・システムを作成します。
mkfs.ext3 /dev/mapper/XXXp1
-
-
ファイル・システムのマウント・ポイントを作成し、マウントします。
-
パーティション名
PerfDisk
を作成するか、ファイル・システムをマウントする場所を作成します。mkdir /PerfDisk
-
パーティション名を使用してストレージをマウントします。
mount /dev/mapper/XXXp1 /PerfDisk
-
新しいファイル・システムがリストされることを確認します。
df -h
-
-
自動マウント・ブートを使用可能にするには、新しいファイルシステムをシステムの
/etc/fstab
ファイルに追加します。- 以下の行を
/etc/fstab
の末尾に追加します (ステップ 3 でメモしたパーティション名を使用します)。
/dev/mapper/XXXp1 /PerfDisk ext3 defaults,_netdev 0 1
詳細については、 Linux
/etc/fstab
ファイルの紹介を参照してください。 - 以下の行を
parted
を使用したファイル・システムの作成
多くの Linux® ディストリビューションでは、 parted
がプリインストールされています。 ただし、必要であれば、次のコマンドを実行してインストールすることができます。
# dnf install parted
parted
を使用してファイル・システムを作成するには、以下のステップに従います。
-
インタラクティブな
parted
シェルを起動します。parted
-
ディスク上にパーティションを作成します。
-
特に指定のない限り、
parted
ユーティリティはプライマリドライブを使用します。ほとんどの場合、プライマリドライブは/dev/sda
です。 コマンド select を使用して、パーティション化するディスクに切り替えます。 XXX は、新しいデバイス名に置き換えてください。select /dev/mapper/XXX
-
print
を実行して、正しいディスク上にあることを確認してください。print
-
GPT パーティション表を作成します。
mklabel gpt
-
Parted
は、1 次ディスク・パーティションと論理ディスク・パーティションの作成に使用できます。それぞれで必要なステップは同じです。 パーティションを作成するには、ユーティリティはmkpart
を使用します。 作成するパーティション・タイプに応じて、primary や logical などの他のパラメーターを指定できます。mkpart
リストされた単位のデフォルトはメガバイト (MB) です。 10 GB のパーティションを作成するには、1 から開始して 10000 で終了します。 必要に応じて、
unit TB
と入力することにより、サイズ変更単位をテラバイトに変更することもできます。 -
parted
を使用して、quit
を終了します。quit
-
-
新規パーティション上にファイル・システムを作成します。
mkfs.ext3 /dev/mapper/XXXp1
このコマンドを実行する際には、正しいディスクとパーティションを選択することが重要です。 パーティション表を表示することで、結果を検証してください。 ファイルシステムの列には、 ext3 と表示されています。
-
ファイル・システムのマウント・ポイントを作成し、マウントします。
- パーティション名
PerfDisk
を作成するか、ファイル・システムをマウントする場所を作成します。
mkdir /PerfDisk
- パーティション名を使用してストレージをマウントします。
mount /dev/mapper/XXXp1 /PerfDisk
- 新しいファイル・システムがリストされることを確認します。
df -h
- パーティション名
-
自動マウント・ブートを使用可能にするには、新しいファイルシステムをシステムの
/etc/fstab
ファイルに追加します。- 以下の行を
/etc/fstab
の末尾に追加します (ステップ 3 で取得したパーティション名を使用します)。
/dev/mapper/XXXp1 /PerfDisk ext3 defaults,_netdev 0 1
詳細については、 Linux
/etc/fstab
ファイルの紹介を参照してください。 - 以下の行を
マウントされたボリュームのコンテンツに対するユーザー権限の管理
システム管理者として、マウントされたボリューム上のデータへのアクセスを管理することができます。 ファイルシステムが準備できたら、 chown
と chmod
コマンドを使用して、個々のユーザーやグループに読み取り、書き込み、実行の権限を割り当てることで、アクセス制御をさらに細かく設定することができます。 詳細については、 Red Hat のチュートリアル「ユーザー、グループ、その他の Linux の権限を管理する方法 」をご覧ください。
MPIO 構成の検証
MPIO が正しく構成されていないと、ネットワーク障害が発生した場合や、IBM Cloud® チームが保守を実行するときに、ストレージ・デバイスが切断され、オフラインと表示されます。 MPIOは、これらのイベント発生時に追加の接続レベルを提供し、ボリュームへの確立済みのセッションをアクティブな読み取り/書き込み操作で維持します。
-
マルチパスがデバイスをピックアップしているかどうかを確認するには、現在の構成をリストします。 正しく構成されている場合、各ボリュームに 1 つのグループが存在し、iSCSI セッション数と同じ数のパスが存在します。
multipath -l
root@server:~# multipath -l 3600a09803830304f3124457a45757067 dm-1 NETAPP,LUN C-Mode size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=-1 status=active | `6:0:0:101 sdd 8:48 active ready running `-+- policy='round-robin 0' prio=-1 status=enabled `- 7:0:0:101 sde 8:64 active ready running
例の文字列
3600a09803830304f3124457a45757067
は、ボリュームの固有の WWID です。 各ボリュームは、ボリュームが存在する間は不変である固有の WWID によって識別されます。 -
すべてのディスクが存在することを確認します。 正しい構成では、出力内に同じ ID を持つ 2 つのディスクが表示され、同じ ID で同じサイズの
/dev/mapper
がリストされている必要があります。/dev/mapper
デバイスが、マルチパスによってセットアップされるデバイスです。fdisk -l | grep Disk
- 構成が正しい場合の出力例
root@server:~# fdisk -l | grep Disk Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1 Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1 Disk /dev/mapper/3600a09803830304f3124457a45757066: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
マルチパスで作成されるデバイス名に WWID が含まれています。 WWIDはアプリケーションで使用することを推奨する。
- 構成が間違っている場合の出力例。
/dev/mapper
ディスクが存在しない。
root@server:~# fdisk -l | grep Disk Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1 Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
-
マルチパスデバイスのリストにローカルディスクが含まれていないことを確認するには、冗長レベル3で現在の構成を表示します。 以下のコマンドの出力では、デバイスと、ブロック・リストに追加されたデバイスが表示されます。
multipath -l -v 3 | grep sd <date and time>
-
2番目のパスがダウンしている間にボリュームがプロビジョニングされ、アタッチされた場合、検出スキャンが初めて実行された際に、ホストがシングルパスとして認識される可能性があります。 このまれな現象が発生した場合は、IBM Cloud® ステータス ページをチェックして、ホストがストレージにアクセスする能力に影響を与えるイベントが進行中かどうかを確認してください。 イベントが報告されない場合は、すべてのパスが適切に検出されていることを確認するために、再度検出スキャンを実行します。 イベントが進行中であれば、ストレージはシングルパスで接続できる。 ただし、イベント終了後にパスを再スキャンすることが重要です。 再スキャン後も両方のパスが検出されない場合は、 サポートケースを作成し、適切に調査できるようにしてください。
Block Storage for Classic ボリュームのアンマウント
- ファイル・システムをアンマウントします。
umount /dev/mapper/XXXp1 /PerfDisk
- そのターゲット・ポータルに他のボリュームがない場合は、ターゲットからログアウトできます。
iscsiadm -m node -T <TARGET NAME> -p <PORTAL IP:PORT> --logout
- そのターゲット・ポータルに他のボリュームがない場合は、ターゲット・ポータル・レコードを削除して、今後ログインを試行できないようにします。
詳細は 、iscsiadm -m node -o delete -T <TARGET IQN> -p <PORTAL IP:PORT>
iscsiadm
のマニュアルをご覧ください。