集群是 IBM® Lotus® Domino® Server 提供的最重要特性之一。关于任何使用 Domino 服务器的组织,让用户能够连续访问它们的数据库是至关重要的。假如拥有成千上万用户的服务器停机了,用户的生产力将受到阻碍,并导致负面的业务阻碍。
这份的目标关心您明白得集群,以及如何利用集群带来的好处,比如重要数据库的高可用性、工作负载平稳、可伸缩性和数据同步。我们说明如何设置和治理集群,并提供关于错误消息和使用集群时遇到的其他问题的信息。
注意,这份的大部分材料都来自 IBM Lotus Domino 8.5 Administrator information cent
er,您能够参考它获得更多信息。
什么是 Lotus Domino 集群?
Domino 集群是由两个以上的服务器组成的服务器组,它的功能包括为用户提供连续的数据访问、平稳服务器之间的负载、改善服务器性能,以及随着企业的增长爱护性能。
集群中的服务器包含需要对用户随时可用的数据库的副本。假如用户试图访问集群中不可用的数据库,Lotus Domino 将在集群的另一个服务器上打开该数据库的一个副本,假如存在它的副本的话。Lotus Domino 不断地同步数据库,如此用户打开的所有副本的信息差不多上一样的。
Lotus Notes 客户端能够访问所有 Domino 集群服务器,而 客户端〔Internet 扫瞄器〕仅能访问 Domino 集群中的 Domino Web 服务器。
Domino 集群的好处
现在,我们讨论 Domino 集群的要紧好处:
• 重要数据库的高可用性。当集群中的某个服务器发生硬件或软件问题时,它就会将
数据库打开要求重定向到其他服务器,让用户能够随时访问重要的数据库。那个过程称为故障转移。
集群为业务关键型数据库和服务器提供故障转移,包括将故障服务器的负载转移到集群中的其他服务器。故障转移还承诺您进行服务器爱护,比如硬件和软件升级,但对用户的负面阻碍专门小。
• 工作负载平稳。当用户试图访问繁忙的服务器时,Lotus Domino 能够将用户要求重
定向到集群中不繁忙的服务器中,从而使工作负载在整个集群中得到平稳。
集群服务器的工作负载平稳能够关心系统实现最正确的性能,加快数据访问速度。
• 数据同步。实现高效集群的关键是在两个或多个集群服务器上设置副本,从而让用
户可用在某个服务器显现故障或比较繁忙时访问其他服务器。集群复制确保所有更换,不管是针对数据库依旧集群成员本身,都即时传递到其他数据库或集群中的其他服务器。因此,连续地同步数据库实现了信息的高可用性。
• 改变操作系统、硬件或 Lotus Domino 版本比较容易。当您想要更变硬件、操作系
统或Domino 版本时,您能够将集群服务器设置为 RESTRICTED,从而将针对这些服务器的要求故障转移到其他包含副本的集群服务器中。这承诺您在进行变更时不阻碍用户的生产力。
服务器需求
在打算设立一个集群时,考虑硬件的性能和能力是专门重要的。集群必须具备足够的CPU 处理能力、内存和磁盘空间来处理集群流量和数据库备份等。
向集群添加服务器能够增加集群处理工作负载平稳的能力,从而保证所有服务器的负载水平适中,实现较高的性能。只是,假如服务器使用过多的任务、需要大量 CPU 的应用程序和副本,那么添加服务器会损害性能,因为增加的集群流量时要保持在所有服务器上同步数据库。
服务器需求如下:
• 集群中的所有服务器都必须运行在 Lotus Domino Enterprise 服务器或 Domino U
tility 服务器之上。
• 集群中的所有服务器都必须通过高速局域网〔LAN〕或高速广域网〔WAN〕连接起来。
您能够为集群通信设置私有 LAN。
• 集群中的所有服务器都必须使用 TCP/IP 协议,同时在同一个以 IBM Lotus Notes
命名的网络上。
o 集群中的所有服务器都必须在同一个 Domino 域中,并共享相同的 Domino
Directory。
o 必须在包含集群的域中为 Domino Directory 指定一个治理服务器。假如没
有指定治理服务器,Administration Process (AdminP) 就不能更换集群成员。治理服务器能够不是集群成员。
o 集群中的每个服务器都必须拥有一个分级的服务器 ID。假如存在使用水平
ID 的服务器,必须将其转换为使用分级 ID。
o 一个服务器仅能是一个集群的成员。
o 每个服务器都必须拥有足够的磁盘空间来完成集群成员的任务。因为集群通
常需要多个数据库副本,因此集群服务器比非集群服务器需要更多磁盘空间。
o 每个服务器都必须拥有足够的 CPU 处理能力和内存容量。总体而言,集群
服务器比非集群服务器需要更多的 CPU 处理能力和内存。
设置集群
在那个小节中,我们讨论如何创建集群,以及如何验证正确创建了集群。您能够选择直截了当向集群添加服务器,或使用 AdminP 向集群添加服务器。
使用 AdminP
假如您使用 AdminP 向集群添加服务器,Lotus Domino 将向 Administration Requests 数据库提交一个要求,要求将集群的名称添加到集群中的每个服务器的 Server 文档。
假如您使用治理服务器创建集群,AdminP 将赶忙运行并将集群名称添加到 Server 文档。
直截了当添加集群
假如您选择直截了当向集群添加服务器,Lotus Domino 将在赶忙在您用于创建集群的服务器上的 Domino Directory 中更换 Server 文档。
假如该服务器是集群的成员,它就会赶忙启动下面列出的集群流程,并将其 Domino Directory 与集群中的另一个服务器同步,从而让其他集群服务器明白它们是集群的成员。
假如您不是使用集群成员创建集群,那个流程将在您使用的服务器的 Domino Directory 与集群中的服务器的 Domino Directory 同步时开始。
创建集群
要创建一个集群,需要遵循以下步骤〔注意,不能使用 Web Administrator 创建集群〕:
1. 在 Domino Administrator 上确保治理服务器或其他服务器是最新的。 2. 单击 Configuration 选项卡,并在 Tasks 面板中展开 Server,然后选择 All Se
rver Documents〔见图 1〕。
3. 在 Results 面板上,选择需要添加到集群的服务器。
图 1. All Server Documents〔查看大图〕
4. 单击 Add to Cluster;这时将显现一个确认对话框〔见图 2〕。
图 2. Add to Cluster 确认对话框〔查看大图〕
5. 在 Cluster Name 对话框中选择 Create New Cluster,然后单击 OK。 6. 输入新集群的名称,然后单击 OK〔见图 3〕。
图 3. New Cluster Name 对话框〔查看大图〕
7. 选择 Yes 赶忙将服务器添加到集群,或选择 No 向 Administration Process 提交
一个向集群添加服务器的要求〔见图 4-6〕。
图 4. Immediate 或 Administration Process 选项〔查看大图〕
图 5. 选择 Yes 赶忙将服务器添加到集群〔查看大图〕
图 6. 选择 No 向 Administration Process 提交一个要求〔查看大图〕
8. 〔可选〕假如您在步骤 8 选择 No,同时没有通过治理服务器添加服务器,那么需
要在您使用的服务器和治理服务器之间进行复制,让治理服务器尽快收到要求的更换。
9. 〔可选〕假如您在步骤 8 选择 No,那么需要在治理服务器和集群服务器之间进行
复制,让治理服务器尽快收到要求的更换。
10. 〔可选〕假如您在步骤 8 选择 Yes,那么集群信息将赶忙添加到用于创建集群的
服务器上的 Domino Directory。假如该服务器不是新集群的成员,那么将更换复制到添加到集群的服务器之一。
注意:假如可能的话,使用治理服务器创建集群会更快。治理服务器能够不是集群的成员。假如一个服务器属于另一个不同的集群,那么在您将其添加到新的集群之前,不需要把它从原先的集群删除。 Cluster Administration Process 会自动从原先的集群中删除该服务器,然后再把它添加到新的集群中。
为集群设置私有 LAN
为集群设置私有 LAN 能够将服务器探查和集群复制与其他网络通信隔离开,从而防止集群流量阻碍要紧网络的速度。
遵循以下步骤为您的集群设置一个私有网络:
1. 在集群的每个服务器中安装一个额外的网卡。这些网卡必须通过私有的集线器或交
换机连接起来。
2. 配置 LAN 以使用 TCP/IP。
3. 为每个服务器分配第二个 IP 地址。例如,在使用两个服务器的集群中,您能够使
用地址 192.168..1 和 192.168..2。
4. 为新的 IP 地址分配主机名,并将它们存放到 HOSTS 文件或 DNS 中。例如,在使
用两个服务器的集群中,您能够将主机名指定为 Acme_clu.acme 和 Acme2_clu.acme 。在 HOSTS 文件中的条目应该为:
Acme_clu.acme Acme2_clu.acme
5.
6. 确保每个集群服务器都能够 ping 通两个 IP 地址和另一个集群服务器的主机名,
从而保证私有 LAN 是有效的。此外,确保其他服务器能够使用常规的 LAN 地址ping 通集群服务器。
7. 在集群中的每个服务器上,为私有 LAN 添加一个新的网络端口,然后通过编辑Ser
ver 文档启用该端口。例如,添加一个名为 CLUSTER 的端口,然后通过在 Serve
r 文档的 Ports - Notes Network Ports 选项卡中添加表 1 的信息启用该端口。
表 1. Notes Network Ports 选项卡信息
字段名 Port Protocol
例如 CLUSTER TCP
Notes Network Cluster Network Net Address Acme_clu.acme Enabled
ENABLED
8. 从相应的子网中为每个端口分配一个 IP 地址,然后按照以下方式将该信息放到 N
otes.ini 文件中:
PORT1_TcpIPAddress=0,a.b.c.d: 1352 PORT2_Tcp I PAdd ress=0, e.f.g.h: 1352
9.
10. 其中 PORT1 和 PORT2 是端口名,a.b.c.d 和 e.f.g.h 是端口的 IP 地址。 11. 假如使用名为 TCPIP 和 CLUSTER 的端口,那么结果应该为:
TCPIP_TcpIPAddress=0,192.1 14.32.5:1352 CLUSTER_TcpIPAddress=0,1 92.168..1:1352
12.
13. 现在,执行以下操作之一:
o 对端口进行重新排序,让集群端口排在首位。这确保所有集群流量都使用那
个端口。确保所有其他流量被指定为使用其他端口。
o 向 NOTES.INI 文件添加以下行:
Server_Cluster_Default_Port=Cluster Port
o
o 其中 Cluster Port 是您为集群创建的端口。在那个例子中,该行应该为:
Server_Cl uster_Default_Port=CLUSTER
o
o 这确保在集群进行通信时所有集群流量都使用该端口,而不管端口的顺序如
何。
14. 注意:使用 Server_Cluster_Default_Port 设置为集群流量分配私有 LAN 端口有
一个缺点。假如集群服务器在连接到那个端口时遇到问题,它就不再尝试其他端口。这将导致该服务器不能与其他集群服务器通信。您必须解决网络问题或从 Notes.ini 文件删除该设置才能复原该服务器与集群的通信。 15. 最后,重启服务器 。
确保 Lotus Domino 使用私有 LAN
要确保 Lotus Domino 使用私有 LAN,您需要:
1. 在服务器操纵台输入 show cluster。
2. 在生成的结果中,找到〝Server cluster default port: Cluster Port〞,其中
Cluster Port 是以下之一:
o 假如您没有使用 Server_Cluster_Default_Port 设置为私有 LAN 指定端
口,那么 Cluster Port 应该为*〔星号〕,这表示私有 LAN 能够使用任意端口〔见图 7〕。
图 7. 服务器集群的默认端口:*
o 假如您使用 Server_Cluster_Default_Port 设置为私有 LAN 指定端口,那
么 Cluster Port 应该为指定的端口的名称,比如 CLUSTER〔见图 8〕。
图 8. 服务器集群默认端口:cluster
确保集群复制使用私有 LAN
此外,最好确保集群复制使用私有 LAN。为此,您能够查看一些集群统计数据:
1. 从 Domino Administrator 或 Web Administrator 单击 Server - Statistics 选
项卡。
2. 在列出的统计数据中,展开 NET。 3. 展开您为集群指定的端口名。 4. 查看私有 LAN 端口的以下统计数据:
BytesReceived BytesSent
5.
6. 展开 Replica,然后展开 Cluster。
7. 展开 Session Bytes,然后查找集群的以下复制统计数据:
In Out
8.
9. 将 NET.portname.BytesReceived 值与 Replica.Cluster.SessionBytes.In 值进
行比较。这些值应该专门接近,尽管不完全一致。
10. 将 NET.portname.BytesSent 值与 Replica.Cluster.SessionBytes.Out 值进行
比较。这些值应该专门接近,尽管由于私有网络不仅仅用于集群复制而导致一些差异。
确保集群正确创建
使用表 2 列出的操作,检查是否正确创建了集群。
表 2. 检查点
操作
从 Lotus Domino Administrator 或 Web Administrator 的 Ser
集群名后面跟着集群服务器名。
ver 面板中展开 Clusters。
从 Domino Administrator 或 Web Administrator 单击 Configu集群名后面跟着显示在 Results 面板ration 选项卡。在 Task 面板中,展开 Cluster,然后单击 Clu
中的集群服务器名。 应该看到的结果
sters。在 Results 面板中,打开您向集群添加的服务器的 Serv在 Basics 选项卡上的 Cluster name
er 文档。 字段的集群名。
显现在 Tasks 面板中的标题〝Cluster
从 Domino Administrator 或 Web Administrator 在 Server 面 Directory〞。这说明 Lotus Domino
板中单击一个集群服务器,然后单击 Files 选项卡。
创建了 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:
1. 打开数据库。
2. 集群复制将更换复制到另一个 Domino 8 集群副本。 3. 关闭所有指向数据库的引用。
4. 以后需要复制数据库中的更换,SCR 将这些更换复制到其他 Domino 8 服务器。
假如 SCR 在复制期间遇到任何错误,它就将数据库的操纵权返回给标准集群复制器,以复制更换并同步数据库。
当集群服务器的数据库发生变更时,特定的变更将被捕捉,并赶忙同步到拥有该数据库的副本的源 Domino 8 集群服务器。当目标集群服务器收到变更之后,它们就将变更应用到自己的副本。
SCR 的性能好处如下:
• SCR 没有在整个网络中执行操作,比如打开数据库或记录;相反,数据库变更被发
送到副本,并假设数据库副本需要这些变更。
• 在数据库发生变更时,SCR 不需要在所有集群服务器之间进行一对一的复制。
• 复制延迟专门短。
Domino 集群环境中的故障转移
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〕。
图 9. 包含 3 个服务器的例子
现在,我们看看那个场景的流程:
1. 一个 Lotus Notes 用户尝试打开 Server 1 上的数据库。 2. Lotus Notes 发觉 Server 1 没有响应。
3. Lotus Notes 并没有显示一条表示服务器不响应的消息,而是查找集群缓存,看看
那个服务器是不是集群成员,并查找集群中其他服务器的名称。
〔在 Notes 客户端首次访问集群中的一个服务器时,该集群的所有服务器的名称都被添加到该客户端的集群缓存中。该缓存每 15 分钟更新一次〕。
4. Notes 访问集群缓存列出的下一个服务器上的 Cluster Manager。
5. Cluster Manager 查找 Cluster Database Directory,以找到集群中的哪个服务器
包含有不可用服务器的副本。
6. Cluster Manager 将通过查看服务器缓存确定每个包含副本的服务器的可用性。〔服
务器集群缓存包含集群中所有服务器的信息。当集群服务器向其他集群服务器发送探针时,它们将获得该信息〕。
7. Cluster Manager 为集群中包含数据库副本的服务器创建一个列表,并依照可用性
对列表进行排序,然后将其发送给 Lotus Notes。
8. Lotus Notes 打开列表中第一个服务器〔可用性最强的服务器〕上的副本。假如该
服务器不再可用,将连续打开列表中的下一个服务器。在那个例子中,Server 2 是可用机会最大的服务器。
当 Notes 客户端关闭时,它将把集群缓存的内容储存到 CLUSTER.NCF 文件中。该客户端每次启动时都用 CLUSTER.NCF 文件中的信息填充集群缓存。
Domino 集群中的工作负载平稳
为 Lotus Domino 服务器创建集群还提供活动的负载平稳,从而更好地利用资源。我们能够通过以下步骤在 Domino 服务器之间实现工作负载平稳:
• 每个服务器的工作负载〔更换服务器可用性阈值〕 • 更换能够同时访问某个服务器的最大用户数 • 将数据库移动〔分发〕到其他服务器
• 在集群中打算和放置副本,为繁忙的数据库创建更多的副本 • 向集群添加一个或多个服务器
• 使用 Activity Trends 工具分析集群的情形并提供建议
一定要记住,工作负载平稳并不能解决企业的总体运算能力匮乏问题。假如您的 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 显示了将膨胀系数转换成可用性指数的一些例子〔注意,这些值基于默认的膨胀系数, 表示服务器满载〕。
表 3. 将膨胀系数转换成可用性指数
膨胀系数 可用性指数
1 2 4 8 16 32
100 83 67 50 33 17 0
注意:膨胀系数和可用性指数仅度量服务器的响应时刻,服务器响应时刻通常只是客户端经历的响应时刻的一小部分。例如,客户端和服务器之间的网络响应时刻在客户端经历的响应时刻中占据专门大比重。
更换表示服务器满载的膨胀系数值
为了让 Domino 工作负载平稳更高效,您必须调整膨胀系数和可用性指数之间的关系,让服务器在达到您指定的工作负载时执行故障转移。您能够通过指定表示服务器满载的膨胀系数值来实现那个目的。
在 Lotus Domino 服务器中,默认值为 。当膨胀系数达到那个值时,就认为服务器差不多满载,这是它的可用性指数就下降到 0。
技巧:您能够通过 Show AI 服务器命令查看举荐的可用性指数设置。
假如您的服务器专门强劲快速,您能够增加表示服务器满载的膨胀系数值。在一些专门快的服务器上,您能够将该值设置为几百或更高。假如您的服务器专门慢,那么能够考虑降低膨胀系数值。
要更换表示服务器满载的膨胀系数值,请遵循以下步骤:
1. 将下面的设置添加到 Notes.ini 文件,然后重启服务器。
SERVER_TRANSI NFO_RANGE=n
2.
3. 关于 n 值,您能够选择一个数字,让 2 的 n 次方等于您期望表示服务器满载的膨
胀系数值。n 的默认值为 6,那么得出的膨胀系数值为 〔因为 2 的 6 次方等于 〕。
假如您将 SERVER_TRANSINFO_RANGE 设置为 7,那么表示服务器满载的膨胀系数值那么为 128。假如将该参数设置为 8,那么膨胀系数值就变成 256。
4. 为了确定 SERVER_TRANSINFO_RANGE 的最正确值,请遵循以下步骤:
a. 在服务器繁忙使用期间使用操纵台命令 show stat server.expansion
factor 监控它的膨胀系数。您还能够在此期间监控性能统计数据。在繁
忙时期记录足够的膨胀系数值,以确定表示服务器满载时的膨胀系数值。 b. 为 SERVER_TRANSINFO_RANGE 确定一个值,将该值作为 2 的指数得出的结
果应该为您在步骤 1 中选择的膨胀系数值。当更换表示服务器满载的膨胀系数值时,膨胀系数和可用性指数之间的关系就会发生变化。
表 4 显示了当 SERVER_TRANSINFO_RANGE 为 8 时将膨胀系数转换成可用性指数的一些例子。在这些例子中,膨胀系数的最大值为 256,因为 2 的 8 次方等于 256。
表 4. 将膨胀系数转换成可用性指数
膨胀系数 可用性指数
1 2 4 8 16 32 128 256
100 88 75 63 50 38 25 13 0
c. 使用服务器操纵台命令 Show AI 为该变量猎取一个适当的值。在带负载运
行服务器一段时刻之后输入命令,操纵台将显示该服务器的膨胀系数历史和 AI。
改变用于运算膨胀系数的数据量
尽管一样情形下没有必要如此做,然而您能够使用下面的 Notes.ini 设置更换Lotus Domino 收集用于运算膨胀系数的数据量。
• 更换数据收集周期的次数:
Server_Transinfo_Max=x
•
• 其中 x 是您期望 Lotus Domino 使用的收集周期次数。 • 更换数据收集周期的时刻长度:
Server_Transinfo_Update_I nterval=x
•
• 其中 x 是每个周期的时长,单位为秒。
设置服务器可用性阈值
在每个服务器上设置服务器可用性阈值是实现集群工作负载平稳的关键因素。假如阈值设置得过高,将导致不必要地执行故障转移。假如设置得过低,将损害用户的体验,因为用户现在能够从其他服务器获得更好的性能。
为了确定服务器可用性阈值的最正确值,需要遵循以下步骤:
1. 在负载正常或偏高时期,使用以以下出的方法之一观看服务器的可用性指数:
• 从 Lotus Domino Administrator 或 Web Administrator 选择一个服务器。然后单
击 Server 选项卡,接着单击 Statistics 选项卡,在统计数据列表中,展开 Server 以查看 Availability Threshold 统计数据〔见图 10〕。
图 10. Availability Threshold 统计数据
• 在服务器操纵台输入show cluster:
图 11. 操纵台输出
• 在服务器操纵台输入 show stat server:
图 12. 操纵台输出
2. 依照您观看到的结果设置一个初始可用性阈值。设置该值时请考虑以下事项:
• 那个值应该接近您观看到的值的列表的底端。
• 添加额外的容量〔即减少可用性阈值〕以容纳需要故障转移到该服务器的服务器。
注意:当服务器失败时,它的工作负载将故障转移到集群中的其他服务器。假如集群仅包含两个服务器,同时它们的工作负载相同,那么将导致另一个服务器的负载增加将近 100%。假如集群中有 6 个服务器,那么其他服务器的工作负载将增加 20% 左右。因此,设置每个集群服务器的阈值时,要确保它能在其他服务器失败时接收适量的工作负载。
• 跟踪其他集群统计数据,看看工作负载是否合理分布。表 5 列出了一些关心实现该
目的的有用统计数据。〔这些数据是在服务器启动时积存的〕。
表 5. 与工作负载平稳相关的统计数据
统计数据名称 描述
Server.Availab服务器可用性指数的当前值。可用性指数的值的范畴是 0 至 100。0 表示服务器ilityIndex
没有可用资源。100 表示服务器完全可用。
服务器膨胀系数的当前值。该值用于运算可用性指数。值为 1 时表示服务器以最
Server. Expans小时刻完成事务。值为 时表示完成事务所需的时刻是最小时刻的 倍。默ion Factor 认情形下,膨胀系数为 时表示服务器满载,转换成可用性指数为 0。您能够
通过 Notes.ini 设置的 Server_Transinfo_Range 更换表示服务器满载的膨胀
系数。
您能够使用服务器命令 Show AI 猎取举荐的可用性指数。
Server.Cluster.OpenRedirect
繁忙服务器成功将客户端重定向到另一个集群成员的次数。
s. LoadBalance.Successful Server.Cluste
r.OpenRedirect繁忙服务器没有成功将客户端重定向到另一个集群成员的次数。假如目标服务器s.LoadBalance.Unsuccessf ul Server.Cluste
r.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.〞。
表 6. 用于集群治理的更多统计数据
统计数据名称
Member
说明
显示集群中的服务器的名称和可用性指数。
AvailabilityInd度量服务器可用性的方法之一。0 表示没有可用资源;100 表示服务器的所有资源完全
ex
可用。
AvailabilityThr服务器当前的可用性阈值。当可用性指数小于等于可用性阈值时,服务器将进入繁忙状
eshold
态。
服务器当前的膨胀系数。该值用于运算可用性指数。值为1 时表示该服务器以最小的时ExpansionFactor
刻完成事务。值为 时表示该服务器完成事务所需的时刻比最小时刻长 倍。默认
情形下,膨胀系数为 时表示服务器满载,而转换成可用性指数那么为 0。 您能够使用 Notes.ini 设置 Server_Transinfo_Range 更换表示服务器满载的膨胀系
数值。
OpenRedirects.F
在客户端通过副本 ID 打开数据库失败之后,服务器成功将客户端重定向到另一个集群
ailover.Success
成员所需的总时刻。
ful OpenRedirects.F
在客户端通过副本 ID 打开数据库失败之后,服务器不能将客户端重定向到另一个集群
ailover.Unsucce
成员所需的总时刻。
ssful OpenRedirects.F
在客户端通过路径名打开数据库失败之后,服务器成功将客户端重定向到另一个集群成
ailoverByPath.S
员所需的总时刻。
uccessful OpenRedirects.F
在客户端通过路径名打开数据库失败之后,服务器不能将客户端重定向到另一个集群成
ailoverByPath.U
员所需的总时刻。
nsuccessful OpenRedirects.L
在服务器处于繁忙状态时客户端通过副本 ID 打开数据库失败之后,服务器成功将客户
oadBalance.Succ
端重定向到另一个集群成员所需的总时刻。
essful OpenRedirects.L
在服务器处于繁忙状态时客户端通过副本 ID 打开数据库失败之后,服务器不能将客户
oadBalance.Unsu
端重定向到另一个集群成员所需的总时刻。
ccessful OpenRedirects.L
在服务器处于繁忙状态时客户端通过路径名打开数据库失败之后,服务器不能将客户端
oadBalanceByPat
重定向到另一个集群成员所需的总时刻。
h.Unsuccessful OpenRedirects.L
在服务器处于繁忙状态时客户端通过路径名打开数据库失败之后,服务器成功将客户端
oadBalanceByPat
重定向到另一个集群成员所需的总时刻。
h.Successful OpenRequest.Clu
当所有服务器 处于繁忙状态时的客户端要求总数。
sterBusy
OpenRequest.DatabaseOutOfServi
ce
OpenRequest.Loa
客户端尝试打开标记繁忙的服务器上的数据库所需的总时刻。
dBalanced
用于内部集群网络通信的默认端口,或一个星号,表示没有能够的默认端口或其他活动
PortName
端口。
ProbeCount ProbeError ProbeTimeout(mi
显示发生集群内部查找集群成员的时刻间隔。
ns) *
服务器查找其他集群成员所需的总时刻。 一个服务器查找另一个服务器时收到的错误。
客户端尝试打开标记为不可用的服务器上的数据库所需的总时刻。
* 这些统计数据没有显现在 Cluster 统计数据报告中,然而您能够通过 Show Stat 命令查看,或将其添加到 Cluster 统计数据报告表中。
表 7 列出了集群复制器统计数据。每个统计数据名都包含前缀 Replica.Cluster,但该表省略了前缀。
表 7. 集群复制器统计数据
统计数据名称
Servers Successful Failed Docs.Added Docs.Updated Docs.Deleted Files. Local Files.Remote
说明
从该服务器接收复制的所有集群成员 服务器启动之后的所有成功复制 服务器启动之后的所有失败复制 Cluster Replicator 添加的所有文档 Cluster Replicator 更新的所有文档 Cluster Replicator 删除的所有文档
存在当前服务器中同时在集群中的其他服务器上拥有副本的数据库数 Cluster Replicator 用于执行更换同时在其他服务器上的数据库数
Cluster Replicator 没有尝试复制数据库的总时刻。当目标服务器不可用或正在等待另一
Retry.Skipped
个重试要求时忽略的重试次数 Retry.Waiting SecondsOnQueu
最后复制的数据库在工作队列中的时刻,以秒为单位
e SecondsOnQueu
数据库在工作队列中的平均时刻,以秒为单位
e.Avg SecondsOnQueu
数据库在工作队列中的最长时刻,以秒为单位
e.Max SessionBytes.
集群复制期间接收的总字节数
In SessionBytes.
集群复制期间发送的总字节数
Out WorkQueueDept
正在等待通过 Cluster Replicator 进行复制的数据库数
h WorkQueueDept
自从服务器启动之后的平均工作队列长度
h.Avg WorkQueueDept
自从服务器启动之后的最大工作队列长度
h.Max
等待重试的副本数
为运行 Internet 协议的 Domino 服务器创建集群
您还能够配置和使用 Internet Cluster Manager (ICM),从而将 Domino 集群的好处扩展到 客户端和 Domino Web 服务器。您还能够通过 服务器执行故障转移,以及使用 POP3、IMAP 和 LDAP 服务器执行故障转移。
Internet Cluster Manager 的工作原理
ICM 承诺您在 客户端〔Internet 扫瞄器〕访问 Domino Web 服务器时通过 Domino 集群为它们提供故障转移和工作负载平稳。这种方法让 Web 服务器和数据库具有高可用性。
您能够在 Lotus Domino Enterprise 服务器或 Lotus Domino Utility 服务器上运行 ICM,然后向往常一样安装和配置 Domino 集群,接着再配置 ICM。
ICM 能够:
• 支持 和 S 协议,在集群中充当 客户端和 Domino Web 服务器之间
的中介。当 Domino Web 服务器在集群中运行时,它们将生成将 客户端要求指向 ICM 的 URL。
• 爱护集群中的服务器和数据库的可用性信息。当 ICM 收到客户端要求时,它将把该
客户端重定向到包含所要求的数据库的副本的可用性最大的服务器。
• 向集群中的服务器发送周期性探测,以确定它们的状态和可用性。当 ICM 收到客户
端要求时,它通过查找 Cluster Database Directory 中的信息,以找到包含被要求的数据库的服务器。
• 确定包含所要求数据库同时可用性最强的服务器,然后将客户端重定向到该服务器,
从而使客户端关闭与 ICM 的会话,并开始一个与所选择的服务器进行的新会话。
用户可能将此看作在 URL 中改变主机名。用户还能够看到在 URL 中更换了数据库的路径,因为数据库在目标服务器上可能有多个路径。
假如 Web 服务器向客户端显示的页面包含到其他数据库的链接,那么当生成到这些数据库的 URL 时,Web 服务器在这些数据库的 URL 中包含 ICM 的主机名:
• 与原始数据库在同一服务器上
• 在不同的服务器上,假如这些数据库的副本在包含原始数据库的服务器上
这确保用户访问这些链接时通过 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,请遵循以下步骤:
1. 从 Domino Administrator 或 Web Administrator 单击 Configuration 选项卡。 2. 在 Tasks 面板展开 Server,然后单击 All Server Documents。 3. 执行以下操作之一:
o 在 Domino Administrator 的 Results 面板为需要运行 ICM 的服务器选
择 Server 文档。然后单击 Edit Server。
o 在 Web Administrator 的 Results 面板,为需要运行 ICM 的服务器打开
Server 文档。然后单击 Edit Server。
4. 单击 Server Tasks 选项卡,然后单击 Internet Cluster Manager 选项卡〔见图
13〕。
图 13. Internet Cluster Manager 选项卡
5. 依照表 8 完成该选项卡中的字段,然后储存 Server 文档。
表 8. Fields for Server Tasks > Internet Cluster Manager 选项卡
位置 字段名 说明
ICM 将提供服务的集群的名称。假如该字段为空〔默认〕,Domino
Basics Cluster name
将使用包含该服务器的集群的名称。
ICM 用于与 客户端通信的 Domino 端口的名称。假如该字段为空〔默认〕,ICM 那么能够使用任何 Domino TCP/IP 端口与
ICM Notes port
客户端通信。仅当需要将 ICM 通信到一个特定的端口时才输
入端口名。
包含凭证的 SSL 密匙文件的名称,该文件在 ICM 与 客户端
ICM SSL keyfile 通信时识别 ICM。假如该字段为空,ICM 将使用在 Server 文档中
的 Ports - Internet Ports 选项卡上指定的密匙文件。
Allow users to br让 客户端查看集群中的数据库列表。
owse databases in启用那个字段时,用户可用输入 ://icmhostname/?Op
the cluster over
enServer 作为 URL 进行访问。输入该 URL 将显示集群中服务
器上与名为 cmhostname 的 ICM 相关联的所有数据库的列表。
ConfigurGet configuration承诺您指定获得配置信息的其他 Server 文档。该字段承诺多个 Iation
from
CM 共享相同的配置。
当在 〝Get configuration from 〞字段选择〝another server d
Obtain ICM config
uration from
文档包含您期望使用的配置。
客户端用于与 ICM 通信的主机的完全限定名称。这能够是注册的
DNS 名或 IP 地址。
ICM hostname
Domino Web 服务器使用该字段创建引用 ICM 的 URL。假如该字段
为空,Web 服务器将不能生成引用 ICM 的 URL。
输入期望使用的 ICM 的端口号。
ICM
TCP/IP port numbe假如您在运行 Web 服务器的服务器上运行 ICM,那么需要幸免地址
Port Se
r
ttings
ICM 使用的端口号与您在该服务器上使用的端口号不同。
TCP/IP port statu要启用与 ICM 进行 通信,选择 enabled。要禁用与 ICM 进
s
行 通信,选择 disabled。
输入用于 SSL 的端口号。
假如您在运行 Web 服务器的服务器上运行 ICM,同时 ICM 没有独
SSL port number
立的 IP 地址,一定要确保 SSL 使用的端口号与您在该服务器上使
用的端口号不同。
要启用与 ICM 进行 S 通信,选择 enabled。要禁用与 ICM
SSL port status
进行 S 通信,选择 disabled。
和端口冲突。假如没有给 ICM 分配的 IP 地址,一定要确保 ocument〞将显现该字段。输入服务器名称,该服务器的 Server
当 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 客户端、 客户端依旧其他 Domino 服务。
为了限降服务器的工作负载和治理故障转移,您能够使用标准集群中的设置,比如SERVER_RESTRICTED 和 SERVER _AVAILABILITY _THRESHOLD。关于数据库可用性也能够使用标准集群中的配置,比如将数据库标记为〝Out of service〞或〝Pending delete〞。
注意:与标准 Domino 集群不同的是,ICM 能够将客户端重定向到处于 MAXUSERS 状态的服务器,假如其他服务器不可用的话。Notes.ini 设置 Server_MaxUsers 仅适用于 NRPC;它不适用于 。
ICM 爱护以下信息,以在客户端需要副本时找到副本:
• 集群中的哪个服务器可用,以及它的位置。ICM 从 Cluster Database Directory
猎取该信息。
• 每个服务器的可用性。ICM 每次探查集群中的服务器时都猎取该信息。 • 哪个 Web 服务器配置为使用 ,哪个配置为使用 S。ICM 从集群中的每个
服务器的 Server 文档猎取该信息。
为了确定打开数据库的哪个副本,ICM 将:
• 确定副本的位置以及它们是否标记为〝Out of service〞或〝Pending delete〞。 • 检查包含副本的所有服务器的可用性指数。
• 通过 ping 端口或 S 端口〔取决于客户端要求〕检查服务器的可用性。 • 排除所有不可用或受的服务器。 • 排除处于 BUSY 或 MAXUSERS 状态的服务器。
• 从剩余的服务器中选择一个服务器。假如没有合格的服务器,ICM 将选择处于 BUS
Y 或 MAXUSERS 状态的服务器〔可用的话〕。假如剩余多个合格的服务器,ICM 将选择当前负载最轻的服务器。
选择了将要访问的服务器之后,ICM 将查看 Server 文档,以确定通过哪个端口访问服务器。
处理服务器失败
当 客户端连接的服务器失败时,该客户端将收到一条说明服务器不响应的消息。为了故障转移到另一个副本〔假如可用的话〕,用户必须以以下方式之一与 ICM 通信:
• 在扫瞄器上一次或多次单击 Back 按钮,以通过 ICM 连接到一个页面 • 使用书签 • 输入 URL
用户可能需要或不需要通过新服务器的身份验证。这取决于以下因素:
• 假如用户差不多在这次会话期间通过了新服务器的身份验证,那么就不再需要进行
身份验证。
• 假如 客户端和服务器都支持 SSL3,那么将自动进行身份验证。
故障转移场景
当用户不能访问集群中的服务器时就会发生故障转移。发生的缘故可能是他们不能访问包含数据库的服务器,也可能是不能访问数据库本身。
当用户执行以下操作时将发生故障转移:
(1) 尝试以以下方式打开不可用服务器上的数据库:
• 在工作空间中双击数据库图标。
• 在工作空间中选择数据库图标,然后选择 File > Open。
• 在工作空间中选择数据库图标,然后选择 View -
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务