Nfs

如何在 2 節點集群上創建虛擬 ip

  • January 20, 2016

我有一個具體的問題,她是我的情況:

1- 2 個帶 drbd 的虛擬機 - 起搏器 - corosync - NFs - 這是我的 crm 配置:

node san1
node san2
primitive drbd_res1 ocf:linbit:drbd \
   params drbd_resource="res1" \
   op monitor interval="20s"
primitive fs_res1 ocf:heartbeat:Filesystem \
   params device="/dev/drbd0" directory="/mnt/res1" fstype="ext3"
primitive nfs-common lsb:nfs-common
primitive nfs-kernel-server lsb:nfs-kernel-server
group services fs_res1 nfs-kernel-server nfs-common
ms ms_drbd_res1 drbd_res1 \
   meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
location location_on_san1 ms_drbd_res1 100: san1
colocation services_on_drbd inf: services ms_drbd_res1:Master
order services_after_drbd inf: ms_drbd_res1:promote services:start
property $id="cib-bootstrap-options" \
   dc-version="1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b" \
   cluster-infrastructure="openais" \
   expected-quorum-votes="2" \
   no-quorum-policy="ignore" \
   stonith-enabled="false"

我的問題是:我應該在 NFS 客戶端上掛載導出的 NFS,但我不知道我要提供什麼 ip,我正在考慮使用 2 台機器(使用 eth0:x)製作相同的虛擬 IP,所以如果伺服器確實下降了我不會在客戶端虛擬機中做任何事情,

這行得通嗎?或者我完全瘋了,如果不行,你能給我小費嗎?

我在網際網路上搜尋了大約 1 小時,我沒有找到任何東西,

十分感謝

是的,那會而且會奏效。多年來,我在生產設置中一直在使用這種技術,不是與 . 一起使用NFS,而是與不同的服務一起使用。這是要走的路。

  • 查看IPaddr2資源代理。
  • 使用這個,你可以想出類似的東西:
primitive p_nfs_vip ocf:heartbeat:IPaddr2 \
       params ip="<your_ip>" nic="<your_interface>" cidr_netmask="<your_netmask>" \
       op start interval="0s" timeout="60s" \
       op monitor interval="5s" timeout="20s" \
       op stop interval="0s" timeout="60s"

<...>(將指令與您的數據交換,使它們與您的設置相匹配。調整intervaltimeout指令。)

  • 把這個primitive放到你的services group.
  • 您必須確保在NFS伺服器啟動之前 IP 已啟動。為此使用order指令,就像你已經為你的servicesvs.所做的那樣drbd
  • 將您的伺服器綁定NFS到此 IP。
  • 使用此 IP 將客戶端連接到NFS伺服器。

最後但並非最不重要的:

  • 設置stonith/ fencing。這真的真的真的很重要!讀這個。金錢報價:

Fencing 是電腦集群中一個非常重要的概念,用於 HA(高可用性)。不幸的是,鑑於圍欄不能為使用者提供可見的服務,它經常被忽視。

$$ … $$

  • 這在像您這樣的共享儲存設置中尤其重要。在沒有這個的情況下執行你的集群,你會讓你的數據處於危險之中。

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