我已经使用 targetcli 设置了 iscsi 目标以拥有一些硬盘驱动器(块设备),并进行了“TPG 身份验证”(所有启动器的唯一 useid 和密码)。
当一个启动器进行发现和登录时,它可以访问所有这些设备 (sda、sdb、sdc) 并对其进行格式化和挂载。但是当第二个启动器进行发现和登录时,它也可以使用(格式化和挂载)所有这些设备。
问题:当一个驱动器(例如 sda)被多个启动器使用时,会导致驱动器冲突。我还尝试了“演示模式”(无身份验证)和“ACL 身份验证”(每个启动器进行身份验证),但它们都不会禁用第二个启动器访问。
我想要的是:当一个启动器访问驱动器或 iscsi 目标时,它应该拒绝第二个启动器的访问。我如何使用 targetcli 来实现这一点
答案1
听起来你实际上想要某种形式的聚类配置有I/O 防护以防止磁盘一次安装在多个节点上。如果您打算在主动-被动故障转移场景中在主机之间共享存储,则可以使用此方法。
基本上,您的磁盘将通过集群软件进行监控。您将能够在集群的一个节点上导入和安装它们(并阻止您在其他节点上执行此操作)。
危险情况是“当我的心跳互连发生故障时会发生什么?”—— 那就是I/O 防护发挥作用。这涉及配置隔离仲裁磁盘(它们呈现给集群中的每个节点)。如果集群连接丢失,集群的节点将争夺仲裁磁盘的控制权。获胜者将导入磁盘。所有其他节点将发生内核崩溃。请参阅射击其他节点的头部了解更多信息以及为什么这不是反应过度!
无论如何,就实用建议而言——我已经浏览过了本指南如果您使用的是基于 Red Hat 的发行版,它似乎很好地描述了您想要做的事情。如果您使用的是 SLES,Symantec SFHA 附带了解决方案vxfen
。我不确定是否有任何适用于 Debian / Ubuntu 的解决方案。