棄用共享存儲,部署高可用、低成本 oracle 12c rac集羣

搞了好多oracle rac,都用的是共享存儲。雙控制器加滿配磁盤,15000轉的sas插滿插槽,做成raid 10,代價還是挺大的。近期在做開源超融合測試,取得了非常理想的效果:去中心化、高可用、開源且成本低,能實現任意一物理機故障時,運行其上的虛擬機自動漂移。不光解決了服務器虛擬化的高可用性,同時也可把桌面虛擬化也整合進來。

於是乎,我就想用這套平臺部署oracle 12c rac,不需要共享存儲,可用性比外掛存儲高了很多,而且io負荷也遠比共享存儲低。大致的規劃是這樣的:
1、準備3-4個物理服務器,配置完全相同,至少兩個網卡。
2、物理服務器組成去中心化的集羣,並部署好集成的分佈式文件系統ceph。
3、創建若干虛擬機,分佈於不同的物理宿主機。
4、選擇三個虛擬機,這幾個虛擬機位於不同的物理宿主服務器。其中兩個用於安裝oracle 軟件,剩下一個虛擬機安裝openfiler,做爲iscsi服務。本來ceph可以直接提供給oracle使用,但配置起來還是很繁複的。

假定任意物理服務器發生故障,運行其上的虛擬機,不管是啥應用,都會自動故障轉移,從而保證業務的可用性。有幸得到志超兄弟的大力支持,提高了一個性能強悍的proxmox集羣環境。
棄用共享存儲,部署高可用、低成本 oracle 12c rac集羣

好傢伙,六個節點,只要有2個物理服務器活着,其它機器隨便死都沒事。在安裝部署之前,先來看看存儲的情況,耶!2T多,足夠我測試使用呢!
棄用共享存儲,部署高可用、低成本 oracle 12c rac集羣

接下來,創建三個虛擬機。這些虛擬機,全部創建在分佈式存儲上,纔可用實現虛擬機的高可用。由於已經準備好前邊所需的環境,關於proxmox集羣、pveceph部署及創建存儲池,我就沒必要再來一遍。當然,我後邊打算寫文檔,介紹這些過程。

創建虛擬機

從proxmox的web管理界面,創建兩個虛擬機,其配置如下圖所示:
棄用共享存儲,部署高可用、低成本 oracle 12c rac集羣
使用了兩個磁盤,一個磁盤安裝centos7,另外一個用來oracle軟件的安裝目錄。兩個網卡,有一個是用於oracle心跳檢測的。在虛擬機上安裝centos7不是什麼難事,這裏不再描述。

創建好的虛擬機,兩個oracle 、一個openfiler,創建完畢以後,都需要加入高可用集羣裏。操作方法是:選中虛擬機-->更多(在管理界面右上角)-->管理ha,選取事先創建好的高可用組,並對請求狀態進行選擇(默認是start,代表虛擬機漂移後處於啓動狀態)。
棄用共享存儲,部署高可用、低成本 oracle 12c rac集羣
只有加入高可用集羣組,物理節點發生故障,運行其上的虛擬機纔會自動漂移到正常的其它物理節點。

檢查虛擬機的網絡連接情況,保證各虛擬機的互通性。計劃安裝oracle rac的兩節點,心跳網絡也要是通常的。

openfiler存儲配置

以iscsi服務把磁盤空間提供給安裝oracle rac的系統,openfiler安裝過程比較簡單,也不再進行描述。

以web界面登錄openfiler管理後臺,啓用iscsi服務。
棄用共享存儲,部署高可用、低成本 oracle 12c rac集羣
創建物理卷、邏輯卷、邏輯單元映射,皆在此web界面上完成。只要規劃合理,一次就可以完成全部配置。如果覺得不合適,刪除掉再來一遍即可。
棄用共享存儲,部署高可用、低成本 oracle 12c rac集羣

掛載iscsi磁盤

只需簡單幾個步驟,即可在主機上掛接好iscsi共享磁盤,並且使之隨系統開機啓動。
○啓動iscsi服務。Centos默認可能沒有安裝熟悉而好用的ntsysv,yum安裝一個吧。執行ntsysv吧iscsi項選上,下次開機,iscsi服務就自動起來了。
○掃描iscsi目標,並記錄下輸出信息,指令如下:
[root@db115 ~]# iscsiadm -m discovery -t sendtargets -p 172.16.35.107
172.16.35.107:3260,1 iqn.2006-01.com.openfiler:tsn.3ceca0a95110
需要的就是數字“1”後邊加粗的部分信息。
○掛接目標磁盤,指令如下:
# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.3ceca0a95110 –l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.3ceca0a95110, portal: 172.16.35.107,3260] (multiple)
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.3ceca0a95110, portal: 172.16.35.107,3260] successful.
○磁盤掛接驗證,兩個主機都執行一次,指令如下:
[root@db115 ~]# fdisk –l
...……………………………省略…………………………………
Disk /dev/sdc: 51.2 GB, 51170508800 bytes, 99942400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdd: 122.9 GB, 122876329984 bytes, 23×××832 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sde: 10.2 GB, 10234101760 bytes, 19988480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
以此法共享出三個卷,並掛接在每一個節點上。

部署oracle 12c rac

鑑於本人曾經發布過oracle 12c rac部署的文章,而且非常詳細,這裏就不打算再重新寫一次或者再來個複製粘貼。猛搓此處可直達目標

測試oracle可用性

實例、監聽器等都正常運行以後,暴力關掉任意一個物理節點。從proxmox的web管理界面觀察虛擬機漂移狀況。同時試着訪問oralce集羣實例,故障轉移完畢,再把關閉了的物理節點加入集羣(開機就自動加入了),檢查整個集羣的狀態。穩定後,再換一臺物理節點暴力關機,檢查oracle rac集羣的可用性是否正常。

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