集群是 IBM® Lotus® Domino® Server 提供的最重要特性之一。对于任何使用 Domino 服务器的组织,让用户能够持续访问它们的数据库是至关重要的。如果拥有成千上万用户的服务器停机了,用户的生产力将受到阻碍,并导致负面的业务影响。
这份白皮书的目标帮助您理解集群,以及如何利用集群带来的好处,比如重要数据库的高可用性、工作负载平衡、可伸缩性和数据同步。我们解释如何设置和管理集群,并提供关于错误消息和使用集群时遇到的其他问题的信息。
注意,这份白皮书的大部分材料都来自 IBM Lotus Domino 8.5 Administrator information center,您可以参考它获得更多信息。
Domino 集群是由两个以上的服务器组成的服务器组,它的功能包括为用户提供持续的数据访问、平衡服务器之间的负载、改善服务器性能,以及随着企业的增长维护性能。
集群中的服务器包含需要对用户随时可用的数据库的副本。如果用户试图访问集群中不可用的数据库,Lotus Domino 将在集群的另一个服务器上打开该数据库的一个副本,如果存在它的副本的话。Lotus Domino 不断地同步数据库,这样用户打开的所有副本的信息都是一样的。
Lotus Notes 客户端可以访问所有 Domino 集群服务器,而 HTTP 客户端(Internet 浏览器)仅能访问 Domino 集群中的 Domino Web 服务器。
现在,我们讨论 Domino 集群的主要好处:
重要数据库的高可用性。当集群中的某个服务器发生硬件或软件问题时,它就会将数据库打开请求重定向到其他服务器,让用户能够随时访问重要的数据库。这个过程称为故障转移。
集群为业务关键型数据库和服务器提供故障转移,包括将故障服务器的负载转移到集群中的其他服务器。故障转移还允许您进行服务器维护,比如硬件和软件升级,但对用户的负面影响非常小。
工作负载平衡。当用户试图访问繁忙的服务器时,Lotus Domino 能够将用户请求重定向到集群中不繁忙的服务器中,从而使工作负载在整个集群中得到平衡。
集群服务器的工作负载平衡能够帮助系统实现最佳的性能,加快数据访问速度。
数据同步。实现高效集群的关键是在两个或多个集群服务器上设置副本,从而让用户可用在某个服务器出现故障或比较繁忙时访问其他服务器。集群复制确保所有更改,不管是针对数据库还是集群成员本身,都即时传递到其他数据库或集群中的其他服务器。因此,持续地同步数据库实现了信息的高可用性。
改变操作系统、硬件或 Lotus Domino 版本比较容易。当您想要更变硬件、操作系统或Domino 版本时,您可以将集群服务器设置为 RESTRICTED,从而将针对这些服务器的请求故障转移到其他包含副本的集群服务器中。这允许您在进行变更时不影响用户的生产力。
在计划设立一个集群时,考虑硬件的性能和能力是非常重要的。集群必须具备足够的CPU 处理能力、内存和磁盘空间来处理集群流量和数据库备份等。
向集群添加服务器能够增加集群处理工作负载平衡的能力,从而保证所有服务器的负载水平适中,实现较高的性能。不过,如果服务器使用过多的任务、需要大量 CPU 的应用程序和副本,那么添加服务器会损害性能,因为增加的集群流量时要保持在所有服务器上同步数据库。
服务器需求如下:
在这个小节中,我们讨论如何创建集群,以及如何验证正确创建了集群。您可以选择直接向集群添加服务器,或使用 AdminP 向集群添加服务器。
如果您使用 AdminP 向集群添加服务器,Lotus Domino 将向 Administration Requests 数据库提交一个请求,要求将集群的名称添加到集群中的每个服务器的 Server 文档。
如果您使用管理服务器创建集群,AdminP 将立即运行并将集群名称添加到 Server 文档。
如果您选择直接向集群添加服务器,Lotus Domino 将在马上在您用于创建集群的服务器上的 Domino Directory 中更改 Server 文档。
如果该服务器是集群的成员,它就会立即启动下面列出的集群流程,并将其 Domino Directory 与集群中的另一个服务器同步,从而让其他集群服务器知道它们是集群的成员。
如果您不是使用集群成员创建集群,这个流程将在您使用的服务器的 Domino Directory 与集群中的服务器的 Domino Directory 同步时开始。
要创建一个集群,需要遵循以下步骤(注意,不能使用 Web Administrator 创建集群):
注意:如果可能的话,使用管理服务器创建集群会更快。管理服务器可以不是集群的成员。如果一个服务器属于另一个不同的集群,那么在您将其添加到新的集群之前,不需要把它从原来的集群删除。 Cluster Administration Process 会自动从原来的集群中删除该服务器,然后再把它添加到新的集群中。
为集群设置私有 LAN 可以将服务器探查和集群复制与其他网络通信隔离开,从而防止集群流量影响主要网络的速度。
遵循以下步骤为您的集群设置一个私有网络:
Acme_clu.acme.com Acme2_clu.acme.com |
表 1. Notes Network Ports 选项卡信息
字段名 | 示例 |
Port | CLUSTER |
Protocol | TCP |
Notes Network | Cluster Network |
Net Address | Acme_clu.acme.com |
Enabled | ENABLED |
PORT1_TcpIPAddress=0,a.b.c.d: 1352 PORT2_Tcp I PAdd ress=0, e.f.g.h: 1352 |
其中 PORT1 和 PORT2 是端口名,a.b.c.d 和 e.f.g.h 是端口的 IP 地址。
如果使用名为 TCPIP 和 CLUSTER 的端口,那么结果应该为:
TCPIP_TcpIPAddress=0,192.1 14.32.5:1352 CLUSTER_TcpIPAddress=0,1 92.168.64.1:1352 |
Server_Cluster_Default_Port=Cluster Port |
其中 Cluster Port 是您为集群创建的端口。在这个例子中,该行应该为:
Server_Cl uster_Default_Port=CLUSTER |
这确保在集群进行通信时所有集群流量都使用该端口,而不管端口的顺序如何。
注意:使用 Server_Cluster_Default_Port 设置为集群流量分配私有 LAN 端口有一个缺点。如果集群服务器在连接到这个端口时遇到问题,它就不再尝试其他端口。这将导致该服务器不能与其他集群服务器通信。您必须解决网络问题或从 Notes.ini 文件删除该设置才能恢复该服务器与集群的通信。
要确保 Lotus Domino 使用私有 LAN,您需要:
show cluster。
此外,最好确保集群复制使用私有 LAN。为此,您可以查看一些集群统计数据:
BytesReceived BytesSent |
In Out |
使用表 2 列出的操作,检查是否正确创建了集群。
操作 | 应该看到的结果 |
从 Lotus Domino Administrator 或 Web Administrator 的 Server 面板中展开 Clusters。 | 集群名后面跟着集群服务器名。 |
从 Domino Administrator 或 Web Administrator 单击 Configuration 选项卡。在 Task 面板中,展开 Cluster,然后单击 Clusters。在 Results 面板中,打开您向集群添加的服务器的 Server 文档。 | 集群名后面跟着显示在 Results 面板中的集群服务器名。 在 Basics 选项卡上的 Cluster name 字段的集群名。 |
从 Domino Administrator 或 Web Administrator 在 Server 面板中单击一个集群服务器,然后单击 Files 选项卡。 | 出现在 Tasks 面板中的标题“Cluster Directory”。这表明 Lotus Domino 创建了 Cluster Database Directory。 |
在每个集群服务器上比较 Cluster Database Directories 的副本 ID。 | 在每个服务器上都相同的副本 ID。 |
从服务器控制台发出命令:show cluster |
集群名、当前服务器的一些统计数据和所有集群服务器的名称。 |
您还可以使用 Cluster Analysis 生成报告,显示集群是否存在配置问题。要了解更多信息,请从 Domino 8.5 Administration Help 数据库查看主题“Using Cluster Analysis to check the cluster configuration”和“Running Cluster Analysis”。
现在,我们将查看两种类型的集群复制,即调度复制和流复制。
在集群中,调度复制用于在集群中复制:
因为集群复制事件仅存储在内存中,如果这些事件没有被复制,服务器失败时将丢失它们。服务器失败不会丢失任何数据,但是要等到您运行标准的 Lotus Domino 复制时,才会复制未完成的集群复制事件。
您可能希望复制某些数据库,但并不是每次更新时都复制。您可以对这些数据库禁用集群复制。
技巧:要查看是否禁用了数据库的集群复制功能,请查看 Cluster Database Directory 中的信息。在左列包含字母“X”的数据库禁用了集群复制。另一种方法是在 Cluster Database Directory 中查看每个数据库的文档的 Cluster Replication 字段。
Cluster Replicator 将复制公式的处理交给标准的复制器处理。在集群中使用复制公式之前,应该先了解复制在集群中的工作方式。
Cluster Replicator 将更改发送到其他包含副本的服务器,但不在它的服务器上更新其他副本。
注意:如果一个服务器上有多个副本,Cluster Manager 在故障转移期间为用户提供选择打开副本的路径。如果您在一个服务器上存放多个副本,一定要确保集群中拥有相同路径的所有副本使用相同的选择性复制公式。否则,用户用于执行故障转移的副本包含的数据可能与预期不同。
您应该经常运行标准的复制。在大多数情况下,每天运行一两次就足够,但是每天运行标准复制的次数取决于保持所有副本同步的重要性。如果必须随时保持所有数据同步,那么每一两个小时就要运行一次标准复制。
另外,您应该在每次启动服务器时运行复制,以确保所有数据库都是最新的。为此,您可以在 Domino Directory 中创建一个 Program 文档。
流集群复制(Streaming Cluster Replication,SCR)是 Lotus Domino 8 中的新特性。它利用了集群的完全连接特性和数据流,生成低开销的集群复制器。SCR 减少了集群的调度复制器开销,并显著减少了集群复制器的延迟性。
变更一旦发生(比如记录更改、未读更改和文件夹更改)就会被捕捉到,然后同步到同一集群中的其他副本。这样能够实现更高效的集群复制。
为了使用SCR,集群必须至少包含 2 个 Domino 8 服务器。如果您的集群包含 Domino 8 服务器和比 Domino 8 更早的服务器,那么将在 Domino 8 服务器和以前版本的服务器之间执行常规集群复制。
当发生以下事件时,Domino 将启用 SCR:
如果 SCR 在复制期间遇到任何错误,它就将数据库的控制权返回给标准集群复制器,以复制更改并同步数据库。
当集群服务器的数据库发生变更时,特定的变更将被捕捉,并立即同步到拥有该数据库的副本的源 Domino 8 集群服务器。当目标集群服务器收到变更之后,它们就将变更应用到自己的副本。
SCR 的性能好处如下:
Domino 集群中的所有服务器彼此之间持续通信,以随时更新每个服务器的状态并保持数据库副本同步。集群将针对一个服务器的请求重定向到另一个服务器称为故障转移。
当用户试图访问服务器上比较繁忙或不可用的数据库时,Lotus Domino 将把用户的请求重定向到集群中具有该数据库的副本的另一个服务器。为了利用故障转移和工作负载平衡的优势,应该将数据库和副本分布到整个集群中。
需要为某个数据库创建多少个副本取决于该数据库的繁忙程度,以及用户对它的可用性的依赖程度。对于某些数据库,甚至不需要创建任何副本;而对于另一些数据库,则需要创建多个副本。
当用户试图打开一个不可用的数据库时,Cluster Manager 将从 Cluster Database Directory 查找该数据库的副本。为了查找副本,Cluster Manager 将搜索其副本 ID 与原始数据库相同的数据库。此外,它还确保该副本没有标记为 Out of Service 或 Pending Delete。
如果服务器上存在该数据库的多个副本,那么 Cluster Manager 将假设使用选择性复制来复制这些数据库。为了确保故障转移到正确的副本,Cluster Manager 选择路径与原始数据库相同的副本。
因此,如果您在同一个服务器上存放多个副本,请确保集群中使用相同选择性复制公式的所有副本拥有相同的路径。否则,用户可能会故障转移到错误的副本。
这个例子描述了 Domino 执行故障转移的流程。例子中的集群包含 3 个服务器。Server 1 目前不可用,并且 Server 2 和 Server 3 上的 Cluster Manager 知道 Server 1 不可用(见图 9)。
现在,我们看看这个场景的流程:
(在 Notes 客户端首次访问集群中的一个服务器时,该集群的所有服务器的名称都被添加到该客户端的集群缓存中。该缓存每 15 分钟更新一次)。
当 Notes 客户端关闭时,它将把集群缓存的内容储存到 CLUSTER.NCF 文件中。该客户端每次启动时都用 CLUSTER.NCF 文件中的信息填充集群缓存。
为 Lotus Domino 服务器创建集群还提供活动的负载平衡,从而更好地利用资源。我们可以通过以下步骤在 Domino 服务器之间实现工作负载平衡:
一定要记住,工作负载平衡并不能解决企业的总体计算能力匮乏问题。如果您的 Domino 服务器目前已经不堪重负,并且没有额外的服务器处理更多的负载,那么启用工作负载平衡也不能解决问题。
要平衡工作负载,必须能够将超载的服务器的过剩负载发送到其他服务器。如果没有接受过剩负载的服务器,那么这些负载还得由原来的服务器处理。
不过要注意,为每个请求查找另一个可用的服务器增加了服务器的工作负载。如果您的企业没有足够的计算能力,可以考虑增加处理器或内存,或者升级设备以处理更多的负载。
如果您的集群的负载一般都比较平均分布,那么可以仅考虑配置故障转移,而不需配置工作负载平衡。
服务器可用性指数是管理工作负载平衡的重要设置;因此,为了实现高效的工作负载平衡,我们需要了解什么是工作负载平衡以及如何计算它。
集群中的每个服务器都定期根据服务器最近处理请求的响应时间确定其工作负载。工作负载由 0 至 100 的数字表示,0 表示服务器的负载非常繁忙,而 100 表示服务器的负载很轻松。这个数字称为服务器可用性指数。服务器可用性指数随着响应时间的变长而下降。
服务器可用性指数大约等于服务器可用计算能力百分比。例如,如果服务器可用性指数为65,那么您的服务器大约有 65% 的计算能力是可用的。
尽管企业中的各个服务器在计算能力上可能不同,但可用性指数在每个服务器上都表示相同的含义 —— 服务器中仍然可用的计算能力。
服务器的可用性指数基于一个表示服务器的当前工作负载的膨胀系数。膨胀系数取决于特定类型的事务的最近响应时间与服务器以前处理该事务时所用的最小时间之比。
例如,如果服务器当前执行 Database Open 事务的平均响应时间为 12 微秒,但是服务器以前处理 Database Open 事务的最小时间为 3 微秒,那么 Database Open 事务的膨胀系数应该为 4(用当前的 12 微秒除以最快响应时间 3 微秒)。
换句话说,膨胀系数决定当前完成某个事务比最佳条件下完成该事务要延长多少时间。
Lotus Domino 将每种类型事务的最小完成时间储存在内存和 LOADMON.NCF 文件中,服务器每次启动时都会读取该文件中的信息。当服务器关闭时,Lotus Domino 将使用最新的信息更新 LOADMON.NCF 文件。
为了确定当前的膨胀系数,Lotus Domino 在一段特定的时间内跟踪最常用的 Domino 事务,默认情况下每次跟踪时长为 15 秒,跟踪次数为 5 次。
然后,Lotus Domino 确定它完成每种类型的事务所需的平均时间,然后用它以前完成相同事务的最小时间除该时间。通过这种方式可以确定每种类型的事务的膨胀系数。
为了确定整个服务器的膨胀系数,Lotus Domino 将求取所有类型事务的膨胀系数的平均值,并且增加最常用的事务类型的权重。
随着服务器变得越来越繁忙,添加额外的负载会对性能和可用性产生更大的影响。换句话说,向繁忙的服务器添加额外的工作负载比向不那么繁忙的服务器添加额外的工作负载得到更大的膨胀系数。
由于服务器的速度、容量和计算能力不同,因此它们能够处理的工作负载量也不同。因此,在两个不同的服务器上,相同的膨胀系数不一定表示它们拥有相同的工作负载。
例如,如果一个小型服务器在空闲时需要很长时间执行事务,那么膨胀系数为 40 可能表明用户需要等待很长时间。但是,在更大更快的服务器上,即使膨胀系数为 400,用户需要等待的时间可能也会少于 1 秒。
可用性指数和膨胀系数对比
为了确定服务器的可用性指数,Lotus Domino 使用一个公式将膨胀系数转换成服务器的可用计算能力的近似值。
表 3 显示了将膨胀系数转换成可用性指数的一些例子(注意,这些值基于默认的膨胀系数64,64 表示服务器满载)。
膨胀系数 | 可用性指数 |
1 | 100 |
2 | 83 |
4 | 67 |
8 | 50 |
16 | 33 |
32 | 17 |
64 | 0 |
注意:膨胀系数和可用性指数仅度量服务器的响应时间,服务器响应时间通常只是客户端经历的响应时间的一小部分。例如,客户端和服务器之间的网络响应时间在客户端经历的响应时间中占据很大比重。
更改表示服务器满载的膨胀系数值
为了让 Domino 工作负载平衡更高效,您必须调整膨胀系数和可用性指数之间的关系,让服务器在达到您指定的工作负载时执行故障转移。您可以通过指定表示服务器满载的膨胀系数值来实现这个目的。
在 Lotus Domino 服务器中,默认值为 64。当膨胀系数达到这个值时,就认为服务器已经满载,这是它的可用性指数就下降到 0。
技巧:您可以通过 Show AI
服务器命令查看推荐的可用性指数设置。
如果您的服务器非常强劲快速,您可以增加表示服务器满载的膨胀系数值。在一些非常快的服务器上,您可以将该值设置为几百或更高。如果您的服务器很慢,则可以考虑降低膨胀系数值。
要更改表示服务器满载的膨胀系数值,请遵循以下步骤:
SERVER_TRANSI NFO_RANGE=n |
如果您将 SERVER_TRANSINFO_RANGE 设置为 7,那么表示服务器满载的膨胀系数值则为 128。如果将该参数设置为 8,那么膨胀系数值就变成 256。
show stat server.expansionfactor
监控它的膨胀系数。您还可以在此期间监控性能统计数据。在繁忙时期记录足够的膨胀系数值,以确定表示服务器满载时的膨胀系数值。
表 4 显示了当 SERVER_TRANSINFO_RANGE 为 8 时将膨胀系数转换成可用性指数的一些例子。在这些例子中,膨胀系数的最大值为 256,因为 2 的 8 次方等于 256。
表 4. 将膨胀系数转换成可用性指数
膨胀系数 | 可用性指数 |
1 | 100 |
2 | 88 |
4 | 75 |
8 | 63 |
16 | 50 |
32 | 38 |
64 | 25 |
128 | 13 |
256 | 0 |
Show AI
为该变量获取一个适当的值。在带负载运行服务器一段时间之后输入命令,控制台将显示该服务器的膨胀系数历史和 AI。 改变用于计算膨胀系数的数据量
尽管一般情况下没有必要这样做,但是您可以使用下面的 Notes.ini 设置更改Lotus Domino 收集用于计算膨胀系数的数据量。
Server_Transinfo_Max=x |
其中 x 是您希望 Lotus Domino 使用的收集周期次数。
Server_Transinfo_Update_I nterval=x |
其中 x 是每个周期的时长,单位为秒。
在每个服务器上设置服务器可用性阈值是实现集群工作负载平衡的关键因素。如果阈值设置得过高,将导致不必要地执行故障转移。如果设置得过低,将损害用户的体验,因为用户此时可以从其他服务器获得更好的性能。
为了确定服务器可用性阈值的最佳值,需要遵循以下步骤:
1. 在负载正常或偏高时期,使用以下列出的方法之一观察服务器的可用性指数:
show cluster:
show stat server:
2. 根据您观察到的结果设置一个初始可用性阈值。设置该值时请考虑以下事项:
注意:当服务器失败时,它的工作负载将故障转移到集群中的其他服务器。如果集群仅包含两个服务器,并且它们的工作负载相同,那么将导致另一个服务器的负载增加将近 100%。如果集群中有 6 个服务器,那么其他服务器的工作负载将增加 20% 左右。因此,设置每个集群服务器的阈值时,要确保它能在其他服务器失败时接收适量的工作负载。
表 5. 与工作负载平衡相关的统计数据
统计数据名称 | 描述 |
Server.AvailabilityIndex | 服务器可用性指数的当前值。可用性指数的值的范围是 0 至 100。0 表示服务器没有可用资源。100 表示服务器完全可用。 |
Server. Expansion Factor | 服务器膨胀系数的当前值。该值用于计算可用性指数。值为 1 时表示服务器以最小时间完成事务。值为 64 时表示完成事务所需的时间是最小时间的 64 倍。默认情况下,膨胀系数为 64 时表示服务器满载,转换成可用性指数为 0。您可以通过 Notes.ini 设置的 Server_Transinfo_Range 更改表示服务器满载的膨胀系数。 您可以使用服务器命令 Show AI 获取推荐的可用性指数。 |
Server.Cluster.OpenRedirects. LoadBalance.Successful | 繁忙服务器成功将客户端重定向到另一个集群成员的次数。 |
Server.Cluster.OpenRedirects.LoadBalance.Unsuccessf ul | 繁忙服务器没有成功将客户端重定向到另一个集群成员的次数。如果目标服务器的状态为繁忙或不可用,那么重定向将不成功。 |
Server.Cluster.OpenRequest.ClusterBusy | 当所有集群服务器都处于繁忙状态时繁忙服务器尝试重定向客户端请求的次数。 |
Server.Cluster.OpenRequest.LoadBalanced | 用户试图打开状态为繁忙的服务器的数据库的次数。 |
技巧:工作负载平衡并不是为企业提供足够计算资源的代替办法。如果所有服务器已经超载,那么启用负载平衡会带来更多问题,因为没有存放繁忙服务器重定向的客户端请求的地方。另外,查找可用服务器会降低处于繁忙状态下的服务器的性能。
您还可以通过 Notes.ini 设置服务器的最大用户数实现集群工作负载平衡:
Server_MaxUsers |
该设置指定服务器同时允许的最大活动用户数量。当服务器达到该极限时,服务器就进入 MAXUSERS 状态,并在活动用户数降到 Server_MaxUsers 极限以下之前拒绝任何用户请求。
当 Lotus Domino 服务器因为处于 MAXUSERS 状态而拒绝访问请求时,Cluster Manager 就试图将请求重定向到另一个包含正确副本的集群服务器。如果其他服务器都不可用,Lotus Domino 将拒绝访问请求并显示一条解释性消息。
注意,Server_MaxUsers 设置不会影响复制。即使服务器处于 MAXUSERS 状态时仍然会发生复制。
另外,您可以通过监控表 6 中的统计数据更好地管理集群。除了 AvailabilityIndex 之外,统计数据 AvailabilityThreshold 和 ExpansionFactor 的名称都包含前缀 Server.Cluster,但表 6 省去了这个前缀。
AvailabilityIndex、AvailabilityThreshold 和 ExpansionFactor 都包含前缀“Server.”。
统计数据名称 | 说明 |
Member | 显示集群中的服务器的名称和可用性指数。 |
AvailabilityIndex | 度量服务器可用性的方法之一。0 表示没有可用资源;100 表示服务器的所有资源完全可用。 |
AvailabilityThreshold | 服务器当前的可用性阈值。当可用性指数小于等于可用性阈值时,服务器将进入繁忙状态。 |
ExpansionFactor | 服务器当前的膨胀系数。该值用于计算可用性指数。值为1 时表示该服务器以最小的时间完成事务。值为 64 时表示该服务器完成事务所需的时间比最小时间长 64 倍。默认情况下,膨胀系数为 64 时表示服务器满载,而转换成可用性指数则为 0。 您可以使用 Notes.ini 设置 Server_Transinfo_Range 更改表示服务器满载的膨胀系数值。 |
OpenRedirects.Failover.Successful | 在客户端通过副本 ID 打开数据库失败之后,服务器成功将客户端重定向到另一个集群成员所需的总时间。 |
OpenRedirects.Failover.Unsuccessful | 在客户端通过副本 ID 打开数据库失败之后,服务器不能将客户端重定向到另一个集群成员所需的总时间。 |
OpenRedirects.FailoverByPath.Successful | 在客户端通过路径名打开数据库失败之后,服务器成功将客户端重定向到另一个集群成员所需的总时间。 |
OpenRedirects.FailoverByPath.Unsuccessful | 在客户端通过路径名打开数据库失败之后,服务器不能将客户端重定向到另一个集群成员所需的总时间。 |
OpenRedirects.LoadBalance.Successful | 在服务器处于繁忙状态时客户端通过副本 ID 打开数据库失败之后,服务器成功将客户端重定向到另一个集群成员所需的总时间。 |
OpenRedirects.LoadBalance.Unsuccessful | 在服务器处于繁忙状态时客户端通过副本 ID 打开数据库失败之后,服务器不能将客户端重定向到另一个集群成员所需的总时间。 |
OpenRedirects.LoadBalanceByPath.Unsuccessful | 在服务器处于繁忙状态时客户端通过路径名打开数据库失败之后,服务器不能将客户端重定向到另一个集群成员所需的总时间。 |
OpenRedirects.LoadBalanceByPath.Successful | 在服务器处于繁忙状态时客户端通过路径名打开数据库失败之后,服务器成功将客户端重定向到另一个集群成员所需的总时间。 |
OpenRequest.ClusterBusy | 当所有服务器 处于繁忙状态时的客户端请求总数。 |
OpenRequest.DatabaseOutOfService | 客户端尝试打开标记为不可用的服务器上的数据库所需的总时间。 |
OpenRequest.LoadBalanced | 客户端尝试打开标记繁忙的服务器上的数据库所需的总时间。 |
PortName | 用于内部集群网络通信的默认端口,或一个星号,表示没有可以的默认端口或其他活动端口。 |
ProbeCount | 服务器查找其他集群成员所需的总时间。 |
ProbeError | 一个服务器查找另一个服务器时收到的错误。 |
ProbeTimeout(mins) * | 显示发生集群内部查找集群成员的时间间隔。 |
* 这些统计数据没有出现在 Cluster 统计数据报告中,但是您可以通过 Show Stat 命令查看,或将其添加到 Cluster 统计数据报告表中。
表 7 列出了集群复制器统计数据。每个统计数据名都包含前缀 Replica.Cluster,但该表省略了前缀。
统计数据名称 | 说明 |
Servers | 从该服务器接收复制的所有集群成员 |
Successful | 服务器启动之后的所有成功复制 |
Failed | 服务器启动之后的所有失败复制 |
Docs.Added | Cluster Replicator 添加的所有文档 |
Docs.Updated | Cluster Replicator 更新的所有文档 |
Docs.Deleted | Cluster Replicator 删除的所有文档 |
Files. Local | 存在当前服务器中并且在集群中的其他服务器上拥有副本的数据库数 |
Files.Remote | Cluster Replicator 用于执行更改并且在其他服务器上的数据库数 |
Retry.Skipped | Cluster Replicator 没有尝试复制数据库的总时间。当目标服务器不可用或正在等待另一个重试请求时忽略的重试次数 |
Retry.Waiting | 等待重试的副本数 |
SecondsOnQueue | 最后复制的数据库在工作队列中的时间,以秒为单位 |
SecondsOnQueue.Avg | 数据库在工作队列中的平均时间,以秒为单位 |
SecondsOnQueue.Max | 数据库在工作队列中的最长时间,以秒为单位 |
SessionBytes.In | 集群复制期间接收的总字节数 |
SessionBytes.Out | 集群复制期间发送的总字节数 |
WorkQueueDepth | 正在等待通过 Cluster Replicator 进行复制的数据库数 |
WorkQueueDepth.Avg | 自从服务器启动之后的平均工作队列长度 |
WorkQueueDepth.Max | 自从服务器启动之后的最大工作队列长度 |
为运行 Internet 协议的 Domino 服务器创建集群
您还可以配置和使用 Internet Cluster Manager (ICM),从而将 Domino 集群的好处扩展到 HTTP 客户端和 Domino Web 服务器。您还可以通过 HTTP 服务器执行故障转移,以及使用 POP3、IMAP 和 LDAP 服务器执行故障转移。
Internet Cluster Manager 的工作原理
ICM 允许您在 HTTP 客户端(Internet 浏览器)访问 Domino Web 服务器时通过 Domino 集群为它们提供故障转移和工作负载平衡。这种方法让 Web 服务器和数据库具有高可用性。
您可以在 Lotus Domino Enterprise 服务器或 Lotus Domino Utility 服务器上运行 ICM,然后向往常一样安装和配置 Domino 集群,接着再配置 ICM。
ICM 能够:
用户可能将此看作在 URL 中改变主机名。用户还可以看到在 URL 中更改了数据库的路径,因为数据库在目标服务器上可能有多个路径。
如果 Web 服务器向客户端显示的页面包含到其他数据库的链接,那么当生成到这些数据库的 URL 时,Web 服务器在这些数据库的 URL 中包含 ICM 的主机名:
这确保用户访问这些链接时经过 ICM。
您可以在 Server 文档的 Internet Cluster Manager 部分配置 ICM。您还可以为 ICM 设置一个独立的 IP 地址。然后启动 ICM。
您可以在一个服务器上配置 ICM,然后让多个 ICM 访问这些配置。这允许在不同服务器上的 ICM 共享相同的配置。您应该在集群中的每个 Web 服务器上包含 ICM 配置信息,而不是仅在运行 ICM 的服务器上。
每个 Web 服务器都使用自己的 Server 文档确定如何生成引用 ICM 的 URL。Web 服务器从 Server 文档获取 ICM 的主机名,然后使用该主机名生成引用 ICM 的 URL。
要配置 ICM,请遵循以下步骤:
表 8. Fields for Server Tasks > Internet Cluster Manager 选项卡
位置 | 字段名 | 说明 |
Basics | Cluster name | ICM 将提供服务的集群的名称。如果该字段为空(默认),Domino 将使用包含该服务器的集群的名称。 |
ICM Notes port | ICM 用于与 HTTP 客户端通信的 Domino 端口的名称。如果该字段为空(默认),ICM 则可以使用任何 Domino TCP/IP 端口与 HTTP 客户端通信。仅当需要将 ICM 通信限制到一个特定的端口时才输入端口名。 | |
ICM SSL keyfile | 包含凭证的 SSL 密匙文件的名称,该文件在 ICM 与 HTTP 客户端通信时识别 ICM。如果该字段为空,ICM 将使用在 Server 文档中的 Ports - Internet Ports 选项卡上指定的密匙文件。 | |
Allow users to browse databases in the cluster over HTTP | 让 HTTP 客户端查看集群中的数据库列表。 启用这个字段时,用户可用输入 http://icmhostname/?OpenServer 作为 URL 进行访问。输入该 URL 将显示集群中服务器上与名为 cmhostname 的 ICM 相关联的所有数据库的列表。 | |
Configuration | Get configuration from | 允许您指定获得配置信息的其他 Server 文档。该字段允许多个 ICM 共享相同的配置。 |
Obtain ICM configuration from | 当在 “Get configuration from ”字段选择“another server document”将出现该字段。输入服务器名称,该服务器的 Server 文档包含您希望使用的配置。 | |
ICM hostname | 客户端用于与 ICM 通信的主机的完全限定名称。这可以是注册的 DNS 名或 IP 地址。 Domino Web 服务器使用该字段创建引用 ICM 的 URL。如果该字段为空,Web 服务器将不能生成引用 ICM 的 URL。 | |
ICM HTTP Port Settings | TCP/IP port number | 输入希望使用的 ICM 的端口号。 如果您在运行 Web 服务器的服务器上运行 ICM,则需要避免地址和端口冲突。如果没有给 ICM 分配独立的 IP 地址,一定要确保 ICM 使用的端口号与您在该服务器上使用的端口号不同。 |
TCP/IP port status | 要启用与 ICM 进行 HTTP 通信,选择 enabled。要禁用与 ICM 进行 HTTP 通信,选择 disabled。 | |
SSL port number | 输入用于 SSL 的端口号。 如果您在运行 Web 服务器的服务器上运行 ICM,并且 ICM 没有独立的 IP 地址,一定要确保 SSL 使用的端口号与您在该服务器上使用的端口号不同。 | |
SSL port status | 要启用与 ICM 进行 HTTPS 通信,选择 enabled。要禁用与 ICM 进行 HTTPS 通信,选择 disabled。 |
当 ICM 启动时,它将查找自己所在的服务器上的 Server 文档,以找到 ICM 集群名及其网络地址。然后,它从相同的 Server 文档或在“Obtain ICM configuration from”字段中指定的 Server 文档获取主机名和端口设置。
如果您在运行 Domino Web 服务器的服务器上运行 ICM,一定要避免 IP 地址或端口号冲突。最好的办法是为 ICM 分配独立的 IP 地址。如果您为 ICM 和 Web 服务器上的其他协议指定不同的端口号,那么还可以让 ICM 与 Web 服务器共享一个 IP 地址。
当使用 ICM 时,故障转移和工作负载平衡的工作流程与标准的 Domino 集群是一样的。Lotus Domino 根据所有打开的会话计算服务器的可用性指数,不管它们来自 Lotus Notes 客户端、HTTP 客户端还是其他 Domino 服务。
为了限制服务器的工作负载和管理故障转移,您可以使用标准集群中的设置,比如SERVER_RESTRICTED 和 SERVER _AVAILABILITY _THRESHOLD。对于数据库可用性也可以使用标准集群中的配置,比如将数据库标记为“Out of service”或“Pending delete”。
注意:与标准 Domino 集群不同的是,ICM 可以将客户端重定向到处于 MAXUSERS 状态的服务器,如果其他服务器不可用的话。Notes.ini 设置 Server_MaxUsers 仅适用于 NRPC;它不适用于 HTTP。
ICM 维护以下信息,以在客户端需要副本时找到副本:
为了确定打开数据库的哪个副本,ICM 将:
选择了将要访问的服务器之后,ICM 将查看 Server 文档,以确定通过哪个端口访问服务器。
当 HTTP 客户端连接的服务器失败时,该客户端将收到一条说明服务器不响应的消息。为了故障转移到另一个副本(如果可用的话),用户必须以下列方式之一与 ICM 通信:
用户可能需要或不需要通过新服务器的身份验证。这取决于以下因素:
当用户不能访问集群中的服务器时就会发生故障转移。发生的原因可能是他们不能访问包含数据库的服务器,也可能是不能访问数据库本身。
当用户执行以下操作时将发生故障转移:
(1) 尝试以以下方式打开不可用服务器上的数据库:
(2) 尝试打开因为下列因素不可用的数据库:
(3) 尝试通过以下方式访问不可用的 Web Navigator 服务器:
以下情况 不会 发生故障转移:
您现在应该已经理解如何利用 Domino 服务器集群提供的好处,以及如何设置和管理集群。我们讨论了故障转移的原理和发生条件,以及如何配置和管理工作负载平衡。此外,还讨论了调度复制、流复制、服务器可用性指数和 ICM,ICM 将 Domino 集群的好处应用到 HTTP 客户端和 Domino Web 服务器上。
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |