二、 部件/工具选择
部件/工具选择主要在硬件和软件这个两个方面,根据前文的设计,也按3层模式来说明各层的部件选择。
(一)负载均衡层的部件选择
◆硬件
本层需要服务器2台,并且不需要太高的配置即可胜任,使用市场上入门级的服务器即可满足要求,为了减少托管机柜的占用,使用1u尺寸的机架式服务器是非常好的的选择。表1是某个生产环境负载均衡器的硬件配置。
这个服务器是在市场上组装的,当然,如果预算资金充足,可以自行购买品牌机。由于负载均衡的主要任务是转发,系统运行时负载非常的小,所以也可以使用配置更低一点的服务器或者使用其他淘汰下来的机器。
◆软件
软件包括2个部分:操作系统和应用程序。在本方案中,完全选择开源且免费的软件方案。
操作系统方面,使用centos和FreeBSD。由于lvs已经包含在linux发行版的内核中,因此在负载均衡器中使用centos5.2作为操作系统,比选择freebsd要有优势(也可以选择freebsd,不过配置起来要复杂一些)。
应用程序方面,负载均衡器使用lvs及keepalived来实现负载均衡,同时实现负载均衡器本身的失败切换(failover)--主负载均衡器失效备份负载均衡器自动接管转发、主负载均衡器恢复后负载自动被主负载均衡器接管。也有另外的方案可供选择,如lvs+heatbeat。不过这与keepalived的方案相比较,配置操作更复杂。Keepalived安装成功以后,仅仅需要使用一个配置文件,就实现了我们所要的全部功能;而用heartbeat 则需要撰写资源文件、撰写运行脚本等等。
通过下列站点取得负载均衡所需的软件资源:
1、 操作系统 centos 5.2。 http://www.centos.org
2、 Lvs内核ipvsadm-1.24。 http://www.linuxvirtualserver.org
3、 负载均衡失败切换框架工具 keepalived-1.1.17. http://www.keepalived.org
(二) 应用层部件选择
应用层主要是运行web服务,它由apache整合php来完成。为了使用分布式共享文件系统,需要额外的软件来实现文件系统的挂接。要使apache发挥更好的性能,需要使用apache的worker模式(默认是prefork)。在worker模式下,通过查看进程数,可以发现开启的进程数远远少于默认的prefork模式。Worker模式需要4G以上的内存支持才能发挥较好的作用。
◆硬件
与负载均衡层所需的服务器硬件相比,所需的硬件要求差别不是太大。因此我们可以采用与负载均衡层相同的配置,增加内存到8G。从成本看,增加4G内存大概就是增加几百元的成本而已。前文描述过,应用层至少需要2个以上的服务器,建议初始配置使用3个服务器,以后根据业务需求再逐步扩充服务器的数量。反之也可以根据用户数量的降低减少服务器数量。表2是某个生产环境的服务器硬件配置。
◆软件
基于使用开源软件的宗旨,本层的操作系统可使用Centos或FreeBSD,甚至是其他GNU/linux或者solaris。应用程序包括了web应用apache和php;共享文件系统的挂接需要Fuse(系统默认安装)及挂接程序,本方案采用moosefs文件系统。
通过下列站点取得负载均衡所需的软件资源:
1、 操作系统 centos 5.2。 http://www.centos.org
2、 web程序apache。 http://www.apache.org
3、 php程序。http://www.php.net
4、 分布式文件挂接工具moosefs. http://www.moosefs.org.
(三) 分布式文件系统及数据库层部件的选择
本层包含数据库和分布式文件系统。对于数据库来说,需要更快的处理能力,即频率更高的cpu和更大的内存;而对于分布式文件系统,则需要大容量的硬盘,以便可以存储更多的数据。
◆硬件
A、数据库硬件
主从复制最少要2个服务器,本方案初始设计使用2个服务器,一主一从。以后可以根据业务增长实现扩充,形成一主多从、速写分离的方式。这样既保证了数据安全,又能大幅提高负载。数据库服务器仍然使用1u机架式服务器,安装4核双cpu,16G内存,300G sas硬盘2个(做成raid 10)。数据库文件即可使用本地硬盘存储,也可以使用分布式文件系统。
B、分布式文件系统硬件
分布式文件系统由2个部分组成:元数据服务器master和数据存储服务器chunkserver。其中元数据服务器需要的配置要求不高,按负载均衡器那个标准配置就可以;数据存储服务器则尽可能地增加硬盘数量也获得最大的容量。初始配置时,使用一个元数据服务器,3个数据存储服务器。数据存储服务器采用2u机架式服务器,安装6个1T sata硬盘,做成RAID 5,再用一个单独的sata安装硬盘来安装操作系统,这样可以获得4.5T的可用磁盘空间来共享。3个服务器可提供总容量大概为13T存储空间。以后再随业务增长增加数据存储服务器。
◆软件
A、数据库
包括操作系统和数据库两个部分。操作系统可以是centos或freebsd。
数据库可从 http://www.mysql.org 获得。
B、分布式文件系统
分布式文件可以运行在各种类unix平台,因此可以根据自己的喜好选择开源和免费的操作系统。元数据库服务器、数据存储服务器及分布式文件客户端(即第2层的应用服务器)都使用同一个软件moosefs,它们之间的差别在于安装过程配置过程使用哪些选项。
从http://www.moosefs.org 可以取得分布式文件系统所需的软件moosefs.
(四)网络设备选择
出于安全和速度考虑,我们把网络分成内外两个网段,这两个网段在物理上分离开,即使用两个交换机.在我们这个方案里,暂时没有考虑交换机的高可用性,因此对交换机本身的质量要求比较高.具体的配置是:外网交换机使用100M 的cisco交换机,型号为ws-c3560-48TS;内网使用华为千兆交换机,型号是H3C S5100-SI。为简化管理,减少后期维护成本,交换机只设置了snmp community 用于服务器的流量监控和统计(每个有流量的端口对应一个服务器,就没有必要再在每个服务器上配置和启用snmp服务)。一个需要注意的地方是,应用服务器同时连接这两个网络,为了安全,请勿在任何双网络的服务器设置NAT。
服务器的托管一般是在远离办公室的专用的机房,在通常情况下,如果出现不能登录服务器等故障,需要亲自跑到机房去处理,这很费时、费钱。为了解决这个问题,需要购买一个KVM over ip的网络设备,初始投资大概在5000元,安装配置好KVM之后,基本上就不用去机房现场操作。
下篇文章中,介绍监控系统的设计,敬请关注。