Nfs
如何在 2 節點集群上創建虛擬 ip
我有一個具體的問題,她是我的情況:
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"
<...>
(將指令與您的數據交換,使它們與您的設置相匹配。調整interval
和timeout
指令。)
- 把這個
primitive
放到你的services group
.- 您必須確保在
NFS
伺服器啟動之前 IP 已啟動。為此使用order
指令,就像你已經為你的services
vs.所做的那樣drbd
。- 將您的伺服器綁定
NFS
到此 IP。- 使用此 IP 將客戶端連接到
NFS
伺服器。最後但並非最不重要的:
- 設置
stonith
/fencing
。這真的真的真的很重要!讀這個。金錢報價:Fencing 是電腦集群中一個非常重要的概念,用於 HA(高可用性)。不幸的是,鑑於圍欄不能為使用者提供可見的服務,它經常被忽視。
$$ … $$
- 這在像您這樣的共享儲存設置中尤其重要。在沒有這個的情況下執行你的集群,你會讓你的數據處於危險之中。