隨筆-200  評論-148  文章-15  trackbacks-0
          我收藏的文章,不錯。

          近日發現有網站開始轉載我的文章,這個我非常高興,非常感謝大 家支持!但是我發現好多網站轉載時連我的原文出處都沒有,文章題目還經常寫著“原創”,這個太不厚道了,對于每一個寫原創文章的作者這種做法都是不可取 的!借鳥哥的一句話:“原創文章都是作者一個字一個字打出來了,也經過自己一步一步的測試,希望大家給于尊重”!別外我當然是一個”槍手“寫的東東大都是 公司的產品啦,哈哈!好了,進入正文:

          版權所有,轉載請注明出處!
          作者:蕭少聰 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的官方網站下載到其最新版本:http://www.enterprisedb.com
          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

          <?xml version="1.0"?>
          <cluster alias="edb_ha" config_version="6" name="edb_ha">
          ? ?? ???<fence_daemon post_fail_delay="0" post_join_delay="3"/>
          ? ?? ???<clusternodes>
          ? ?? ?? ?? ?? ? <clusternode name="edb1" nodeid="1" votes="1">
          ? ?? ?? ?? ?? ?? ?? ?? ?<fence>
          ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???<method name="1">
          ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? <device name="ilo1"/>
          ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???</method>
          ? ?? ?? ?? ?? ?? ?? ?? ?</fence>
          ? ?? ?? ?? ?? ? </clusternode>
          ? ?? ?? ?? ?? ? <clusternode name="edb2" nodeid="2" votes="1">
          ? ?? ?? ?? ?? ?? ?? ?? ?<fence>
          ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???<method name="1">
          ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? <device name="ilo2"/>
          ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???</method>
          ? ?? ?? ?? ?? ?? ?? ?? ?</fence>
          ? ?? ?? ?? ?? ? </clusternode>
          ? ?? ???</clusternodes>
          ? ?? ???<cman expected_votes="1" two_node="1">
          ? ?? ?? ?? ?? ? <multicast addr="224.0.0.1"/>
          ? ?? ???</cman>
          ? ?? ???<fencedevices>
          ? ?? ?? ?? ?? ? <fencedevice agent="fence_ilo" hostname="10.11.0.1" login="redhat" name="ilo1" passwd="redhat"/>

          ? ?? ?? ?? ?? ? <fencedevice agent="fence_ilo" hostname="10.11.0.2" login="redhat" name="ilo2" passwd="redhat"/>
          ? ?? ???</fencedevices>
          ? ?? ???<rm>
          ? ?? ?? ?? ?? ? <failoverdomains>
          ? ?? ?? ?? ?? ?? ?? ?? ?<failoverdomain name="edb_domain" ordered="0" restricted="0">
          ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???<failoverdomainnode name="edb1" priority="1"/>
          ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???<failoverdomainnode name="edb2" priority="1"/>
          ? ?? ?? ?? ?? ?? ?? ?? ?</failoverdomain>
          ? ?? ?? ?? ?? ? </failoverdomains>
          ? ?? ?? ?? ?? ? <resources>
          ? ?? ?? ?? ?? ?? ?? ?? ?<ip address="192.168.122.20" monitor_link="1"/>
          ? ?? ?? ?? ?? ?? ?? ?? ?<clusterfs device="/dev/sdx1" force_unmount="0" fsid="10617" fstype="gfs" mountpoint="/data" name="Data_GFS" options=""/>
          ? ?? ?? ?? ?? ? </resources>
          ? ?? ?? ?? ?? ? <service autostart="1" domain="edb_domain" name="enterpriseDB" recovery="relocate">
          ? ?? ?? ?? ?? ?? ?? ?? ?<script file="/etc/init.d/edb_8.2" name="edb_script"/>
          ? ?? ?? ?? ?? ?? ?? ?? ?<ip ref="192.168.122.20"/>
          ? ?? ?? ?? ?? ?? ?? ?? ?<clusterfs ref="Data_GFS"/>
          ? ?? ?? ?? ?? ? </service>
          ? ?? ???</rm>
          </cluster>
          ? ?? ? /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,如果對分區不熟請看“鳥哥”的文章
          ? ? 也可以到www.redhat.com/docs下載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手冊,http://www.redhat.com/docs
          posted on 2007-10-29 11:53 無聲 閱讀(3040) 評論(4)  編輯  收藏 所屬分類: 職場生活

          評論:
          # re: RHEL5實現高可用HA集群+GFS+EnterpriseDB 2007-11-20 11:12 | coolzyx
          非常感謝。。飲水不忘挖井人  回復  更多評論
            
          # re: RHEL5實現高可用HA集群+GFS+EnterpriseDB 2009-02-21 17:10 | ctrl
          有人照著這個方法實現過嗎?  回復  更多評論
            
          # re: RHEL5實現高可用HA集群+GFS+EnterpriseDB 2009-02-21 17:11 | ctrl
          留下我的QQ號:4541149,有實現過的,或者想要實現的朋友,可以跟我交流一下。  回復  更多評論
            
          # re: RHEL5實現高可用HA集群+GFS+EnterpriseDB 2009-05-19 10:52 | asdf
          謝謝,回頭測試看看  回復  更多評論
            
          主站蜘蛛池模板: 海丰县| 绿春县| 喀喇沁旗| 乌拉特中旗| 增城市| 合阳县| 云林县| 梅州市| 安达市| 哈巴河县| 新营市| 新建县| 女性| 容城县| 松阳县| 华容县| 赫章县| 修文县| 施甸县| 洱源县| 化州市| 蓬溪县| 南阳市| 上犹县| 化德县| 甘谷县| 蕲春县| 南康市| 盐池县| 九寨沟县| 恩施市| 红桥区| 开远市| 盐山县| 东山县| 根河市| 招远市| 长宁县| 石阡县| 尖扎县| 平山县|