通过UUID在fstab中安装多path设备

我有几个多pathiSCSI LUN被格式化为ocfs2文件系统。 它们是使用本地心跳的Ubuntu 14.04群集的一部分。 这一切似乎工作正常,如果我重新启动后手动安装它们。

如果我尝试通过fstab (即使使用_netdev选项)通过UUID自动挂载它们,我遇到问题。

如果在启动过程中有fstab条目(如以下)注释掉

 UUID=094c02f6-bfbb-4fe5-8a90-3b6992c81a60 /mnt/lun-1 ocfs2 _netdev 0 0 

然后在login后取消注释并运行mount -a一切似乎都正常。 即multipath -ll显示到每个iSCSI设备的多个path。 例如:

 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显示我的iSCSI LUN的/dev/mapper/*设备:

 /dev/mapper/3603be8bfce91e3e06e63e5ad426f4d98-part1 on /mnt/lun-1 type ocfs2 (rw,_netdev,heartbeat=local) 

但是,如果我然后重新启动相同的fstab条目取消注释,我不会得到相同的multipath -ll输出。 即,只有一个多path设备,而不是每个iSCSI LUN。

mount不是以/dev/mapper/*显示设备,而是仅显示一个非多path设备,如/dev/sdc1

 /dev/sdk1 on /mnt/lun-1 type ocfs2 (rw,_netdev,heartbeat=local) 

我做错了什么,或者这是由于我的ocfs2多path设备安装之前, multipath没有完全正常运行?

问题似乎如我所料,无论是multipath还是未完全启动,或者当ocfs2 fstab条目被挂载时,iscsi尚未login到所有path的iscsi目标。 尽pipe有_netdev作为挂载选项。

我尝试在/etc/init.d/o2cb/etc/init.d/ocfs2init.d脚本中添加iscsimultipath-tools到它们的Should-Start:Should-Stop:行。 但似乎无法通过UUID安装ocfs2多path来正常工作。

如果我使用相关的多path设备(例如/dev/mapper/3603be8bfce91e3e06e63e5ad426f4d98-part1 )而不是UUID,则正常启动并且通过fstab通过多path正常工作。

我之所以没有尝试这个的原因是因为我想要在多个可能或不可能有多path的主机上工作。 所以最后我有不同的设备,取决于我是否在有多path的主机上。 这并不理想,但似乎正在工作。

使用多path在主机上执行 fstab

 /dev/mapper/3603be8bfce91e3e06e63e5ad426f4d98-part1 /mnt/lun-1 ocfs2 _netdev 0 0 

没有多path的主机上进行 fstab

 /dev/disk/by-id/scsi-3603be8bfce91e3e06e63e5ad426f4d98-part1 /mnt/lun-1 ocfs2 _netdev 0 0 

我最近有一个非常类似的问题,发现这个错误:

https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/1547206

到目前为止,安装旧版本并在该版本中保留的解决方法似乎正在起作用。 它似乎已经解决了所有与当前版本的软件包有关的引导挂起和订购问题。

apt-get install multipath-tools = 0.4.9-3ubuntu7

apt-mark保存多path工具

aptitude拥有多path工具