企業之HA~cluster


高可用集羣(High Availability Cluster),簡稱HACluster,簡單的說集羣就是一組計算機,它們作爲一個整體向用戶提供一組網絡資源。這些單個的計算機系統就是集羣的節點(Cluster)
。高可用集羣解決的是保障用戶的應用程序持續對外提供服務的能力(保護的是用戶的業務程序對外不間斷提供服務,把因人爲/軟件/硬件造成法故障對業務的影響將到最低)。



準備工作:
三臺純淨的虛擬機:
(節點主機::172.25.85.6~ server1.example.com  
 節點主機: 172.25.85.7 ~ server2.example.com  
 M端: 172.25.85.8 ~ server3.example.com )



1.三臺虛擬機做同樣的操作:
    配置yum源:
   cd /etc/yum.repos.d/
   vim dvd.repo       ##(讓yum 源指向自己的真機,刪除多於的倉庫)

   yum repolist
   
   vim /etc/hosts   ##(將打開的三臺主機進行地址解析,在自己的真機上也進行地址解析)
   
   chkconfig iptables off
   /etc/init.d/iptables stop

   兩臺節點主機的時間要同步。
   



2.在節點主機172.25.85.6/7上安裝ricci:            

##ricci屬於集羣組件的節點組件之一,作用是與集羣管理套件luci進行通訊,可稱之爲主控端或者M端
   yum install ricci -y
   echo westos | passwd --stdin ricci         ##給兩個節點主機的ricci用戶設置密碼westos
   chkconfig ricci  on                                  ## 設置開機自啓動
   /etc/init.d/ricci  start
                                 


  M端172.25.85.8上安裝luci:                      ##luci是集羣的控制軟件
  yum install luci -y
  rpm -q luci                                ##(luci-0.26.0-48.el6.x86_64)
  /etc/init.d/luci start
 wKiom1eZr12QfYL7AACMMGdUKTg121.png-wh_50


   在瀏覽器中輸入:https://172.25.85.8:8084      

                                                            ##(登陸的是M端:172.25.85.8的root和密碼redhat)
  create new cluster
wKioL1eZr9WQtz6PAAB7ROLWikQ117.png-wh_50

##密碼是創建ricci用戶的密碼westos


Download Packages               

##自動從yum源中下載集羣套件,這兩個節點會安裝cman,rgmanager,modclusterd,clvmd服務,並且安裝完成後還會重啓
Use Locally Installed Packages    ##檢查是否已經安裝,有新的話不更新

   
     之後可以在節點主機172.25.85.6/7查看:
     clustat                         ##(查看集羣狀態)

 

3.真機172.25.254.85上,配置fence:              

              ##當一臺機器出現故障時處於正常狀態的機器會通過fence將其重啓,關機或者釋放ip等資源
     
   配置好真機的yum源
 
  yum search fence
  yum install fence-virtd-multicast-0.3.2-2.el7.x86_64 

                    fence-virtd-0.3.2-2.el7.x86_64  

                    fence-virtd-libvirt-0.3.2-2.el7.x86_64  

                    fence-virtd-serial.x86_64 0:0.3.2-2.el7
  rpm -aq | grep fence                          #
 
  ll   /etc/fence_virt.conf
  cat  /etc/fence_virt.conf
  fence_virtd  -c                        

                                     ##在設置時侯用的網絡接口卡選擇你安裝fence主機的橋接口,其餘選擇默認
  mkdir /etc/cluster                                    #原來沒有這個目錄的需要手動創建
  systemctl restart fence_virtd
  netstat -anulp | grep :1229
  cat /etc/fence_virt.conf
  cd /etc/cluster
  dd if=/dev/urandom  of=fence_xvm.key  bs=128  count=1 

   ## (dd 用於複製文件並對原文件的內容進行轉換和格式化處理  if~代表輸入文件
        of~代表輸出文件  bs~代表以字節爲單位的塊大小   count~代表被複制的塊數)


  systemctl restart fence_virtd
  cd /etc/cluster                            ## (該目錄下有fence_xvm.key)
  scp fence_xvm.key   [email protected]:/etc/cluster
  scp fence_xvm.key   [email protected]:/etc/cluster
  virsh list                                                ##(正在運行的虛擬機列表)



   在瀏覽器中輸入:https://172.25.85.8:8084
   Fence Devices ->add
wKiom1eY3TvBZLxZAABYHk-RFNo228.png-wh_50
   server6.example.com -> Add Fence Method to Node

wKioL1eZpjbj-B1DAACkM8blLCU735.png-wh_50
-> Add Fence Device (Instance)
wKiom1eZpm2xSlrjAABcJwvPohw799.png-wh_50



同樣的:server7.example.com  -> Add Fence Method to Node
wKiom1eZpojw3KJsAACmuq4r7w0258.png-wh_50

-> Add Fence Device (Instance)
wKiom1eZpp2D3DKaAABfd94V2bk589.png-wh_50

         ##ricci1和ricci2 分別是server6和server7的虛擬機名字;這裏也可以用虛擬機的UUID。

  檢測:

        在節點server7上:fence_node server6.example.com   

             ##(server6.example.com 強制關機)

 


4.在瀏覽器中輸入:https://172.25.85.8:8084


Failover Domains -> Add
wKioL1eZpymArDdoAABsNE9QWKU188.png-wh_50

##數字大的優先級小    
##添加故障域
##選擇「 優 先的」 選框後,您可以爲選擇作爲故障切換域成員的每個節點設置優先值,「 優 先 權 」 。 ##選擇「有限」 複選框後,分配給這個故障切換域的服務只能切換到這個故障切換域中的節點。
##選擇「無故障恢復」 後,如果從首選節點中恢復某個服務,則該服務不會切換到恢復它的節點中。


Resources -> Add
wKiom1eZp3ig7l7LAABUVlSVuHE458.png-wh_50

wKioL1eZp6aSJ0skAABBPDkOvGM420.png-wh_50

wKiom1eZp6uDb7T4AAA4NqSwoBc925.png-wh_50

將ip address 後人httpd兩個資源加入到Cluster


Add Service Group to Cluster ->  

wKioL1eZqeSy9eujAAEbMbvRpI4835.png-wh_50 

wKiom1eZqj6zjaNNAAG3258BCTc157.png-wh_50


Add resource to service:

 

(Ip address)172.25.85.100/24 ->(Add Resource) httpd                        ##添加資源順序


  檢測:


  在節點主機172.25.85.6/7上進行:
  yum install httpd -y           ##(安裝之後開啓httpd)

 
  echo server6.example.com > /var/www/html/index.html     ##172.25.85.6

  echo server7.example.com > /var/www/html/index.html     ##172.25.85.7

 
   server6:
   clusvcadm -r apache -m server6.example.com              

     
wKiom1eZqHqjCC89AAAlSh0fKB0042.png-wh_50

   cluster
wKiom1eZqKryQSlcAABbRQqwHk4750.png-wh_50

wKiom1eZrGqx9WP0AAA2xL_2Ri0758.png-wh_50
   
         echo c > /proc/sysrq-trigger               ##故意讓系統崩潰






   在一個主機上運行兩個資源:
5.先給M端172.25.85.8分一塊硬盤:       ##8G左右
 


  在M端安裝:
  yum install  scsi-target-utils-1.0.24-10.el6.x86_64  -y
 
  /etc/init.d/tgtd start
 
  fdisk -l
  vim /etc/tgt/targets.conf

<target iqn.2016-06.com.example:server.disk>
    backing-store /dev/vdb                                                ##/dev/vdb就是剛剛分出來的新硬盤
    initiator-address 172.25.85.6
    initiator-address 172.25.85.7
</target>    

  tgt-admin -s  
wKioL1eZqQDD-h1WAAAfYxHTv1U646.png-wh_50
 


   在兩個節點主機:
   yum install iscsi-initiator-utils.x86_64  -y

 
  iscsiadm  -t st -m discovery  -p 172.25.85.8
  iscsiadm  -m node -l                                     

                         ##共享分區就建立好了,在server6和server7上會出現兩個新的磁盤/dev/sda
  cat /proc/partitions                                  ##查看分區是否共享
 

  給其中一臺節點主機共享的新磁盤分區
  vgcreate clustervg  /dev/sda1
  lvcreate  -L 2G  -n  lv1  clustervg
  mkfs.ext4 /dev/clustervg/lv1



https://72.25.85.8:8084:

Resources -> Add
wKiom1eZqr7QYpQMAAB6Gc8YnPw001.png-wh_50

Service Groups 使apache,disable
重新添加資源,順序:

(Ip address) 172.25.85.100/24 > (File System) webdata >  (Script) httpd

 之後在server6:

  clusvcadm -e apache                                         ##打開apache



  檢測:
  可以通過關閉server6上的httpd ,來觀察server7上集羣的變化
  df  
wKiom1eZrqfQxMBWAABT5NWzDL4030.png-wh_50 



 刪除建立的文件系統
 先在網頁中刪除webdata
 
 clusvcadm -d apache
 resize2fs /dev/clustervg/lv1
 lvremove /dev/clustervg/lv1




二:
1.在server6和熱server7上:
 yum install mysql-server -y

Failover Domains -> add
wKiom1eZsDix8y4TAABovzRmbBE229.png-wh_50 

Resource  -> add
wKiom1eZuKqyPKECAABUPFa9zFk673.png-wh_50

wKiom1eZuMqjzaJPAACaVBtaZvk255.png-wh_50
打開之前建立的共享存儲:
在server6上
刪除之前在/dev/sda中建立的分區,然後重新建立2個linux格式的分區:
fdisk -cu /dev/sda
mkfs.ext4  /dev/sda1
mkfs.ext4  /dev/sda2

並將分區同步到server7上


在瀏覽器中打開:https://server8.example.com:8084

Resources -> Add
wKiom1eZuZjCMMxXAAB7F0r35Ts800.png-wh_50

wKiom1eZugShKpQiAAB3KQ6OHP8182.png-wh_50


Service Group -> Add


修改apache中的資源順序爲:(ip address)172.25.85.100/24 > webdata > httpd
再添加一個新的資源組mysql:添加資源順序爲 (ip address)172.25.85.101/24 > dbdata > mysqld
wKiom1eZuoOjut2mAAB4JKXh8d0872.png-wh_50

在server6上查看掛載情況
 
發現:/dev/sda1自動掛載到了/var/www/html
    /dev/sda2自動掛載到了/var/lib/mysql

同時打開server6和server7上的mysql和httpd

clustat可以看見httpd運行在server6上,mysql運行在server7上











如果電腦關機,繼續做集羣需要開啓的服務有:
/etc/init.d/iscsi  start
/etc/init.d/tgtd  start
 systemctl restart fence_virtd
/etc/init.d/luci  start
/etc/init.d/clvmd  start








 

 

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