Ubuntu OSに iSCSI ボリュームをマウントする
このチュートリアルでは、 Ubuntu オペレーティングシステムを搭載したサーバーに 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 を参照してください。
iSCSI, の設定を始める前に、open-iscsi パッケージが正しく動作するように、特に起動時にネットワークインターフェイスが正しく設定され、構成されていることを確認してください。 Ubuntu の新しいバージョンでは、ネットワークアドレス情報を設定する主なツールは Netplan です。 YAML 設定ファイルを使用してネットワーク設定を定義し、 /etc/network/interfaces
のような古い方法に取って代わる。 Netplanは、コマンドラインまたはデスクトップ環境の NetworkManager。
iSCSI サービスが Ubuntu OS 上でどのように動作するかについての詳細は、 iSCSI Initiator(or Client) Documentation を参照のこと。
また、 Block Storage for Classic ボリュームにアクセスするホストが認証されていることを確認する。 詳細については、コンソールでホストを承認するCLIからホストを認証するTerraform でホストを承認する。
iSCSI とマルチパス・ユーティリティーのインストール
システムが更新され、 open-iscsi
と multipath-tools
パッケージが含まれていることを確認してください。 以下のコマンドを使用して、パッケージをインストールします。
-
open-iscsi
をインストールします。sudo apt install open-iscsi
パッケージがインストールされると、以下の 2 つのファイルが作成されます。
/etc/iscsi/iscsid.conf
/etc/iscsi/initiatorname.iscsi
-
multipath-tools
をインストールします。sudo apt install multipath-tools
ボリュームからブートしたい場合は、
multipath-tools-boot
パッケージもインストールする必要があります。
マルチパスのセットアップ
-
マルチパス・ユーティリティをインストールしたら、
/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 }
設定ファイルの初期デフォルト・セクションでは、マルチパス・デバイスの名前が
/dev/mapper/mpathn
という形式になるようにシステムを設定する。mpathn
はデバイスの WWID 番号である。 詳細については 、 Ubuntu のマニュアル -multipath.conf
をご覧ください。 -
必要に応じて、構成ファイルを保存してエディターを終了します。
-
マルチパス・サービスを開始します。
service multipath-tools start
マルチパス・デーモンを起動した後でマルチパス設定ファイルを編集する必要がある場合は、
multipathd
サービスを再起動して変更を有効にする必要があります。Ubuntu 20のデバイスマッパーマルチパス機能の使用については、「 デバイスマッパーマルチパス - はじめに 」を参照してください。
/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 を有効にしないこと。
変更を有効にするために、iscsi サービスを再始動します。
systemctl restart iscsid.service
詳細については、 Ubuntu マニュアル - iscsid
および Ubuntu マニュアル - systemctl
をご覧ください。
ストレージ・デバイスのディスカバーとログイン
iscsiadm ユーティリティは、 iSCSI ターゲットの発見とログイン、さらに open-iscsi データベースへのアクセスと管理に使用されるコマンドラインツールです。 詳細については、 Ubuntu のマニュアル( iscsiadm
)を参照してください。このステップでは、 IBM Cloud® コンソールから取得したターゲットIPアドレスを使用してデバイスを検出します。
-
iSCSI アレイに対してディスカバリーを実行します。
iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>
IP 情報とアクセスの詳細が表示されている場合、ディスカバリーは成功しています。
-
自動ログインを構成します。
sudo iscsiadm -m node --op=update -n node.conn[0].startup -v automatic sudo iscsiadm -m node --op=update -n node.startup -v automatic
-
必要なサービスを有効にします。
systemctl enable open-iscsi systemctl enable iscsid
-
iscsid サービスを再始動します。
systemctl restart iscsid.service
-
iSCSI アレイにログインします。
sudo iscsiadm -m node --loginall=automatic
構成の検証
-
iSCSI セッションが確立されていることを検証します。
iscsiadm -m session -o show
-
複数のパスがあることを検証します。
multipath -ll
このコマンドはパスを報告します。 正しく設定されていれば、各ボリュームは、 iSCSI セッション数と同じ数のパスを持つ1つのグループを持つ。 単一パスでボリュームをアタッチすることは可能だが、サービスの中断を防ぐため、両方のパスで接続を確立することが重要である。
$ sudo multipath -ll mpathb (360014051f65c6cb11b74541b703ce1d4) dm-1 LIO-ORG,TCMU device size=1.0G features='0' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=1 status=active | `- 7:0:0:2 sdh 8:112 active ready running `-+- policy='service-time 0' prio=1 status=enabled `- 8:0:0:2 sdg 8:96 active ready running mpatha (36001405b816e24fcab64fb88332a3fc9) dm-0 LIO-ORG,TCMU device size=1.0G features='0' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=1 status=active | `- 7:0:0:1 sdj 8:144 active ready running `-+- policy='service-time 0' prio=1 status=enabled `- 8:0:0:1 sdi 8:128 active ready running
MPIO が正しく構成されていないと、ネットワーク障害が発生した場合や、IBM Cloud® チームが保守を実行するときに、ストレージ・デバイスが切断され、オフラインと表示されます。 MPIOは、このようなイベントの間、特別なレベルの接続性を提供し、アクティブな読み書き操作でボリュームとの確立されたセッションを維持する。
この例で、
36001405b816e24fcab64fb88332a3fc9
は、ボリュームが存在する間は永続する 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
)をご覧ください。