自從安裝了openfiler 2.99之後,發現跟以前版本的不同之處之一是web管理界面的選項欄裏多了個cluster選項,而在openfiler的官方文檔裏也沒有提到openfiler cluster的相關信息。google了下,發現竟有類似的文章,自己搭了個環境研究了下,以下是具體操作過程:
一、準備工作:
1、主機名和IP對應關係見下圖:
其中的虛擬IP是用於openfiler對外提供服務的虛擬IP。可以在web管理界面的status攔裏看到監聽的IP地址是192.168.1.90.如果openfiler服務同一時刻存在於某個節點上,也可以使用它本身的公網IP進行訪問。如下圖所示,服務當前位於nas01上,所以也可以是192.168.1.91訪問openfiler的web管理界面。
2、磁盤:
nas01和nas02各帶一個20G的虛擬磁盤sdb,分了兩個分區:Meta分區sdb1(500Mb)和Data分區sdb2。在這裏注意,如果你的共享磁盤類型是virtio類型BUS,則使用openfiler管理界面設置LVM時無法對其進行識別,這裏使用默認的IDE BUS即可。如圖:
3、將以上IP和主機名加入兩個節點的hosts文件中:
4、創建SSH等同性:
NAS01:
NAS02:
設置完成後,兩個節點就可以使用ssh進行無密碼登錄了。
二、DRBD的設置:
1、兩個節點上編輯/etc/drbd.conf,加入以下內容:
2、創建resource:meta和data:
創建完成後,兩節點啓動drbd服務。接着使其中一個節點成爲主角色:
以上兩條命令,在任意一個節點執行即可,完成後,可以查看/proc/drbd獲取同步信息:
上面的drbd0大小是500M,同步很快,而drbd1大小近20G,同步起來需要點時間。
3、對drbd0創建文件系統並停止openfiler服務,複製openfiler的相關文件至drbd0上:
主節點nas02上對drbd0格式化:
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
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
兩節點修改/etc/lvm/lvm.conf,將”filter = [ "a/.*/" ]”更改爲”filter = [ "a|drbd[0-9]|", "r|.*|" ]”。
修改完成後,使用drbd1創建LVM:
三、配置Corosync:
corosync的官方網站:http://www.corosync.org/doku.php?id=welcome
1、使用corosync-keygen生產密鑰:
此命令產生的密鑰默認名稱以及位置是/etc/corosync/authkey文件。最後將其複製到另外一個節點中,更改此文件的屬性爲只讀。
2、創建/etc/corosync/service.d/pcmk文件:
此文件默認不存在,需手工創建,加入以下內容:
最後複製此文件至另外一個節點的對應位置。
3、創建/etc/corosync/corosync.conf文件:
內容如下所示:
複製此文件至另外一個節點的對應位置。
4、在兩節點關閉openfiler服務以及nfslock,打開corosync:
完成後,重啓兩個節點。
5、待兩節點起來後,查看corosync服務是否正常啓動:
使用ps auxf命令查看corosync進程的相關信息,如下圖結構:
6、配置resource group:
主節點nas02上執行以下命令:
這裏創建了1個資源組g_services包含了8個資源,如圖所示:
以上命令執行完成後,corosync會在主節點自動啓動以上8個資源組,最後使用crm_mon命令查看下結果:
查看corosync的配置信息:
7、手工切換資源組:g_services:
當前的g_services運行在nas02上面:
手工切換至nas01上:
注意,我的data卷組大小進20G,在配置完這些資源組之後,默認g_services資源組運行在主節點nas02上,而nas01是輔助節點。並且drbd1還處於同步狀態,所以當我執行切換操作時報如下錯誤:
待drbd1同步完成後,再次執行切換操作,上述錯誤會自動消失。
8、corosync支持的資源代理程序:
這些腳本位於/usr/lib/ocf/resource.d目錄下。
9、corosync的日誌:
corosync的日誌文件位於/var/log/cluster目錄下,名稱是corosync.log。這個文件裏包含了corosync的服務的詳細信息,如果在配置過程中,出現錯誤,可以從這個文件中獲取一些線索。
四、Openfiler的配置:
當Openfiler Cluster配置完成後,會在openfiler的管理界面的Volumes攔裏出現之前創建的data卷組,如圖所示:
在Services欄裏,不用手工啓用某些服務,cluster會自動啓動這些服務的,如圖:
後續就是創建邏輯卷,設置ISCSI這裏就不再描述了。
參考文獻: