powerha_在IBM PowerHA集群环境中实现存储数据的服务器端缓存

本文介绍了如何将IBMPowerHA®集群配置为使用定制的应用程序脚本为应用程序提供高可用性(HA)时,如何在IBM®AIX®操作系统上启用服务器端存储数据缓存 。 AIX提供AIX 7.1 TL4 SP版本的服务器端存储数据缓存。 缓存设备可能是服务器连接的闪存,例如服务器中的内置固态驱动器(SSD),使用串行连接的SCSI(SAS)控制器直接连接的闪存设备,或存储区域网络中的闪存资源(SAN)。 可以在工作负载运行时动态启用缓存功能,也就是说,开始缓存的操作不需要将工作负载降至静态。 缓存对于工作负载也是完全透明的。 缓存目标设备后,所有读取请求都路由到缓存软件,并且如果发现该特定块位于闪存缓存中,则从缓存设备处理I / O请求。 如果在高速缓存中找不到请求的块,或者它是一个写请求,则该块将进入原始存储。

什么是服务器端存储数据缓存?

从AIX 7.1 TL4 SP2开始,IBM引入了服务器端对存储数据的缓存 。 存储数据缓存可减少事务性工作负载的平均延迟并提高吞吐量。 同时,如果它可以分担来自SAN的大量读取请求,则SAN可以具有更好的写入吞吐量,并有效地服务于大量的客户端和主机。

您可以在以下IBM developerWorks Wiki页面上了解有关存储数据的服务器端缓存的更多信息:

配置PowerHA集群环境后,可以为应用程序磁盘启用存储数据缓存。 因为PowerHA资源组可以在节点之间手动移动,所以确保作为PowerHA应用程序控制器脚本的一部分启动/停止应用程序磁盘的缓存始终很重要。 在深入研究细节之前,我们首先需要查看本文中使用的关键术语。

  • 缓存设备 :用于缓存的任何SSD或闪存
  • 缓存池 :一组仅用于存储缓存的缓存设备
  • 缓存分区 :从缓存池中划分出来的逻辑缓存设备
  • 目标设备 :正在缓存的存储设备。 单个缓存分区可用于缓存一个或多个目标设备
  • 主节点 :PowerHA集群节点(r7r3m206),它将在集群启动时启动应用程序
  • 辅助节点 :一个PowerHA集群节点(r73m207),可以在发生故障时重新启动应用程序

硬件设定

图1显示了在r7r3m206和r7r3m207这两个节点之间形成PowerHA集群的硬件设置。 AIX分区配置有相同的共享存储,并且为跨存储的已配置磁盘启用了存储镜像。 SSD还本地连接到每个AIX分区。 按照设置,应用程序磁盘为hdisk8,在其中创建了该应用程序的共享卷组,并将hdisk1配置为高速缓存磁盘。

图1.硬件设置

在本文中,我们通过手动移动资源组并模拟节点故障来演示PowerHA集群的服务器端缓存。

cltopin fo命令的输出如下。

(0) root @ r7r3m206: /
# cltopinfo
Cluster Name:    r7r3m206_cluster
Cluster Type:    Linked
Heartbeat Type:  Unicast
Repository Disks:
        Site 1 (site1@r7r3m206): hdisk5
        Site 2 (site2@r7r3m207): hdisk5
Cluster Nodes:
        Site 1 (site1):
                r7r3m206
        Site 2 (site2):
                r7r3m207

There are 2 node(s) and 1 network(s) defined

NODE r7r3m206:
        Network net_ether_01
                r7r3m206        10.40.0.48

NODE r7r3m207:
        Network net_ether_01
                r7r3m207        10.40.0.49

Resource Group RG
        Startup Policy   Online On Home Node Only
        Fallover Policy  Fallover To Next Priority Node In The List
        Fallback Policy  Fallback To Higher Priority Node In The List
        Participating Nodes      r7r3m206 r7r3m207

演示在手动移动资源组期间在PowerHA集群中存储数据的服务器端缓存

本节演示在IBM PowerHA集群环境中手动移动资源组期间服务器端缓存的工作方式。 通过在PowerHA环境中使用“移动资源组”选项停止集群服务来执行资源组的手动移动。

步骤1.在主节点和辅助节点上配置缓存。

创建一个高速缓存池和所需大小的分区。 然后将创建的分区分配给要缓存的目标磁盘。 在本文中,hdisk1是高速缓存磁盘,hdisk8(应用程序磁盘)是目标磁盘。 创建池,分区,分配目标和列表缓存的命令在图2中显示为主节点r7r3m206,在图3中显示辅助节点r7r3m207。

图2.创建池,分区,为分区分配目标并列出主节点的缓存的输出
图3.创建池,分区,为分区分配目标并列出辅助节点的缓存的输出

步骤2.启动PowerHA集群服务并检查应用程序状态。

如前所述,PowerHA集群已在节点r7r3m206和r7r3m207之间进行配置。 在配置集群应用程序控制器时,必须为应用程序配置启动脚本以对其进行监视。 脚本是自定义的,并随附于此文档中。 可以使用命令行或通过SMIT菜单启动PowerHA集群服务。 smit clstart命令将引导您到图4所示的屏幕。在这里,您可以选择要启动的集群的所有节点。

图4.通过smit启动PowerHA集群

群集稳定之后,可以使用clRGinfo命令验证资源组状态(如图5所示)。 当前,资源组(RG)将在主节点r7r3m206上联机。

图5.集群服务稳定后的clRGinfo输出

由于资源组在r7r3m206上处于活动状态,因此该应用程序将在主节点r7r3m206上启动。 图7显示了hdisk8上的应用程序I / O操作,它是应用程序磁盘(高速缓存分区的目标磁盘)。 如本文所述,启动和停止应用程序脚本将添加到PowerHA,它将检查高速缓存列表的活动状态。 由于不应有过时的数据,因此每次在启动应用程序之前,脚本都会检查缓存状态。 如果状态为inactive ,它将直接使其变为活动状态,但是如果状态为active ,它将再次重新启动以使缓存进入活动状态。 图6示出了高速缓存的有效和无效状态为初级和次级节点,而,图7显示了运行的应用程序上hdisk8状态。

注意 :有关应用程序启动脚本,应用程序停止脚本和应用程序监视脚本的信息,请参阅“ 下载”部分 。 用户可以根据自己的要求和输入来修改脚本。

图6.主节点和辅助节点上的缓存状态
图7.应用程序磁盘hdisk8上的I / O操作

步骤3.验证主节点上的缓存。

图8显示了主节点上服务器端缓存的输出,主节点上缓存处于活动状态,并且I / O操作在hdisk8上运行。 图8还显示了运行该命令以了解缓存操作的详细信息。

图8.缓存操作统计
  • 读取计数:这是已发出的读取操作的总数。 此数字是发出读取命令并已发送到SAN设备或高速缓存磁盘的所有应用程序的组合。
  • 写入计数:这是已发布给设备的写入操作总数。 此数字与请求的大小无关。 它是单独写入请求的实际计数。
  • 读取命中计数:这是已发出给设备的​​读取操作的总数。 完全读取命中是对其中读取请求包括所有请求缓存的数据的实例的计数。

步骤4.将资源组从主节点移动到辅助节点,并验证缓存。

如图9所示,在将资源组从一个节点手动移动到另一个节点时,应用程序停止脚本将首先停止应用程序,并且主节点(r7r3m206)上的缓存将变为非活动状态,如图10所示。从r7r3m206移到r7r3m207时,应用程序启动脚本将首先执行停止缓存操作,以检查是否有过时的数据,然后再次启动缓存以将r7r3m207上的缓存状态设置为active 。

图9.手动将资源组从主节点移动到辅助节点
图10.主节点上的缓存处于非活动状态

由于RG已从主节点(r7r3m206)移至辅助节点(r7r3m207),因此I / O操作将在r7r3m206上的应用程序hdisk8上停止,并且缓存命中数最初在r7r3m207上将处于活动状态,而缓存命中数将为0。 应用程序完成后,I / O在r7r3m207的hdisk8上启动,高速缓存进程将在hdisk1(即高速缓存磁盘)上启动。 图11显示,在资源组在该节点上联机之后,辅助节点上的缓存处于活动状态,并且将在该节点上进行I / O操作以及缓存管理。

(0) root @ r7r3m207: /
# cache_mgt cache list 
hdisk8,p1,active
图11.应用程序移动后,r7r3m207节点上的缓存统计信息

步骤5.将资源组从r7r3m207移回r7r3m206。

在将资源组从节点r7r3m207手动移回r73m206时,将执行类似的操作。 图12显示资源组在r7r3m207上处于活动状态 ,并且手动启动了资源组向r7r3m206节点的移动。

图12. RG在线节点和RG向r7r3m206的移动

将资源组移至r7r3m206后,该应用程序在r7r3m207上将处于非活动状态,而缓存在该节点上将处于非活动状态。 图13显示了r7r3m207上的缓存处于非活动状态,hdisk8上未发生任何I / O操作,r7r3m206上的资源组处于联机状态。 这将由PowerHA集群中配置的应用程序服务器停止脚本来处理。 与应用程序停止一起,脚本将尝试首先停止缓存管理,也就是说,它将使缓存进入非活动状态。

图13. r7r3m207上的缓存无效,没有I / O操作

RG尝试在r7r3m206上重新联机后,在PowerHA集群中配置的应用程序启动脚本将在启动应用程序之前使该节点上的缓存列表处于活动状态。 因此,应用程序读/写或I / O操作在缓存处于活动状态后开始,并且读取命中计数可以在缓存管理列表中看到。 图14显示了r7r3m206上的缓存处于活动状态,资源组处于联机状态,并且hdisk8上的应用程序I / O已启动,同时缓存管理验证了读取命中次数。

图14. r7r3m206上的活动高速缓存和验证高速缓存管理

演示节点故障期间PowerHA集群中存储数据的服务器端缓存

本节演示如何使用重新启动选项在节点故障情况下遇到服务器端缓存。 最初,资源组将在r7r3m206上联机,而在r7r3m207上脱机。 高速缓存管理将在r7r3m206上处于活动状态,并且I / O操作将在同一节点上运行。

步骤1.重新启动r7r3m206节点。

此步骤与先前的手动RG运动选项的演示相继进行。 资源组当前在r7r3m206上处于联机状态,因此,您可以使用r7r3m206上的重新启动选项执行节点故障。 图15显示了节点的重新引导。

图15.重新引导主节点,r7r3m206

步骤2.重新启动后,验证缓存管理和资源组状态。

重新启动主节点(r7r3m206)后,由于节点故障,资源组将尝试移至辅助节点(r7r3m207)。 在移动期间,应用程序服务器启动脚本使r7r3m207上的缓存管理处于活动状态,并启动I / O操作。 图16显示了在r7r3m207上处于活动状态的缓存管理以及在该节点上运行的I / O操作。

图16.辅助节点r7r3m207上的缓存管理和I / O操作

步骤3.重启主节点后验证缓存管理。

由于重新引导操作是在主节点(r7r3m206)上运行的,因此资源组已移至r7r3m207,并且相应的应用程序已在该节点上启动。 但是,重新引导后,缓存管理将自动启动,并且缓存列表将在r7r3m206上处于活动状态。 图17显示了缓存列表状态,您会注意到I / O操作未在r7r3m206上运行,因为资源组在该节点上未处于活动状态。 因此,即使在高速缓存管理统计信息中的读取命中计数也将为0,因为r7r3m206上没有发生I / O操作。 图18显示了r7r3m206的读取命中计数为0的缓存管理统计数据。

图17.重新启动后,r7r3m206上的缓存列表处于活动状态和I / O操作处于非活动状态
图18. r7r3m206上的缓存管理统计信息

步骤4.在主节点r7r3m206上启动群集服务。

由于r7r3m206已重新引导,因此资源组移至r7r3m207,并且应用程序I / O在r7r3m207上处于活动状态。 重新引导后r7r3m206主节点启动并运行后,该集群将相对于PowerHA处于非活动状态。 因此,在r7r3m206上再次启动集群服务时,资源将按照配置的集群中定义的优先级从r7r3m207退回到该节点。 您可以使用smit clstart command启动集群服务。 当群集服务在r7r3m206上启动时,资源组(RG)将退回到r7r3m206,并在r7r3m207上联机。

根据应用程序启动脚本的配置,在启动应用程序之前,它将首先尝试重新启动r7r3m206上的缓存列表。 启动应用程序后,可以在缓存目标磁盘上看到读取的命中计数。 图19显示了移回r7r3m207的应用程序,还显示了缓存管理统计信息。

图19.返回主节点的资源和同一节点上的缓存管理

步骤5.在辅助节点上停止应用程序和缓存管理。

由于节点重启后群集服务已在r7r3m206上再次启动,因此资源组(RG)将从r7r3m207退回到r7r3m206,如图20所示。在此操作期间,配置的应用程序PowerHA stop脚本会将缓存列表移至r7r3m207 处于非活动状态,然后将停止同一节点上的I / O操作,因为资源组将在该节点上处于脱机状态。 图20显示,缓存管理已在r7r3m207上停止,并且使用在应用程序服务器中配置的PowerHA停止脚本,该节点上的I / O操作也已停止。

图20.应用程序I / O操作停止,辅助节点上的缓存管理

结论

本文演示了在手动资源组移动期间以及在发生节点故障的自然灾害情况下,IBM PowerHA集群环境中服务器端存储数据缓存的实现。 通过卸载来自存储区域网络的请求,这有助于减少工作负载的平均延迟并实现更好的写入吞吐量。

翻译自: https://www.ibm.com/developerworks/aix/library/au-aix-implementing-server-side-caching-of-storage-data/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值