Ubuntu OSに iSCSI ボリュームをマウントする
冗長化された高性能ストレージアクセスを実現するマルチパスI/Oを使用して、 Block Storage for Classic ボリュームを Ubuntu にマウントする方法について説明します。
チュートリアルに従って、 Ubuntu オペレーティング・システムを搭載したサーバーに IBM Cloud® Block Storage for Classic ボリュームをマウントする。 ホストの 1 つのネットワーク・インターフェースからストレージ・アレイの 2 つのターゲット IP アドレスへの 2 つの接続を作成します。
「 iSCSI 」サービスが「 Ubuntu 」OS上でどのように動作するかについての詳細は、「 iSCSI 」イニシエーター(またはクライアント) のドキュメントを参照してください。 その他の Linux® オペレーティングシステムをご利用の場合は、お使いのディストリビューションのドキュメントを参照し、マルチパスがパス優先順位設定において非対称論理ユニットアクセス(ALUA)をサポートしていることを確認してください。
開始前に
-
コンソール、CLI、API、または Terraform を使用して 、Classic の仮想サーバーを作成します。
-
同じデータセンターで ブロック・ストレージ・ボリュームを注文する。
-
ホストが Block Storage for Classic ボリュームにアクセスする権限があることを確認する。 詳細については、コンソールでホストを承認するCLIからホストを認証するTerraform でホストを承認する。 認証が完了したら、ユーザー名、パスワード、ホストIQN情報を記録する。
複数のホストが連携して管理されずに同じ Block Storage for Classic ボリュームをマウントすると、データが破損するリスクがあります。 複数のホストによって同時にボリュームに変更が加えられると、ボリューム破損が発生する可能性があります。 データ損失を防ぐには、Microsoft Cluster Shared Volumes ( CSV )、 Red Hat Global File System ( GFS2 )、 VMware® VMFS など、クラスタを意識した共有ディスク・ファイル・システムが必要です。 詳細については、お使いのOSのドキュメントを参照してください。
iSCSI, の設定を始める前に、open-iscsi パッケージが正しく動作するように、特に起動時にネットワークインターフェイスが正しく設定され、構成されていることを確認してください。 Ubuntu の新しいバージョンでは、ネットワークアドレス情報を設定する主なツールは Netplan です。 YAML 設定ファイルを使用してネットワーク設定を定義し、 /etc/network/interfaces のような古い方法に取って代わる。 Netplanは、コマンドラインまたはデスクトップ環境の NetworkManager。
ファイアウォールをバイパスするように VLAN 上でストレージ・トラフィックを実行することをお勧めします。 ソフトウェア・ファイアウォールを介してストレージ・トラフィックを実行すると、待ち時間が増加し、ストレージ・パフォーマンスに悪影響を与えます。 ストレージ・トラフィックを独自の VLAN インターフェースにルーティングすることについて詳しくは、FAQ を参照してください。
iSCSI とマルチパス・ユーティリティーのインストール
システムが最新の状態であることを確認し、 open-iscsi および multipath-tools パッケージがインストールされていることを確認してください。 以下のコマンドを使用して、パッケージをインストールします。
-
OSを更新する:
apt-get update -
open-iscsiをインストールします。sudo apt install open-iscsiパッケージがインストールされると、以下の 2 つのファイルが作成されます。
/etc/iscsi/iscsid.conf/etc/iscsi/initiatorname.iscsi
-
サービスを開始する:
systemctl enable open-iscsisystemctl enable iscsid -
multipath-toolsをインストールします。sudo apt install multipath-tools
ISCSIの設定
イニシエータ名の更新
-
/etc/iscsi/initiatorname.iscsiファイルが存在することを確認し、その内容を確認する。cat /etc/iscsi/initiatorname.iscsiroot@vsi4classicubuntu:~# cat /etc/iscsi/initiatorname.iscsi GenerateName=yes -
テキストエディタを使用して、 IBM Cloud® コンソールから IQN で
/etc/iscsi/initiatorname.iscsiファイルを更新する。 以下の形式で値を入力してください。InitiatorName=<IQN-value-from-the-portal>
資格情報の構成
-
ファイル
iscsid.confが存在することを確認するには、その内容を確認してください。cat /etc/iscsi/iscsid.conf -
テキストエディタを使って、以下のエントリーのコメントを解除し、編集する。 ユーザー名とパスワードは、 IBM Cloud® コンソールで確認できます。
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 を有効にしないこと。
-
変更を有効にするために、iscsi サービスを再始動します。
systemctl restart iscsid.service
詳細については、 Ubuntu マニュアル - iscsid および Ubuntu マニュアル - systemctl をご覧ください。
マルチパスのセットアップ
-
マルチパスユーティリティをインストールしたら、
multipath.confファイルのデフォルトの内容を確認できます。cat /etc/multipath.conf -
テキストエディタで
/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 "3 queue_if_no_path pg_init_retries 50" 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/mpathn」という形式になるようシステムを設定します。ここで、mpathnはデバイスのWWID(World Wide Identifier)番号です。 詳細については 、 Ubuntu のマニュアル -multipath.confをご覧ください。 -
設定ファイルを保存して、エディタを終了します。
-
マルチパス・サービスを開始します。
service multipath-tools start- 必要なサービスを有効にします。
マルチパスデーモンを起動した後にマルチパス設定ファイルを編集する必要がある場合は、変更を反映させるために
multipathdサービスを再起動する必要があります。Ubuntu 20 でのデバイスマッパー・マルチパス機能の使用に関する詳細については、「 デバイスマッパー・マルチパシングの概要」を参照してください。
ストレージ・デバイスのディスカバーとログイン
iscsiadm ユーティリティは、 iSCSI ターゲットの検出およびログイン、ならびにopen-iscsiデータベースへのアクセスと管理を行うためのコマンドラインツールです。 詳細については、 Ubuntu のマニュアル( iscsiadm )を参照してください。このステップでは、 IBM Cloud® コンソールから取得したターゲットIPアドレスを使用してデバイスを検出します。
-
iSCSI アレイに対してディスカバリーを実行します。
Block Storage for Classic SendTargets メソッドを使用した動的なターゲット検出が必要です。 静的なノード構成は使用しないでください。スケーラビリティに欠ける上、ストレージに変更が加えられた際(LUNへのホストのアクセス許可やアクセス権の解除など)、接続の問題を引き起こす可能性があります。 ダイナミック・ディスカバリーは、ホストがターゲット・ポータルへの変更を自動的に検出することを保証する。
iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>IP 情報とアクセスの詳細が表示されている場合、ディスカバリーは成功しています。
root@vsi4classicubuntu:~# iscsiadm -m discovery -t sendtargets -p 161.26.114.197 161.26.114.197:3260,1052 iqn.1992-08.com.netapp:stfdal1304 161.26.114.196:3260,1049 iqn.1992-08.com.netapp:stfdal1304 -
自動ログインを構成します。
sudo iscsiadm -m node --op=update -n node.conn[0].startup -v automatic sudo iscsiadm -m node --op=update -n node.startup -v automatic -
iSCSI アレイにログインします。
sudo iscsiadm -m node --login
構成の検証
-
iSCSI セッションが確立されていることを検証します。
iscsiadm -m session -o showroot@vsi4classicubuntu:~# iscsiadm -m session -o show tcp: [3] 161.26.114.197:3260,1052 iqn.1992-08.com.netapp:stfdal1304 (non-flash) tcp: [4] 161.26.114.196:3260,1049 iqn.1992-08.com.netapp:stfdal1304 (non-flash) -
複数のパスがあることを検証します。
multipath -llこのコマンドはパスを報告します。 正しく設定されていれば、各ボリュームには1つのグループがあり、そのパス数は iSCSI セッションの数と一致します。 単一のパスでボリュームをマウントすることは可能ですが、サービスの中断を防ぐためには、両方のパスで接続が確立されていることが重要です。
root@vsi4classicubuntu:~# multipath -ll 3600a0980383056666424506a33426478 dm-0 NETAPP,LUN C-Mode size=500G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw |-+- policy='service-time 0' prio=50 status=active | `- 3:0:0:0 sdb 8:16 active ready running `-+- policy='service-time 0' prio=10 status=enabled `- 2:0:0:0 sda 8:0 active ready runningMPIO が正しく構成されていないと、ネットワーク障害が発生した場合や、IBM Cloud® チームが保守を実行するときに、ストレージ・デバイスが切断され、オフラインと表示されます。 MPIOは、こうしたイベント発生時にさらなる接続性を提供し、アクティブな読み書き操作が行われているボリュームへの確立済みセッションを維持します。
この例では、
3600a0980383056666424506a33426478は、ボリュームが存在する限り永続的に保持される WWID です。 アプリケーションで WWID を使用することをお勧めします。 また、 multipath.conf 内で「user_friendly_names」または「alias」キーワードを使用することで、より読みやすい名前を割り当てることも可能です。 -
dmesgを調べて、新しいディスクが検出されたことを確認します。dmesg
パーティションとファイル・システムの作成 (オプション)
ボリュームをホスト上にマウントしてアクセス可能にした後に、ファイル・システムを作成できます。 新しくマウントされたボリュームにファイル・システムを作成するには、以下の手順に従います。
-
パーティションを作成します。
$ sudo fdisk /dev/mapper/mpatha Welcome to fdisk (util-linux 2.34). 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 0x92c0322a. Command (m for help): p Disk /dev/mapper/mpatha: 1 GiB, 1073741824 bytes, 2097152 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 65536 bytes Disklabel type: dos Disk identifier: 0x92c0322a 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): First sector (2048-2097151, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151, default 2097151): Created a new partition 1 of type 'Linux' and of size 1023 MiB. Command (m for help): w The partition table has been altered. -
ファイル・システムを作成します。
$ sudo mkfs.ext4 /dev/mapper/mpatha-part1 mke2fs 1.45.5 (07-Jan-2020) Creating filesystem with 261888 4k blocks and 65536 inodes Filesystem UUID: cdb70b1e-c47c-47fd-9c4a-03db6f038988 Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done -
ブロック・デバイスをマウントします。
sudo mount /dev/mapper/mpatha-part1 /mnt -
データにアクセスして、新しいパーティションとファイル・システムを使用する準備ができていることを確認します。
ls /mnt
Block Storage for Classic ボリュームのアンマウント
ボリュームが不要になったら、削除する前にマウントを解除してください。
-
ファイル・システムをアンマウントします。
umount /dev/mapper/XXXp1 /PerfDisk詳細については 、 Ubuntu のマニュアル(
umount)をご覧ください。 -
そのターゲット・ポータルに他のボリュームがない場合は、ターゲットからログアウトできます。
iscsiadm -m node -t <TARGET NAME> -p <PORTAL IP:PORT> --logout -
そのターゲット・ポータルに他のボリュームがない場合は、ターゲット・ポータル・レコードを削除して、今後ログインを試行できないようにします。
iscsiadm -m node -o delete -t <TARGET IQN> -p <PORTAL IP:PORT>詳細については 、 Ubuntu のマニュアル(
iscsiadm)をご覧ください。