IBM Cloud Docs
Ubuntu OSに iSCSI ボリュームをマウントする

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-iscsimultipath-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 パッケージもインストールする必要があります。

マルチパスのセットアップ

  1. マルチパス・ユーティリティをインストールしたら、 /etc/multipath.conf という空のコンフィギュレーション・ファイルを作成する。

  2. /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 をご覧ください。

  3. 必要に応じて、構成ファイルを保存してエディターを終了します。

  4. マルチパス・サービスを開始します。

    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アドレスを使用してデバイスを検出します。

  1. iSCSI アレイに対してディスカバリーを実行します。

    iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>
    

    IP 情報とアクセスの詳細が表示されている場合、ディスカバリーは成功しています。

  2. 自動ログインを構成します。

    sudo iscsiadm -m node --op=update -n node.conn[0].startup -v automatic
    sudo iscsiadm -m node --op=update -n node.startup -v automatic
    
  3. 必要なサービスを有効にします。

    systemctl enable open-iscsi
    systemctl enable iscsid
    
  4. iscsid サービスを再始動します。

    systemctl restart iscsid.service
    
  5. iSCSI アレイにログインします。

    sudo iscsiadm -m node --loginall=automatic
    

構成の検証

  1. iSCSI セッションが確立されていることを検証します。

    iscsiadm -m session -o show
    
  2. 複数のパスがあることを検証します。

    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 "というキーワードを使うことで、読みやすい名前を割り当てることも可能だ。

  3. dmesgを調べて、新しいディスクが検出されたことを確認します。

    dmesg
    

パーティションとファイル・システムの作成 (オプション)

ボリュームをホスト上にマウントしてアクセス可能にした後に、ファイル・システムを作成できます。 新しくマウントされたボリュームにファイル・システムを作成するには、以下の手順に従います。

  1. パーティションを作成します。

    $ 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.
    
  2. ファイル・システムを作成します。

    $ 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
    
  3. ブロック・デバイスをマウントします。

    sudo mount /dev/mapper/mpatha-part1 /mnt
    
  4. データにアクセスして、新しいパーティションとファイル・システムを使用する準備ができていることを確認します。

    ls /mnt
    

Block Storage for Classic ボリュームのアンマウント

ボリュームが不要になったら、削除する前にマウントを解除してください。

  1. ファイル・システムをアンマウントします。

    umount /dev/mapper/XXXp1 /PerfDisk
    

    詳細については 、 Ubuntu のマニュアル( umount )をご覧ください。

  2. そのターゲット・ポータルに他のボリュームがない場合は、ターゲットからログアウトできます。

    iscsiadm -m node -t <TARGET NAME> -p <PORTAL IP:PORT> --logout
    
  3. そのターゲット・ポータルに他のボリュームがない場合は、ターゲット・ポータル・レコードを削除して、今後ログインを試行できないようにします。

    iscsiadm -m node -o delete -t <TARGET IQN> -p <PORTAL IP:PORT>
    

    詳細については 、 Ubuntu のマニュアル( iscsiadm )をご覧ください。