USTC Blog & Freeshell @ MSRA Summer Camp
8月21日下午 16:00~17:30,2013 MSRA Summer Camp 的 Poster 环节在微软亚洲研究院公共展示区举行。参加活动的有参加夏令营的微软小学者和各高校微软俱乐部成员、MSRA Researcher & Intern。
本来我没想展示什么,在活动组委会的要求下,我选择了 Blog 和 Freeshell 作为展示项目。在组委会的建议下,修改成了 “Cloud Services in USTC” 这个看起来很大、很时髦的标题。
上图:Blog & Freeshell 的展位(点击看大图,下同)。
所谓的 “Cloud Services” 分为基本没有关系的两部分,一部分是 Wordpress 博客(蓝色),另一部分是虚拟机(绿色)。博客与虚拟机运行在不同的物理机器上,博客并不运行在虚拟机架构上。
Wordpress 博客托管服务(blog.ustc.edu.cn)与 wordpress.com 比较类似。科大学生可以注册博客,自由安装插件、主题,从理论上说是可以运行任意代码的,这是与新浪博客之类的最大区别。
Blog 对 PHP 解释器代码进行修改,通过 daemon 进行特权操作,以保证 app 间的隔离;daemon 还会对 app 的资源使用进行审计,及时发现异常 app 并报告管理员。在数据库方面,传统的 PHP 虚拟主机给管理员一个数据库用户名和密码;在 Blog 中,通过给 PHP 解释器加钩子,每个 app 自动连接上独有的数据库,不需要在代码或配置文件中明文存储数据库密码,提高了安全性。
为了提高性能,利用 Linux 的符号链接,Wordpress 核心代码是共享的公共区域,用户插件、主题、数据放在独立的目录,这样可以节省 80% 磁盘空间,而且更有效地利用 PHP opcode cache。(PHP 是解释成中间码再执行的,opcode cache 是把解释生成的中间码缓存起来。复用文件就相当于复用缓存。)
多位观众希望 Blog 支持类似 SAE 的能上传任意 PHP 程序。我认为,首先,Wordpress 的插件和主题有足够的可定制性,不仅仅可以用来搭建个人博客;其次,Blog 的性能优化依赖于共享 Wordpress 核心文件;最后,统一使用 Wordpress 可以避免一些漏洞百出的网站框架招致安全隐患,使用相同的数据库结构便于进行内容抽取和监控。
上图:妹子们在注册科大 Blog。
Freeshell (freeshell.ustc.edu.cn)就是虚拟机,主要用于科学计算和算法实验,科大学生均可注册。由于版权问题,自然只能支持 Linux 虚拟机,使用开源的虚拟化技术。
这里的虚拟机与商用支持 SLA 的虚拟机主要的不同是,如果一个物理节点有 16G 内存,分出16个虚拟机,每个虚拟机只能用1G。然而,学校里大多数学生注册了虚拟机却很少使用,这将造成极大的资源浪费。因此我们使用 OpenVZ 虚拟化技术,实现虚拟机间的资源共享,如果只有1个人用则虚拟机可以利用整个物理节点的计算资源,如果有2个人用再对半分。
在网络方面,由于 freeshell 不希望被用于对外提供服务,入站连接仅限校内,访问的是节点的 Virtual IP,再端口映射到虚拟机的 Real IP 上。出站连接是 NAT 的 Internet 访问,使用一条不同于入站连接的线路。
在交流中,一些同学提到了为什么没有集中的存储,我的回答是目前 freeshell 并不是用于 big data 的处理,如果有这种需求可以用更专业的高性能集群,我们是主要面向学生做实验。
由于 freeshell 目前的利用率不是很高,暂时没有出现节点过载的情况。如果将来负载较高的话,可以考虑利用 OpenVZ 支持的 Live Migration,将一些虚拟机转移到较为空闲的节点上。此时,只要做好端口映射和 ARP 广播更新,就能实现网络的无缝交接。
上图:两位师兄在饶有兴致地观看 Freeshell 的 utilization graph。
上图:散场后的部分活动现场。在人多的时候,由于我需要守着展位不停地讲解,因此没能留下很多精彩瞬间。
BTW,Poster 是学术会议中常有的 Session。科大的 2012 SFD 合肥站就采用了类似的形式,当然我们没有那么多东西可展示。
上图:由于我做的 Poster 太没有吸引力,加上展位在角落里,只收到了四张“赞”贴纸。(每位参与者有一张“赞”贴纸,可以贴给自己最喜欢的 Poster,自己不能贴给自己)
最后吐槽一下,某位同学做的是 Android 上的项目,被要求把“Android”字样改成“手机”,Android 截图也改成了 Windows Phone 的截图。我这个 Poster 交稿之后没有被要求进行任何修改,看来左上角的 Microsoft 和右下角的 LUG 是可以和谐共处的……