级别: 中级 Martin C. Brown (questions@mcslp.com), 自由作家兼顾问, MC 2008 年 4 月 15 日 在典型的 UNIX 或 Linux 计算机操作过程中会创建许多日志文件。其中一些日志文件包含有用的信息;还有一些可帮助您进行容量和资源规划。本文重点介绍不同日志文件中记录的基本信息、它们的位置以及如何使用该信息确定系统的运行情况。 典型的 UNIX 管理员拥有一套经常用于辅助管理过程的关键实用工具、诀窍和系统。有一些重要的实用程序、命令行以及脚本可用来简化各种处理过程。其中一些工具来自于操作系统,而大部分的诀窍则来源于长期的经验积累和减轻系统管理员工作压力的要求。本系列文章主要专注于最大限度地利用各种 UNIX 环境中可用的工具,包括简化异构环境中的管理任务的方法。 所有系统都会生成不同数量的日志文件,这些文件用于跟踪和记录关于计算机的不同信息。这些文件的内容和效用因系统而异,但是文件提供的核心信息通常是一致的。 例如,所有的 UNIX 和 Linux 计算机都使用 syslog(操作系统、应用程序和服务用来记录信息的通用日志记录系统)来记录信息。syslog 一般会记录大量的数据,其中包括由不同硬件和系统报告的登录、性能信息和故障。除 syslog 外,系统还有用来记录关于计算机及其操作信息的各种服务、环境和应用程序日志。 尽管分析和提取日志文件内容的信息可能非常耗时和复杂,但是不能忽略这些日志中信息的价值。日志文件可以提供关于潜在问题、错误和安全漏洞等方面的提示,如果使用正确,甚至可以提供关于服务器负载和容量方面的警告。 2008 年 4 月 11 日 在本文中,了解一种基于软件产品线原理来设计面向服务的应用程序的方法。探索面向服务的软件产品线(Service-Oriented Software product line,SoSPL)方法,此方法将 SPL 可变性分析技术应用于 Web 服务,以设计基于服务的自定义应用程序。了解软件产品线(software product line,SPL)如何促进不断发展的系统系列的敏捷和灵活的应用程序开发。了解采用 SPL 原理如何提供一种系统的方法来分析和设计面向服务的应用程序。 面向服务的体系结构(Service-Oriented Architecture,SOA)已作为一种基于标准的计算模型而出现,用于设计、构建和部署灵活的分布式软件应用程序。SOA 极其强调松散耦合的设计方法,其中具有不同计算平台的异构系统可以协作和发展,而不需要对核心体系结构作出重大更改。服务被设计为自包含的模块,可按需要进行广告、发现、组合和协商。 软件产品线(Software product line,SPL)是软件系统的系列,它们共享公共功能,但是每个成员具有可变的功能。SPL 的主要目标是通过利用所有开发生命周期阶段中的可重用资产,从而实现敏捷和高速的成员系统开发。此目标类似于 SOA 的目标。 尽管存在与 SOA 相关的广泛学术和行业活动,但是不存在用于分析与设计面向服务的应用程序的端到端系统方法。另一方面,SPL 是一个具有相当多方法论支持的既定领域。当我开始使用 SPL 时,组合 SOA 和 SPL 将是构建不断发展的复杂系统的强大方法这一事实就变得非常清楚了。然而,只有诸如 CBDI Service Oriented Architecture Practice Portal(请参见参考资料)等少数组织提到了 SOA 和 SPL 之间的相似性。某种组合方法可以帮助将面向服务的计算提升为主流。 本文探索面向服务的 SPL 方法中所需的跨越所有开发生命周期阶段的活动——面向服务的软件产品线(Service-Oriented Software Product Line,SoSPL)方法。此类方法可以通过整合 SPL 原理来提升 SOA 的技术发展水平。 2008 年 4 月 10 日 reiserfs 对于小文件的存取速度非常高,这取决于它所采用的精美的设计:reiserfs 文件系统就是一棵动态的 B 树,小文件和大文件的尾部数据都可以通过保存到叶子节点中而加快存取速度。本文将探讨 reiserfs 的设计和实现内幕,并从中探讨恢复删除文件的可能性。 reiserfs 是由 namesys 公司的 Hans Reiser 设计并开发的一种通用日志文件系统,它是第一个进入 Linux 标准内核日志文件系统。从诞生之日起,reiserfs 就由于其诸多非常有吸引力的特性而受到很多用户的青睐,迅速成为 Slackware 等发行版的默认文件系统。它也一度也是 SUSE Linux Enterprise 发行版上的默认文件系统,直到 2006 年 10 月 12 日 Novell 公司决定将默认文件系统转换到 ext3 为止。尽管其主要设计人员 Hans Reiser 由于涉嫌杀害妻子遭到指控而入狱,从而导致他不得不试图出售 namesys 公司来支付庞大的诉讼费用,但是 reiserfs 已经受到广大社区开发人员和用户的极大关注,有很多志愿者已经投入到新的 reiserfs 4 的开发工作中来。本文中的介绍都是基于最新的稳定版本 3.6 版本的,所引用的代码都基于 2.6.23 版本的内核。 reiserfs 最初的设计目标是为了改进 ext2 文件系统的性能,提高文件系统的利用率,并增强对包含大量文件的目录的处理能力(ext2/ext3 文件系统中一个目录下可以包含的子目录最多只能有 31998 个)。传统的 ext2 和 ufs 文件系统都采用了将文件数据和文件元数据分离开保存的形式,将元数据保存到索引节点中,将文件数据保存到单独的磁盘块中,并通过索引节点中的 i_block 数组利用直接索引和间接索引的形式在磁盘上定位文件数据。这种设计非常适合存储较大的文件(比如20KB以上),但是对于具有大量小文件的系统来说就存在一些问题。首先在于文件系统的利用率,由于 ext2 会将文件数据以数据块为单位(默认为 4KB)进行存储,因此对于存储只有几十个字节的文件来说,会造成空间的极大浪费。另外由于在读取文件时需要分别读取文件元数据和文件数据,加上多读取数据块的开销,ext2 文件系统在处理大量小文件时,性能会比较差。为了获取最好的性能和最大程度地利用磁盘空间,很多用户会在文件系统之上采用数据库之类的解决方案来存储这些小文件,因此会导致上层应用程序的接口极不统一。 |
2008 年 4 月 15 日 在本文中,我们将介绍 HACMP 在配置资源组时候需要完成的内容。 HACMP 提供了下列类型的资源组:
级联资源组定义能够控制该资源组的所有节点的列表,然后通过为每个节点分配接管优先级,从而指定集群节点控制该资源组的优先权。当故障转移发生时,具有最高优先级的活动节点将获取该资源组。如果该节点不可用,则具有下一个最高优先级的节点将获取该资源组,以此类推(请参见图 1、2 和 3)。 图 1 初始配置中的级联资源组
2008 年 4 月 10 日 在本文中,我们将介绍 HACMP 在定义、配置节点以及配置节点之间连接的内容。 HACMP V5.1 引入了标准和扩展 SMIT 配置路径。 标准配置路径 标准路径允许用户容易地配置最常见的选项,例如:
在使用 Initialization and Standard Configuration SMIT 菜单下的选项时,可以通过几个步骤将集群的基本组件添加到 HACMP 配置。HACMP 配置是自动发现的,并用于为集群定义最常见的选项(请参见示例 1 和示例 2)。 2008 年 4 月 01 日 在本文中,我们将介绍一些基本的 HACMP 安装问题和各种安装过程。 注意:规划是成功的实现的一半,但是就 HACMP 而言,如何强调正确规划的重要性都不过分。如果规划做得正确,您可能会在以后某个时候发现自己陷入种种限制之中,而要摆脱这些限制可能是非常痛苦的经历。因此,请保持镇定从容,并使用产品附带的规划工作表;这些工作表对于任何迁移或问题确定情形或者对于为规划做文档记录都是非常有价值的。 HACMP 软件提供了一系列可用于使应用程序高度可用的功能。务必记住,并非所有的系统或应用程序组件都受到 HACMP 的保护。 例如,如果某个关键应用程序的所有数据都驻留在单个磁盘上,并且该磁盘发生了故障,则该磁盘就成了整个集群的单点故障,并且未受到 HACMP 的保护。在此情况下,必须使用 AIX 逻辑卷管理器或存储子系统保护功能。HACMP 仅在备份节点上提供磁盘接管,以使数据可继续使用。 这就是 HACMP 规划是如此重要的原因,因为整个规划过程中的主要目标是消除单点故障。当关键集群功能由单个组件提供时,就存在单点故障。如果该组件发生故障,集群没有提供该功能的其他途径,依赖该组件的应用程序或服务就会变得不可用。 还要记住,规划良好的集群非常容易安装,可提供更高的应用程序可用性,能够按预期执行,并且比规划不当的集群需要更少的维护。 2008 年 4 月 10 日 本系列描述并定义称为企业服务总线(Enterprise Service Bus,ESB)的面向服务的体系结构(Service-Oriented Architecture,SOA)模式,本文是其中的第一部分。 在此系列中,了解 ESB 如何适应 IBM SOA Foundation,Foundation 的其他部分如何与 ESB 相关,以及 ESB 的核心原则。此系列没有描述特定的产品或 ESB 实现,而是提供了一个公共的基础,以便了解和评估 ESB 如何能够帮助满足面向服务的解决方案要求。 除了最简单的解决方案以外,企业服务总线是所有基于面向服务的体系结构解决方案的核心组成部分。那么 ESB 究竟是什么呢?您可以在整个 IT 行业中找到许多定义。本系列文章从 IBM 的角度(或者更准确地说,是在 IBM SOA Foundation 的上下文中)定义企业服务总线。要从本系列中获得最大的价值,您应该首先阅读有关 IBM SOA Foundation 的内容。 本系列用抽象的术语讨论 ESB 并避免讨论产品细节;也就是说,本系列不讨论 IBM WedSphere ESB 产品或 ESB 模式的任何其他实例。这种与产品无关的方法可以提供一个广泛的基础,以便了解 ESB 为面向服务的解决方案带来了什么,以及评估作为此类解决方案组成部分的特定 ESB 产品和相关技术。本文为整个系列奠定基础,讨论 ESB 在 IBM SOA Foundation 中的定位,并描述 Foundation 的其他部分如何与 ESB 相关。特别是,本文将确定 ESB 的核心原则。最后,本文为您提供 ESB 的初步内部细节,并说明 ESB 如何实现这些核心原则。 Ricardo Olivieri (roliv@us.ibm.com), 软件工程师, IBM 2006 年 6 月 19 日 使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本。这篇更新的文章展示如何使用开源的 Drools 规则引擎让 Java™ 应用程序更适应变化。Drools 项目引入了一个新的本地规则表达式语言和一个 Eclipse 插件,使 Drools 比以前更容易使用。 要求施加在当今软件产品上的大多数复杂性是行为和功能方面的,从而导致组件实现具有复杂的业务逻辑。实现 J2EE 或 J2SE 应用程序中业务逻辑最常见的方法是编写 Java 代码来实现需求文档的规则和逻辑。在大多数情况下,该代码的错综复杂性使得维护和更新应用程序的业务逻辑成为一项令人畏惧的任务,甚至对于经验丰富的开发人员来说也是如此。任何更改,不管多么简单,仍然会产生重编译和重部署成本。 规则引擎试图解决(或者至少降低)应用程序业务逻辑的开发和维护中固有的问题和困难。可以将规则引擎看作实现复杂业务逻辑的框架。大多数规则引擎允许您使用声明性编程来表达对于某些给定信息或知识有效的结果。您可以专注于已知为真的事实及其结果,也就是应用程序的业务逻辑。 有多个规则引擎可供使用,其中包括商业和开放源码选择。商业规则引擎通常允许使用专用的类似英语的语言来表达规则。其他规则引擎允许使用脚本语言(比如 Groovy 或 Python)编写规则。这篇更新的文章为您介绍 Drools 引擎,并使用示例程序帮助您理解如何使用 Drools 作为 Java 应用程序中业务逻辑层的一部分。 2008 年 4 月 15 日 索尼的 PlayStation 3(PS3)能运行 Linux�,但是要运行得好,还需要做些调整。在本系列的第一篇文章中,Peter Seebach 介绍了 PS3 Linux 的功能和好处,解释了稍做调整就能解决的一些问题。 当索尼首次宣布 PlayStation 3 将能够直接运行 Linux 的时候,非常令人兴奋。最初,直接安装 Linux 会有些困难。PS 3 支持的安装程序运行自定义脚本,手工将 Fedora Core 5 或 6 安装 DVD 改造成使用特殊 PS3 内核运行的系统。人们花了许多时间来让其他系统(例如 Ubuntu)工作。Terrasoft 的黄狗(Yellow Dog)Linux 带有真正能在 PS3 上运行的图形安装程序,它就这种努力的成果之一。 随着时间流逝,许多事都已经发生了变化。现在能够将 Fedora 7 直接安装到 PS3 上,安装过程最难的部分就是,选择 PS3 的存储驱动器以便让它能够找到安装 DVD,还要记得在初始安装命令行中指定视频模式以便能够看到安装程序。 所以,在 PS3 上是能够运行 Linux 的。问题是目前运行得还不太好。如果将 PS3 作为便宜的 Cell 开发系统,那么您肯定会有点失望地发现:执行默认安装过程之后,在进入 shell 提示符之前就已经用去了数百兆甚至更多的交换空间。 本系列的三篇文章将 PS3 Linux 作为未来的开发环境。本文是这个系列的第一部分,介绍了特定于 PS3 的基本配置项,展示了如何有效地使用它们,并给出了一些可以改进性能或显示效果的建议技巧。第 2 部分和第 3 部分则深入介绍一些性能和调优问题,尽管这些问题适合于任何系统,但在 PS3 上应用时会特别有用,能够将 PS3 从一个概念证明演示变成真正能工作的系统。 |
||||||||||