麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > WEB服務 > 正文

基于corosync+pacemaker的nginx高可用集群安裝配置

2020-05-27 13:11:13
字體:
來源:轉載
供稿:網友

   一、corosync、pacemaker介紹

  corosync是用于高可用環境中的提供通訊服務的,它位于高可用集群架構中的底層(Message Layer),扮演著為各節點(node)之間提供心跳信息傳遞這樣的一個角色;

  pacemaker是一個開源的高可用資源管理器(CRM),位于HA集群架構中資源管理、資源代理(RA)這個層次,它不能提供底層心跳信息傳遞的功能,它要想與對方節點通信需要借助底層的心跳傳遞服務,將信息通告給對方。通常它與corosync的結合方式有兩種:

  pacemaker作為corosync的插件運行;

  pacemaker作為獨立的守護進程運行;

  corosync與pacemaker組成的是高可用的容器,需要高可用的服務,可隨時添到容器中,或者從容器中刪除。靈活性很強。

  heartbeat我也用過,請參考:heartbeat mysql雙機互備實現高可用 安裝配置,

  用過corosync與pacemaker后,個人推薦corosync與pacemaker。

  二,服務器說明

  192.168.10.130 虛擬ip

  192.168.10.103 node1

  192.168.10.219 node2

  三,安裝配置corosync,pacemaker,crmsh

  1,node1和node2上安裝

 代碼如下  

# yum install corosync pacemaker python-dateutil redhat-rpm-config pssh      # rpm -ivh http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/x86_64/crmsh-2.1-1.6.x86_64.rpm 

  2,node1和node2,修改主機名

 代碼如下  

# vim /etc/sysconfig/network   HOSTNAME=node1   //103機器node1,219機器就是node2      # vim /etc/hosts     //添加以下內容   192.168.10.103 node1   192.168.10.219 node2      # /etc/init.d/network restart   //重啟網絡 

  3,node1配置corosync

 代碼如下  

[root@node1 corosync]# cp corosync.conf.example corosync.conf         [root@node1 corosync]# cat /etc/corosync/corosync.conf |awk {if($0 !~ /^$/ && $0 !~ /#/) {print $0}}   compatibility: whitetank //兼容08.以前的版本   totem { //totem定義集群內各節點間是如何通信的,totem本是一種協議,專用于corosync專用于各節點間的協議,協議是有版本的       version: 2 //totme 的版本       secauth: off //安全認證是否打開,最好打開       threads: 0 //用于安全認證開啟并行線程數       interface {           ringnumber: 0 //環號碼,如果一個主機有多塊網卡,避免心跳信息回流           bindnetaddr: 192.168.10.0 //網絡地址(節點所在的網絡地址段)           mcastaddr: 239.255.1.1 //廣播地址(系統自帶的廣播地址,沒作任何修改)           mcastport: 5405    //多播占用的端口           ttl: 1 //只向外一跳心跳信息,避免組播報文環路       }   }      logging {       fileline: off       to_stderr: no //日志信息是否發往錯誤輸出(否)       to_logfile: yes //是否記錄日志文件       to_syslog: yes //是否記錄于syslog日志-->此類日志記錄于/var/log/message中       logfile: /var/log/cluster/corosync.log //日志存放位置       debug: off //只要不是為了排錯,最好關閉debug,它記錄的信息過于詳細,會占用大量的磁盤IO.       timestamp: on //記錄日志的時間戳       logger_subsys {           subsys: AMF           debug: off       }   }   amf {       mode: disabled   }   service {       ver:0       name:pacemaker     //corosync啟動后會自動啟動pacemaker   }   aisexec {    //啟用ais功能時以什么身份來運行,默認為root,aisexec區域也可以不寫       user :root       group:root   } 

  4,node1上用corosync-keygen命令來生成密鑰

  [root@node1 corosync]# corosync-keygen //在/etc/corosync目錄下生成一個文件,authkey

  網上查資料時,很多資料都說要,配置各節點ssh互信(就是ssh不要密碼登錄),經證實根本不需要,多此一舉。

  5,將node1上配置文件復制到node2,nodeN上

 代碼如下  

[root@node1 corosync]# scp authkey corosync.conf root@node2:/etc/corosync/   ...   [root@node1 corosync]# scp authkey corosync.conf root@nodeN:/etc/corosync/   //如果有很多節點都要copy 

  6,node1和node2,啟動并查看

 代碼如下   # chkconfig nginx off      //關閉開機啟動   # /etc/init.d/nginx stop   //停止nginx,啟動corosync時,會啟動nginx,前提是nginx高可用配置成功后      # /etc/init.d/corosync start  //啟動      # netstat -na |grep 5405    //啟動成功了   udp 0 0 192.168.10.103:5405 0.0.0.0:*   udp 0 0 239.255.1.1:5405 0.0.0.0:*       # crm status         //查看節點狀態  

  用crm status查看狀態時,如果報Could not establish cib_ro connection: Connection refused (111) ,說明本節點,連不上其他節點,經個人測試,解決辦法如下:

  1,安全配置有問題,如iptables和selinux,配置成功前最好關閉iptables和selinux

  2,corosync-keygen命令生成文件,要在修改主機名成功以后

  重啟,關閉不了,一直處于Waiting for corosync services to unload:..........,這個問題,我在網上查一了,要到官方網站上下個補丁打一下,補丁我也打了,沒成功。解決辦法如下:pkill -9 corosync,在這里要注意,這個問題很影響用戶體驗,如果不把corosync關閉,直接關機要很長很長時間才能關閉,坑爹

  7,在node1上配置crmsh

 代碼如下  

# crm configure property stonith-enabled=false //禁用stonith-enable      # crm configure property no-quorum-policy=ignore //忽略投票規則      /**   * primitive:定義一資源所使用的命令   * webip:為資源起一個名字   * ocf:heartbeat;IPaddr:所使用資源代理的類別,由誰提供的那一個代理程序   * op monitor 對webip做監控   * interval:間隔時間   * timeout:超時時間   * on-fail:失敗自起   */   # crm configure primitive webip ocf:heartbeat:IPaddr params ip=192.168.10.130 op monitor interval=30s timeout=20s on-fail=restart      # crm configure primitive nginx_res lsb:nginx //那些在/etc/init.d/*的腳本就是屬于lsb的      /**    * 定義排列約束    * colocation:排列約束命令    * nginx_web : 約束名    * inf:#(可能性,inf表示永久在一起,也可以是數值)    * webip nginx_res:#資源名稱    */   # crm configure colocation nginx_web inf: nginx_res webip      /**   * 定義資源啟動順序   * order : 順序約束的命令   * nginx_after_ip : 約束ID   * mandatory: #指定級別(此處有三種級別:mandatory:強制, Optional:可選,Serialize:序列化)   * webip nginx_res:#資源名稱,這里書寫的先后順序相當重要   */   # crm configure order nginx_after_ip mandatory: webip nginx_res      # crm configure verify //審核   # crm configure commit //提交   # crm configure show //顯示      ===================上為shell命令下操作,下為crm命令行下操作,功能一樣,看下圖============================      property stonith-enabled=false   no-quorum-policy=ignore   primitive webip ocf:heartbeat:IPaddr params ip=192.168.10.130 op monitor interval=30s timeout=20s on-fail=restart   primitive nginx_res lsb:nginx   colocation nginx_web inf: nginx_res webip   order nginx_after_ip mandatory: webip nginx_res   verify   commit   show   corosync pacemaker高可用的難點就是crmsh的命令行操作,子命令太多,下一篇文章,會詳細的說一下crmsh的命令,以及參數 crm 命令對比 crm 命令對比

  四,測試corosync,pacemaker高可用

  1,查看一下各節點是否online狀態

 代碼如下  

# crm status   //查看各節點狀態   Last updated: Wed Nov 26 23:46:23 2014   Last change: Wed Nov 26 22:27:00 2014   Stack: classic openais (with plugin)   Current DC: node2 - partition with quorum   Version: 1.1.11-97629de   2 Nodes configured, 2 expected votes   2 Resources configured      Online: [ node1 node2 ]       webip (ocf::heartbeat:IPaddr): Started node1    nginx_res (lsb:nginx): Started node1 

  2,建立測試文件

 代碼如下  

# vim /var/www/html/index.php  //node1測試文件   <?php   echo "this is node1";   ?>      # vim /var/www/html/index.php //node2測試文件   <?php   echo "this is node2";   ?> 

  3,訪問虛擬ip:192.168.10.130,如果請求在node1上

 代碼如下  

# crm node standby   //將node1上運行,將node1停用,看請求會不會轉到node2上面   在訪問192.168.10.130,你會發現請求轉到node2上去了。下面我們返過來操作。

# crm node standby   //node2上運行,使用node2停用      # crm node online   //在node1上運行,激活node1 

  在訪問192.168.10.130,你會發現,請求轉到node1上去了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人精品一区二区三区中文字幕 | 国产成人77亚洲精品www | 免费一级欧美大片视频在线 | 亚洲精品无码不卡在线播放he | 国产精品爱久久久久久久 | 黄色特级一级片 | 国产一区二区在线观看视频 | 91av网址 | 视频一区二区三区在线观看 | h视频在线免费观看 | 国产亚洲在 | 一道本不卡一区 | 亚洲国产美女视频 | 永久免费黄色片 | 国产一区二区观看 | 污黄视频在线观看 | h视频在线免费看 | 日本中文字幕高清 | 激情久久婷婷 | 精品一区二区在线观看视频 | 中文字幕在线资源 | 国产精品免费观在线 | 亚洲午夜电影 | 亚洲综合无码一区二区 | 免费毛片视频 | 久久综合久久美利坚合众国 | 欧美人xx | 久久久久一区二区三区 | 在线91视频| 国产乱淫av片免费观看 | 色妇视频 | 国产亚洲美女精品久久久2020 | 免费视频a | 精品一区二区久久久久 | 少妇一级淫片免费放播放 | 成人在线视频免费播放 | 国产精品麻豆一区二区三区 | videos高潮 | 亚洲国产精久久久久久久 | 国产成人av在线播放 | 一区二区三区日韩在线 |