我有几个格式化为文件系统的多路径 iSCSI LUN ocfs2
。它们是使用本地心跳的 Ubuntu 14.04 集群的一部分。如果我在重新启动后手动安装它们,这一切似乎都运行正常。
如果我尝试通过 UUID 自动安装它们fstab
(即使有_netdev
选项)我会遇到问题。
如果我在启动过程中注释掉了 fstab 条目(例如以下内容)
UUID=094c02f6-bfbb-4fe5-8a90-3b6992c81a60 /mnt/lun-1 ocfs2 _netdev 0 0
然后在登录并运行后取消注释它们,mount -a
一切似乎都很好。即multipath -ll
显示每个 iSCSI 设备的多条路径。例如:
3603be8bfce91e3e06e63e5ad426f4d98 dm-5 EQLOGIC ,100E-00
size=15T features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 19:0:0:0 sdr 65:16 active ready running
`- 20:0:0:0 sdf 8:80 active ready running
并mount
显示/dev/mapper/*
我的 iSCSI LUN 的设备:
/dev/mapper/3603be8bfce91e3e06e63e5ad426f4d98-part1 on /mnt/lun-1 type ocfs2 (rw,_netdev,heartbeat=local)
但是,如果我重新启动并且fstab
取消注释相同的条目,则不会得到相同的multipath -ll
输出。也就是说,只存在一个多路径设备,而不是每个 iSCSI LUN 都有一个。
mount
显示该设备不是作为/dev/mapper/*
而只是作为单个非多路径设备,例如/dev/sdc1
:
/dev/sdk1 on /mnt/lun-1 type ocfs2 (rw,_netdev,heartbeat=local)
是我做错了什么,还是因为在安装多路径设备multipath
之前没有完全启动并运行而导致的?ocfs2
答案1
问题似乎和我预料的一样,要么multipath
没有完全启动,要么在挂载open-iscsi
ocfs2 条目时尚未登录所有路径的 iscsi 目标。尽管有挂载选项,但仍然如此。fstab
_netdev
我尝试init.d
在和脚本中添加/etc/init.d/o2cb
和,但似乎无法让这个 ocfs2 多路径 UUID 安装正常工作。/etc/init.d/ocfs2
iscsi
multipath-tools
Should-Start:
Should-Stop:
如果我使用相关的多路径设备(例如/dev/mapper/3603be8bfce91e3e06e63e5ad426f4d98-part1
)而不是 UUID,则可以正常启动,并且通过fstab
使用多路径挂载可以正常工作。
我最初没有尝试这个的原因是我想要一个可以在多个主机上运行的东西,这些主机可能有也可能没有多路径。所以最后我根据主机是否有多路径而拥有不同的设备。这不是理想的,但似乎有效。
fstab
在主机上和多路径
/dev/mapper/3603be8bfce91e3e06e63e5ad426f4d98-part1 /mnt/lun-1 ocfs2 _netdev 0 0
fstab
在主机上没有多路径
/dev/disk/by-id/scsi-3603be8bfce91e3e06e63e5ad426f4d98-part1 /mnt/lun-1 ocfs2 _netdev 0 0
答案2
我最近遇到了非常类似的问题并发现了这个错误:
https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/1547206
到目前为止,安装旧版本并保持该版本的方法似乎有效。它似乎解决了我在使用当前版本的软件包时遇到的所有启动挂起和排序问题。
apt-get 安装多路径工具=0.4.9-3ubuntu7
apt-mark 保留多路径工具
能力保持多路径工具
答案3
我在尝试将可通过两条路径访问的物理磁盘挂载到 JBOD 中时也遇到过类似的问题。每次启动时,都会发生多路径设备创建和按文件系统 UUID 挂载驱动器之间的竞争。某些设备使用单一路径挂载,而其他设备则使用正确的多路径设备。
通过查看,/etc/multipath/bindings
我发现 WWID(全局唯一驱动器序列号)和 mpath{az} 设备之间存在静态映射。使用文件系统 UUID 来解决非持久驱动器号问题完全没有必要,因为 multipathd 实现了自己的持久映射,确保驱动器号在重新启动或物理驱动器附件发生变化时不会发生变化。
我无法说该解决方案是否适用于 iSCSI,但它确实对我的物理多路径设备有用。