Red Hat Enterprise Linux 9 で iSCSI ボリュームをマウントする
RHEL 9 で Block Storage for Classic ボリュームをマルチパス I/O でマウントし、冗長性のある高性能なストレージ・アクセスを実現する方法をご紹介します。
Red Hat Enterprise Linux® 9 オペレーティングシステムを使用する 仮想サーバー 上に IBM Cloud® Block Storage for Classic ボリュームをマウントするには、チュートリアルに従います。 ホストの 1 つのネットワーク・インターフェースからストレージ・アレイの 2 つのターゲット IP アドレスへの 2 つの接続を作成します。
その他の Linux® オペレーティングシステムをご利用の場合は、お使いのディストリビューションのドキュメントを参照し、マルチパスがパス優先順位設定において非対称論理ユニットアクセス(ALUA)をサポートしていることを確認してください。
開始前に
-
Block Storage for Classic ボリュームにアクセスするホストが、アクセス権限を持っていることを確認してください。 詳細については、 「コンソールでホストを承認する」、 「CLI からホストを承認する」、 「Terraform を使用してホストを承認する」 を参照してください。
-
IBM Cloud のプライベート・ネットワークにアクセスし、いくつかのサービスを利用するには、アクティブな VPN接続が 必要です。
-
サーバーへのSSH接続を確立します。 IPアドレス、ユーザー名、パスワードはコンソールで確認できる。 メニュー
から、 インフラ
> クラシック・インフラストラクチャー > Devices をクリックします。 次に、リストでサーバーを探し、その名前をクリックして詳細を表示します。
複数のホストが協調管理されずに同じ Block Storage for Classic ボリュームをマウントすると、データが破損する危険性があります。 複数のホストが同時にボリュームに変更を加えると、ボリュームの破損が発生する可能性があります。 データ損失を防ぐには、Microsoft Cluster Shared Volumes ( CSV )、 Red Hat Global File System ( GFS2 )、 VMware® VMFS など、クラスタを意識した共有ディスク・ファイル・システムが必要です。 詳細については、お使いのOSのドキュメントを参照してください。
OSをアップデートし、 iSCSI、マルチパスユーティリティをインストールする
システムが最新の状態であることを確認し、 iscsi-initiator-utils および device-mapper-multipath パッケージがインストールされていることを確認してください。 以下のコマンドを使用して、パッケージをインストールします。
-
OSをアップデートする。
sudo dnf update -
マルチパスユーティリティのインストール
sudo dnf -y install device-mapper-multipathパッケージがインストールされたら、
mpathconf --enable --user_friendly_names nコマンドを入力して有効にする。 -
ISCSIユーティリティのインストール
sudo dnf -y install iscsi-initiator-utilsパッケージがインストールされたら、
systemctl start iscsidコマンドで起動する。
iSCSI の設定ファイルを更新する
-
「 IBM Cloud® 」コンソールから取得したIQNを使用して、
/etc/iscsi/initiatorname.iscsiファイルを更新してください。- 次の例は、現在のイニシエータ名をチェックする方法を示している。
[root@vsi4classic ~]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1994-05.com.redhat:7acdadcdc20- テキストエディタでファイルを開きます:
vi /etc/iscsi/initiatorname.iscsi- 以下の例にあるように、IQNを以下のフォーマットで入力する
InitiatorName=<value-from-the-Portal>。 IQNの値を自分の値に置き換える。
InitiatorName=iqn.2025-11.com.ibm:sl02su1414935-v154455886- ファイルを保存し(
:w)、終了する(:x)。
-
IBM Cloud® コンソールのユーザー名とパスワードを使用して、
/etc/iscsi/iscsid.confの以下のエントリーのコメントを解除し、更新する。 CHAP(Challenge-Handshake Authentication Protocol)名には大文字を使用する。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 を有効にしないこと。
-
iscsid サービスを再始動します。
systemctl restart iscsid -
iSCSI アレイに対してディスカバリを実行して、構成が正しいことを検証する。
Block Storage for Classic SendTargets メソッドを使用した動的なターゲット検出が必要です。 静的なノード構成は使用しないでください。スケーラビリティに欠ける上、ストレージに変更が加えられた際(LUNへのホストのアクセス許可やアクセス権の解除など)、接続の問題を引き起こす可能性があります。 ダイナミック・ディスカバリーは、ホストがターゲット・ポータルへの変更を自動的に検出することを保証する。
iscsiadm -m discovery -t sendtargets -p TARGET IPIPアドレス情報とアクセス詳細が表示されれば、検出は成功です。
[root@vsi4classic ~]# iscsiadm -m discovery -t sendtargets -p 161.26.99.113 161.26.99.113:3260,1034 iqn.1992-08.com.netapp:stfdal1006 161.26.99.110:3260,1030 iqn.1992-08.com.netapp:stfdal1006
マルチパスのセットアップ
DM Multipathは、 mpathconf ユーティリティを使用して設定します。これにより、マルチパス設定ファイル /etc/multipath.conf が作成されます。 mpathconf ユーティリティの詳細については、 mpathconf(8)のマニュアルページを参照してください。
-
まだやっていなければ、mpathconfコマンドに
--enableオプションを付けて入力する。mpathconf --enable --user_friendly_names n -
nano,vi, またはお好みの他のエディターで/etc/multipath.confファイルを編集する。sudo vi /etc/multipath.conf -
以下の最小構成を追加してください。
defaults { user_friendly_names no find_multipaths on 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 } }設定ファイルの「initial defaults」セクションでは、マルチパスデバイスの名前が「 /dev/mapper/mpath n」という形式になるようシステムを設定します。ここで、
mpath nはデバイスのWWID(World Wide Identifier)です。 -
設定ファイルを保存して、エディタを終了します。
-
以下のコマンドを発行します。
systemctl start multipathd.serviceマルチパスデーモンを起動した後にマルチパスの設定ファイルを編集する必要がある場合は、変更を反映させるために
systemctl reload multipathd.serviceコマンドを実行する必要があります。
ストレージ・デバイスのディスカバーとログイン
iscsiadm ユーティリティは、 iSCSI ターゲットの検出およびログイン、ならびにopen-iscsiデータベースへのアクセスと管理を行うためのコマンドラインツールです。 詳細については、 iscsiadm(8)のマニュアルページを参照してください。 このステップでは、IBM Cloud® コンソールから取得したターゲット IP アドレスを使用して、デバイスをディスカバーします。
-
iSCSI アレイに対してディスカバリーを実行します。
iscsiadm -m discovery -t sendtargets -p TARGET IPIPアドレス情報とアクセス詳細が表示されれば、検出は成功です。
-
iSCSI アレイにログインします。
iscsiadm -m node --login[root@vsi4classic ~]# iscsiadm -m node --login Login to [iface: default, target: iqn.1992-08.com.netapp:stfdal1006, portal: 161.26.99.110,3260] successful. Login to [iface: default, target: iqn.1992-08.com.netapp:stfdal1006, portal: 161.26.99.113,3260] successful.
構成の検証
-
iSCSI セッションが確立されていることを検証します。
iscsiadm -m session -o show -
複数のパスがあることを検証します。
multipath -lこのコマンドはパスを報告します。 正しく設定されていれば、各ボリュームには1つのグループがあり、そのパス数は iSCSI セッションの数と一致します。 単一のパスでボリュームをマウントすることは可能ですが、サービスの中断を防ぐためには、両方のパスで接続が確立されていることが重要です。
[root@vsi4classic ~]# multipath -l 3600a0980383056716724514550666270 dm-0 NETAPP,LUN C-Mode size=20G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw |-+- policy='round-robin 0' prio=0 status=active | `- 2:0:0:0 sda 8:0 active undef running `-+- policy='round-robin 0' prio=0 status=enabled `- 3:0:0:0 sdb 8:16 active undef runningMPIO が正しく構成されていないと、ネットワーク障害が発生した場合や、IBM Cloud® チームが保守を実行するときに、ストレージ・デバイスが切断され、オフラインと表示されます。 MPIOは、こうしたイベント発生時にさらなる接続性を提供し、アクティブな読み書き操作が行われているボリュームへの確立済みセッションを維持します。
-
接続しているデバイスに関するパーティション表をリストします。
fdisk -l | grep /dev/mapperデフォルトでは、ストレージ・デバイスは
/dev/mapper/<wwid>に接続されます。 WWID は、ボリュームが存在する間は永続します。 コマンドは、次の例のような情報を報告します。[root@vsi4classic ~]# fdisk -l | grep /dev/mapper Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectorsこの例では、文字列
3600a0980383056716724514550666270がWWIDである。 あなたのアプリケーションはWWIDを使うべきである。 また、 multipath.conf 内で「user_friendly_names」または「alias」キーワードを使用することで、より読みやすい名前を割り当てることも可能です。 詳細については、multipath.confのマニュアルページを参照してください。ボリュームはホスト上にマウント済みであり、アクセス可能です。 次に、ファイル・システムを作成できます。
ファイル・システムの作成 (オプション)
新しくマウントされたボリュームにファイル・システムを作成するには、以下の手順に従います。 ファイル・システムは、ほとんどのアプリケーションでボリュームを使用するために必要です。 2 TB より小さいドライブの場合は fdisk を使用し、2 TB より大きいディスクの場合は parted を使用します。
fdisk を使用したファイル・システムの作成
-
ディスク名を取得します。
fdisk -l | grep /dev/mapper[root@vsi4classic ~]# fdisk -l | grep /dev/mapper Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors [root@vsi4classic ~]# fdisk -l /dev/mapper/3600a0980383056716724514550666270 Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 65536 bytes -
ディスク上にパーティションを作成します。 以下の例では、デフォルト値でパーティションを作成しています。
[root@vsi4classic ~]# fdisk /dev/mapper/3600a0980383056716724514550666270 Welcome to fdisk (util-linux 2.37.4). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x2aa2e16c. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): 2048 Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 41943039 Created a new partition 1 of type 'Linux' and of size 20 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Invalid argument The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8). -
新規パーティション上にファイル・システムを作成します。
-
新しいパーティションは、
XXXp1のようにディスクと一緒にリストされ、サイズ、タイプ (83)、 Linux® と続きます。次のステップで必要になるので、パーティション名をメモしておいてください。 (XXXp1 がパーティション名を表します。)[root@vsi4classic ~]# fdisk -l /dev/mapper/3600a0980383056716724514550666270 Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 65536 bytes Disklabel type: dos Disk identifier: 0x2aa2e16c Device Boot Start End Sectors Size Id Type /dev/mapper/3600a0980383056716724514550666270p1 2048 41943039 41940992 20G 83 Linu -
ファイル・システムを作成します。
mkfs.ext3 /dev/mapper/XXXp1[root@vsi4classic ~]# mkfs.ext3 /dev/mapper/3600a0980383056716724514550666270p1 mke2fs 1.46.5 (30-Dec-2021) Discarding device blocks: done Creating filesystem with 5242624 4k blocks and 1310720 inodes Filesystem UUID: 09e7f833-32b7-4c7f-ab68-8c6083cb8a63 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
-
-
ファイル・システムのマウント・ポイントを作成し、マウントします。
-
パーティション名
PerfDiskを作成するか、ファイル・システムをマウントする場所を作成します。mkdir /PerfDisk -
パーティション名を使用してストレージをマウントします。
mount /dev/mapper/XXXp1 /PerfDisk -
新しいファイル・システムがリストされることを確認します。
df -h[root@vsi4classic ~]# mkdir /PerfDisk [root@vsi4classic ~]# mount /dev/mapper/3600a0980383056716724514550666270p1 /PerfDisk [root@vsi4classic ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 469M 0 469M 0% /dev/shm tmpfs 188M 11M 177M 6% /run /dev/xvda2 24G 2.0G 21G 9% / /dev/xvda1 974M 320M 588M 36% /boot tmpfs 94M 0 94M 0% /run/user/0 /dev/mapper/3600a0980383056716724514550666270p1 20G 156K 19G 1% /PerfDisk
-
-
ブート時の自動マウントを有効にするには、システムの
/etc/fstabファイルに新しいファイルシステムを追加する。- 以下の行を
/etc/fstabの末尾に追加します (ステップ 3 でメモしたパーティション名を使用します)。
/dev/mapper/XXXp1 /PerfDisk ext3 defaults,_netdev 0 1詳しくは、 Linux
/etc/fstabファイルの紹介を参照。 - 以下の行を
parted を使用したファイル・システムの作成
Red Hat Enterprise Linux® 9では、 parted がプリインストールされている。 ただし、必要であれば、次のコマンドを実行してインストールすることができます。
dnf install parted
parted を使用してファイル・システムを作成するには、以下のステップに従います。
-
対話型
partedシェルを起動します。parted -
ディスク上にパーティションを作成します。
-
特に指定がない限り、
partedユーティリティはプライマリドライブを使用します。多くの場合、これは/dev/sdaです。 コマンド select を使用して、パーティション化するディスクに切り替えます。 XXX は、新しいデバイス名に置き換えてください。select /dev/mapper/XXX -
printを実行して、正しいディスクを選択していることを確認してください。print -
パーティションテーブルを作成する。
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 -lroot@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はボリュームが存在する限り不変です。 -
すべてのディスクが存在することを確認します。 正しい構成では、出力内に同じ 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つ目のパスが停止している間にボリュームがプロビジョニングされ、アタッチされた場合、ホストは初めて検出スキャンが実行されたときに1つのパスを見るかもしれません。 このまれな現象が発生した場合は、 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』マニュアルを参照してください。