mpathaで起動ドライブのマルチパスを使用するノードで、2つのTGTサーバーのいずれかを起動せずに起動する必要があるのはなぜですか?

mpathaで起動ドライブのマルチパスを使用するノードで、2つのTGTサーバーのいずれかを起動せずに起動する必要があるのはなぜですか?

これは私がしたことです。

次の仮想マシンがあります。

  1. セフクライアント
  2. TGTサーバー
  3. DHCPサーバー

マシンはCeph(RHEL)の画像を公開し、PXEはリモートノード(つまりイニシエータ)を起動します。

VMを複製し、DHCPサーバーをオフにして、複製されたVMにCephクライアントとTGTサーバーの両方が含まれるようにしました。同じターゲットを公開する2つのTGTサーバーがあり、ファイルに2つのTGTサーバーのIPがありますtftpboot。たとえば、次のようになります。

#!ipxe
  sleep 23
  set keep-san 1
  ifconf --configurator=dhcp net0
  sanboot iscsi:10.20.30.1:tcp:3260:1:kumo-dan-installscript-img37 \
          iscsi:10.20.30.2:tcp:3260:1:kumo-dan-installscript-img37
  boot

公開されたターゲットは次のとおりです。

[root@bmi-introspect conf.d]# tgt-admin -s

Target 1: kumo-dan-installscript-img37
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
        I_T nexus: 4
            Initiator: iqn.2010-04.org.ipxe:4c4c4544-0034-4410-8056-cac04f4c3032 alias: localhost.localdomain
            Connection: 0
                IP Address: 10.20.30.70
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10737 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rbd
            Backing store path: bmi-introspect/kumo-dan-installscript-img37
            Backing store flags:
    Account information:
    ACL information:
        ALL

ノードが起動すると、2つのドライブが表示されます。

  1. ブートドライブが存在するsdb
  2. sdaは別のドライブです(マルチパスとして使用されます)。 3.device-multimapper-multipathをインストールします。
  3. mpathconf --enable --with_multipathd y
  4. mpathconf --enable
  5. ファイルが次のように変更されました/etc/multipath.conf

    (uncommenting the defaults settings)
    
    defaults {
            polling_interval        10
            path_selector           "round-robin 0"
            path_grouping_policy    multibus
            uid_attribute           ID_SERIAL
    #       prio                    alua
            path_checker            readsector0
            rr_min_io               100
            max_fds                 8192
            rr_weight               priorities
            failback                immediate
            no_path_retry           5
            user_friendly_names     yes
            find_multipaths         yes
    }
    
  6. systemctl start multipathd; systemctl enable multipathd

  7. multipath -llではデバイスが表示されず、lsblkドライブはmpathとして表示されません。
  8. ノードを再起動すると、1つのドライブがマルチパスドライブとして表示されます(lsblk)。

今私はそうします:

$ multipath -a /dev/sdb (which is where my boot drive is)
$ dracut --force -H --add multipath

...その後、システムをシャットダウンして再起動しました。

  1. 表示されたノードにログインします。

    [root@localhost ~]# multipath -l
    mpatha (360000000000000000e00000000010001) dm-0 IET     ,VIRTUAL-DISK
    size=10G features='1 queue_if_no_path' hwhandler='0' wp=rw
    `-+- policy='round-robin 0' prio=0 status=active
      |- 7:0:0:1 sda 8:0  active undef unknown
      `- 8:0:0:1 sdb 8:16 active undef unknown
    
    [root@localhost ~]# multipath -ll
    mpatha (360000000000000000e00000000010001) dm-0 IET     ,VIRTUAL-DISK
    size=10G features='1 queue_if_no_path' hwhandler='0' wp=rw
    `-+- policy='round-robin 0' prio=1 status=active
      |- 7:0:0:1 sda 8:0  active ready running
      `- 8:0:0:1 sdb 8:16 active ready running
    
    [root@localhost ~]# lsblk
    NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
    sda           8:0    0   10G  0 disk
    +-mpatha    253:0    0   10G  0 mpath
      +-mpatha1 253:1    0  476M  0 part  /boot
      +-mpatha2 253:2    0    5G  0 part  /
    sdb           8:16   0   10G  0 disk
    +-mpatha    253:0    0   10G  0 mpath
      +-mpatha1 253:1    0  476M  0 part  /boot
      +-mpatha2 253:2    0    5G  0 part  /
    

メモ:TGT サーバーの 1 つに障害が発生してもマルチパスが機能し、ノードは 2 番目のサーバーに動的に送信されます。

質問

  1. これは正しいアプローチですか、それとも何か抜けましたか?
  2. ノードを再起動しようとすると、両方のTGTサーバーが起動するのを待ち、両方のサーバーに接続できない場合は開始されません(したがって目的は失われます)。

この問題を解決する方法はありますか?

ベストアンサー1

おすすめ記事