RHEL5實現高可用HA叢集+GFS+EnterpriseDB(zt)
作者:蕭少聰 RHCE/CI
BLOG:scottsiu.cublog.cn或blog.csdn.net/scottsiu
前言:
幾個大家要注意的地方:
1、做Cluster應該要有Fence裝置,當一臺機器出現問題時處於正常狀態的機器會透過Fence將其重啟或關機以釋放IP、磁碟等資源。
2、做HA要對服務的啟動指令碼做一點修改以符合Cluster的要求。
3、GFS要建立在Cluster之上。
4、RHEL5 AP(高階平臺版)已經帶有Cluster元件,當中包括GFS、Cluster Suite、LVS等,不像RHEL4那樣用另外安裝。
1、網路
我的IP為
iscsi: 192.168.122.1
edb1: 192.168.122.21
edb2: 192.168.122.22
2.1、Linux中安裝iscsi-target
到sf.net下載最新的iscsi-target
# tar zxvf iscsi-target.xxxxx.tar.gz
# cd iscsi-target.xxxxx
# make
# make install
# mkdir /iscsidisk
# dd if=/dev/zero of=/iscsidisk/sharedisk1.img bs=1k count=1 seek=2000K
(以上這句是用dd建立了一個2G大小的映像檔案,也就是我們的一個iscsi映像磁碟)
# vim /etc/ietd.conf
找到"Target iqn",注意這行Target後的一串字元,是iscsi的標記
找到"Lun 0"一行,改為
Lun 0 Path=/iscsidisk/sharedisk1.img,Type=fileio
# chkconfig iscsi-target on
# /etc/init.d/iscsi-target start
2.2、在edb1、edb2中連線iscsi
# rpm -ivh iscsi-initiator-utils-6.2.0.742-0.5.el5.rpm
(RHEL5的光碟中有這個檔案)
# chkconfig iscsid start
# /etc/init.d/iscsid start
# iscsiadm -m discovery -t sendtargets -p 192.168.122.1:3260
172.16.122.1:3260,1 iqn.2001-04.com.example:storage.disk2.sys1.xyz
(iqn.2001..........這部份應該和iscsi伺服器中ietd.conf中的標記一樣)
# iscsiadm -m node -T iqn.2001-04.com.example:storage.disk2.sys1.xyz -p 172.16.122.1:3260 -l
(以上兩個iscsiadm的操作只在第一次連線iscsi伺服器時要執行,以後每當iscsid啟動都會自動連線)
# fdisk -l
(應該可以看到多出來一個/dev/sdx的分割槽)
3、在edb1、edb2中安裝EnterpriseDB
在EnterpriseDB的官方網站下載到其最新版本:
EnterpriseDB(以下我簡寫為EDB)是一個基於PostgreSQL並與Oracle語法相容的資料庫在OLTP的多併發性事務處理中比PostgreSQL有了很大的提高!
下載軟體包進行解壓(安裝要有root許可權):
#tar zxvf edb-linux-x86_82412.tar.gz
#cd edb-linux-x86_82412
#./pre-Install.sh
如果出現You may now install EnterpriseDB就可以正常安裝了,這裡主要是針對不同的LINUX版本生成EDB所要的連線的
#./edb-linux-x86_82412.bin -console
安裝過程中會要求序列號
Select License Type:
[X] 1 - Install Full or Evaluation License
[ ] 2 - Install Express License
To select an item enter its number, or 0 when you are finished: [0]
這裡如果你有在EDB官網上註冊的話會收到一個30天無限制試用的SN,如果沒有的話可以選2安裝限制為1 CPU/1G RAM/6G Data的版本。
其它的選項預設就好了!
4、雙節點HA叢集
4.1 Fence
做HA的話就要有fence裝置,這是什麼東東,如APC、HP ilo、IPMI等等
這裡以HP ilo為列,當前edb1、edb2的ilo IP分別是10.11.0.1、10.11.0.2使用者名稱密碼為redhat,在edb1中測試:
# fence_ilo -a 10.11.0.2 -l redhat -p redhat -o status
在edb2中測試:
# fence_ilo -a 10.11.0.1 -l redhat -p redhat -o status
如果返回正確,證明fence已經正常
4.2 HA Cluster
在REDHAT中配置Cluster可以透過GUI下的Cluster Manager進行非常簡單以下我只給出配置檔案
以下檔案CP到每個節點上
/etc/cluster/cluster.conf
/etc/hosts加入以下
192.168.122.21 edb1
192.168.122.22 edb2
4.3為了使EDB可以實現HA,我們要對EDB的啟動指令碼進行一點修改,如果我們要做其它資料庫或服務的叢集也是一樣,具體隨要求為:指令碼要有start、stop、status、restart指令,並要求執行正常時返回"0",執行出錯時返回"非0"。
5、GFS
上面的HA Cluster的配置檔案當中已經有GFS的設定了,GFS要求建立在CLUSTER之上,所以只有在CLUSTER中的節點才能正常地掛載GFS分割槽,下來我們格式化一個GFS的分割槽
5.1
在edb1中執行以下操作
把/dev/sdx分為一個分割槽/dev/sdx1,如果對分割槽不熟請看“鳥哥”的文章
也可以到下載REDHAT的官方管理手冊進行參考
# mkfs.gfs2 -p lock_dlm -t edb_ha:gfs1 -j 3 /dev/sdx1
-p lock_dlm 定義為DLM鎖方式,如果不加此引數,當在兩個系統中同時掛載此分割槽時就會像EXT3格式一樣,兩個系統的資訊不能同步
-t edb_ha:gfs1 DLM鎖所在的表名字,edb_ha應與cluster.conf中Cluster的name相同,gfs1為一個自定義的名字我認為可以理解為分割槽的卷標
-j 3 GFS分割槽中最多支援多少個節點同時掛載,這個可以在使用中動態調整
/dev/sdx1 要格式化的分割槽
#make /data
#mount /dev/sdx1 /data
#cp /opt/EnterpriseDB/8.2/data/ /data/edb_data/ -rp
#/etc/init.d/cman start
5.2
在edb2中
# /etc/init.d/iscsid restart
# fdisk -l (看看是否與edb1一樣)
# mount /dev/sdx1 /data
# ll /data (看看是否與edb1一樣)
5.3測試
在edb1、edb2中
# /etc/init.d/cman start
# /etc/init.d/rgmanager start
(起動叢集)
# clustat
(檢視叢集狀態)
可以透過/etc/init.d/edb_8.2 stop關閉edb服務、拔網線、重啟系統等對叢集進行測試
5.4
在edb1、edb2中
# chkconfig cman on
# chkconfig rgmanager on
以使系統啟動時自動開啟HA叢集
關於REDHAT的叢集,請先閱讀REDHAT官方的CLUSTER手冊,
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245785/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 高可用(HA)叢集之keepalived詳解Linux
- 11、redis使用ruby實現叢集高可用Redis
- PostgreSQL-HA 高可用叢集在 Rainbond 上的部署方案SQLAI
- Linux學習之使用RHCS套件搭建HA高可用叢集Linux套件
- 構建MHA實現MySQL高可用叢集架構MySql架構
- CoroSync + Drbd + MySQL 實現MySQL的高可用叢集薦ROSMySql
- 高可用的MongoDB叢集-實戰篇MongoDB
- PostgreSQL repmgr高可用叢集+keepalived高可用SQL
- 高可用性叢集軟體就選Skybility HA!優勢多多!
- PostgreSQL patroni高可用叢集SQL
- MongoDB高可用叢集搭建MongoDB
- zookeeper 高可用叢集搭建
- 高可用的MongoDB叢集MongoDB
- Redis叢集與高可用Redis
- (15) SpringCloud-使用Eureka叢集搭建實現高可用SpringGCCloud
- (13) SpringCloud-使用Eureka叢集搭建實現高可用SpringGCCloud
- 使用 HA-LVM 實現高可用儲存LVM
- 詳解Redis三大叢集模式,輕鬆實現高可用!Redis模式
- 單個eureka會出現單點故障問題, 那麼eureka 如何形成叢集呢? HA 高可用(此示例為偽叢集)
- mysql高可用叢集之MMMMySql
- Redis快取高可用叢集Redis快取
- 10、redis哨兵叢集高可用Redis
- 高可用mongodb叢集(分片+副本)MongoDB
- WEB叢集- 高可用服務Web
- MSCS+FailSafe 雙機叢集做HA 小結(zt)AI
- 實現Kubernetes跨叢集服務應用的高可用
- LVS+Keepalive 實現負載均衡高可用叢集負載
- RabbitMQ從零到叢集高可用(.NetCore5.0) -高可用叢集構建落地MQNetCore
- 高階k8s HA 叢集搭建(一)K8S
- 搭建 Kubernetes 高可用叢集
- Redis高可用-主從,哨兵,叢集Redis
- 高可用叢集之corosync+pacemakerROS
- Rabbitmq叢集高可用部署詳細MQ
- [Open Source] RabbitMQ 高可用叢集方案MQ
- 搭建高可用MongoDB叢集(四):分片MongoDB
- 使用pgpool搭建高可用PostgreSQL叢集SQL
- CentOS 7下搭建高可用叢集CentOS
- CentOS 7 下搭建高可用叢集CentOS