實驗環境
redhat6.5虛擬機三臺,各1G內存,時間同步
server1 172.25.44.1
server2 172.25.44.2
server3 172.25.44.3
火牆和selinux均處於關閉狀態
編輯/etc/hosts文件,加入解析
不支持在集羣節點中使用 NetworkManager。如果已經在集羣節點中安裝了 NetworkManager,應該刪除或者禁用該程序。
server1 server2 ricci節點
(1).yum源配置
vim /etc/yum.repos.d/rhel-source.repo
[server]
name=localserver
baseurl=http://172.25.44.44/rhel6.5
gpgcheck=0
[HighAvailability] ###高可用集羣
name=localserver
baseurl=http://172.25.44.44/rhel6.5/HighAvailability
gpgcheck=0
[LoadBalancer]
name=localserver
baseurl=http://172.25.44.44/rhel6.5/LoadBalancer
gpgcheck=0
[ResilientStorage] ###存儲
name=localserver
baseurl=http://172.25.44.44/rhel6.5/ResilientStorage
gpgcheck=0
[ScalableFileSystem] ###大型文件系統
name=localserver
baseurl=http://172.25.44.44/rhel6.5/ScalableFileSystem
gpgcheck=0
yum repolist ###列出可用的包,默認都是server裏面的3690個包
yum源配置完成之後,有可用的包 共3819
(2).安裝ricci以及設置開機自啓動
yum install ricci -y
chkconfig ricci on ###開機自啓動
echo linux | passwd --stdin ricci ###6.1版本之後要給一個密碼(cat /etc/issue查看版本)
/etc/init.d/ricci start ###啓動服務
server3
(1)yum源的配置同server1 server2
(2)yum install luci -y
chkconfig luci on ###開機自啓動
(3)/etc/init.d/luci start 出現如下界面
在瀏覽器中訪問https://server3.example.com:8084
可以看到如下luci登錄界面
以超級用戶的身份和密碼登錄進行管理
創建集羣
(1)在luci “Homebase” 頁面左側菜單中點擊「管理集羣」 。此時會出現「集羣」 頁面;
(2)點擊創建後出現創建集羣界面。如下
參數說明:
a.集羣名稱隨意輸入,不能超過15個字符
b.如果節點的ricci密碼相同,則可以選擇“使用相同密碼(所有節點)”
c.添加節點,節點名稱密碼自己添加,端口默認爲11111,自己可以更改
d.下載軟件安裝包比使用本地軟件安裝包多了一個更新的功能
e.選擇加入集羣前重啓和啓動共享存儲支持
###點擊創建屬性之後,會有相關信息顯示正在創建;
注意:點擊創建出現錯誤,重新給ricci節點一個密碼,確保其密碼和添加節點的時候輸入的密碼一致。
創建完成後:
clustat查看狀態
配置fence設備
產生腦裂:
(1)網絡突然斷開,彼此都以爲對方接收不到信息,然後同時對數據進行操作
(2)一個夯住,另外一個節點以爲對方掛掉,當夯住的那個節點醒來之後繼續工作,兩個都會對數據進行傳送;
夯住的時候可以使用fence機制,簡單來說,就是另外一個節點把夯主的那個節點一棍子打死,就不會產生腦裂現象;
圖形界面添加一個fence設備
這裏用的兩個虛擬機,類型選擇虛擬設備的多播模型;
物理機只是添加一個連接接口,它可以發出foceoff的命令;
物理機:
(1)
yum install fence-virtd fence-virtd-libvirt fence-virtd-multicast -y
(2)systemctl start fence_virtd ###開啓服務
netstat -anulpe #查看端口 1229
(3)fence_virtd -c
默認回車 Interface [virbr0]: br0 Backend module [libvirt]:libvirt
(4)mkdir /etc/cluster ###不存在則建立
cd /etc/cluster
dd if=/dev/urandom of=fence_xvm.key bs=128 count=1 ####截取生成fence_xvm.key文件
systemctl restart fence_virtd.service ###重啓服務
(5)把key文件scp到其他兩個ricci節點主機
scp fence_xvm.key [email protected]:/etc/cluster/
scp fence_xvm.key [email protected]:/etc/cluster/
建立虛擬機和其hostname之間的映射
在圖形界面節點選項中選擇一個設備比如server1:
這裏的Domain可以是虛擬機的名稱或者uuid,uuid是唯一的
server2和server1的方法一樣,把所有節點都配置
檢測:在server1中: fence_node server2.example.com
server2斷電重啓,執行forceoff命令,反之一樣
創建Failover Domain
Failover Domain是配置集羣的失敗轉移域,通過其可以將服務器和資源的切換限制在指定的節點間
參數說明:
prioritized:是否在這個域中啓用域成員優先級設置,這裏選擇啓用;
Restricted:是否在失敗轉移域成員中啓用服務故障切換限制;
No failback:主節點故障,備節點會自動接管相關業務;當主節點恢復正常,不恢復到主節點,只有當備節點故障時,纔會回到主節點;
優先級的設置,數字越小,優先級越高
創建資源
填寫的ip要是ping不通的,爲集羣vip
兩臺ricci節點主機安裝httpd,且httpd的狀態爲stop
創建資源組
添加資源,順序ip-->httpd
添加的順序就是開機的啓動順序
測試:
在server1和server2中創建測試頁
server1:echo "<h1>server1</h1>" >/var/www/html/index.html
server2:echo "<h1>server2</h1>" >/var/www/html/index.html
當前在server1
網頁訪問:172.25.44.144
(1)
正常情況下由server1主管,當server1的服務停止後,由server2進行接管,由於是一個集羣vip,所以ip不變。
(2)server 2: /etc/init.d/network stop
(3)server1: echo c > /proc/sysrq-trigger ###使內核崩掉
server1 崩掉後fence機制,force重啓
共享:
server3:裝有luci的主機
yum install scsi-* -y
添加磁盤8G fdisk -l 可以查看
分區fdisk -cu /dev/vda
vim /etc/tgt/targets.conf
/etc/init.d/tgtd start
server1 server2
(兩臺ricci節點主機)
yum install iscsi-* -y
檢測並登錄
登錄成功後fdiks -l 查看多了/dev/sdb
以上操作兩臺主機都執行
server1:
在server1中對/dev/sdb/進行分區(server2執行partprobe後會同步)
fdisk -cu /dev/sdb t 8e
pvcreate /dev/sdb1
vgcreate clustervg /dev/sdb1
lvcreate -L 2G -n data1 clustervg
mkfs.ext4 /dev/clustervg/data1
ext4 本地文件系統,不支持多個掛載點同時對文件進行讀寫,保證一個點掛載不會出現問題
mount /dev/clustervg/data1 /mnt
echo "<h1>linux</h1>" /mnt/index.html ####編輯測試頁
umount /mnt
server1 server2
clusvcadm -d apache ###停止apache
在服務組裏面添加資源
順序:ip --> filesystem(data1) -->httpd(script)
clusvcadm -e apache ###啓動apache
測試:172.25.44.144