现在运行Windows NT服务器确实是一件勇敢亦可能是愚蠢的事情,因为微软已经不再为NT提供技术支持。随着业务量的激增和应用程序的不断升级,Windows 2000也逐渐变成了老的产品,快要寿终正寝了。如果你工作在一家仍然在运行NT或2000的单位里(当然这样的单位在世界上是很多的),不管怎样,你将不得不迁移到另一个操作系统上去,例如,Linux系统。
你首先考虑要将部分或全部的数据中心服务器迁移到Linux中去,这是有很多原因的,在此我们不展开讨论。但是你如果决定要转到像Linux这样的开源系统上来,确实需要一些更好的方法。
计划-选择发布版本
首先在决定从事一个迁移项目之前,你必须对你的迁移制定初始计划,这听起来虽然有些落于俗套,但是它会影响迁移的成功或失败。例如,你是计划只将Windows NT文件以及打印服务器、域控制器移植到Linux中,还是要更长远地将整个的IT架构(包括Web和应用程序服务器及用户桌面)移植到Linux呢?
初始阶段,描绘一个清楚的蓝图是非常关键的。它应包括三部分内容,也就是,将要更换什么服务器,其目前所所执行的任务是什么以及用Linux将会怎样完成这些任务。
对这些问题的回答加上目前IT人员的操作技巧有助于决定该采用Linux的哪一个发布版本。如果工作人员已经对一个特定的以服务器为核心的Linux发布版本有了广泛的知识,这可能会影响你的选择。否则,你会选择一个有着良好供应商支持的发布版本。
对迁移进行成本和风险估计
下一步便是对迁移成本和时间量程进行大约的估计。最好的方法是将迁移分解为尽可能多的可管理的若干任务,然后为每一个任务估算时间和成本。分解和描述任务越详细,估算就可能越准确。当然,在以后的测试阶段,这些估计将被所生成的数据检查和更新。
将NT的文件及打印服务器迁移到Linux的Samba将会是非常轻松的事情,而且节约在客户访问许可(CALs)的潜性成本也是巨大的。正如加利福尼亚的Linux迁移顾问公司Versora的总设计师Nick Lassonde所说,一个配置恰当的Samba服务器通常要比一个Windows NT或2000服务器要快很多,而客户端感觉不到两个系统的差异性。
然而,需要谨慎注意如下的风险:
“最普遍的风险来自于映射安全,因为在默认情况下,大多数的Linux发布版本只支持POSIX安全和不完整的访问控制表(ACLs),然而大多数的现代文件系统支持的是ACLs,因此这个问题是可以解决的。”,这是来自Nick Lassonde的警告。
你可能会想到配置你的文件服务器来验证域控制器,有一些插件来实现这一点。“要熟悉Samba的Vampire命令,”Lassonde建议,“它允许用户从NT域控制器到Samba的自动迁移。”换句话说,它吸收了NT服务器的精华,从而使得“Samba 像NT4的服务器一样无差错地工作,Samba4 要成为一个活动目录域控制器还要走很长的路,因为它还不是特别稳定的产品。”
对于活动目录域来说,设置一个基于Linux的选择方案是可行的,IBM 的软件团队建议设定一个Stack,使其包含运行在Linux 上的XAD(来自于PADL),LDAP和Kerberos 5.0,从而作为基于Windows 2000域的活动目录的一个可行的选择。
迁移项目
如果你的项目包含了更多的数据中心需要迁移到Linux,下一步便可能是将电子邮件和消息服务从Microsoft Exchange移到象OpenXchange之类能被传统的微软桌面客户所访问的软件,或者是Outlook 客户端可以访问的IBM的Lotus Domino系统。
而Web和应用程序服务器的迁移就不那么简单了,必须要问几个问题:
服务器端用的是什么语言(如ASP,ASP.NET及PHP)?这些语言在Linux下能使用吗?如果不能的话,你需要找一个第三方的解决方案或是将应用程序转化到Linux上。
与服务器连接的其它机器怎么办?哪一个先迁移?例如,你是先将数据库迁移到Linuxh中去呢,还是留在Windows中?
需要哪些安全选项呢?你需要新服务器上设立SSL(加密套接字协议层)连接吗?用户身份验证是本地的还是对于域中的intranet用户进行验证?
最明显的选择是从Microsoft的IIS Web服务器移到Apache Web服务器(据Netcraft宣称其占Web服务器市场的65%),以及基于Linux的数据库,这包含DB2,Ingres,MySQL,Orcal,PostreSGL等。
Linux迁移最困难的一部分就是移植应用程序。如果应用程序移植是你项目的一部分,那么可以采用第三方的解决方案。这方面有两个例子,一个是通过Sun Java System Active Server Pages运行的ASP页面,另一个是使用Visual Mainwin的ASP.Net页面,它提供了应用程序绑定的并在Linux上运行的Windows库。
将应用程序从一个环境转换到另一个环境的工具很少值得采用,Lassonde说,“绝大数情况下,将一个应用程序从一种语言转换到另一种的代价几乎与重写应用程序是一样的。”他建议将那些应用程序留在一个ISS服务器上,以后再用一种中性的语言(例如Java)重写或是转换它们,这样就可以更轻松地实施那些将来的变化。
不管迁移项目的范围有多大,在你开始之前(特别是这是你尝试的第一次迁移),请记住,不管项目看起来有多么简单,不管你认为准备的多么周全,几乎可以保证问题可能会突然出现。极有可能别人以前碰到了相同的问题,因此一定要充分利用公共论坛的支持,并考虑雇佣一个有经验的迁移顾问。如果他或她有点儿出色,可能先前已经碰到过你的问题,并且能够用几分钟或几小时提供解决技术难点的方案。要不然,你可能会花几天或几星期来克服这些困难。