ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:401.33KB ,
资源ID:4296842      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-4296842.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux 高可用(HA)集群之Corosync 详解.docx)为本站会员(buyk185)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

Linux 高可用(HA)集群之Corosync 详解.docx

1、Linux 高 可 用 ( HA) 集 群 之Corosync 詳 解大綱一、Corosync 概述二、Corysync 與 Pacemaker 安裝三、Corosync 詳細配置四、Corosync 啟動信息一、Corosync 概述 1.簡單概述要說明 corosync 的由來,首先我們得從 AIS 說起,然後說明 OpenAIS,最後才會說到corosync。2.AIS 概述應用介面規範(AIS)是用來定義應用程式介面(API)的開放性規範的集合,這些應用程式作為中間件為應用服務提供一種開放、高移植性的程式介面。是在實現高可用應用過程中是亟需的。服務可用性論壇(SA Forum)是一個開

2、放性論壇,它開發並發布這些免費規範。使用 AIS 規範的應用程式介面( API),可以減少應用程式的複雜性和縮短應用程式的開發時間,這些規範的主要目的就是為了提高中間組件可攜性和應用程式的高可用性。SAF AIS 是一個開放性工程,在不斷更新中。3.OpenAIS 概述OpenAIS 是基於 SA Forum 標準的集群框架的應用程式介面規範 。OpenAIS 提供一種集群模式,這個模式包括集群框架,集群成員管理,通信方式,集群監測等,能夠為集群軟件或工具提供滿足 AIS 標準的集群介面,但是它沒有集群資源管理功能,不能獨立形成一個集群。OpenAIS 組件包括 AMF,CLM,CKPT,EV

3、T,LCK,MSG,TMR,CPG,EVS 等,因OpenAIS 分支不同,組件略有不同。(下面介紹)OpenAIS 主要包含三個分支:Picacho,Whitetank,Wilson。Wilson 是最新的,比較穩定的版本是從 openais 1.0.0 到openais1.1.4。 Whitetank 現在是主流分支版本,比較穩定的版本是 openais0.80 到openais0.86。Picacho 第一代的 OpenAIS 的分支,比較穩定的版本是 openais0.70 和openais0.71。 現在比較常用的是 Whitetank 和 Wilson,兩者之間有很多不同。 Ope

4、nAIS從 Whitetank 升級到 Wilson 版本後,組件變化很大,Wilson 把 Openais 核心架構組件獨立出來放在 Corosync(Corosync 是一個集群管理引擎)裡面 。Whitetank 包含的組件有AMF,CLM,CKPT,EVT ,LCK ,MSG, CPG,CFG,EVS, aisparser, VSF_ykd,bojdb等。而 Wilson 只含有 AMF,CLM ,CKPT,LCK, MSG,EVT,TMR(TMR,Whitetank 裡面沒有),這些都是 AIS 組件 。其他核心組件被放到了 Corosync 內。Wilson 被當做Corosync

5、 的一個外掛程式。 (詳細請查看官方文檔) 4.Corosync 概述Corosync 是 OpenAIS 發展到 Wilson 版本後衍生出來的開放性集群引擎工程。可以說Corosync 是 OpenAIS 工程的一部分 。OpenAIS 從 openais0.90 開始獨立成兩部分,一個是 Corosync;另一個是 AIS 標準介面 Wilson。Corosync 包含 OpenAIS 的核心框架用來對 Wilson 的標準介面的使用、管理。它為商用的或開源性的集群提供集群執行框架。Corosync 執行高可用應用程式的通信組系統,它有以下特徵:一個封閉的程式組(A closed pro

6、cess group communication model)通信模式,這個模式提供一種虛擬的同步方式來保證能夠複製服務器的狀態。一個簡單可用性管理組件(A simple availability manager),這個管理組件可以重新啟動應用程式的進程當它失敗後。一個配置和內存數據的統計(A configuration and statistics in-memory database),內存數據能夠被設置,回復,接受通知的更改資訊。一個定額的系統(A quorum system?),定額完成或者丟失時通知應用程式。5.AIS、OpenAIS,Corosync 的關係(1).AIS 與 Wh

7、itetank 的關係由圖 3,可以看出,OpenAIS 的分支版本 Whitetank 除了包含 AIS 標準的應用程式介面,同時也有自己獨立的管理模塊,這些獨立的模塊為圖 3 中淺黃色部分,包含CPG,CFG,EVS, aisparser, VSF_ykd,bojdb 等控制模塊。(2).AIS 與 Wilson 的關係當 OpenAIS 到了 Wilson 以後, OpenAIS 一分為二,Wilson 的組件基本都是 AIS 組件。其他控制的核心組件被添加到 Corosync 中,關係如圖 4 所示。(3).Corosync 與 OpenAIS 關係圖 5 所示,Wilson 與 Wh

8、itetank 的主要區別在於 Wilson 相比 Whitetank 缺少核心架構。Wilson 作為 Corosync 的外掛程式支持 SA Forum 。 6.OpenAIS 集群實例(1).CMAN CMAN 是紅帽 RHCS 套件的核心部分,CCS 是 CMAN 集群配置系統,配置cluster.conf,而 cluster.conf 其實就是 openais 的設定檔,通過 CCS 映射到 openais。(2).Pacemaker1.x+corosync1.x Pacemaker 升級到 1.0 版本後,從 Heartbeat 獨立出來,Pacemaker achieves ma

9、ximum availability for your cluster services by detecting and recovering from node and service-level failures. It achieves this by utilizing the messaging and membership capabilities provided by your preferred cluster infrastructure (currently either Corosync or Heartbeat) 7.總結簡單的說,AIS 就是一個通用的應用程式編程

10、介面,OpenAIS 是 AIS 的子項目,標準的集群框架的應用程式介面規範,而 corosync 是 OpenAIS 是具體實現。這樣說大家應該很好理解吧!8.corosync 版本官方網站: http:/corosync.github.io/corosync/ ,目前官方同在維護兩個版本分別為,corosync 1.x corosync 1.4.6(最新)代號:flatironcorosync 2.x corosync 2.3.1(最新) 代號:needle9.corosync 與 pacemaker 組合從上圖中我們可以看到,不管 heartbeat,還是 corosync 都是高可用集

11、群中的 Cluster Messaging Layer(集群資訊層),是主要傳遞發集群資訊與心跳資訊的,並沒有資源管理功能,資源管理還得依賴於上層的 crm(Cluster resource Manager,集群資源管理器),最著名的資源管理器,就是 pacemaker,它是 heartbeat v3 分離出去的子項目。而現在corosync+pacemaker 成了高可用集群中的最佳組合。好了,到這裡 corosync 與pacemaker 的基礎知識就說到這裡了,下面我們來看看怎麼安裝 corosync 與pacemaker。二、Corysync 與 Pacemaker 安裝1.環境說明(

12、1).作業系統CentOS 6.4 X86_64 位元系統(2).軟體環境corosync-1.4.1-15.el6_4.1.x86_64pacemaker-1.1.8-7.el6.x86_64(3).拓撲環境2.前提條件node1:(1).各節點之間主機名稱互相解析rootnode1 # uname -n rootnode1 # vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :1 localhost localhost.localdomain local

13、host6 localhost6.localdomain6 192.168.18.201 node1 192.168.18.202 node2 rootnode1 # ping node1 rootnode1 # ping node2(2).各節點之間時間同步 1 rootnode1 # ntpdate 210.72.145.44(3).各節點之間 ssh 互信 rootnode1 # ssh-keygen -t rsa -f /.ssh/id_rsa -P rootnode1 # ssh-copy-id -i .ssh/id_rsa.pub node2:(1).各節點之間主機名稱互相解析

14、rootnode2 # uname -n rootnode2 # vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.18.201 node1 192.168.18.202 node2 rootnode2# ping node1 rootnode2 # ping node2(2).各節點之間時間同步 ro

15、otnode2 # ntpdate 210.72.145.44(3).各節點之間 ssh 互信 rootnode2 # ssh-keygen -t rsa -f /.ssh/id_rsa -P rootnode2 # ssh-copy-id -i .ssh/id_rsa.pub 3.配置 yum 源(EPEL 源)node1:rootnode1 src# wget http:/download.Fedora project.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm rootnode1 src# rpm -ivh epel-release

16、-5-4.noarch.rpm warning: epel-release-5-4.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6 Preparing. # 100% 1:epel-release # 100% rootnode1 src# rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 rootnode1 src# yum listnode2:rootnode2 src# wget http:/download.fedoraproject.org/pub/epel/5/

17、x86_64/epel-release-5-4.noarch.rpm rootnode2 src# rpm -ivh epel-release-5-4.noarch.rpm warning: epel-release-5-4.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6 Preparing. # 100% 1:epel-release # 100% rootnode2 src# rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 rootnode2 src# yum lis

18、t4.關閉防火牆與 SELinuxnode1:rootnode1 # service iptables stop rootnode1 # vim /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of en

19、forcing. # disabled - SELinux is fully disabled. SELINUX=disabled # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targetednode2:rootnode2 # service iptables stop rootnode2 # vim /etc/

20、selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=disabled # SELINUXTYP

21、E= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted5.安裝 corosync 與 pacemakernode1:12 rootnode1 # yum install -y corosync* rootnode1 # yum install -y pacemaker*node2:rootnode2 # yum install -

22、y corosync* rootnode2 # yum install -y pacemaker*三、Corosync 詳細配置1.提供設定檔rootnode1 # cd /etc/corosync/ rootnode1 corosync# ll 總用量 24 -rw-r-r- 1 root root 445 5 月 15 05:09 corosync.conf.example -rw-r-r- 1 root root 1084 5 月 15 05:09 corosync.conf.example.udpu drwxr-xr-x 2 root root 4096 5 月 15 05:09 se

23、rvice.d drwxr-xr-x 2 root root 4096 5 月 15 05:09 uidgid.d注:大家可以看到提供一個樣例檔 corosync.conf.examplerootnode1 corosync# cp corosync.conf.example corosync.conf2.修改設定檔rootnode1 corosync# cat corosync.conf # Please read the corosync.conf.5 manual page compatibility: whitetank totem version: 2 secauth: on #啟動

24、認證 threads: 2 interface ringnumber: 0 bindnetaddr: 192.168.18.0 #修改心跳線網段 mcastaddr: 226.99.10.1 #組播傳播心跳資訊 mcastport: 5405 ttl: 1 logging fileline: off to_stderr: no to_logfile: yes to_syslog: no logfile: /var/log/cluster/corosync.log #日誌位置 debug: off timestamp: on logger_subsys subsys: AMF debug: of

25、f amf mode: disabled #啟用 pacemaker service ver: 0 name: pacemaker aisexec user: root group: root 注:用 man corosync.conf 可以查看所有選項的意思。3.生成金鑰檔注:corosync 生成 key 檔會預設調用 /dev/random 亂數設備,一旦系統中斷的 IRQS 的亂數不夠用,將會產生大量的等待時間,因此,為了節約時間,我們在生成 key 之前講random 替換成 urandom,以便節約時間。rootnode1 corosync# mv /dev/random,rand

26、om.bak rootnode1 corosync# ln -s /dev/urandom /dev/random rootnode1 corosync# corosync-keygen Corosync Cluster Engine Authentication key generator. Gathering 1024 bits for key from /dev/random. Press keys on your keyboard to generate entropy. Writing corosync key to /etc/corosync/authkey.4.查看生成的 key

27、 文件rootnode1 corosync# ll 總用量 24 -r- 1 root root 128 8 月 13 14:16 authkey -rw-r-r- 1 root root 521 8 月 13 11:11 corosync.conf -rw-r-r- 1 root root 445 5 月 15 05:09 corosync.conf.example -rw-r-r- 1 root root 1084 5 月 15 05:09 corosync.conf.example.udpu drwxr-xr-x 2 root root 4096 5 月 15 05:09 service

28、.d drwxr-xr-x 2 root root 4096 5 月 15 05:09 uidgid.d5.將 key 文件 authkey 與設定檔 corosync.conf 複製到 node2 上rootnode1 corosync# scp -p authkey corosync.conf node2:/etc/corosync/ authkey 100% 128 0.1KB/s 00:00 corosync.conf 100% 521 0.5KB/s 00:00 rootnode2 # cd /etc/corosync/ rootnode2 corosync# ll 總用量 24 -

29、r- 1 root root 128 8 月 13 14:16 authkey -rw-r-r- 1 root root 521 8 月 13 11:11 corosync.conf -rw-r-r- 1 root root 445 5 月 15 05:09 corosync.conf.example -rw-r-r- 1 root root 1084 5 月 15 05:09 corosync.conf.example.udpu drwxr-xr-x 2 root root 4096 5 月 15 05:09 service.d drwxr-xr-x 2 root root 4096 5 月

30、 15 05:09 uidgid.d注:corosync 到這裡配置全部完成。下面我們進行啟動測試!四、Corosync 啟動資訊1.啟動 corosyncrootnode1 # ssh node2 “service corosync start“ Starting Corosync Cluster Engine (corosync): 確定 rootnode1 # service corosync start Starting Corosync Cluster Engine (corosync): 確定2.查看 corosync 啟動資訊(1).查看 corosync 引擎是否正常啟動roo

31、tnode1 # grep -e “Corosync Cluster Engine“ -e “configuration file“ /var/log/cluster/corosync.log Aug 13 14:20:15 corosync MAIN Corosync Cluster Engine (1.4.1): started and ready to provide service. Aug 13 14:20:15 corosync MAIN Successfully read main configuration file /etc/corosync/corosync.conf. A

32、ug 13 17:08:51 corosync MAIN Corosync Cluster Engine (1.4.1): started and ready to provide service. Aug 13 17:08:51 corosync MAIN Successfully read main configuration file /etc/corosync/corosync.conf. Aug 13 17:08:51 corosync MAIN Corosync Cluster Engine exiting with status 18 at main.c:1794.(2).查看初

33、始化成員節點通知是否正常發出rootnode1 # grep TOTEM /var/log/cluster/corosync.log Aug 13 14:20:15 corosync TOTEM Initializing transport (UDP/IP Multicast). Aug 13 14:20:15 corosync TOTEM Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0). Aug 13 14:20:15 corosync TOTEM The network inter

34、face 192.168.18.201 is now up. Aug 13 14:20:15 corosync TOTEM A processor joined or left the membership and a new membership was formed. Aug 13 14:20:40 corosync TOTEM A processor joined or left the membership and a new membership was formed.(3).檢查啟動過程中是否有錯誤產生rootnode1 # grep ERROR: /var/log/cluster

35、/corosync.log Aug 13 14:20:15 corosync pcmk ERROR: process_ais_conf: You have configured a cluster using the Pacemaker plugin for Corosync. The plugin is not supported in this environment and will be removed very soon. Aug 13 14:20:15 corosync pcmk ERROR: process_ais_conf: Please see Chapter 8 of Cl

36、usters from Scratch (http:/www.clusterlabs.org/doc) for details on using Pacemaker with CMAN(4).查看 pacemaker 是否正常啟動rootnode1 # grep pcmk_startup /var/log/cluster/corosync.log Aug 13 14:20:15 corosync pcmk info: pcmk_startup: CRM: Initialized Aug 13 14:20:15 corosync pcmk Logging: Initialized pcmk_st

37、artup Aug 13 14:20:15 corosync pcmk info: pcmk_startup: Maximum core file size is: 18446744073709551615 Aug 13 14:20:15 corosync pcmk info: pcmk_startup: Service: 9 Aug 13 14:20:15 corosync pcmk info: pcmk_startup: Local hostname: 3.查看集群狀態rootnode1 # crm_mon Last updated: Tue Aug 13 17:41:31 2013 La

38、st change: Tue Aug 13 14:20:40 2013 via crmd on Stack: classic openais (with plugin) Current DC: - partition with quorum Version: 1.1.8-7.el6-394e906 2 Nodes configured, 2 expected votes 0 Resources configured. Online: 注:大家可以看到,集群運行正常,node1 與 node2 都線上,DC 是 node2 節點。但是還沒有配置資源,配置資源就要用到 pacemaker,在下一篇博客中我們重點講解 pacemaker使用。用 pacemaker 來增加各種資源。 _

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报