IBM SoftLayer在IT技术的“云”时代不失为一款优秀的云计算平台。北京友阁信息科技作为IBM SoftLayer的代理,将为用户提供优质的技术支持服务,让用户不在惧怕云计算技术“革命”,勇敢拥抱“云”时代。
在企业的IT资源部署中需要考虑:系统的松散性、可伸缩性、安全性和高可用性。服务的高可用常常是必不可少的一项工作,用户如何在IBM SoftLayer平台上实现高可用呢,北京友阁信息科技抛砖引玉利用 IBM SoftLayer 平台的一些功能特点来实现系统的高可用性,为大家提供一些参考方法,主要包括 IBM SoftLayer 负载均衡器下的多服务器模式、IBM SoftLayer 域名注册服务下的浮动 IP 模式、IBM SoftLayer 云计算实例的深度监控模式,您可以根据不同需求使用不同的模式,还可以拓展出 IBM SoftLayer 中更多丰富的性能。
IBM SoftLayer 负载均衡下的多服务器模式
当云平台中的服务器发生故障时,如机房断电、硬件性能下降等等,云平台的使用者需要保证各种服务器有冗余配置。对于数据库服务器,各种主从配置已经很完善,外界系统故障不会对软件功能造成影响。对于 web 服务器,不管是前端对外的 web 服务器还是系统内部的 web 服务器都需要冗余。例如一个门户网站的前端 web 服务器需要冗余来处理大量的访问请求并且保证部分服务器故障下的功能完备。图 1 展示了一个简单的逻辑功能图,黄色箭头代表外部用户请求,红色服务器代表故障。
图 1. 负载均衡器下的服务器冗余
使用 IBM SoftLayer 的负载均衡器下多服务器模式可以容易的实现高可用性。用户可以方便的根据业务量添加、移除冗余,也可以快速替换出现故障的服务器。负载均衡器会检测各个服务器的状态,保证请求发送给有效的服务器。下面介绍如何创建负载均衡器,如何添加、移除服务器以及检测服务器状态。
登陆 SoftLayer 主页(control.softlayer.com)后,进入 Network=>Load Balancing=>Local 页面,点击“Order Local Load Balancer”,在对话框中选择系统所在的数据中心(Location)和所需要的类型。
创建完成后在之前的界面列表中会出现一个新的条目,点击 Notes 编辑一个方便识别的描述说明,再点击第一列的 IP 地址就可以进入编辑界面,如图 2 所示。
可以为负载均衡器的 IP 地址分配域名,方便开发人员在系统中使用。域名分配会在之后的内容介绍。
进入负载均衡器后首先需要为其添加服务组(点击 Add Service Group),
- 选择服务类型:DNS/FTP/HTTP/HTTPS/TCP/UDP
- 选择均衡算法:如最常用的 Round Robin(总共支持 12 种算法)
- 选择服务端口号
图 3. 负载均衡器中创建服务组
假设创建了 HTTP 和 HTTPS 两个服务组,接下来要给服务组里添加服务器(点击 Add Server):
- Web 服务器的 IP 地址
- 服务端口号
- 健康检查类型
- 权重
图 4. 负载均衡器服务组中添加服务器
配置完成后的总体效果如图 5 所示:
在每个服务组中都可以添加任意数量的服务器,用户可以手动 enable/disable 每个服务器,也可以为每个服务器添加状态监测 default/HTTP/ping/TCP。
这种架构的益处在于:
- 即使某个服务器失效,系统的整体功能依然正常;
- 用户可以通过第三方监控平台或者负载均衡自带的状态监测来及时发现失效的服务器,移除服务器(Actions=>Delete Service),快速地运维且不影响用户体验;
图 5. 配置好的负载均衡器
IBM SoftLayer 域名服务下的浮动 IP 模式
这个模式需要为每个服务器注册固定的域名,用户通过更改域名映射的不同服务器的 IP 地址来实现冗余和高可用。有时用户需要更新服务器,包括软件、操作系统的升级或硬件性能的升级,用新服务器替换就服务器。为了最小化停机时间,只需要把相 应 DNS 下的 IP 地址替换即可。图 6 简单示意了这一过程。
图 6. DNS 下浮动 IP
为了实现这一过程,首先要为整个系统注册 DNS。在 IBM SoftLayer 主页中,Services=>Domain Registration=>Register 可以完成注册,系统会检测 DNS 的可用性,之后填写简单的注册信息就可以得到自己的 DNS 域名了。
图 7. 申请 IBM SoftLayer DNS
接下来可以在 mydomain.com 中为不同的服务器或负载均衡器添加 DNS 记录,点击“Edit DNS”:
- 输入资源类型,如 A 记录
- 指定 Host,如 prdmysql.mydomain.com
- 指定服务器 IPv4 地址,如 123.1.2.3
- 指定 TTL
设置完成后新的 DNS 记录就立即生效。如图 8 所示假设已经创建好了 api./prdmongo./prdcache. mydomain.com。
图 8. 创建 IBM SoftLayer DNS 记录
假设 prdmysql.mydomain.com 对应的服务器 123.1.2.3 需要更换成另外一台新的服务器,只需要删除现有的 DNS 记录,按照上边的步骤重建一条新的记录即可,服务的不可用时间只有短短几秒。
这个模式的益处在于,用户仅仅通过新建一条 DNS 记录就可以做到服务器更迭;当进行软硬件升级出现错误时,时用户还可以通过调整 DNS 记录持续地回滚。
浮动 IP 与负载均衡的区别在于,浮动 IP 用于人为的主动更新软硬件,甚至可以以负载均衡器为单位批量更新;而负载均衡主要保证非人为情况下的单机失效而不影响系统功能和性能。用户可以根据自身需求选择使用,也可以联合使用。
IBM SoftLayer 云计算实例的深度监控
之前的负载均衡器可以为服务器添加 HTTP 健康监测,但只限于对 80 端口的 GET 和 HEAD 操作,用来评估与负载均衡器绑定的前端服务状态。如果想得到后端各种服务的状态如数据库、SMTP、SSH 等,就需要使用基于云计算实例的深层监控服务。
为了给云计算实例(虚拟机)添加监控服务,用户需要打开虚拟机的详细信息界面,依次进入 monitor=>manage monitors=>add monitor。
- 设置虚拟机的 IP 地址,可以是它的公有 IP 或私有 IP
- 选择监控类型,目前支持 PING/DNS/SMTP/FTP/HTTP/HTTPS/IMAP/LDAP/SSH/TELNET/自定义 TCP/UDP
- 假设第二步选择 TCP CUSTOM,再设置端口号 3306,用来监控该服务器上的 mysql 状态
- 设置服务不可用时的通知方式,可以为 Do Nothing/Notify Users/Notify and Reboot
假设选择 Notify and Reboot,当 3306 端口状态不可用是系统会发邮件通知用户并重启服务器
完整的配置如图 9 所示:
图 9. 云计算实例的深度监控
这个模式的益处在于:
- 用户可以监控各种系统服务或特定的应用服务
- 检测到某个服务失效,用户可以得到通知或设置自动重启服务器,有一定的自修复功能