基于Pacemaker的FreeSWITCH高可用解决方案

发布时间:2023-08-30 14:01:51   来源:文档文库   
字号:
ISSN 1009-3044 E—mai:kfyj@dnzs.netca ComputerKnowledgeandTechnology电脑知识与技术 htp:/www.dnzs.net.or1 Vo].10,No.22,August 2014 Te1:+86-55l一65690963 65690964 基于Pacemaker的FreeSWITCH高可用解决方案 曾晓娟 (江苏省徐州机电工程高等职业学校信息工程系,江苏徐州22101  摘要:该文主要采用cor0sync+pace mker+1nysq1技术方案,详细介绍了安装与配置策略,避免了传统的高可用集群的解决 方案的弊端,提高了配置的弹性,从而使功能多元化。 关键词:Pacemaker;FreeSWITCH;高可用;解决方案 中图分类号:TP393 文献标识码:A 文章编号:1009—3044(2014)22—5365—05 Analysis of P2P Streaming Media Technology ZENG Xiao-juan nformaton Project Depament,Higher Vocatona School of Electal and Mechanica Service in Jiangsu Xuzhou,Xuzhou 221011,China) Abstract:Thi paper mainly uses the corosync+pacemaker+mysql technology,introduces the instalation and confguration strate— gY,avoids the disadvantages of-tradiional high availabiity cluster soluton,improves the confration of he elastic,SO tat te unctional diversi Key words:Pacemaker;FreeSWITCH;High availabiThe solution 本文主要采用corosync+pacemaker4mysql技术方案,并详细介绍了安装与配置策略,避免了传统的高可用集群的解决方案的弊 端,提高了配置的弹性,从而使功能多元化。 1技术方案 1.1 Linux HA应用方案选择 Linux HA社区的早期方案heartbeat+pacemaker,由于hearbeat项目官方已经停止开发,所以不再采用。Cent0S 6.4之后,官方 改用CMAN+Pacemaker,但是应用还不广泛。所以采用目前最主流成熟的corosync+pacemaker+mysql方案,系统CentOS 6.3。 1.2双机热备形式 Actve/Standby方式是传统的双机热备份解决方案,主机运行时,备机或备机资源处于ofne状态,当主机故障时,备机马上启 动将服务接替。典型的实现是通过应用(例如pacemaker)来监测集群结点的资源状态,恢复备机资源。Actve/Acve方式是集群 所有节点同时在线,同时提供所有资源和服务,某个节点故障时,用户服务实时转移到其他备机。 1.3存储方案选择 存储方式主要有二种方案:基于共享存储(磁盘阵列)的方式、全冗余(双机双存储)方式。 1)基于共享存储(磁盘阵列)的方式 图1 收稿日期:2014—06—16 作者简介:曾晓娟(1978一),女,四川德阳市人,教育硕士,讲师,研究方向为计算机应用以及软件开发。 本栏目责任编辑:书 

第10卷第22期2014年8,9) Compu ̄r Knowledge and Technolgy电脑知识与技术 example IPv4”192 168.1.1II:example IPv6”2001:db8:DC28:0:0:FC57:D4C8:1FFF”. nic(ng):Network nterace 2.4确保资源在同一个节点运行 当我们在集群中配置了多个资源后,可能会出现不同资源运行在不同结点上,比如我们配置了freeswich和虚拟ip两个资源, 结果分别运行在主机和备机上,因为pacemaker默认会在集群中尽量分散资源。这对我们部署应用来说是不成立的,即此两者资 源必须同时运行在某节点上。有两种方法可以解决,一种是定义组资源,将feeswieh与虚拟Ip同时加入一个组中,可以实现将资 源运行在同节点上,另一种是定义资源约束folocaton consaint可实现将资源运行在同一节点上。我们先来说定义组资源。 2.5定义组资源 crm(ve)#confgure crm(veconfgure#group cluster_ervices s—ip s;crm(ve)confgur#show primitive fs—ip ocf:heartbeat:IPaddr2\;params ip=”10.74.10.200”nic=”eth0:0”cidrnetmask=”24”\;op monitor interal=”2s”; _group clusterservices fs—ip fs;location cli—pre ̄r—clusterservices clusterservices\: ___2.5.1定义资源约束 资源约束则用以指定在哪些群集节点上运行资源,以何种顺序装载资源,以及特定资源依赖于哪些其它资源,可以更灵活的 配置集群的资源运行方式。pacemaker共给我们提供了三种资源约束方法: Resource Locaton(资源位置):定义资源可以、不可以或尽可能在哪些节点上运行;Resource Colocaton(资源排列):排列约束 用以定义集群资源可以或不可以在某个节点上同时运行; Resource Order(资源顺序):顺序约束定义集群资源在节点上启动的顺序;定义约束时,还需要指定分数。各种分数是集群工 作方式的重要组成部分,在计算出资源分数后,集群选择分数最高的节点;对于feeswieb,虚拟ip的例子,可以简单配置如下,并检 查状态: erm(ve)confgure#colocaton  wih p NFUNTY:fs—p  我们还得确保feeswieh在某节点启动之前得先启动虚拟ip,这可以使用如下命令实现: crm(ve)configur#order s—ar—vip mandatory:fs—ip  由于HA集群本身并不强制每个节点的性能相同或相近。所以,某些时候我们可能希望在正常时服务总能在某个性能较强的 节点上运行,这可以通过位置约束来实现: crm(veconfgure#locaton preer-01—a s—p node_pre200:fs01— 2.5.2资源黏性 资源黏性是指:资源更倾向于运行在哪个节点。资源黏性值范围及其作用: 0:这是默认选项。资源放置在系统中的最适合位置。这意味着当负载能力“较好”或较差的节点变得可用时才转移资源。此 选项的作用基本等同于自动故障回复,只是资源可能会转移到非之前活动的节点上; 大于0:资源更愿意留在当前位置,但是如果有更合适的节点可用时会移动。值越高表示资源越愿意留在当前位置; 小于0:资源更愿意移离当前位置。绝对值越高表示资源越愿意离开当前位置; NFINITY:如果不是因节点不适合运行资源(节点关机、节点待机、达到migraton—threshold或配置更改)而强制资源转移,资源 总是留在当前位置。此选项的作用几乎等同于完全禁用自动故障回复;一INFINITY:资源总是移离当前位置;我们这里可以通过以 下方式为资源指定默认黏性值: crm(ve)confure#rsc_deauhs resource—sckiness=10 3安装与配置手册 3. Linux系统安装与环境配置 从官方网站下载发行版centOS 6.3 vauh.centos.org/6.3/os/i386 安装两个lnux服务器(标准安装,必须的包为:gcc,glbc,mysq1);P:10.74.0.224 hosname 01-a;IP:10.74.10.223 hostname 01一b;安装完成后修改每个机器的/etc/hosts文件添加如下:1O.74.10.224 f01一a;10.74.10.223 fO1一b 3.2增加yum数据源 因为lnux—HA项目代码源不在centOS的源库中,需要手动添加 etyum.epos.d/ha—cluserng.epo(或ha—clusterng.epo到/etc/yam.epos.d/ hacluserng]name=HA;Clusring ;baseur=htp:downl0ad.opensuse.org/eposiores/network:ha— cluserng:Stable/CentOS_Cen・ tOS-—6/enabled=1 gpgcheck=0 3.3禁止senux oot@f01一a}/bin/sed—i—e s,SELINUX=enforcing'SELINUX=diabled ,/etc/senux/confg 本栏目责任编辑:书 讨 嘲圆 困翻寓嚣眯 *5367 
Computer Knowledge and Technology电脑知识与技术 第10卷第22期2014年8月) 3.4禁止iptables 修改/etc/c3.d/S08iptables和/c/c3.d/S08ip6tbles文件,在第二行增加“exi #!foin/sh exi#;#iptalbes Start iptables firewall 3.5配置DNS和NTP 修改/etc/esolv.conf domain XXXX.cor;nameserver xx.XX.XX.XX;nameserver xx.xx.xx.XX 3.6重启服务器 )安装各种强制或可选的软件包,以下包是编译FreeSWITCH必须安装的。 oot@fs01一a#yum nsal gi autoconf automake btool ncures—devel bjpeg—devel 21安装运行corosync/pacemakereeswich。 1)下载并编译feeswich源码,我们使用1.2稳定版而不是最新代码 oot@fs01一a】#cd/us ̄ocaFsc.oot@f01一a]#gi clone—b v1.2.abl gigieeswich.rgreeswich.gi 2)安装pacemakercorosync和crmsh oot@fsOl-a]#yum nsal pacemaker orosync crmsh—v 3)拷贝corosync.conf到/c/eorosync/,修改ip地址 aiexec{}}Run as oot—thi  necesary o be abl o manage esources wih Pacemaker user:root; group:root;ervie{ #Load the Pacemaker Cluster Resource Manager ver:1; name:pacemaker; usemgmtd:no;use 1ogd:no} 3)生成群结点间的通信密钥 密钥会生成在,c,or0sync/authkey,需要把这个文件拷贝到所有群结点的同路径下 oo@fO1一a]#corosync—keygen Press keys on your keyboard to generat entopy(bis=496)Pres keys on your keyboard  generate entopy(bis=560)Pres keys on your keyboard o generate entopy(bi 624)Wrng corosync key o/etc/corosyncauthkey. 41两个结点分别启动coosync oot@f01一a]#service corosync ar 3.7配置集群资源 拷贝feeswih对应lsb资源文件FSSofa到lsb目录/etnid/FSSofa;两个结点都要拷贝。两个结点分别配置集群资源,结点 名称分别改为fO1一a,fsO1一b )每个结点分别配置FreeSWITCH 1)允许feeswich绑定非本地ip oot@fs01一a】#echo nepv4.p_nonloca_bind=l >>/etsysctconf oot@fs01一a]#sysctl—P 2)修改sofa.confxml oot@fs01一a]#vi/usoeaeeswieh/confautoload_confgsofa.onfxml <param name=”odbc—dsn”value=”FREESWITCH:freeswitch:reeswitch”/>:<param name=”track—calls”value=”true”/>:<param name= ”rp—ip”value=”10.74.10.200”,> 3)修改swich.onfxml oo@f01一a】#vi/usoeareeswich/confautoload—confgs/swich.confxml <param name=”switchname”v ̄ue=”fsO1”/> <param name=”core—db—dsn”value=”FREESWITCH:freeswitch:reeswitch”/> <param name=”core—recover—db—dsn”vaue=”FREESWITCH:freeswitch:freeswitch”,> 4)修改sip profe,包括interna1xmlexterna1xml或者其他使用到的sp pre oo@f01一a#vi/usocareeswich/confp_profesnterna1xml;<param name=”odbc—dsn”value=”FREESwITCH:eeswich: freeswiteh”/>;<param name=”track-calls”value=”true”,> 5)每个结点分别配置互为热备的MYSQL数据库。配: ̄fOl-a,s01-b各自运行自己的mysql数据库,连个数据库之间互为备 份,安装如下rpm包: mysql—server-5.1.61—4.el6.686;unix0DBC—devel一2.2.14—12.el3.686;unix0DBC一2.2.14—12.e1l 3.i686 6)在fsO1一a,O1一b服务器上,第一次启动mysql oot@fs01一a]#serviee mysqld aroot@f01一a]#chkconfg——add mysqld oot@fs01-a]#/usbidmysqladmin—U oot password"eeswich 5368…计算机工程应用技术* 本栏目责任编辑:梁书 
第1O卷第22期2014年8月) Compu ̄r Knowledge and Technology电脑知识与技术 oot@fs01一a]#mysql—uroot-pfeeswich 7)在fO1一a,s01一b服务器上拷贝文件odbc*.ni到/etc/YP修改,fO1一a SERVER为10.74.0.224;fO1一b SERVER为 1O.74.10.223 oot@f01一a]#cp odbc .ni/etc/oot@f01一a]#vi/ete/odbc.nieeswich】#Drver=MYSQL;SDrver=/usrb/bmyodbc5.O SERVER=10.74.10.223 8)完成后运行命令检查odbc连接 oot@f01一a]#iql—v reeswich; Connected! sql—satement  help[ablename】I qui I SQL>qui 9)在fs01-a,Ol-b  ̄务器上,停止sve并重置maser在fsO1一a,01_b上登陆mysql,以后凡是前缀为:“#”表示是命令状态,前 缀为“mysql>”表示通过登陆了mysql客户端: oot@fs01一a]#mysql—uroot-pfeeswich;mysql>stop slave;mysql>reset master 10)在f01一a上增加权限。注意:如果要限制权限的话可以将红色的 %,替换为服务器的域名或者IP mysql>grant replication slave on . to"freeswitch'@ % identifed by"reeswitch : mysql>fush privileges; (11)在fO1一a,sO1一b服务器上下刷表并锁定 mysql>fush tables with read lock; (12)将f01一a的数据库文件复制到f01一b:将my.ar文件复制到fs01一b上;检查fsO1一a上的服务器状态:mysql>show maser a— File  Position I BinlogDoI)B I BinlogIgnoreDB ___+ mysql—bin.000001 l 106 l freeswiteh l mysql 配置f01一b实现主服务器同步。配置完成,可以尝试在任意一个服务器上对数据库feeswich进行操作,则在另外一个服务器 上马上就能看到相应的动作; 4结束语 本文基于pacemaker实现FreeSWITCH的高可用集群验证成功。在配置过程中我们通过pacemaker实现高可用集群的方案对 资源的配置具有更大的弹性,因此该解决方案能够实现高可用集群的更多功能和多元化。 参考文献: 1】徐小涛.数字集群移动通信系统原理与应用[M]北京:人民邮电出版社,2008. 2黄建尧.2]数字集群移动通信系统终端:关键技术研究[M]天津:天津大学,2010. 3】汪筱红.高可用多节点集群技术的研究与实现【D]上海:上海交通大学,2006. 本栏目责任编辑:梁书 

本文来源:https://www.2haoxitong.net/k/doc/d3755e5282eb6294dd88d0d233d4b14e85243eb9.html

《基于Pacemaker的FreeSWITCH高可用解决方案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式