Using KVM Configure Openfiler 2.99 Active/Passive Cluster

自從安裝了openfiler 2.99之後,發現跟以前版本的不同之處之一是web管理界面的選項欄裏多了個cluster選項,而在openfiler的官方文檔裏也沒有提到openfiler cluster的相關信息。google了下,發現竟有類似的文章,自己搭了個環境研究了下,以下是具體操作過程:

一、準備工作:

1、主機名和IP對應關係見下圖:

image

其中的虛擬IP是用於openfiler對外提供服務的虛擬IP。可以在web管理界面的status攔裏看到監聽的IP地址是192.168.1.90.如果openfiler服務同一時刻存在於某個節點上,也可以使用它本身的公網IP進行訪問。如下圖所示,服務當前位於nas01上,所以也可以是192.168.1.91訪問openfiler的web管理界面。

image

2、磁盤:

nas01和nas02各帶一個20G的虛擬磁盤sdb,分了兩個分區:Meta分區sdb1(500Mb)和Data分區sdb2。在這裏注意,如果你的共享磁盤類型是virtio類型BUS,則使用openfiler管理界面設置LVM時無法對其進行識別,這裏使用默認的IDE BUS即可。如圖:

image

3、將以上IP和主機名加入兩個節點的hosts文件中:

image

4、創建SSH等同性:

NAS01:

image

NAS02:

image

設置完成後,兩個節點就可以使用ssh進行無密碼登錄了。

二、DRBD的設置:

1、兩個節點上編輯/etc/drbd.conf,加入以下內容:

image

2、創建resource:meta和data:

image

image

創建完成後,兩節點啓動drbd服務。接着使其中一個節點成爲主角色:

image

以上兩條命令,在任意一個節點執行即可,完成後,可以查看/proc/drbd獲取同步信息:

image

上面的drbd0大小是500M,同步很快,而drbd1大小近20G,同步起來需要點時間。

3、對drbd0創建文件系統並停止openfiler服務,複製openfiler的相關文件至drbd0上:

主節點nas02上對drbd0格式化:

image

image

nas02上執行行以下命令:

#openfiler to meta-partiton(drbd0)
mkdir /meta
mount /dev/drbd0 /meta
mv /opt/openfiler/ /opt/openfiler.local
mkdir /meta/opt
cp -a /opt/openfiler.local /meta/opt/openfiler
ln -s /meta/opt/openfiler /opt/openfiler
rm -rf /meta/opt/openfiler/sbin/openfiler
ln -s /usr/sbin/httpd /meta/opt/openfiler/sbin/openfiler
rm -rf /meta/opt/openfiler/etc/rsync.xml
ln -s /opt/openfiler.local/etc/rsync.xml /meta/opt/openfiler/etc/
mkdir -p /meta/etc/httpd/conf.d
#Samba/NFS/ISCSI/PROFTPD Configuration Files to Meta Partition
service nfslock stop
umount -a -t rpc-pipefs
mkdir /meta/etc
mv /etc/samba/ /meta/etc/
ln -s /meta/etc/samba/ /etc/samba
mkdir -p /meta/var/spool
mv /var/spool/samba/ /meta/var/spool/
ln -s /meta/var/spool/samba/ /var/spool/samba
mkdir -p /meta/var/lib
mv /var/lib/nfs/ /meta/var/lib/
ln -s /meta/var/lib/nfs/ /var/lib/nfs
mv /etc/exports /meta/etc/
ln -s /meta/etc/exports /etc/exports
mv /etc/ietd.conf /meta/etc/
ln -s /meta/etc/ietd.conf /etc/ietd.conf
mv /etc/initiators.allow /meta/etc/
ln -s /meta/etc/initiators.allow /etc/initiators.allow
mv /etc/initiators.deny /meta/etc/
ln -s /meta/etc/initiators.deny /etc/initiators.deny
mv /etc/proftpd /meta/etc/
#httpd Modules for Openfiler
rm -rf /opt/openfiler/etc/httpd/modules
ln -s /usr/lib64/httpd/modules /opt/openfiler/etc/httpd/modules
#start openfiler
service openfiler start
nas01上運行以下命令:
service openfiler stop
mkdir /meta
mv /opt/openfiler/ /opt/openfiler.local
ln -s /meta/opt/openfiler /opt/openfiler
service nfslock stop
umount -a -t rpc-pipefs
rm -rf /etc/samba/
ln -s /meta/etc/samba/ /etc/samba
rm -rf /var/spool/samba/
ln -s /meta/var/spool/samba/ /var/spool/samba
rm -rf /var/lib/nfs/
ln -s /meta/var/lib/nfs/ /var/lib/nfs
rm -rf /etc/exports
ln -s /meta/etc/exports /etc/exports
rm /etc/ietd.conf
ln -s /meta/etc/ietd.conf /etc/ietd.conf
rm /etc/initiators.allow
ln -s /meta/etc/initiators.allow /etc/initiators.allow
rm /etc/initiators.deny
ln -s /meta/etc/initiators.deny /etc/initiators.deny
rm -rf /etc/proftpd
ln -s /meta/etc/proftpd/ /etc/proftpd
4、Data partition的配置:

兩節點修改/etc/lvm/lvm.conf,將”filter = [ "a/.*/" ]”更改爲”filter = [ "a|drbd[0-9]|", "r|.*|" ]”。

修改完成後,使用drbd1創建LVM:

image

三、配置Corosync:

corosync的官方網站:http://www.corosync.org/doku.php?id=welcome

1、使用corosync-keygen生產密鑰:

此命令產生的密鑰默認名稱以及位置是/etc/corosync/authkey文件。最後將其複製到另外一個節點中,更改此文件的屬性爲只讀。

2、創建/etc/corosync/service.d/pcmk文件:

此文件默認不存在,需手工創建,加入以下內容:

image

最後複製此文件至另外一個節點的對應位置。

3、創建/etc/corosync/corosync.conf文件:

內容如下所示:

image

複製此文件至另外一個節點的對應位置。

4、在兩節點關閉openfiler服務以及nfslock,打開corosync:

image

image

完成後,重啓兩個節點。

5、待兩節點起來後,查看corosync服務是否正常啓動:

使用ps auxf命令查看corosync進程的相關信息,如下圖結構:

image

image

6、配置resource group:

主節點nas02上執行以下命令:

image

這裏創建了1個資源組g_services包含了8個資源,如圖所示:

image

以上命令執行完成後,corosync會在主節點自動啓動以上8個資源組,最後使用crm_mon命令查看下結果:

image

查看corosync的配置信息:

image

7、手工切換資源組:g_services:

當前的g_services運行在nas02上面:

image

手工切換至nas01上:

image

image

注意,我的data卷組大小進20G,在配置完這些資源組之後,默認g_services資源組運行在主節點nas02上,而nas01是輔助節點。並且drbd1還處於同步狀態,所以當我執行切換操作時報如下錯誤:

image

待drbd1同步完成後,再次執行切換操作,上述錯誤會自動消失。

8、corosync支持的資源代理程序:

這些腳本位於/usr/lib/ocf/resource.d目錄下。

image

9、corosync的日誌:

corosync的日誌文件位於/var/log/cluster目錄下,名稱是corosync.log。這個文件裏包含了corosync的服務的詳細信息,如果在配置過程中,出現錯誤,可以從這個文件中獲取一些線索。

四、Openfiler的配置:

當Openfiler Cluster配置完成後,會在openfiler的管理界面的Volumes攔裏出現之前創建的data卷組,如圖所示:

image

在Services欄裏,不用手工啓用某些服務,cluster會自動啓動這些服務的,如圖:

image

後續就是創建邏輯卷,設置ISCSI這裏就不再描述了。

參考文獻:

    1、Openfiler 2.3 HA

    2、Openfiler 2.99 HA

    3、從?頭?開?始?搭?建?集?羣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章