Linux

NFS 故障轉移在遷移資源時因文件句柄過時而失敗

  • March 24, 2014

在這裡遇到了一些問題,我設置了兩台伺服器(Centos 6)和 Glusterfs 和它們之間的共享目錄,我已經將 nfs 目錄移動到共享的 Gluster 文件夾並在兩個盒子上創建了一個符號連結。機器可以通過主機名與自己對話,Gluster 複製通過伺服器之間的另一個乙太網卡進行處理。

我遇到的問題是,即使資源正確地故障轉移(雖然它似乎在故障轉移時上下幾次),我在客戶端上得到了陳舊的 nfs 句柄。以下是我的 crm 配置;我究竟做錯了什麼?

客戶端上的 nfs 掛載盡可能簡單。

node GlusterFS01 
node GlusterFS02 
primitive ClusterIP ocf:heartbeat:IPaddr2 \ 
       params ip="10.10.10.167" cidr_netmask="24" clusterip_hash="sourceip" \ 
       op monitor interval="5s" 
primitive exportfs ocf:heartbeat:exportfs \ 
       params fsid="0" directory="/GlusterFS/Files" \
       options="rw,sync,no_subtree_check,no_root_squash" \ 
       clientspec="10.10.10.0/24" \        
       wait_for_leasetime_on_stop="false" \ 
       op monitor interval="5s" \ 
       op start interval="0s" timeout="240s" \ 
       op stop interval="0s" timeout="100s" \ 
       meta is-managed="true" target-role="Started" 
primitive nfs lsb:nfs \ 
       meta target-role="Started" \ 
       op monitor interval="5s" timeout="5s" 
colocation sitewithnfs inf: ClusterIP exportfs nfs 
order nfsorder inf: exportfs ClusterIP nfs 
property $id="cib-bootstrap-options" \ 
       dc-version="1.1.10-14.el6_5.2-368c726" \ 
       cluster-infrastructure="classic openais (with plugin)" \ 
       expected-quorum-votes="2" \ 
       stonith-enabled="false" \ 
       no-quorum-policy="ignore" \ 
last-lrm-refresh="1395246465" \ 
       default-resource-stickiness="100" 
rsc_defaults $id="rsc-options" \ 
       resource-stickiness="100" 

感謝您的時間。

更新1:我已經決定我把一切都複雜化了。在與 Florian 通話後,他說服我簡化。我直接從 Gluster 共享 nfs,我只是讓 corosync/pacemaker 處理 ip 資源。更簡單的解決方案,它符合我的需求。

然而,我會說 Dok 在他的評估和建議中是完全正確的,即使我無法在生產環境中啟動並 100% 執行它(甚至認為在測試中工作)。

託管站點withnfs inf:ClusterIP exportfs nfs

訂購 nfsorder inf:exportfs ClusterIP nfs

首先,我相信您想在導出之前啟動 nfsd。

unlock_on_stop="true"參數添加到 exportfs 資源代理也可能會有所幫助,但在我的測試中真正與眾不同的是在故障轉移期間首先停止虛擬 IP。我不完全確定為什麼,但我懷疑這與在嘗試停止導出之前關閉連接有關。

另外,我記得在舊版本的起搏器中存在“資源集”(即具有兩個以上資源的排序和託管約束)的問題。相反,我建議刪除您的排序和託管限制,並將它們替換為單個資源組,如下所示:

group g_nfs nfs exportfs ClusterIP

PS exportfs 資源代理應該處理所有的導出。您的 /etc/exports 文件應該是空的。

引用自:https://serverfault.com/questions/583432