分类: LINUX
2008-05-02 15:08:38
您已经听说过 Web 2.0 了,是么?很好,这就是 “效用计算 2.0”,它是网络引导、SSL、VNC 和其他熟悉的概念和技术 —— 所有这些技术都是在 Linux® 上使用的 —— 它可以带来极大的投资回报。请了解加州大学是如何设置服务器场环境来为学生提供安全远程桌面应用程序服务的。
节省数千美元的资金。显著地提高系统可用性。增强安全性。简化维护操作。降低对单个源或昂贵组件的依赖性。简化许可证授权。
即使一个开发项目只实现了以上一种优点,我们也会非常高兴。而我们所说的 “效用计算 2.0” 实现了以上 所有 优点。
将一组单独的普通技术集成到一起,就会获得巨大收益;单独使用时,任何技术都无法提供显著的优点。如果对不同项目使用完全不同但是有所重叠的技术组合,情况就会变得更加复杂。本文将阐述使用网络引导、低功耗计算、VNC 和 SSL 在一个项目中实现技术集成的方法。
加州大学 Merced 分校(UCM)的工程学院维护了两个可坐 60 人的计算实验室,学生可以在这里完成作业。一个实验室拥有常用的 Windows® XP 桌面主机,但是在最近一次更新换代过程中,这个实验室更换成驱动 24 英寸 Dell 液晶显示器的 ITX Mini-Box M200,分辨率设置为 1280x1024。这些座位的成本每个只有 1,138 美元,甚至可以单独购买。表 1 对 Mini-Box 和传统桌面系统的成本进行了比较。
项目 | Mini-Box | 传统桌面 |
---|---|---|
CPU | 275 美元 | 1,100 美元 |
24 英寸显示器 | 747 美元 | 747 美元 |
鼠标、键盘 | 36 美元 | 36 美元 |
1 GB 内存 | 80 美元 | 180 美元 |
标准功耗 | 15 | 200 |
可以为实验室购买的默认工作站成本大约为两倍:2, 063 美元。另外,按照加州的主要电价计算,每月平均节省的大约 100 瓦电力可以节省大约 10 美元,或者每年大约可以节省 100 美元。如果考虑到实验室的空调 设备所降低的电力负载,节省的资金甚至超过 3 倍。还可以用另一种方式看待该问题:CPU 的节省使得 24 英寸的显示器成为可能。这些又瘦又宽的客户机很受用户欢迎。
另一方面,标准工作站的速度大约是小型 Mini-Box 的 3 倍。不过这并不是问题,因为实验室的计算机对其所承担的工作来说已经足够快了,这些计算机的主要任务有:基本报告准备、电子邮件、Web 研究、学校的开发作业以及远程结果显示。
下面介绍这些主机在系统层面的运作方式。每个座位都设置为从一台引导服务器进行网络引导。所有机器基本相同,使用内置式 PXE 加载程序引导大约需要 73 秒就可以启动 Ubuntu Linux 2.6。每个工作站在引导过程中将获取只读的使用 NFS 加载的工作磁盘空间。作为引导过程的一部分,UnionFS 使用 tmpfs 来创建读写根文件系统。一旦用户登录之后 (这又需要花费 23 秒的时间),他们就可以在 /home/username 中看到自己的主文件系统,这是到挂载点的链接。
一个座位完成引导之后,就会显示常见的登录提示符。不过 getty
并没有连接到 /etc/passwd
或 LDAP 上,而是连接到 SSH 上!每个座位所共享的 /etc/inittab
包括以下内容;
1:2345:respawn:/sbin/rungetty -u root tty1 /usr/local/sbin/UCM_login |
/usr/local/sbin/UCM_login
本身是一个 300 行左右的 Python 脚本,它:
screen
中的所有登录信息,这样就可以进行远程调试
最后一条不太常见。前面提到过,登录不是使用 /etc/passwd
甚至 PAM 进行身份验证的标准登录过程。相反,它具有一定的智能,可以处理以下帐号:
guest@localhost
,这是座位本身的一个帐号。当然,对于大多数任务来说,简单地启动一个 Web 浏览器就足够了。该帐号并不要求提供密码,也不会接收持久存储。klaird
someone@yale.edu
的登录连接到自己常用的主目录。这些实验室和工作站的设计使得可以非常安全甚至自然地提供这些登录方式,包括 guest@localhost
、使用特权帐号登录到 sudo
的能力、访问音频以及使用 M200 的其他所有能力。
校园范围的登录,例如 klaird
,实际上并不直接由 LDAP 进行解析,而是通过 ssh 发送到 LAN 上的一台专用机器,该机器本身清楚如何对 LDAP 的请求进行身份验证,然后自动创建对应的帐号。这简化了实验室座位的配置 和 对专用 ssh-LDAP 主机的维护。
允许(甚至 鼓励)root
用户登录并没有什么坏处,因为这里没有本地资源,所以每个座位都可以通过快速重启回复到默认状态。安全性(已经超出了本文的范围)限制了在每个座位上使用 root 权限的恶意用户可能造成的损害。
结果是学生可以在任何时候走进实验室,访问自己常用的 $HOME
目录。或者可以将实验室的座位看作一台安装了专用工程软件的单独机器。或者简单地认为实验室的座位是查看远程科学计算的高分辨率显示设备、团体项目的协作中心或者连接到 Web 的单独访问点。或者,如果需要只能在 Windows 上使用的应用程序,VNC 通过提供两台高性能的 Windows XP 机器,为需要该系统的人提供对足够的访问能力。
顺便说一下,请注意用于 VNC 的 SSL 如何充分利用这些其他元素。在前一篇文章 “使用 SSL 保护 VNC 应用程序” 中介绍过,可以通过 Web 浏览器安全地从远程查看基于 X11 的显示和其他内容。这项技术进一步降低了希望共享计算的学生或教授的学习难度或 “活动量”,即使他们只使用一次 URL 或有限地使用 URL。
在上面列出的任何角色中,所有会话和显示都可以通过屏幕和 VNC 进行远程访问,这样就可以迅速地提供深层次的技术支持。在出现主机崩溃的少有情况下,或者更可能的一种情况是需要对系统进行扩展,只需几秒就可以找出另一台 Mini-Box,并连接电源、键盘、显示器、鼠标和网络连接,然后启动它并准备好进行操作。这些优点非常明显,并且其成本很低,校园中的其他机构已经开始考虑使用 M200。
这种瘦客户机计算变种的统一性和效用,使得人们不再过多地关注很少使用的优点。使用每个座位上提供的屏幕和 VNC,技术支持变得非常简单,而且消除了物理上的耦合。维持运作只需少量辅助工作,很多时候甚至不必在实验室中展开这些辅助工作。
由于移动登录、显示设备、进程和桌面都非常方便,因此教师和助教发现该系统在实时检查学生的工作方面很有优势。两个工作站专用于大屏幕的投影和播放其他多媒体内容,另外还有两个工作站预定为将来使用。可以轻松地在附近的工作站上设置共享显示,也可以将其发送到实验室或教室中的投影仪上。学生可以在实验室中开发一个演示文档,然后 交互式 地向整个班级展示。另外,由于 VNC 客户机本身到处可见,因此对于楼上或整个国家的学者来说,向在实验室中工作的人员展示自己的资料是非常简单的事情。
其中的大多数功能都只使用几行代码和配置,单独使用这些内容时可能不太引人注目。举例来说,该项目创建了一种标准方法来安全地转发显示的内容。首先是只有一行的 shell 脚本:
socat TCP4:localhost:5900 "EXEC:ssh guest@projector -i /usr/local/etc/display_id_dsa" |
~guest/.ssh/authorized_keys
中保存了:
command="exec bin/remote_display",no-port-forwarding,no-X11-forwarding,no-agent-forwarding /ssh-dss AAAAB3NzaC1kc3MAAAEBAKhMDgnFAgYBh4Xega... |
~guest/bin/remote_display
是设置了执行位的文件,包括以下内容:
#!/bin/sh export DISPLAY=:0 export XAUTHORITY=/tmp/Xauthority /usr/src/vnc_unixsrc/vncviewer/vncviewer -shared STDIO:0 |
虽然这种小机制非常简单,但是有很多安装存在问题,并且从来没有解决这些问题。在这些极为常用的地方,用户很大程度上都使用自己的设备来配置远程显示,然后在下次需要时就可以重做相同的工作。顺便说一下,请注意上面这个例子通过 NAT 也能很好地工作。这展示了小心使用标准组件的原理,包括 VNC、socat
等,它们允许使用 UCM 实验室中所应用的标准解决方案。
下面该做什么?还需要做大量工作。会话记录的机制仍然不完整。我们正在探索可以加速远程站点显示的方法,并构建一些工具来简化分布式资源的本地使用。安全性始终是永无止境的挑战。现在仍然存在少量调优机会:进一步减少引导时间,在投影仪上进行缩放以便满足工作站显示器可能提供的 1900x1200 分辨率,使用 NX 或其他技术对 VNC 进行加速或作为替代,VoIP 功能的集成,协作过程中的创新,并且自动向对等站点外发 VPN,这些都是我们希望开展的项目。
最令人感兴趣的是两个特性,与其说是技术特性,不如说理论特性。首先,可用性有助于将学生的注意力放到计算内容上,而不是计算技术上。借助简单、统一而且灵活的计算环境,人们就不再需要像以前一样花费时间来记忆非常深奥的命令行或 “向导” 序列。学生可以集中精力研究自己的工作,而不会因系统问题而分心,例如主机被恶意软件感染、分区坏损、身份验证和同步方法配置不当以及行话 “silo” 目前所引发的问题:数据被锁定在某个特定的机器或进程中,无法跨边界进行通信。强调使用简单可靠的方法可以获得与众不同的最终用户体验。
另外,计算环境适当的通用化以及对开放源码产品深思熟虑的依赖,使科学家和工程师可以更加轻松地计算其寻求的结果,并且其他人通过其使用的方法可以再现并检查该结果。在 UCM 和其他平台上,开始看到这种优势:科学家认为不仅应该共享和发表自己的理论、评论或数据,还要共享生成这些结果的计算过程和显示内容。
当然,很多相同的原理也可以应用到更常用的自动化办公环境。例如,请考虑国家范围的保险公司或银行。当然,它需要使自己的数据严格保密,并且通常对于在 Internet 上发布这些数据并不感兴趣。然而,使用简单的标准组件可以帮助实现大多数组织共有的两个主要目标:
不管是在商业环境还是在学术环境中,“效用计算 2.0” 都可能出人意料地使计算机的反应更迅捷并且更易于使用。那些经常看到我们所采用的技术的开发人员,发现这些技术微不足道,但是经过适当的组合,可以在可用性、安全性和可靠性方面获得大量收益。
我们工作的一些细节目前尚未公开发布,在上面的几个例子中,我们简化了对相关细节的解释。举例来说,主机都是标准的 Mini-Box 单元;实际上,每个主机都需要进行标准的 BIOS 重新配置,以允许网络引导。不过,随着我们的不断改进,这些技术将越来越透明。
特别感谢 UCM 工程学院的 German Gavilan 和 Assistant Dean。
原文链接:http://www.ibm.com/developerworks/cn/linux/l-server-farm.html