ここで少し問題が発生しました。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%稼働させることができませんでしたが、評価と提案は完全に正しかったと言えます(テストで機能しているとはいえ)。
コロケーション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ファイルは空である必要があります。