访谈:生产环境中的Gentoo
http://www.gentoo.org/news/zh_cn/gmn/20080424-newsletter.xml#doc_chap3
这个月,我们得到了采访Hyves的系统工程部门领导Ramon van Alteren的机会。Hyves是欧洲一个类似MySpace,FaceBook和Orkut的社区交友网站。
GMN:请简要介绍一下你自己和你在Hyves的工作。
Ramon:我在生活和工作中使用Gentoo都有很长时间了——在2002年开始从Mandrake转用Gentoo。在那之前我使用Linux大约已经有5年了。
Hyves是一个类似于MySpace,FaceBook,Orkut等等的社区交友网站。这个网站是由Koen,Floris和Raymond创立的。我在2005年11月作为第一个拿薪水的系统管理员加入公司,帮助管理40多台Gentoo Linux服务器。
现在的系统工程部是一个9个人的团队,负责管理所有服务器的方方面面,从硬件架构到包括网络设施在内的软件应用。网站本身是由一支14人的开发者队伍建立的。
GMN:你们网站的规模有多大?
Ramon:目前我们有600万注册用户并且还在增加。目前的访问峰值是每天1亿5000万以上页面浏览(每小时1300万)。这还是过滤后的页面浏览量,我们的服务器接受的http请求远超过每秒2万次。
后端的mysql,在访问的最高峰时每秒大概要进行10万次操作。除了web前端和数据库后端,我们还有一个非常大的文件库用来存放用户上传的媒体 文件,大约已使用了280TB。算上所有的主机,我们大约有1800台服务器,大部分是双核或四核。所有机器都运行Gentoo Linux。:-)
GMN:你们为什么选择在你们的设备上运行Gentoo Linux?是什么特性让你们从各种发行版中选择了它?
Ramon:我们从网站创立的时候就运行Gentoo Linux。在最开始很短的一段时间里公司有两台预装Fedora的托管服务器,不过那是很久以前的事了。我们改用Gentoo的主要理由有:
在某些情况下,为了调整我们网站的规模和/或性能,我们使用一些处于非稳定状态的软件来运行我们的网站,一般来说这些软件都有相当广泛的可定制性。 为了达到这种特性,Portage、overlays和ebuild系统已经做了很多;而在Gentoo的内部框架内则可以实现其它的东西。
有这样一个事实:一个最基本的Gentoo系统不会带来各种让人不快的东西和针对发行版的定制。这让我们的系统保持精简。
在从php-4升级到php-5的过程中我们发现solt技术(portage的一个功能)真是个无价的功能,它让我们的迁移过程相当轻松。有一段 时间我们就不得不继续使用php-4,直到Gentoo宣布不支持它为止。通过ebuild来下载安装安全补丁是相当简单的事情,这让我们可以按照自己的 步伐来进行迁移。
GMN:请描述一下你们是如何使用Gentoo提供的工具来帮助维护这样一个大型服务器池。
Ramon:我们大多数的系统管理不是使用Gentoo的工具,而是使用一个用于Unix主机的叫puppet的自动配置管理系统。它使用了eix来创建软件包数据库。
在Gentoo提供的工具里面:
GMN:在搭建你们的系统架构的过程中,你们有遇到过什么大的障碍吗?如果有,你们是如何解决的?在当时,你们觉得Gentoo提供的那几种(社区)支持的途径有帮助吗?
Ramon:当然有一些!大多数都与Gentoo没什么关系,而是跟各个软件的bug和性能问题相关。
说到社区支持,我们在IRC和bugzilla上进行活跃的搜索和查询,有时还有论坛。另外,我们也跟踪gentoo-dev邮件列表里的邮件。对 于我们碰到的桌面问题(多大数的系统工程组运行Gentoo做为桌面系统),论坛是个非常宝贵的资源。但是,对于大型服务器的问题,它噪音/内容比有些 高,这主要是由于其桌面性质所致。
我们尽量把我们遇到的问题通过报告bug(可能的话提交补丁)回馈给社区。但是,我们发现大多数我们提交的问题在社区里只吸引了很有限的兴趣,因为这些问题都是针对我们的环境的。
运行这么大型的服务器通常用掉了大多数可用的时间,所以只剩下很少一点时间来清理补丁和/或ebuild,使到它们的使用范围更广。在配置服务器的过程中,我们确实提交过相关的amd64关键字稳定报告,(然而)至今还没被标志为稳定。
GMN:你觉得Gentoo还需要有什么功能吗?
Ramon:让我想想(绕着桌子思考我们希望gentoo应该拥有的功能大列表)。事实上,该列表出乎意料地短:
GMN:有没有总结性的评论?
Ramon:Gentoo的魅力在于它提供了一个灵活的框架。有了它,你可以建立一个高度定制的linux平台来跑你的应用程序而不会受到阻碍。而这种灵活性和定制性也带来了复杂性。但在我所关心的范围内,这种复杂性是值得的。
由仅仅9个人来运转这类架构是一种高度有组织的疯狂。如果在阿姆斯特丹有开发者或系统管理员对高性能和大规模的架构有很大兴趣,我愿意跟他们交流。我们在开发和系统工程方面均有空缺职位,愿意在Gentoo社区中雇人。
我们欢迎来自社区的反馈。大家可以通过与我个人联系,或者在IRC(我在Freenode的昵称是Innocenti)上找我。如果谁有兴趣与我们共同工作,请不要联系我个人,直接给发邮件就行了。
最后但并非最不重要,我非常高兴地宣布以下几点:
基于最近与来自gentoo-infra的和的 讨论,Hyves将向Gentoo社区捐赠用于Bugzilla的新服务器。我们正提供两个配备有快速的SCSI硬盘的16Gb大型AMD64服务器作为 数据库后台,还提供两个健壮的web服务器以改善现在bugzilla服务器的状况。当前我们正在让这个架构运转起来。希望不久就能跑起来。
GMN:谢谢Ramon,感谢你在百忙之中抽空接受我们的采访!
图示 3.1: Hyves小组成员(从左到右): Jeffrey Lensen,Marlon de Boer,Eugene Molenaar,Ramon van Alteren,Gerwin Scheeve,Maarten van der Bogaard,Stefan van der Wiele和Frank Zwart
加速系统启动时间
启动电脑时您是否感到不耐烦?如果是的话,请尝试以下内容:
代码 4.1: 告诉Gentoo的启动系统并行打开服务
$ $EDITOR /etc/conf.d/rc代码 4.2: 阻止内核显示状态消息
(假定你在使用GRUB并且/boot分区已正确装载)代码 4.3: 移除你不需要的服务
(查看当前启动中有哪些服务处于激活状态)如果您编译了一个不使用模块的内核,你可以将各模块从启动中删除。