收藏 分销(赏)

LINUX企业集群技术.doc

上传人:二*** 文档编号:4763936 上传时间:2024-10-12 格式:DOC 页数:615 大小:4.05MB 下载积分:5 金币
下载 相关 举报
LINUX企业集群技术.doc_第1页
第1页 / 共615页
本文档共615页,全文阅读请下载到手机保存,查看更方便
资源描述
介绍篇——Linux企业集群的属性 介绍 术语集群通常用于描述一个范围很大的分布式处理系统,但是那些在计算机工业中使用这个术语人还无法给出一个让人信服的定义,Gregory Pfister在他1997年编写的寻找集群[1]一书中用了超过500页尽力克服这个问题,它提出了下面简洁的定义: 集群是一种并行的或分散的系统: 由一系列互相连接的计算机组成 作为一个独立的统一的计算资源使用 让我进一步阐明我的意思,我通过描述它的属性和架构使用术语Linux企业集群。 IEEE强制集群计算任务 1999年,电子电气工程师研究所具有380,000名有声望的成员,IEEE创建了强制集群计算任务(TFCC),要了解详情,请查看http://www.ieeetfcc.org。在“集群计算白皮书”(2000)中,Thomas Sterling为TFCC编写了(http://arxiv.org/ftp/cs/papers/0004/0004014.pdf),描写了一个特殊类型的集群,叫做商品集群(commodity cluster)Sterling定义商品集群为“由一套独立的计算机和一个相互连接它们的网络组成的本地计算系统”,然后他象下面这样描写了商品集群的实现: 集群中的所有组件子系统都在一个单一的管理域中接受管理,通常存在一个单一的空间作为一个单一的计算机系统管理,计算机节点组成部分是商品架子(COTS),有能力完全独立于操作系统,一种正常的独立使用于主流工作负载和应用,节点可能包括一个微处理器或多个微处理器(对称多处理器配置SMP),网络连接使用COTS本地区域网络(LAN)或系统区域网络(SAN)技术,可能是分层次的或多个分隔的网络结构,集群网络是专门用于集成集群计算节点和隔离集群外部环境的,集群可能使用多个节点但是没有限制:高性能(保持性能不变)、高容量(作业吞吐量或进程负载)、高可用性(通过冗余节点实现)、或高带宽(通过增加磁盘和磁盘入口或I/O通道实现)。 Linux企业集群是一种商品集群,它通常运行任务重要的应用程序支撑起一个用户社区,Linux企业集群用户不需要坐在Linux工作站前,他们可以使用一个web浏览器、telnet客户端,或任意清楚如何与运行服务的集群节点进行通讯的客户端应用程序连接到集群。 Linux企业集群的属性 如果我们成功建立了一个可以用作“单一的统一计算资源”的系统,它使用“由本地计算机系统组成的一套独立的计算机并用网络相互连接它们”这样的技术,那么用户、开发人员、程序、网络设备和其他在网络上的服务器将不知道他们正在使用或与一个集群进行通讯。 因此,Linux企业集群基本的四个属性是: 用户不知道他们正在使用一个集群 如果用户知道他们正在使用集群,他们正在使用不同的、分散的服务器而不是一个单一的统一计算资源。 集群内的节点不知道它们是集群的一部分 也就是说,操作系统运行在一个集群节点上时不需要被修改,集群中的一个节点失效了并不影响集群内的其他节点。(每个集群节点是整体的或完整的 – 它可以被重新启动或从集群中移除而不对其他节点产生影响。) Linux企业集群是一个商品集群,因为它使用很少或没有特殊要求的硬件,并且能使用常规Linux操作系统,除了集群的成本低以外,而且对系统管理员也没有太多的要求,不需要他们学习全新的技术就能为一些基本服务进行常规的操作,如账号验证、主机名解析和邮件通信。 运行在集群中的应用程序不知道它们正运行在一个集群中 如果一个应用程序 – 特别是一个关键任务传统应用程序 – 运行在集群中时必需做修改,因此应用程序不在将集群作为一个单一的统一计算资源使用。 一些应用程序可以使用集群应用编程接口(API)[2]、消息传递接口(MPI)[3]或分布式对象编写,它们将保留一些但不是全部保留使用集群作为一个单一的统一计算资源的好处。但是多用户程序不应该编写成运行在一个集群内,如果集群是一个单一的统一计算资源的话。 在网络上的其他计算机不知道它们正在服务于一个集群节点 Linux企业集群内的节点必须能象其他正常的客户端计算机那样在网络上请求服务器,网络上的服务器(DNS、邮件、用户认证等)不应该改写[4]成支持来自集群节点的请求。 [1]这本书(和它的封面图形)的灵感来自微软的Wolfpack产品名字。 [2]如在第16章中讨论的分布式锁管理器。 [3]MPI是一个库说明书,它允许程序员开发可以共享消息的应用程序,甚至当应用程序正运行在不同的节点上时共享消息,因此一个精心编写的应用程序可以利用多个计算节点来改善性能。 [4]假设他们已经为一个多用户操作系统环境编写了在同一时间能运行多个实例的应用程序。 介绍篇——Linux企业集群的架构 Linux企业集群的架构 让我们使用Pfister的论述所有集群都应该扮演类似“一个单一的统一计算资源”来描述企业集群的架构,一个统一计算资源的例子是一个单一的计算机,如图1所示   图1:一个单一计算机的简单架构  如果我们用“全部相互连接的计算机集合”替换图1中的CPU,图就应该画成图2所示的样子。 图2:一个简单的企业集群架构 负载调度器替换了输入设备,共享存储设备替换了磁盘驱动器,打印服务器仅仅是输出设备之一,在我们描述如何建立它们之前让我们先简短地检查一下每个部分。 负载调度器 负载调度器位于集群用户和组成集群节点的“所有计算机”之间,负载调度器决定如何最好地分散横跨所有节点的入站工作负载。 在一个企业集群中,基于用户的业务构成了入站工作负载,当用户向集群发起一个连接时,如HTTP web请求或telnet连接,它们基于一个负载均衡方案被指派给集群节点(查看第11章)。 共享存储设备 共享存储设备充当企业集群的数据唯一仓库,如单一计算机内的一块磁盘一样,这个共享存储设备最重要的特色之一是它可以仲裁对数据的访问,因此两个程序同一时间不能修改同一数据块,这个特性在企业集群中特别重要,因为两个或更多程序可能正同时运行在不同的集群节点上,因此,企业集群在所有集群节点上必须使用一个文件系统以执行锁仲裁,也就是说,文件系统必须可以保护存储在共享存储设备上的数据,以预防两个应用程序同一时间都想独占访问同一数据(查看第16章)。 打印服务器 在这个例子中的输出设备仅仅是众多集群输出设备其中的一个 – 共享打印服务器,共享打印服务器和其他为所有集群节点提供服务的服务器被放置在集群之外,仲裁有争论的连接如打印者、传真线路等等,服务器仲裁连接,输出设备并不知道它们正在服务于集群节点,并且可以为网络通讯继续使用传统的客户/服务器模式,如我们将在下一章看到的,所有服务器为集群节点请求服务,被合并成一个单一的高可用的服务器对。 介绍篇——Linux集群节点管理器与无单点故障  2008-06-05 15:42  黄永兵译  51CTO.com  我要评论(0) · 摘要:《Linux企业集群》讲解如何在一个计算机网络中用有限的资源部署计算机,以及安装自由软件让计算机象一台服务器那样一起运行。本文具体讲解了Linux集群节点管理器与无单点故障。 · 标签:Linux  集群  节点管理  无单点故障  Linux企业集群的架构 · Oracle帮您准确洞察各个物流环节 集群节点管理器 集群外的服务器也可以做许多其他的事情,如: 为运行在集群内的应用程序充当许可证服务器 充当中心用户账号数据库 为所有集群节点提供其他服务如DNS和邮件 监视集群的健康状况 再说一次,运行在集群外服务器上的应用程序应该不需要修改以支持集群内的节点,也就是说,应用程序为客户端提供服务,集群节点不需要知道。 这些功能可以与一个高可用服务器对组成到一起,我们称之为集群节点管理器,集群节点管理器控制用户账号数据库(使用NIS或LDAP来为所有节点分配用户账号[5]),集群节点管理器监视集群的健康状况(使用Mon和Ganglia软件包,它们将在第4部分讨论),它还可以是一个中心打印假脱机程序(使用LPRng),集群节点管理器还可以使用传统的客户/服务器模式为集群提供许多其他服务,如发送传真。 Webmin和OSCAR软件包两者都有方法分配用户账号给所有集群节点,而不需要NIS或LDAP,但是这些方法仍然可以使用集群节点管理器作为中心用户账号数据库。 第17章末尾包括了对Hylfax的一个简短讨论。 无单点故障 我们可以通过讨论任何关键任务系统的基本需求来进一步描述企业集群架构:它必需无单点故障。 企业集群总是有下面的特性:集群内的任何计算机或集群正常操作依赖的任何计算机,可以在不重启全部集群的情况下被重新启动。 重启集群依赖的服务器而不影响集群的一个方法是为集群内的所有服务器建立高可用服务器对,我们的集群简图就应该重新画成下面的样子了,如图3所示。    图3:无单点故障的企业集群  这张图显示了两个负载调度器,两个打印服务器和两个共享存储设备服务于四个集群节点。 在本书的第二部分中,我们将学习如何用Heartbeat软件包建立高可用服务器对,第三部分描述如何建立高可用负载调度器和高可用集群节点管理器。(回想前面的讨论,集群节点管理器可用是为集群提供打印服务的打印服务器) 注意:当然,一个集群节点可能意外停机,也可能不能再执行它的工作,如果真发生了这种事情,负载调度器应该智能地从集群中移除失效的集群节点,并给系统管理员发送一个警报信息,集群节点应该相互独立,这样它旁边的节点可以分配更多的工作,剩下的节点也不会因为失效节点受到任何影响。 小结 我已经介绍了术语集群的定义,我将在全书中理解如何建立一个集群作为逻辑模式使用它,我在这个介绍中提供的内容(Linux企业集群的四个基本属性)是本书的基本思想,在我介绍完实现这些思想的方法后,我将用最后一章提供一个对实现这些思想的物理模式介绍来结束本书,如果你想学习关于物理模式的知识,你可以跳过前面的章节直接阅读最后一章,或者,如果你只想创建一个集群并运行,你可以从第二部分开始阅读,如果你没有任何Linux经验,你可能应该从第一部分开始阅读,并阅读关于GNU/Linux操作系统基本组件的知识。 入门篇——术语高可用与Linux企业集群  2008-06-05 15:42  黄永兵译  51CTO.com  我要评论(0) · 摘要:《Linux企业集群》讲解如何在一个计算机网络中用有限的资源部署计算机,以及安装自由软件让计算机象一台服务器那样一起运行。本文具体讲解了2个术语高可用与Linux企业集群 · 标签:Linux  集群  节点管理  无单点故障  Linux企业集群 · Oracle帮您准确洞察各个物流环节 入门 概述 这本书也可以叫做GNU/Linux企业集群,下面是GNU的创始人Richard Stallman在它的课题中所说的话: 大多数情况下,当人们谈到“Linux集群”时,他们就认为运行的是GNU/Linux,他们认为全部的系统都是Linux,因此,他们称其为“Linux集群”,但是,正确的说法应该是“GNU/Linux集群”。 “Linux集群”正确的含义应该是它的内核是Linux,内核的身份与开发技术和系统管理问题相关,无论如何,用户和用户程序都不是内核,而是系统的其余部分,Linux集群和用户视点相似的唯一原因是他们都是GNU/Linux集群。 “自由软件集群”(我认为这个术语比“自由集群”更清晰)应该是在它上面只运行有自由软件,GNU/Linux集群可以是一个自由软件集群,但不一定必须是。 基本的GNU/Linux是自由软件,我们在1984年启动GNU系统的开发时,明确指出这是应该自由软件操作系统,然而,大多数GNU/Linux发行版都添加了非自由软件到系统中(这些软件通常也不是开源的),发行商说这些程序是一种额外的赠送品,并且因为大多数用户没有遇到其他的替代方法,他们通常对发行商的观点持赞同意见,结果,许多运行GNU/Linux的机器(无论是否有集群)总安装有非自由软件,因此,我们没有实现我们的目标(给计算机用户自由)。 在我描述如何建立一个GNU/Linux企业集群之前,让我先定义一个新的基本术语,我将在整本书中使用它。 术语:高可用 我将从描述术语高可用开始,这里我不做过多的解释 --- 我将在后面详细解释,那时我将深入地探索每个概念。这里最重要的事情是我引入一个词语,它允许我们将多个计算机集中起来处理一个任务。 当一个程序运行时它叫做进程,运行在Linux系统上的进程叫做守护进程,守护进程和它产生的影响叫做服务,当服务与它的操作环境(配置文件、数据、访问它的网络机制等等)合在一起时叫做资源,当一个资源从一台计算机移动到另一台计算机时发生failover,一个适当的故障转移或高可用配置不会有单点故障。 这里我没有采用Red Hat集群术语,但是我正在使用这些术语因为它们是由Linux-ha拥护者定义的(查看http://www.linux-ha.org)。 术语:Linux企业集群 由于我已经介绍了用于描述高可用的术语,我想介绍几个允许我们描述GNU/Linux企业集群的术语。 在集群中,所有计算机(叫做节点)提供相同的服务,集群负载调度器拦截所有服务入站请求,然后它尽可能均衡地横跨所有集群节点分配这些请求,高可用集群可以从一台计算机转移集群负载均衡资源到另一台计算机。 本书描写了如何使用GNU/Linux操作系统和几个自由软件包建立一个高可用、负载均衡的集群,本书中的所有方法描写了如何建立作者已经在生产环境中使用了的配置(本书中使用到的一些项目和方法都没有使用最新版本,因为它们被证明太不可靠或太不成熟应用到生产环境)。 为了技术上的准确性,我需要指出的是你可以建立一个没有负载调度器的集群 – 查看,它提供了实现这种集群的方法。 1.1 如何启动集群服务?  2008-06-05 15:42  黄永兵译  51CTO.com  我要评论(0) · 摘要:《Linux企业集群》讲解如何在一个计算机网络中用有限的资源部署计算机,以及安装自由软件让计算机象一台服务器那样一起运行。该书第一章将检查Linux服务器基本的启动程序,以及如何禁用或启用一个服务。本文讲了如何启动集群服务? · 标签:集群服务  禁用  启用  Linux  集群  Linux企业集群 · Oracle帮您准确洞察各个物流环节 第一部分:集群资源 第1章:启动服务 在这一章中我们将检查Linux服务器基本的启动程序,以及如何禁用或启用一个服务,本章包括一张Linux服务器常规服务清单,以及如何在集群节点上使用这些服务。 如何启动集群服务? 在一个集群环境中,守护进程或服务开始于: 当系统启动或进入一个运行级别时,通过init守护进程启动。 当它首次开始或需要一个资源的所有权时,通过Heartbeat启动。 当进来一个网络请求时,通过xinetd启动。 使用一些其他的非标准方法(如Daemontools软件包)。 注意:目前,我们不讨论批处理作业(因为批处理作业一般不考虑提供给客户端的“集群服务”),要学习更多关于集群环境中的批处理作业知识,请查看第18章。 究竟使用哪个方法取决于以下问题的回答: 1. 服务一直运行还是仅当网络请求到来时才运行? 2. 当主服务器崩溃时服务会转移到备份服务器上吗? 3. 当服务停掉或异常终止时它会自动重新启动吗? 如果仅当入站网络请求(telnet和pop就时这种类型的很好例子)抵达时服务才需要运行,那么它应该通过xinetd启动,但是,大多数运行在Linux服务器和集群节点上的服务将一直运行,因此应该通过init当系统启动时启动(因此名字叫做“init”)。 如果服务应该连续运行甚至当系统崩溃时它也在运行(例如LPRng lpd打印守护进程运行在一个打印服务器上),那么应该用Heartbeat程序来启动服务(本书第二部分将有描述)。 在这一章中,我将集中描述init是如何工作的,在第二部分中,我就描述使用Heartbeat启动服务,经验丰富的Linux和Unix系统管理员将会发现这一章的第一部分概念重复,可能想直接跳到小节标题为“在集群节点上使用Red Hat 开关脚本。 第8章中有对Daemontools软件包的描述。 1.2 用init启动服务  2008-06-05 15:58  黄永兵译  51CTO.com  我要评论(0) · 摘要:《Linux企业集群》讲解如何在一个计算机网络中用有限的资源部署计算机,以及安装自由软件让计算机象一台服务器那样一起运行。该书第一章将检查Linux服务器基本的启动程序,以及如何禁用或启用一个服务。本文讲了用init启动服务. · 标签:init  集群服务  Linux  集群  Linux企业集群 · Oracle帮您准确洞察各个物流环节 用init启动服务 一旦你的启动载入程序完成了最开始的一步获得了内核并运行,init守护进程 – 所有进程的父进程 --- 就被启动了,init启动正常操作系统必需的基于/etc/inittab配置文件中的条目的守护进程。 /etc/inittab文件 /etc/inittab配置文件的核心是下面的七行,它们定义了七个系统运行级别: l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 注意:同一时间系统只能处于一个运行级别。 这些行指定rc程序(/etc/rc.d/rc脚本)应该在系统运行级别改变时运行一次,init应该向rc程序传递一个单一的字符参数(组成运行级别的数字,0-6),然后rc程序就启动/etc/rc.d目录下对应运行级别子目录中的所有以S(意思是start)字母打头的脚本。 默认运行级别定义在/etc/inittab文件的initdefault行: id:3:initdefault: 注意:使用runlevel命令查看当前的运行级别。 没有运行图形用户接口的Red Hat Linux服务器的默认运行级别是运行级别3,这就意味着当系统启动时init守护进程运行rc程序并向其传递一个参数3,然后rc程序运行/etc/rc.d/rc3.d目录下每一个以字母S打头的脚本,并传递参数start给这些脚本。 当系统管理员发出shutdown命令时,init守护进程再次运行rc程序,但是这一次rc程序运行/etc/rc.d/rc3.d目录下以字母K(意思是kill)打头的脚本,并传递参数stop给这些脚本。 在Red Hat上,你可以使用下面的命令列出当前运行级别子目录中的内容: #ls -l /etc/rc.d/rc?.d | less 注意:这个命令中的问号标记指出可以用任何字符匹配,因此这个命令将匹配每个运行级别对应的子目录:rc0.d、rc1.d、rc2.d等。 start和kill脚本存储在这些子目录中,但是,不是真正的文件,它们仅仅是指向存储在/etc/rc.d/init.d目录中真实脚本文件的符号连接,因此,所有start和kill 开关脚本都存储在一个目录(/etc/rc.d/init.d)中,通过在运行级别子目录中创建或移除服务对应的符号连接来控制服务。 幸运的是,有软件工具可以帮助管理这些符号连接,稍后我们将解释如何使用这些工具,但是先让我们检验一下当守护进程死掉时,通过在/etc/inittab文件中使用respawn选项自动重启它的一个方法。 用init重新唤醒服务 你可以在/etc/inittab文件中添加一个可执行程序的名字,并使用respawn选项,这样当这个程序死掉时操作系统会自动重新启动它,当系统进入运行级别时init将启动守护进程,并监视守护进程确保它一直运行(如果它死掉的话就重启它),只要系统还停留在同一级别。 下面是一个/etc/initab条目使用respawn选项的例子: sn:2345:respawn:/usr/local/scripts/start_snmpd > /dev/null 这个条目告诉init在2、3、4、5运行级别运行脚本/usr/local/scripts/start_snmpd,并将所有产生的输出发送到/dev/null设备(实际上输出内容就被丢掉了)。 注意,尽管我们已经在这里添加了一个脚本文件(/usr/local/scripts/start_snmpd),但它并不真实的snmpd可执行文件,如果这个脚本只是简单地运行snmpd然后就结束的话,init怎么知道监视哪个运行中的进程,在脚本/usr/local/scripts/start_snmpd运行完成后,init会认为程序已经死掉,它将尽职地再次运行这个脚本。 注意:当发生这种情况时,你会看到一个init报告的错误消息,它告诉你sn标识符(参考/etc/inittab文件的第一个字段)重新唤醒太快,init决定几分钟后放弃尝试。 因此确保respawn选项正确地工作,我们需要确保用于启动snmpd守护进程的脚本用snmpd守护进程替换它自身,这通过bash编程语句exec很容易实现,因此一个简单的/usr/local/scripts/start_snmpd bash脚本看起来就象这样: #!/bin/bash exec /usr/sbin/snmpd -s -P /var/run/snmpd -l /dev/null 脚本的第一行启动bash shell,第二行引起无论什么进程识别号或PID与这个bash shell结合在一起被snmpd守护进程替换掉(当这种情况发生时bash shell就消失了),这对于init运行脚本成为可能,找出分配给它的PID,然后监视这个PID,如果init看到这个PID消失了(意味着snmpd守护进程死掉了),它将再次运行这个脚本并监视新的PID,这都要感谢/etc/inittab文件中的respawn条目。 用chkconfig管理开关脚本符号连接 chkconfig程序通过使用init的仆人/etc/rc.d/rc脚本创建和移除符号连接,这些符号连接真实地启用或阻止服务在一个特定的运行级别自动运行,如前面提到的,所有系统运行级别下的所有符号连接实际上都指向存储在/etc/rc.d/init.d目录下的脚本(实际上,依据Linux标准基础[3],这个目录应该是/etc/init.d,但是在Red Hat上,这两个目录指向同样的文件[4])。 如果你想一个服务(叫做myservice)运行在运行级别2、3、4,这就意味着你想chkconfig在下面的运行级别子目录中创建三个符号连接: /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/rc4.d 这些符号连接应该以字母S打头,表明你想在这些运行级别中启动你的脚本,然后,chkconfig应该在剩下的/etc/rc.d/rc<运行级别>.d(如运行级别0、1、5、6)目录下创建以K(意思是kill)打头的符号连接。 为了告诉chkconfig你想让它对你的脚本做这些事,你可以在/etc/rc.d/init.d目录下的脚本文件中添加下面的行: # chkconfig: 234 99 90 # description: myscript runs my daemon at runlevel 2, 3, or 4 然后你可以简单地运行chkconfig程序,它翻译这一行的意思为“用start选项创建符号连接在运行级别2、3、4上运行这个脚本,然后在其他运行级别用kill选项创建需这个脚本的符号连接。” 这个例子中的数字99和90是这个脚本启动和停止的优先级,当一个符号连接创建在运行级别子目录中后,同时也获取一个优先级数字,rc脚本用它来判断运行级别子目录下的脚本启动顺序(杀死顺序),在符号连接S后跟一个低优先级的数字意味着这个脚本应该比在同一目录下的其他脚本先运行,例如,启动网络的脚本/etc/rc.d/rc3.d/S10network在启动Heartbeat程序的/etc/rc.d/rc3.d/S34heartbeat脚本之前运行。 这个例子中第二行注释包括了一个(要求的)对这个脚本的描述,chkconfig命令首先移除所有旧的符号连接(代表旧的chkconfig条目),然后添加这个脚本(它保存在文件/etc/rc.d/init.d/myscript中): chkconfig --del myscript chkconfig --add myscript 注意:当使用chkconfig移除旧连接时,在使用--add选项前总先使用--del选项。 然后,chkconfig程序会给你的文件创建下面的符号连接: /etc/rc.d/rc0.d/K90myscript /etc/rc.d/rc1.d/K90myscript /etc/rc.d/rc2.d/S99myscript /etc/rc.d/rc3.d/S99myscript /etc/rc.d/rc4.d/S99myscript /etc/rc.d/rc5.d/K90myscript /etc/rc.d/rc6.d/K90myscript 再说一次,这些符号连接仅仅指向存储在/etc/init.d目录下的真实文件(从现在开始,我将使用LSB目录名/etc/init.d替换Red Hat系统上原始的/etc/rc.d/init.d目录),如果你需要修改脚本启动或停止你的服务,你只需要修改一个位置下的文件:/etc/init.d目录。 你可以使用下面的命令查看所有的符号连接(在你运行chkconfig命令添加了它们后): #find /etc -name ‘*myscript’ -print 你也可以用下面的命令查看所有脚本的一个报告: #chkconfig --list 用ntsysv管理开关脚本符号连接 ntsysv命令依赖这些相同的chkconfig注释行,管理在/etc/rc.d/init.d目录下每个运行级别的脚本符号连接启动和停止脚本。 正常情况下,ntsysv仅管理系统当前运行级别(不是非常有用的),因此你可能会想要它管理所有运行级别,输入下面的命令就可实现你的想法: #ntsysv --level 0123456 将显示一个/etc/rc.d/init.d目录下所有脚本的列表,通过在列表中的脚本名后添加一个星号(*)并选择“OK”,这是告诉ntsysv程序创建所有的符号连接,与你运行chkconfig --add <脚本名>命令非常类似,如果你在脚本名后移除了星号(*),符号连接就被移除了,与你运行chkconfig --del <脚本名>命令一样。 注意:ckconfig和ntsysv命令不启动或停止守护进程(两个命令实际上都不运行脚本),它们仅仅创建或移除符号连接,系统下次进入或离开一个运行级别时才产生影响(或重启时),要启动或停止脚本,你可以输入命令service <脚本名> start 或service <脚本名> stop,这里的<脚本名>是/etc/init.d目录下文件的名字。 移除你不需要的服务 对于每一个你不需要的脚本(查看下一小节的描述),你可以通过下面的步骤禁用或移除服务: 杀死当前正在运行的守护进程(当你完成时你可以跳过这以步直接重启系统): #/etc/init.d/<脚本名> stop 或在Red Hat系统上,下面的命令也可以: #service <脚本名> stop 用下面的命令移除前面chkconfig定义的各运行级别下脚本的符号连接: #chkconfig --del <脚本名> 或 #ntsysv --level 0123456 然后,使用ntsysv工具,移除每个脚本名后的*(星号),让它们在系统启动时不运行。 注意:snmpd守护进程也支持-f参数,它与exec语句完成相同的事情,请查看snmpd的man手册页获取更多的信息。 查看http://www.linuxbase.org/spec获取LSB最新版本。 因为在Red Hat系统发行版上/etc/init.d是一个到/etc/rc.d/init.d的符号连接。 1.3 在集群节点上使用Red Hat 开关脚本  2008-06-05 15:58  黄永兵译  51CTO.com  我要评论(0) · 摘要:《Linux企业集群》讲解如何在一个计算机网络中用有限的资源部署计算机,以及安装自由软件让计算机象一台服务器那样一起运行。该书第一章将检查Linux服务器基本的启动程序,以及如何禁用或启用一个服务。本文讲了在集群节点上使用Red Hat 开关脚本 · 标签:Red Hat  脚本  集群服务  Linux  Linux企业集群 · Oracle帮您准确洞察各个物流环节 在集群节点上使用Red Hat 开关脚本 这一节包括在一个普通Red Hat系统上使用的开关脚本的描述,以及一个关于如何通过使用开关脚本启动服务的讨论,或在一个Linux企业集群里可以被使用。注意在你的系统上可能没有所有这些脚本,因为在Red Hat发行版中是不同的或因为你还没有安装这个服务。 aep1000 支持快速加密处理卡以加速安全套接字层(SSL)加密,在本书中不用于建立集群。 anacron 与cron和at类似,都是在特定时间、甚至在系统没有连续运行时启动命令的,在Red Hat上,/etc/anacrontab文件列出了每天执行的cron作业的循环常规日志,如果你禁用了它,你将不能再执行日志循环,你的系统磁盘最后将被填满,在第18和19章,我们将描述两个在所有集群节点上不用crond守护进程运行cron作业的方法(crond守护进程运行在一个单一的节点上,远程初始化或在每个集群节点上每天启动一次anacron程序)。 apmd 用于高级电源管理,仅当你有一个不间断电源支持(UPS)系统连接到你的系统时,你想让它在出现电源故障时,你的UPS系统电池用光前自动关闭时才需要,在第9章中,我们将看到Heartbeat程序如何通过一个叫做STONITH(shoot the other node in the head)的技术控制给一个设备供应电力。 arpwatch 用于保持对ip地址到MAC地址对的跟踪,正常情况下,你不需要这个守护进程,Linux虚拟服务器直接路由集群(在第13章中有描述)必须通过集群负载均衡技术与潜在的地址解析协议(ARP)竞争,但是arpwatch对这个问题没有帮助,并且它也不用在集群节点上。 atd 与anacron和cron的使用类似,在特定时间用at命令调度作业,这种调度作业的方法被经常使用,在第18章中,我们将描述如何用Heartbeat、crond守护进程和clustersh脚本为集群建立一个无单点故障批处理调度机制。 autofs 用于从NFS服务器自动挂载NFS目录,这个脚本仅在NFS客户端上,以及你想自动挂载和卸载NFS设备时需要启用,在本书集群配置描述部分,你将不需要挂载NFS文件系统,因此就不需要这个服务(尽管使用它可以给你一个强大的灵活的从每个集群节点挂载多个NFS挂载点),避免autofs挂载方案的复杂性,在你的集群节点上只使用一个NFS挂载目录。 bcm5820 支持Broadcom Cryponet BCM5820芯片以加速SSL通讯,本书中不使用它。 crond 与anacron和atd的使用类似,用于调度作业。在Red Hat系统上,crond守护进程每天启动一次anacron,在第18章中,我们将看到如何用cron和开源Ganglia软件包(或本书光盘中提供的clustersh脚本)建立一个无单点故障批处理作业调度系统,为了控制cron作业在集群中的执行,你可能不想让所有集群节点都运行crond守护进程,而只想让一个节点运行cron守护进程,然后使用本书第二部分描述的技术使其成为一个高可用服务(在本书中描述的集群节点,crond守护进程不是通过init在系统启动时运行的,Heartbeat程序基于/etc/ha.d/haresources文件中的条目启动crond守护进程,cron作业通过由SSH提供的远程shell功能仍然可以在所有集群节点上运行)。 cups 通用Unix打印系统,在本书中,我们将使用LPRng替代cups作为集群的打印系统,本章稍后有对lpd脚本的描述。 firstboot 用于系统第一次启动时系统配置过程的一部分。 functions 包括/etc/init.d目录中其他脚本使用的常规库,不要修改这个脚本,否则你系统上的开关脚本将受到破坏的威胁。 gpm 开启它使得在基于文本的控制台中使用鼠标进行剪切和粘贴成为可能,你不应该禁用这个服务,顺便说一下,集群节点通常会连接到一个KVM(键盘/显示器/鼠标)设备,它允许多个服务器共享一个键盘和一个鼠标,由于这些KVM设备的成本,你可能想建立你的不用将它们连接到一个KVM设备的集群节点(它们不用连接键盘和鼠标启动)。 halt 用于干净地关闭系统。 httpd 用于为一个web服务器启动apache守护进程,即使你不是在建立一个web服务器集群来帮助负载调度器(ldirectord程序)当一个节点应该从集群中移除时做出判断,你可能也想使用httpd,在第15章中有对监视一个并行服务概念的讨论。 identd 用于帮助识别谁正连接到你的系统,理论听起来挺好,但是你可能永远不能通过identd免除攻击,实际上,黑客会攻击你系统上的identd守护进程,在LVS-NAT集群中的服务器在发送identd请求回客户端计算机时也有问题,如果可能在你的集群节点上禁用identd。 ipchains或iptables 通过ipchains(2.2内核和更早版本)或iptables(2.4内核及更高版本)提供的使用Linux内核控制数据包的能力,在Red Hat系统上的这个脚本运行iptables或ipchains命令,保存在/etc/sysconfig目录中的一个文件中,第2章有更多的信息。 irda 用于红外线通讯,本书中建立集群不使用它。 isdn 用于集成服务数字网络通讯,本书中不使用它。 kdcrotate 用于管理系统上Kerberos安全,第19章对分配用户账号信息有一个讨论。 keytable 用于载入键盘表。 killall 用于帮助关闭系统。 kudzu 在系统启动时探测你的系统中的新硬件,当你在你的系统上改变了硬件配置信息时非常有用,但是增加了请求启动一个集群节点的总体时间,特别当它从KVM设备断开连接时。 lisa LAN信息服务器服务,正常情况下,Linux机器上的用户在与远程主机连接前以及交换信息前,必须知道远程主机的名字或地址,使用lisa,用户可以象windows客户端使用网络邻居那样在网络上查找其他主机,本书不使用这个技术,实际上,如果你正在建立集群这还可能对用
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服