内容


IBM 开放协作客户机解决方案,第 3 部分

技术规划

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: IBM 开放协作客户机解决方案,第 3 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:IBM 开放协作客户机解决方案,第 3 部分

敬请期待该系列的后续内容。

编辑注:本文是分 5 部分的系列文章的第 3 部分。请阅读本系列中的其他 developerWorks 文章:“IBM 开放协作客户机解决方案:概述”、“IBM 开放协作客户机解决方案:针对桌面迁移的组织规划和用户分类”、“IBM 开放协作客户机解决方案:把业务应用程序迁移到 Linux 桌面” 和 “IBM 开放协作客户机解决方案:IBM 开放虚拟客户机的体系结构决策和执行选项”。

客户机迁移规模很大,每个客户机系统可能有独特的情况,迁移会直接影响用户,这些因素都使客户机迁移很有挑战性。本文的第 2 部分介绍了针对桌面迁移的组织规划和用户分类。第 3 部分讨论下一个步骤:技术规划。

首先评估 IT 环境和一般基础结构,尤其是基础结构服务。然后,定义首选的 Linux 发行版、应用程序的迁移和系统管理。最后,考虑 Linux 桌面的部署,包括迁移后任务和要实现的支持结构。

本文基于 IBM® Redbooks® “Linux Client Migration Cookbook, Version 2: A Practical Planning and Implementation Guide for Migration to Desktop Linux” 的技术规划部分,并增加了许多实践经验。如果希望进一步研究客户机迁移过程,建议您阅读这份 IBM Redbooks。

评估基础结构

为了进行有效、经济且高效的 Linux 客户机迁移,必须把新的 Linux 客户机集成到企业的现有基础结构中。对现有基础结构的分析必须考虑以下方面:

  • 网络基础结构的拓扑是什么样的?(回答这个问题需要了解本地和远程连接的体系结构概况,包括带宽和使用的协议)。
  • 客户机要连接到哪个网络基础结构?
  • 为了访问基础结构,在客户机上要安装哪种网络?
  • 客户机要使用服务器上的哪些服务,以及它们如何连接这些服务?(服务可以提供文件或打印服务、DHCP、Web 内容、动态内容等)。
  • 客户机要连接到哪些数据库?它们使用什么技术连接数据库?原生客户机、API、消息队列还是直接数据库访问?
  • 最后,客户机要访问哪些大型机?它们使用什么类型的连接访问大型机?原生客户机、Web 接口还是 API 连接?

图 1 给出一个基础结构分析示例,在这个网络中客户机主要使用邮件消息传递。

图 1. 体系结构概况示例
体系结构概况示例
体系结构概况示例

与现有的网络服务集成

在评估 Linux 客户机的基础结构之后,要规划客户机与现有网络服务的集成;也就是,考虑如何把 Linux 客户机合并到基于 Microsoft® Windows® 的现有网络环境中。

准备环境

我们来讨论在还未迁移后端服务器的情况下的 Linux 客户机迁移。通常情况下,可以在以下四种环境中执行迁移项目:

  1. NT4 域,包含 Microsoft Windows NT® 4.0 Primary Domain Controller (PDC) [以及 Backup Domain Controller (BDC)]
  2. Active Directory 域,包含 Microsoft Windows 2000 或 2003 服务器
  3. NT4 域,包含运行 Samba PDC 和 BDC 的 Linux
  4. 其他基于域的非 Windows 环境

在当今的网络环境中广泛使用第三种环境,在这种环境中同时存在运行 Samba 的 Linux 和 NT4l。从第一种环境迁移到另一种环境相当困难,因为 Microsoft Windows NT 4.0 已经过时了。在一般情况下,以下因素可能迫使我们主要关注第一种和第二种环境:

  • 它们是纯粹的 Windows 环境。
  • 大多数域符合这个模型。
  • 具备把 Linux 客户机加入 Samba 域所需的信息。

Samba 是集成 Linux 客户机与 Microsoft Windows 的最常用的协议/工具。它是一个基于 Server Message Block 协议的 UNIX® 应用程序,Microsoft Windows 使用这种协议提供文件和打印网络服务。

Microsoft Windows 域中的身份验证

现在讨论在现有的 Microsoft Windows 域中为 Linux 客户机规划身份验证时涉及的技术问题。在 Microsoft Windows 域中进行身份验证时,可能涉及以下场景:

  • 网络服务单点登录 (SSO),在这个场景中用户只有一个用户名/密码组合
  • 用户通过身份验证访问网络上的共享文件或打印机
  • 通过单一窗口管理用户,实现更好的用户管理

目前,在 Microsoft Windows 域中进行身份验证有多种方法。下面讨论这些方法的优点和缺点:

  • Samba/winbind,不改变现有的基础结构。这种方法的优点是不需要改变域,并集中地维护用户及其凭证。不需要在本地创建用户。缺点是 winbind 的可伸缩性不佳,一些实现要求为用户创建本地映射,每个客户机上的本地映射可能不一样。

    使用 winbind 分隔符可以影响客户机上运行的大多数应用程序。分隔符是 Linux 用户名中分隔域名和用户名的一个字符。例如,AD1234+Administrator 是用户 administrator 在域 AD1234 中的 Linux 用户名,其中的加号 (+) 是 winbind 分隔符。

  • LDAP 连接到经过修改的 Active Directory。这种方法的优点是,LDAP 是连接 Active Directory 的通用协议,集中地把用户映射到 uid 和 gid,这个任务在 Active Directory 中完成。缺点是必须修改 Active Directory 的模式,在其中包含 UNIX 风格的信息,比如表示用户的 uid 和表示组的 gid。
  • LDAP 连接到同步的 Active Directory。这种方法的优点是,LDAP 是连接 Active Directory 的通用协议,集中地映射 uid 和 gid。缺点是必须对这两种不同的技术进行同步。

注意,Kerberos 是一种免费软件,它使用 Active Directory 提供 Samba 服务器的功能和原生身份验证。

总之,可以使用 Samba、Kerberos、winbind 和 LDAP 在 Microsoft Windows 域中进行身份验证。

使用域名共享文件

可以使用 mount 命令或 smbmount/mount -t cif 命令从 Linux 客户机访问共享文件夹。但是,手工挂载共享文件夹需要登录信息,这会导致以下问题:

  • 在用户登录 Microsoft Windows 时会自动地识别共享文件夹,他们不习惯执行手工挂载。
  • 要想在登录时自动地挂载共享文件夹,需要手工编辑 /etc/fstab 文件。

可以通过设置 Pluggable Authentication Module (pam_mount) 避免这些问题,这个模块有助于启用在登录时自动地挂载。但是要记住,pam_mount 模块还不太成熟,所以在实现它之前应该进行充分的测试。

域中的打印服务

几乎所有 Linux 发行版都包含 Common UNIX Printing System (CUPS)。因此,通过在客户机上结合使用 CUPS 和 Samba,可以在现有的域打印机上进行打印。但是,当计划在 Linux 客户机上使用 CUPS 在现有的打印机上进行打印时,要考虑以下方面:

  • CUPS 和 Samba 集成。一定要检查 Samba 是否是 CUPS 后端的组成部分。
  • 打印机和身份验证。有时候,域中的打印机可能是共享的资源,需要先进行域身份验证,然后才能使用它们。但是,这种身份验证会导致在多个 CUPS 配置文件中暴露密码。通过使用不需要身份验证的打印机,或者设置一个只用于打印的特殊用户,可以避免这个漏洞。
  • 打印服务器与直接打印。在使用 CUPS 时,可以使用域打印服务器,也可以直接向打印机的网络接口打印。通常情况下,如果域中的所有客户机都使用打印服务器,Linux 客户机最好也这么做。
  • CUPS 驱动程序。在寻找打印机时,既希望为老式打印机找到合适的驱动程序,又希望选择 Linux 客户机能够无缝地使用的新打印机,应该在这两个目标之间取得适当的平衡。

桌面的标准化

标准化一方面会降低灵活性和选择的自由度。另一方面,它有助于降低成本,形成可预测的桌面设置,反映公司的风格(如果需要的话)。标准化桌面(包括标准的应用程序集)能够节省支持和许可证成本。

Linux 的最大优点之一是灵活性和选择的自由度。Linux 是开放源码的免费平台,可以对它进行各种定制,从改变背景图像直到代码级修改,这是 Microsoft Windows 或 Apple Mac OS 等专有操作系统远远不及的。另外,Linux 提供许多能够限制系统的功能,所以可以方便地建立和维护标准化版本。

桌面标准化影响的远不只是用户界面,下面详细讨论。

Linux 发行版

标准化中最重要的部分是选择 Linux 发行版。如果选择了 Novell SUSE 或 Red Hat 提供的企业 Linux 发行版,就可以直接选择对应的桌面 Linux 发行版;也就是,Novell SUSE Linux Enterprise Desktop (SLED) 10 和 Red Hat Enterprise Linux (RHEL) 5 Desktop(Novell 和 Red Hat 都是 IBM 业务伙伴)。

在选择 Linux 发行版时,必须评估以下方面:

  • 这个发行版能够降低多少成本?
  • 这个发行版提供哪些选项?
  • 发行商支持这个发行版的寿命有多长?
  • 这个发行版的稳定性和技术成熟度如何?
  • 这个发行版提供哪些特性,比如文件系统和驱动程序支持?
  • 这个发行版附带哪些应用程序?
  • 这个发行版能够提供其他应用程序和工具吗?
  • 这个发行版能够方便地与后端系统集成吗?

桌面环境及其外观和感觉

与其他操作系统不同,Linux 提供称为窗口管理器的多种桌面环境,其中最流行的是 GNU Network Object Model Environment(GNOME 桌面环境,或简称为 GNOME)和 K Desktop Environment (KDE) 等。

这些窗口管理器采用稍有不同的方式,因此提供不同的基本外观和感觉及特性。环境在某种程度上可以组合在一起,这意味着如果安装了基本库,在一个环境中就可以使用另一个环境提供的工具。但是,不建议这么做,因为这不便维护。另外,这会导致更大的映像,可能会影响后续的部署。

GNOME 和 KDE 是成熟的产品,提供了定制桌面图标、应用程序集和应用程序菜单所需的所有功能,支持以下特性:

  • 主题
  • 国际化
  • 帮助残疾用户的可访问性
  • 基本操作系统,直至管理任务

限制和增强

Linux 本身和窗口管理器还能够限制系统,隐藏不需要的功能。Linux 衍生自 UNIX,而 UNIX 的安全性非常好,所以 Linux 也是很安全的系统,很容易限制 Linux 系统。GNOME 和 KDE 也支持轻松地限制系统,甚至可以把系统限制到 kiosk 的水平。但是要注意,在 kiosk 系统中只能以全屏模式运行一个应用程序;不能同时使用其他图形化应用程序。

低层标准化

除了用户界面和应用程序集的标准化之外,还可以考虑对其他方面进行标准化,比如磁盘布局、分区和使用的文件系统。

考虑 ext2、ext3、ext4 和 reiserfs 等文件系统是很重要的,因为它们在以下方面具有不同的性质:

  • 日志特性
  • 支持的最大分区大小
  • 支持的最大文件大小
  • 性能和可伸缩性
  • 恢复选项

还有一些特殊的文件系统,比如 crypts 可以对整个分区进行加密,适合存储机密数据或个人数据。

硬件级标准化

还应该在硬件级进行标准化(这独立于迁移本身),从而尽可能减少所需的硬件支持。例如,在迁移之后,IT 团队可能只支持两个桌面 PC 机型和四个笔记本机型。

执行硬件标准化的另一种方法是对特殊类型的客户机系统上的某些用户组进行标准化,比如:

  • 瘦客户机。这种客户机是一直连网的微型 PC,只包含基本的操作系统和很少几个显示组件,比如浏览器或终端服务器客户机应用程序。不在本地运行任何业务应用程序。微型 PC 常常集成在显示器内。
  • 富客户机。这种客户机至少会定期连网,其中在本地安装了不需要永久网络连接的应用程序,但是为了进行同步和更新它们有时候要连接服务器组件。IBM Lotus® Notes® 和 IBM Lotus Expeditor 就是这种客户机。
  • 胖客户机。这种客户机能够长期离线,所有应用程序都安装在本地。常常能够通过网络之外的其他方式获取数据和执行更新。

图 2 以图形方式对比不同客户机类型的特性。

图 2. 瘦、富和胖客户机的对比
瘦、富和胖客户机的对比
瘦、富和胖客户机的对比

所有标准化都会影响目标基础结构的部署和可管理性。因此,在技术规划阶段一定要仔细权衡所有选项,做出明智的决策。

客户机管理规划

客户机管理成本是一个非常重要的因素。下面概述高效地管理 Linux 客户机的方法,主要关注在初始部署之后集成更多客户机、更新客户机的操作系统和应用程序、远程管理以及备份。还提供一些管理企业 Linux 发行版的示例。

在网络中添加和替换客户机

要想在初始部署之后成功地添加新的 Linux 客户机,或把现有的客户机迁移到 Linux 上,就需要有最新的部署映像。在替换客户机时,必须考虑以下方面:

  • 主机名。如果新客户机使用新的主机名,就必须在后端系统中删除以前的主机名。如果新客户机使用老系统的主机名,就要判断是否可能导致问题,比如在资产管理方面。
  • 配置信息。必须把配置文件从老客户机转移到新客户机上。
  • 业务个人数据。必须把业务个人数据迁移到新客户机上。

操作系统更新

生产环境中客户机的操作系统必须符合安全标准,因此必须包含最新的更新和安全补丁。总的来说,有三种更新客户机的方法:

  • 完全自动化。自动处理所有与操作系统相关的更新。这种更新策略的优点是,所有客户机总是最新的,不需要用户交互。强制应用所有更新的缺点是,对于网络带宽有限的移动用户,可能影响用户体验。
  • 半自动。只强制应用重要的操作系统更新。对于所有其他更新,通知用户,用户可以手工触发更新。这种更新策略的优点是,用户可以选择是否应用不重要的更新,从而降低网络负载,同时系统总是会应用重要的补丁。缺点是客户机应用的更新级别不一致。
  • 由用户触发。用户接收所有更新的通知,由用户决定是否应用更新。这种策略会导致客户机的更新级别非常不一致,而且因为 Linux 发行版由许多相互独立的组件组成,所以会导致各种各样的更新级别组合。

更新策略的另一个因素是客户机更新服务器的所有者。一般可以选用两种方法:

  • 由发行者拥有。发行版所有者或社区管理更新服务器。这些更新服务器提供不同的发行版,可以把服务器的维护外包,包括当前的软件状态、更新和补丁。因为在您的企业之外实现发行版补丁和更新,应该确保服务器的所有者是可信的组织。
  • 由您的企业拥有。您的企业拥有并维护更新服务器。您完全控制服务器的状态,所以能够先测试更新,然后再把它们放在更新服务器上,还可以断开服务器与 Internet 的连接。当然,完全控制也意味着要承担运行更新服务器的成本和责任。

大多数发行版都提供帮助更新客户机的工具。例如用于企业发行版的 Novell ZENworks Linux ManagementYaST。对于 Red Hat,可以使用 Red Hat Network's satellite architecture 和 kickstart。

另外,还可以使用开放源码工具,比如用于 Debian 的 apt (Advanced Packaging Tool) 和用于基于 RPM Package Manager 的发行版的 yum (Yellow dog updater, modified)。

应用程序更新

可以作为操作系统的组成部分处理应用程序更新,也可以单独处理。如果把它们包含在操作系统中,可以应用前一段中讨论的考虑因素。如果单独处理,可以选用以下方法之一:

  • 基于脚本的更新。脚本可以从不同的网络服务器下载更新。实际上,有专用的应用程序提供更新脚本。
  • 基于包的更新。如果更新组合为包,就可以通过 apt 或 yum 处理它们。
  • 完整客户机交换。如果更新接近客户机的大小,那么交换完整的客户机可能更合适。

更新应用程序可能会改变程序调用和菜单结构。这些变化应该尽可能少影响用户的生产力。因此,应该在测试用例集中测试菜单结构的稳定性和桌面链接的有效性。

实验性迁移常常先比较基于 Linux 的客户机和现有客户机的功能。功能性检查之后,可以紧接着进行易用性检查。因为只有少量客户机参与实验性迁移,所以很容易进行手工更新。尽管如此,仍然建议在实验性迁移中包含更新策略,以便测试选择的更新策略。

远程管理

有两种远程管理方法:

  • 前瞻式。监视客户机,在问题产生损害之前发现问题。例如,对客户机状态的监视可以主要关注剩余磁盘空间、安全状态或资产管理方面的许可证问题。有许多种监视产品,包括 Nagios 等开放源码产品和 IBM Tivoli® Monitoring 等企业级工具。
  • 反应式。当发生系统或应用程序故障时管理客户机。Linux 发行版提供用于远程管理的多种工具。标准的远程管理机制是 ssh,与 rsh、rlogin 或 Telnet 不同,ssh 保证可靠的身份验证。通过使用 ssh,管理员可以轻松地运行脚本来分析客户机并应用补丁,还可以收集安全性、健康状态或资产管理检查所需的数据。还可以使用 VNC 和 FreeNX。

当然,可以结合使用这些方法。例如,为了进行适当的许可证管理,可以使用前瞻式方法监视安装的应用程序。可以使用反应式方法管理各种客户机问题,比如对主目录结构的意外用户操作。

备份

瘦客户机不提供对本地设备的写访问,例如它们可能只提供 Web 应用程序,所以不需要备份。但是,富客户机和胖客户机有不同的备份需求:如果保存业务个人数据的存储设备是从集中管理的数据存储挂载到客户机上的,那么只需要更新配置文件和缓存。如果业务个人数据存储在本地,就必须在备份中包含用户的可写目录。还可以考虑包含桌面配置文件。

可以选用许多工具来实现备份战略,包括开放源码工具(比如用于备份和恢复完整分区的 Partimage)和商业解决方案(比如 IBM Tivoli Storage Manager)。建议在实验性迁移中包含备份战略的实现。

部署新的客户机

在规划从给定的客户机系统到 Linux 客户机的实验性迁移时,目标是证明选用的迁移方法能够高效地管理客户机在企业中的部署。对于客户机本身的部署,必须完成以下任务:

  • 选择部署方法
  • 决定如何更新客户机和更新的频率
  • 对客户机进行个性化定制

部署方法

有两种部署方法:

  • 基于分区或磁盘映像的部署。可以使用现有的企业部署工具或 Partimage 等开放源码工具部署这些映像。基于映像的部署方法的优点是,可以非常简便地包含所有定制风格。缺点是所有定制必须在部署映像之后实现,例如通过执行特殊的脚本实现不同用户组所需的定制。
  • 使用发行版提供的工具执行基于包的部署。一些发行版提供了执行自动化无人值守安装的机制。Red Hat 使用 kickstart,这种机制使用应答文件控制 anaconda(Red Hat 安装程序)。Novell 提供 autoyast,这种机制可以根据配置文件自动应答基于 YaST 的安装过程。这两个工具都使用 RPM 包。

    这种方法的优点是,所有额外软件和配置都包含在 RPM 中。缺点是必须花时间构建包并解决软件依赖性。

更新客户机

两种不同的客户机部署方法导致不同的更新方法:

  • 更新基于映像部署的客户机。如果选择基于映像的更新过程,就必须确保及时更新映像和客户机。如果客户机的所有软件都打包为 RPM,那么可以使用发行版提供的方法更新客户机。如果不是,就必须编写脚本并管理更新在客户机上的安装,从而满足应用程序特有的更新需求。
  • 更新基于 RPM 的客户机。对于通过基于安装的部署方法(因此基于 RPM 打包软件)部署的客户机,可以使用发行版提供的更新机制。

对部署的客户机进行个性化定制

必须根据个人需要调整各种信息,比如:

  • 必须分配主机名(如果不是动态分配的话)。
  • 必须分配 IP 地址(如果不是动态分配的话)。
  • 必须挂载特定的远程文件系统。
  • 必须配置特定的打印机。
  • 必须配置特定的应用程序。
  • 必须迁移业务个人数据。

个性化过程在安装之后进行。每个安装后过程都要求访问所需的数据。可以通过首次引导过程使用这些数据,也可以通过在用户首次调用应用程序时触发的脚本使用它们。首次引导只运行一次并把它的结果写到文件中,从而避免第二次启动。这个过程的优点是它在第一次登录之前执行,可以在此期间创建账户。

另一种方法是执行针对特殊应用程序的脚本,从而定制桌面。这种方法需要登录。

如果对支持从 Microsoft Windows 自动迁移到 Linux 的其他工具感兴趣,可以研究一下 Versora Progression Desktop

结束语

本文介绍了在企业中引入 Linux 客户机和规划实验性迁移时涉及的最重要的技术问题。我们介绍了许多规划选项,并讨论了它们的优缺点。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus, Linux
ArticleID=407778
ArticleTitle=IBM 开放协作客户机解决方案,第 3 部分: 技术规划
publish-date=07102009