我已經使用 targetcli 設定了 iscsi 目標來擁有一些硬碟(區塊裝置),並在「TPG 驗證」中(所有啟動器的唯一 useid 和 passwd)。
當一個啟動器進行發現和登入時,它可以存取所有這些裝置(sda、sdb、sdc)並格式化和安裝它們。但是,當第二個啟動器進行發現和登入時,它也可以使用(格式化和安裝)所有這些裝置。
問題:當一個驅動器(例如sda)被多個啟動器使用時,會導致驅動器衝突。我還嘗試了“演示模式”(無身份驗證)和“ACL 身份驗證”(每個啟動器進行身份驗證),但它們都不會停用第二個啟動器存取。
我想要的是:當一個磁碟機或 iSCSI 目標被一個啟動器存取時,它應該會拒絕第二個啟動器的存取。我怎麼能使用 targetcli 來完成這個任務
答案1
聽起來你實際上想要某種形式的聚類配置有I/O 防護以防止磁碟一次掛載到多個節點上。如果您打算在主動-被動故障轉移場景中的主機之間共用存儲,則可以採用這種方法。
基本上,您的磁碟將透過叢集軟體進行監控。您將能夠將它們匯入並安裝到叢集的一個節點上(並將阻止您在其他節點上執行此操作)。
危險情況是“當我的心跳互連中斷時會發生什麼?”——那就是那裡I/O 防護開始發揮作用。這涉及到配置防護仲裁磁碟(呈現給叢集中的每個節點)。如果群集連線遺失,群集的節點將爭奪仲裁磁碟的控制權。誰獲勝就可以匯入磁碟。所有其他節點都會發生內核恐慌。看射擊另一個節點的頭部了解更多以及為什麼這不是反應過度!
無論如何,就實用建議而言——我已經瀏覽過了本指南如果您使用基於 Red Hat 的發行版,它似乎描述了您想要做得足夠好的事情。如果您使用 SLES,Symantec SFHA 會附帶vxfen
解決方案。我不確定是否有任何適用於 Debian / Ubuntu 的解決方案。