这就是我所做的
我有一个虚拟机,其中包含:
- Ceph 客户端
- TGT 服务器
- 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
节点启动后,我会看到两个驱动器:
- sdb 其中存在启动驱动器
- sda 是另一个驱动器(用作多路径) 3 .我安装 device-multimapper-multipath
mpathconf --enable --with_multipathd y
mpathconf --enable
在文件中进行了以下更改
/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 }
systemctl start multipathd; systemctl enable multipathd
- 现在在 multipath -ll 上我没有看到任何设备,也没有将
lsblk
驱动器显示为 mpath - 当我重新启动节点时,我将一个驱动器视为多路径驱动器 (
lsblk
)
现在,我这样做:
$ multipath -a /dev/sdb (which is where my boot drive is)
$ dracut --force -H --add multipath
...之后我关闭系统并重新启动它。
登录节点我看到:
[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 服务器出现故障,多路径也能正常工作,节点会动态转移到第二台服务器。
问题
- 这是正确的方法还是我错过了什么?
- 当我尝试重新启动节点时,它会等待两个 TGT 服务器启动并且不会启动,除非两个服务器均可访问(从而破坏了目的)。
有办法解决这个问题吗?