为什么节点(在 mpatha 上具有启动驱动器的多路径)需要两个 TGT 服务器启动,而不需要启动其中任何一个

为什么节点(在 mpatha 上具有启动驱动器的多路径)需要两个 TGT 服务器启动,而不需要启动其中任何一个

这就是我所做的

我有一个虚拟机,其中包含:

  1. Ceph 客户端
  2. TGT 服务器
  3. DHCP服务器

机器公开 Ceph 中存在的映像 (RHEL),并且 PXE 启动远程节点(即启动器)。

我已经克隆了虚拟机并关闭了 DHCP 服务器,以便克隆的虚拟机同时拥有 Ceph 客户端和 TGT 服务器。所以现在我有两个 TGT 服务器公开相同的目标,并在文件中包含两个 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

节点启动后,我会看到两个驱动器:

  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. 当我重新启动节点时,我将一个驱动器视为多路径驱动器 ( 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. 当我尝试重新启动节点时,它会等待两个 TGT 服务器启动并且不会启动,除非两个服务器均可访问(从而破坏了目的)。

有办法解决这个问题吗?

相关内容