web-dev-qa-db-ja.com

リソースの移行中に古いファイルハンドルでNFSフェイルオーバーが失敗する

ここで少し問題が発生しました。Glusterfsとその間の共有ディレクトリを使用して2つのサーバー(Centos 6)をセットアップし、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" 

お時間をいただきありがとうございます。

Update1:​​私はすべてを複雑にしすぎていると判断しました。フロリアンとの電話の後、彼は私に単純化するように説得した。 Glusterから直接nfsを共有していて、ipリソースがcorosync/pacemakerによって処理されているだけです。はるかに単純なソリューションであり、それは私のニーズに適合します。

ただし、Dokは、本番環境で100%稼働させることができませんでしたが、評価と提案は完全に正しかったと言えます(テストで機能しているとはいえ)。

2
Roncioiu

コロケーションsitewithnfsinf:ClusterIP exportfs nfs

order nfsorder inf:exportfs ClusterIP nfs

まず、エクスポートの前にnfsdを開始したいと思います。

Exportfsリソースエージェントにunlock_on_stop="true"パラメーターを追加することも役立つ場合がありますが、私のテストで実際に違いをもたらしたのは、フェイルオーバー中に最初に仮想IPを停止することでした。理由は完全にはわかりませんが、エクスポートを停止する前に接続を閉じる必要があると思われます。

また、古いバージョンのペースメーカーでは、「リソースセット」(つまり、3つ以上のリソースでの順序付けとコロケーションの制約)に問題があったことを思い出します。代わりに、順序とコロケーションの制約を削除し、次のように単一のリソースグループに置き換えることをお勧めします。

group g_nfs nfs exportfs ClusterIP

P.S. exportfsリソースエージェントは、すべてのエクスポートを処理する必要があります。/etc/exportsファイルは空である必要があります。

0
Dok