搞了好多oracle rac,都用的是共享存儲。雙控制器加滿配磁盤,15000轉的sas插滿插槽,作成raid 10,代價仍是挺大的。近期在作開源超融合測試,取得了很是理想的效果:去中心化、高可用、開源且成本低,能實現任意一物理機故障時,運行其上的虛擬機自動漂移。不光解決了服務器虛擬化的高可用性,同時也可把桌面虛擬化也整合進來。node
因而乎,我就想用這套平臺部署oracle 12c rac,不須要共享存儲,可用性比外掛存儲高了不少,並且io負荷也遠比共享存儲低。大體的規劃是這樣的:
一、準備3-4個物理服務器,配置徹底相同,至少兩個網卡。
二、物理服務器組成去中心化的集羣,並部署好集成的分佈式文件系統ceph。
三、建立若干虛擬機,分佈於不一樣的物理宿主機。
四、選擇三個虛擬機,這幾個虛擬機位於不一樣的物理宿主服務器。其中兩個用於安裝oracle 軟件,剩下一個虛擬機安裝openfiler,作爲iscsi服務。原本ceph能夠直接提供給oracle使用,但配置起來仍是很繁複的。web
假定任意物理服務器發生故障,運行其上的虛擬機,不論是啥應用,都會自動故障轉移,從而保證業務的可用性。有幸獲得志超兄弟的大力支持,提升了一個性能強悍的proxmox集羣環境。
centos
好傢伙,六個節點,只要有2個物理服務器活着,其它機器隨便死都沒事。在安裝部署以前,先來看看存儲的狀況,耶!2T多,足夠我測試使用呢!
服務器
接下來,建立三個虛擬機。這些虛擬機,所有建立在分佈式存儲上,纔可用實現虛擬機的高可用。因爲已經準備好前邊所需的環境,關於proxmox集羣、pveceph部署及建立存儲池,我就不必再來一遍。固然,我後邊打算寫文檔,介紹這些過程。網絡
從proxmox的web管理界面,建立兩個虛擬機,其配置以下圖所示:
使用了兩個磁盤,一個磁盤安裝centos7,另一個用來oracle軟件的安裝目錄。兩個網卡,有一個是用於oracle心跳檢測的。在虛擬機上安裝centos7不是什麼難事,這裏再也不描述。oracle
建立好的虛擬機,兩個oracle 、一個openfiler,建立完畢之後,都須要加入高可用集羣裏。操做方法是:選中虛擬機-->更多(在管理界面右上角)-->管理ha,選取事先建立好的高可用組,並對請求狀態進行選擇(默認是start,表明虛擬機漂移後處於啓動狀態)。
只有加入高可用集羣組,物理節點發生故障,運行其上的虛擬機纔會自動漂移到正常的其它物理節點。分佈式
檢查虛擬機的網絡鏈接狀況,保證各虛擬機的互通性。計劃安裝oracle rac的兩節點,心跳網絡也要是一般的。ide
以iscsi服務把磁盤空間提供給安裝oracle rac的系統,openfiler安裝過程比較簡單,也再也不進行描述。性能
以web界面登陸openfiler管理後臺,啓用iscsi服務。
建立物理卷、邏輯卷、邏輯單元映射,皆在此web界面上完成。只要規劃合理,一次就能夠完成所有配置。若是以爲不合適,刪除掉再來一遍便可。
測試
只需簡單幾個步驟,便可在主機上掛接好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部署的文章,並且很是詳細,這裏就不打算再從新寫一次或者再來個複製粘貼。猛搓此處可直達目標
實例、監聽器等都正常運行之後,暴力關掉任意一個物理節點。從proxmox的web管理界面觀察虛擬機漂移情況。同時試着訪問oralce集羣實例,故障轉移完畢,再把關閉了的物理節點加入集羣(開機就自動加入了),檢查整個集羣的狀態。穩定後,再換一臺物理節點暴力關機,檢查oracle rac集羣的可用性是否正常。