CloudLinux Windows 8で iSCSI ボリュームをマウントする

CloudLinux 8 に Block Storage for Classic ボリュームをマルチパス I/O でマウントし、冗長性のある高性能なストレージアクセスを実現する方法をご紹介します。

チュートリアルに従って、 CloudLinux 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 パッケージが含まれていることを確認してください。

  1. 以下のコマンドを使用してパッケージをインストールします。

    dnf install iscsi-initiator-utils device-mapper-multipath
    
  2. サービスを開始します。

    chkconfig multipathd on
    
    chkconfig iscsid on
    

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

DM Multipathは、 mpathconf ユーティリティを使用して設定します。これにより、マルチパス設定ファイル /etc/multipath.conf が作成されます。

  • /etc/multipath.conf ファイルが存在する場合、mpathconf ユーティリティで編集することができます。
  • /etc/multipath.conf がない場合は、mpathconf ユーティリティーは /etc/multipath.conf ファイルを最初から作成します。
  1. mpathconf 」コマンドを、「 --enable 」オプションを指定して実行します。

    # mpathconf --enable --user_friendly_names n
    
  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 "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) です。

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

  2. 以下のコマンドを実行します。

    # systemctl start multipathd.service
    

    マルチパスデーモンを起動した後にマルチパスの設定ファイルを編集する必要がある場合は、変更を反映させるために systemctl reload multipathd.service コマンドを実行する必要があります。

/etc/iscsi/initiatorname.iscsi ファイルの更新

「 IBM Cloud® 」コンソールから取得したIQNを使用して、 /etc/iscsi/initiatorname.iscsi ファイルを更新してください。 値を小文字で入力します。

InitiatorName=<value-from-the-Portal>

資格情報の構成

「 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 を有効にしないこと。

ストレージ・デバイスのディスカバーとログイン

iscsiadm ユーティリティは、 iSCSI ターゲットの検出とログイン、およびopen-iscsiデータベースへのアクセスと管理を支援するコマンドラインツールです。 このステップでは、IBM Cloud® コンソールから取得したターゲット IP アドレスを使用して、デバイスをディスカバーします。

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

    Block Storage for Classic SendTargets メソッドを使用した動的なターゲット検出が必要です。 静的なノード構成は使用しないでください。スケーラビリティに欠ける上、ストレージに変更が加えられた際(LUNへのホストのアクセス許可やアクセス権の解除など)、接続の問題を引き起こす可能性があります。 ダイナミック・ディスカバリーは、ホストがターゲット・ポータルへの変更を自動的に検出することを保証する。

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

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

  2. iSCSI アレイにログインします。

    iscsiadm -m node --login
    

構成の検証

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

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

    multipath -l
    

    このコマンドはパスを報告します。 正しく設定されていれば、各ボリュームには1つのグループがあり、そのパス数は iSCSI セッションの数と一致します。 単一のパスでボリュームをマウントすることは可能ですが、サービスの中断を防ぐためには、両方のパスで接続が確立されていることが重要です。

    MPIO が正しく構成されていないと、ネットワーク障害が発生した場合や、IBM Cloud® チームが保守を実行するときに、ストレージ・デバイスが切断され、オフラインと表示されます。 MPIOは、こうしたイベント発生時にさらなる接続性を提供し、アクティブな読み書き操作が行われているボリュームへの確立済みセッションを維持します。

  3. 接続しているデバイスに関するパーティション表をリストします。

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

    ボリュームはホスト上にマウント済みであり、アクセス可能です。 次に、ファイル・システムを作成できます。

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

新しくマウントされたボリュームにファイル・システムを作成するには、以下の手順に従います。 ファイル・システムは、ほとんどのアプリケーションでボリュームを使用するために必要です。 2 TB より小さいドライブの場合は fdisk を使用し、2 TB より大きいディスクの場合は parted を使用します

fdisk を使用したファイル・システムの作成

  1. ディスク名を取得します。

    fdisk -l | grep /dev/mapper
    

    返されるディスク名は、/dev/mapper/XXX のようになります。

  2. ディスク上にパーティションを作成します。

    fdisk /dev/mapper/XXX
    

    XXX は、ステップ 1 で返されたディスク名を表します。

    fdisk 」コマンド一覧に記載されているコマンドコードについては、さらに下にスクロールしてください。

  3. 新規パーティション上にファイル・システムを作成します。

    fdisk –l /dev/mapper/XXX
    
    • 新しいパーティションは、 XXXp1 と同様にディスクの一覧に表示され、その後にサイズ、タイプ(83)、および Linux® が続きます。
    • 次のステップで必要になるので、パーティション名をメモします。 (XXXp1 がパーティション名を表します。)
    • ファイル・システムを作成します。
    mkfs.ext3 /dev/mapper/XXXp1
    
  4. ファイル・システムのマウント・ポイントを作成し、マウントします。

    • パーティション名 PerfDisk を作成するか、ファイル・システムをマウントする場所を作成します。
    mkdir /PerfDisk
    
    • パーティション名を使用してストレージをマウントします。
    mount /dev/mapper/XXXp1 /PerfDisk
    
    • 新しいファイル・システムがリストされることを確認します。
    df -h
    
  5. 新しいファイル・システムをシステムの /etc/fstab ファイルに追加して、ブート時の自動マウントを有効にします。

    • 以下の行を /etc/fstab の末尾に追加します (ステップ 3 でメモしたパーティション名を使用します)。
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

parted を使用したファイル・システムの作成

多くの Linux® ディストリビューションでは、 parted がプリインストールされています。 ただし、必要であれば、次のコマンドを実行してインストールすることもできます。

# dnf install parted

parted を使用してファイル・システムを作成するには、以下のステップに従います。

  1. 対話型 parted シェルを起動します。

    parted
    
  2. ディスク上にパーティションを作成します。

    • 特に指定されていない限り、 parted は 1 次ドライブを使用します。 ほとんどの場合、1 次ドライブは /dev/sda です。 コマンド select を使用して、パーティション化するディスクに切り替えます。 XXX は、新しいデバイス名に置き換えてください。

      select /dev/mapper/XXX
      
    • print を実行して、正しいディスクを選択していることを確認してください。

      print
      
    • パーティションテーブルを作成する。

      mklabel gpt
      
    • Parted は、1 次ディスク・パーティションと論理ディスク・パーティションの作成に使用できます。それぞれで必要なステップは同じです。 パーティションを作成する場合、partedmkpart を使用します。 作成するパーティション・タイプに応じて、primarylogical などの他のパラメーターを指定できます。 リストされた単位のデフォルトはメガバイト (MB) です。 10 GB のパーティションを作成するには、1 から開始して 10000 で終了します。 必要に応じて、unit TB と入力することにより、サイズ変更単位をテラバイトに変更することもできます。

      mkpart
      
    • parted を使用して、quit を終了します。

      quit
      
  3. 新規パーティション上にファイル・システムを作成します。

    mkfs.ext3 /dev/mapper/XXXp1
    

    このコマンドを実行する際は、正しいディスクとパーティションを選択することが重要です。 パーティション表を表示することで、結果を検証してください。 「ファイルシステム」の列には、「 ext3 」と表示されています。

  4. ファイル・システムのマウント・ポイントを作成し、マウントします。

    • パーティション名 PerfDisk を作成するか、ファイル・システムをマウントする場所を作成します。
    mkdir /PerfDisk
    
    • パーティション名を使用してストレージをマウントします。
    mount /dev/mapper/XXXp1 /PerfDisk
    
    • 新しいファイル・システムがリストされることを確認します。
    df -h
    
  5. 自動マウント・ブートを使用可能にするには、新しいファイルシステムをシステムの /etc/fstab ファイルに追加します。

    • 以下の行を /etc/fstab の末尾に追加します (ステップ 3 で取得したパーティション名を使用します)。
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

マウントされたボリュームのコンテンツに対するユーザー権限の管理

システム管理者として、マウントされたボリューム上のデータへのアクセスを管理することができます。 ファイルシステムが準備できたら、 chownchmod コマンドを使用して、個々のユーザーやグループに読み取り、書き込み、実行の権限を割り当てることで、アクセス制御をさらに細かく設定することができます。 詳細については 、 CloudLinux の製品ドキュメントをご覧ください。

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

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

  1. ファイル・システムをアンマウントします。
    umount /dev/mapper/XXXp1 /PerfDisk
    
  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>