当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 使用Linux应用服务器场的远程计算

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 使用Linux应用服务器场的远程计算


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 78 ::
收藏到网摘: n/a

您已经听说过Web2.0了,是么?很好,这就是“效用计算2.0”,它是网络引导、SSL、VNC和其他熟悉的概念和技术——所有这些技术都是在Linux?上使用的——它可以带来极大的投资回报。请了解加州大学是如何设置服务器场环境来为学生提供安全远程桌面应用程序服务的。

节省数千美元的资金。显著地提高系统可用性。增强安全性。简化维护操作。降低对单个源或昂贵组件的依赖性。简化许可证授权。

即使一个开发项目只实现了以上一种优点,我们也会非常高兴。而我们所说的“效用计算2.0”实现了以上所有优点。

将一组单独的普通技术集成到一起,就会获得巨大收益;单独使用时,任何技术都无法提供显著的优点。如果对不同项目使用完全不同但是有所重叠的技术组合,情况就会变得更加复杂。本文将阐述使用网络引导、低功耗计算、VNC和SSL在一个项目中实现技术集成的方法。

网络引导的大学计算实验室

加州大学 Merced分校(UCM)的工程学院维护了两个可坐60人的计算实验室,学生可以在这里完成作业。一个实验室拥有常用的Windows®XP桌面主机,但是在最近一次更新换代过程中,这个实验室更换成驱动24英寸Dell液晶显示器的ITXMini-BoxM200,分辨率设置为1280x1024。这些座位的成本每个只有1,138美元,甚至可以单独购买。表1对Mini-Box和传统桌面系统的成本进行了比较。


表1.基本的桌面成本
项目Mini-Box传统桌面CPU275美元1,100美元24英寸显示器747美元747美元鼠标、键盘36美元36美元1GB内存80美元180美元标准功耗15200

可以为实验室购买的默认工作站成本大约为两倍:2,063美元。另外,按照加州的主要电价计算,每月平均节省的大约100瓦电力可以节省大约10美元,或者每年大约可以节省100美元。如果考虑到实验室的空调设备所降低的电力负载,节省的资金甚至超过3倍。还可以用另一种方式看待该问题:CPU的节省使得24英寸的显示器成为可能。这些又瘦又宽的客户机很受用户欢迎。

另一方面,标准工作站的速度大约是小型Mini-Box的3倍。不过这并不是问题,因为实验室的计算机对其所承担的工作来说已经足够快了,这些计算机的主要任务有:基本报告准备、电子邮件、Web研究、学校的开发作业以及远程结果显示。

下面介绍这些主机在系统层面的运作方式。每个座位都设置为从一台引导服务器进行网络引导。所有机器基本相同,使用内置式PXE加载程序引导大约需要73秒就可以启动UbuntuLinux2.6。每个工作站在引导过程中将获取只读的使用NFS加载的工作磁盘空间。作为引导过程的一部分,UnionFS使用tmpfs来创建读写根文件系统。一旦用户登录之后(这又需要花费23秒的时间),他们就可以在/home/username中看到自己的主文件系统,这是到挂载点的链接。

登录、登出并浏览系统

一个座位完成引导之后,就会显示常见的登录提示符。不过getty并没有连接到/etc/passwd或LDAP上,而是连接到SSH上!每个座位所共享的/etc/inittab包括以下内容;


清单1.引导启动getty
1:2345:respawn:/sbin/rungetty-uroottty1/usr/local/sbin/UCM_login/usr/local/sbin/UCM_login本身是一个300行左右的Python脚本,它:

  • 加载screen中的所有登录信息,这样就可以进行远程调试
  • 设置特定的超时、登录、终端驱动程序和相关的“日常管理”配置变量
  • 与“状态服务器”进行交互,该服务器负责从总体上对实验室进行监视
  • 打印欢迎和关于使用情况的消息
  • 提示用户登录

最后一条不太常见。前面提到过,登录不是使用/etc/passwd甚至PAM进行身份验证的标准登录过程。相反,它具有一定的智能,可以处理以下帐号:

  • guest@localhost,这是座位本身的一个帐号。当然,对于大多数任务来说,简单地启动一个Web浏览器就足够了。该帐号并不要求提供密码,也不会接收持久存储。

  • UCMLDAP存储中的任何帐号,例如klaird

  • 任何其他ssh帐号,它们可以位于任何具有网络连接的地方。这意味着校园访问者可以使用类似于[email protected]的登录连接到自己常用的主目录。

这些实验室和工作站的设计使得可以非常安全甚至自然地提供这些登录方式,包括guest@localhost、使用特权帐号登录到sudo的能力、访问音频以及使用M200的其他所有能力。

校园范围的登录,例如klaird,实际上并不直接由LDAP进行解析,而是通过ssh发送到LAN上的一台专用机器,该机器本身清楚如何对LDAP的请求进行身份验证,然后自动创建对应的帐号。这简化了实验室座位的配置和对专用ssh-LDAP主机的维护。

允许(甚至鼓励)root用户登录并没有什么坏处,因为这里没有本地资源,所以每个座位都可以通过快速重启回复到默认状态。安全性(已经超出了本文的范围)限制了在每个座位上使用root权限的恶意用户可能造成的损害。

结果是学生可以在任何时候走进实验室,访问自己常用的$HOME目录。或者可以将实验室的座位看作一台安装了专用工程软件的单独机器。或者简单地认为实验室的座位是查看远程科学计算的高分辨率显示设备、团体项目的协作中心或者连接到Web的单独访问点。或者,如果需要只能在Windows上使用的应用程序,VNC通过提供两台高性能的WindowsXP机器,为需要该系统的人提供对足够的访问能力。

顺便说一下,请注意用于VNC的SSL如何充分利用这些其他元素。在前一篇文章“使用SSL保护VNC应用程序”中介绍过,可以通过Web浏览器安全地从远程查看基于X11的显示和其他内容。这项技术进一步降低了希望共享计算的学生或教授的学习难度或“活动量”,即使他们只使用一次URL或有限地使用URL。

优点

在上面列出的任何角色中,所有会话和显示都可以通过屏幕和VNC进行远程访问,这样就可以迅速地提供深层次的技术支持。在出现主机崩溃的少有情况下,或者更可能的一种情况是需要对系统进行扩展,只需几秒就可以找出另一台Mini-Box,并连接电源、键盘、显示器、鼠标和网络连接,然后启动它并准备好进行操作。这些优点非常明显,并且其成本很低,校园中的其他机构已经开始考虑使用M200。

这种瘦客户机计算变种的统一性和效用,使得人们不再过多地关注很少使用的优点。使用每个座位上提供的屏幕和VNC,技术支持变得非常简单,而且消除了物理上的耦合。维持运作只需少量辅助工作,很多时候甚至不必在实验室中展开这些辅助工作。

由于移动登录、显示设备、进程和桌面都非常方便,因此教师和助教发现该系统在实时检查学生的工作方面很有优势。两个工作站专用于大屏幕的投影和播放其他多媒体内容,另外还有两个工作站预定为将来使用。可以轻松地在附近的工作站上设置共享显示,也可以将其发送到实验室或教室中的投影仪上。学生可以在实验室中开发一个演示文档,然后交互式地向整个班级展示。另外,由于VNC客户机本身到处可见,因此对于楼上或整个国家的学者来说,向在实验室中工作的人员展示自己的资料是非常简单的事情。

其中的大多数功能都只使用几行代码和配置,单独使用这些内容时可能不太引人注目。举例来说,该项目创建了一种标准方法来安全地转发显示的内容。首先是只有一行的shell脚本:


清单2.将显示内容发送到另一个座位
<class=displaycode>socatTCP4:localhost:5900"EXEC:sshguest@projector-i/usr/local/etc/display_id_dsa"
~guest/.ssh/authorized_keys中保存了:

清单3.接收VNC投影的密钥

command="execbin/remote_display",no-port-forwarding,no-X11-forwarding,no-agent-forwarding/ssh-dssAAAAB3NzaC1kc3MAAAEBAKhMDgnFAgYBh4Xega...

~guest/bin/remote_display是设置了执行位的文件,包括以下内容:


清单4.启动标准的VNC查看器
#!/bin/shexportDISPLAY=:0exportXAUTHORITY=/tmp/Xauthority/usr/src/vnc_unixsrc/vncviewer/vncviewer-sharedSTDIO:0

虽然这种小机制非常简单,但是有很多安装存在问题,并且从来没有解决这些问题。在这些极为常用的地方,用户很大程度上都使用自己的设备来配置远程显示,然后在下次需要时就可以重做相同的工作。顺便说一下,请注意上面这个例子通过NAT也能很好地工作。这展示了小心使用标准组件的原理,包括VNC、socat等,它们允许使用UCM实验室中所应用的标准解决方案。

下面该做什么?还需要做大量工作。会话记录的机制仍然不完整。我们正在探索可以加速远程站点显示的方法,并构建一些工具来简化分布式资源的本地使用。安全性始终是永无止境的挑战。现在仍然存在少量调优机会:进一步减少引导时间,在投影仪上进行缩放以便满足工作站显示器可能提供的1900x1200分辨率,使用NX或其他技术对VNC进行加速或作为替代,VoIP功能的集成,协作过程中的创新,并且自动向对等站点外发VPN,这些都是我们希望开展的项目。

对科学和工程的重要影响

最令人感兴趣的是两个特性,与其说是技术特性,不如说理论特性。首先,可用性有助于将学生的注意力放到计算内容上,而不是计算技术上。借助简单、统一而且灵活的计算环境,人们就不再需要像以前一样花费时间来记忆非常深奥的命令行或“向导”序列。学生可以集中精力研究自己的工作,而不会因系统问题而分心,例如主机被恶意软件感染、分区坏损、身份验证和同步方法配置不当以及行话“silo”目前所引发的问题:数据被锁定在某个特定的机器或进程中,无法跨边界进行通信。强调使用简单可靠的方法可以获得与众不同的最终用户体验。

另外,计算环境适当的通用化以及对开放源码产品深思熟虑的依赖,使科学家和工程师可以更加轻松地计算其寻求的结果,并且其他人通过其使用的方法可以再现并检查该结果。在UCM和其他平台上,开始看到这种优势:科学家认为不仅应该共享和发表自己的理论、评论或数据,还要共享生成这些结果的计算过程和显示内容。

当然,很多相同的原理也可以应用到更常用的自动化办公环境。例如,请考虑国家范围的保险公司或银行。当然,它需要使自己的数据严格保密,并且通常对于在Internet上发布这些数据并不感兴趣。然而,使用简单的标准组件可以帮助实现大多数组织共有的两个主要目标:

  • 易用性可以减少培训时间并消除一些苛刻途径。使用类似于本文介绍的桌面场来支持代理或一线工人时,便于员工在办公桌之间移动办公。新员工可以更快地变成熟练工人,电力供应不足或某个员工休假时,将工作移交给一台新计算机或同事也变得更加简单。

  • 计算的透明度也有助于实现Sarbanes-Oxley和其他商业准则要求公司实现的各类安全性和审计工作。简单流程更容易理解,并且更难弄虚作假。

不管是在商业环境还是在学术环境中,“效用计算2.0”都可能出人意料地使计算机的反应更迅捷并且更易于使用。那些经常看到我们所采用的技术的开发人员,发现这些技术微不足道,但是经过适当的组合,可以在可用性、安全性和可靠性方面获得大量收益。

免责声明

我们工作的一些细节目前尚未公开发布,在上面的几个例子中,我们简化了对相关细节的解释。举例来说,主机都是标准的Mini-Box单元;实际上,每个主机都需要进行标准的BIOS重新配置,以允许网络引导。不过,随着我们的不断改进,这些技术将越来越透明。

特别感谢UCM工程学院的GermanGavilan和AssistantDean。

上一页[1][2][3]