一种基于Lustre配置高可用集群的方法及装置与流程

文档序号:18256929发布日期:2019-07-24 10:19阅读:922来源:国知局
一种基于Lustre配置高可用集群的方法及装置与流程

本发明涉及文件系统领域,更具体地,特别是指一种基于Lustre配置高可用集群的方法及装置。



背景技术:

IML为Intel开发的Lustre管理工具,可以自动实现Lustre服务节点的添加和目标的格式化及高可用集群(HA)资源的配置。Intel在2017年已宣布该软件开源。IML成功安装后,用户可以通过在浏览器中输入IML节点的IP地址打开GUI监控页面。用户可以通过IML的GUI页面实现Lustre的一站式部署,自动安装相关软件配置Lustre。

但是,IML对Lustre的版本有一定的依赖性,IML不能实现对所有Lustre版本的管理控制。IML对节点的环境有严格的要求,包括操作系统,可能会存在很多冲突包。IML不能实现自己的定制化配置,使用IML配置的Lustre基本都一样,如果客户有自己的要求,几乎不可能满足。IML需要占用单独的节点,对服务节点造成很大的浪费。



技术实现要素:

有鉴于此,本发明实施例的目的在于提出一种基于Lustre配置高可用集群的方法及装置,其能够根据不同的需要运用不同的配置方案,对集群节点的要求较少,并且可以适用于所有Lustre版本。

基于上述目的,本发明实施例的一方面提供了一种基于Lustre配置高可用集群的方法,包括如下步骤:创建Lustre文件系统;在Lustre文件系统中配置高可用集群的目标资源,并设置目标资源的启动和停止顺序;将目标资源均衡挂载到所有节点上;以及对网络进行监控,并响应于节点故障,对目标资源进行切换和关闭问题节点。

在一些实施方式中,创建Lustre文件系统包括:格式化存储磁盘。

在一些实施方式中,在Lustre文件系统中配置高可用集群的目标资源还包括:在配置目标资源之前配置基本参数,以防止节点不断重启。

在一些实施方式中,对网络进行监控,并控制目标资源的切换和问题节点的关机包括:判断是否可以连通管理接口地址,并响应于可以连通管理接口地址,设置节点间的中断并通过中断控制问题节点的关闭。

在一些实施方式中,响应于可以连通管理接口地址,设置节点间的中断并通过中断控制问题节点的关闭还包括:再次对基本参数进行配置。

在一些实施方式中,对网络进行监控包括:开启定时监控任务,每隔预定时间依次检测Lustre文件系统网络节点的状态。

在一些实施方式中,控制目标资源的切换和问题节点的关机包括:当检测到网络节点的状态不正常时,将网络节点的目标资源切换到对端的节点上并关闭网络节点。

本发明实施例的另一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行以实现如下步骤:创建Lustre文件系统;在Lustre文件系统中配置高可用集群的目标资源,并设置目标资源的启动和停止顺序;将目标资源均衡挂载到所有节点上;以及对网络进行监控,并响应于节点故障,对目标资源进行切换和关闭问题节点。

在一些实施方式中,在Lustre文件系统中配置高可用集群的目标资源还包括:在配置目标资源之前配置基本参数,以防止节点不断重启。

本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时执行如上方法的计算机程序。

本发明具有以下有益技术效果:能够根据不同的需要运用不同的配置方案,对集群节点的要求较少,并且可以适用于所有Lustre版本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明提供的基于Lustre配置高可用集群的方法的实施例的流程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

基于上述目的,本发明实施例的第一个方面,提出了一种基于Lustre配置高可用集群的方法的实施例。图1示出的是本发明提供的基于Lustre配置高可用集群的方法的实施例的流程示意图。如图1所示,本发明实施例包括如下步骤:

S1、创建Lustre文件系统;

S2、在Lustre文件系统中配置高可用集群的目标资源,并设置目标资源的启动和停止顺序;

S3、将目标资源均衡挂载到所有节点上;以及

S4、对网络进行监控,并响应于节点故障,对目标资源进行切换和关闭问题节点。

开源Lustre不能自动实现高可用,不能实现MGT(management target,管理目标)、MDT(metadata target,元数据目标)和OST(object storage target,对象存储目标)的自动切换,它必须借助第三方工具实现高可用,例如pacemaker和corosync。

Corosync是集群管理套件的一部分,通常会与其他资源管理器一起组合使用。它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等,可以提供一个完整的HA功能。

Pacemaker是一个集群资源管理器。它利用集群基础构件(OpenAIS、heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。

Corosync、pacemaker、Lustre配合使用可以实现Lustre服务节点的在线检测及资源的切换。通过CRMSH工具可以进行资源的配置和管理。

在创建Lustre文件系统之前,需要做一系列的准备工作。首先在所有IO(输入输出)节点关闭防火墙和selinux,配置无密码登陆和yum源,配置好磁盘多路径,安装HA管理通信工具pacemaker和corosync。然后安装kernel、Lustre和e2fsprogs RPM包。安装Lustre RPM包后需要重启集群或者使用/etc/init.d/openibd start才会加载IB驱动。配置好IB网络后,需要配置lustre.conf文件,然后重新加载lustre模块。

在做完了上述准备工作之后,就可以创建Lustre文件系统。根据优选的实施例,在创建Lustre文件系统后可以格式化存储磁盘。例如可以使用mkfs.lustre格式化存储磁盘。

在创建了Lustre文件系统之后,还需要进行一系列的准备工作。例如,配置corosync.conf文件,保证在所有IO节点该配置文件的内容是一致的。Corosync.conf文件中的quorum项中的expected_votes:的属性值为所有IO节点数减1。完成corosync.conf的配置后,需要重启corosync服务,然后使用crm status查看所有在线节点。

根据优选的实施例,在Lustre文件系统中配置高可用集群的目标资源还包括:在配置目标资源之前配置基本参数,以防止节点不断重启。例如,可以将no-quorum-policy设为ignore,stonith-enabled设为false。

高可用集群的目标资源可以直接按照以下模板进行配置:

primitive resMyMGT ocf:heartbeat:Filesystem\

meta target-role="stopped"\

operations$id="resMyMGT-operations"\

op monitor interval="120"timeout="60"\

op start interval="0"timeout="300"\

op stop interval="0"timeout="300"\

params

device="/dev/disk/by-uuid/dm-uuid-part1-mpath-3600605b00e1f1c002322e89510668812"directory="/mnt/mgt"fstype="lustre"

不同的目标只需要修改上述模板中的资源名、挂载的设备名和挂载目录即可。

目标资源的启动需要按照一定的顺序,不然会损坏数据。例如,Lustre文件系统的启动顺序为MGT、OST、MDT,因此在配置启动顺序约束时应将MDT和OST排在MGT的后面,使用crm configure order命令,启动顺序又包含Mandatory、Optional、Serialize。Mandatory表示强制约束,所有Mandatory资源的状态必定相同,其他资源状态跟随第1个资源的状态变化而变化。有Mandatory关系的两个资源,当第1个资源停止后,第2个资源也必须停止,启动/停止顺序按从左到右。Optional表示选择性约束,当第1个资源状态发生变化时,第2个资源不会受影响,不会跟随变化,只有当多个资源同时启动或停止时才发生order(次序)作用。Serialize表示顺序约束,资源按顺序启动/停止,不可同时启动/停止。

因为MGT包含了整个文件系统的配置信息,本发明采用Mandatory,即所有的资源都跟随MGT变化。配置如下:

crm configure order Other_after_MGT Mandatory:resMyMGT resMyOST0…

resMyMDT

然后是配置挂载约束,将目标资源均衡挂载到所有节点上。每个IO节点挂载相同数量的目标,而不是所有目标挂载在相同的节点上。因此我们使用score(分数)的方法,即OST1挂载在IO01节点为20分,挂载在IO02节点为10分,依次类推OST2挂载在IO01节点为10分,挂载在IO02节点为20分。目标节点会优先选择分数高的节点进行挂载。且每个资源的挂载节点的约束是成对配置的,配置方法如下:

crm configure location OST0_on_str06resMyOST0 20:str06

crm configure location OST0_on_str08resMyOST0 10:str08

如果IO01节点发生宕机,在该节点的所有resource(资源)都会挂载到相邻节点,即IO02节点,当IO01节点恢复后,所有的resource又会自动切换回来。有时需要排查导致IO01宕机的原因,因此,当IO01节点恢复后,不需要所有resource立刻切换回来,此时将在IO01节点的resource的score设为1000即可。

对网络进行监控,并控制目标资源的切换和问题节点的关闭。

一般情况下,OS层面可以允许连通管理接口地址(IPMI),此时需要判断是否可以连通管理接口地址,当可以连通管理接口地址时,设置节点间的中断(fence),并通过中断控制问题节点的关闭,此时,可以再次对基本参数进行配置,例如,开启stonith-enabled和no-quorum-policy,否则,继续关闭上述参数。Fence的配置方式如下:

primitive stonith_mgmtd1stonith:fence_ipmilan\

>params hostname="mgmtd1"ipaddr="192.168.220.19"interface="lanplus"userid="admin"passwd="ADMIN"\

>op monitor interval=20m timeout=90s

在这种情况下,需要配置每个IO节点的fence,不同的IO节点只需修改hostname、ipaddr、userid和passwd即可。配置fence后,就会通过IPMI强制问题节点关闭。

但是,在对集群安全性要求较高的情况下,IPMI与系统IP不在统一网段,无法通过IPMI关闭问题节点。本实施例中通过如下方式实现网络监控,并控制资源的切换和问题节点的关闭:

1、开启定时监控任务,每隔预定时间依次检测网络节点的状态,预定时间可以自由设定,例如可以是30秒;

2、当检测到网络节点的状态不正常时,将网络节点的目标资源切换到对端的节点上并关闭网络节点。正常情况下网络节点的状态为up,当出现故障时,网络节点的状态会变为down。当检测到网络节点为down时,将该节点的所有资源切换到对端的节点,切换的命令可以是crm migrate resource node。当所有的资源切换到对端后,关闭问题节点,例如可以采用系统自带的shutdown命令关闭问题节点。

在配置完HA之后,可以开启文件系统,可以使用crm resorce resoucename start将所有的资源开启。然后,可以挂载客户端。

需要特别指出的是,上述基于Lustre配置高可用集群的方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于基于Lustre配置高可用集群的方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。

基于上述目的,本发明实施例的第二个方面,提出了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行以实现如下步骤:创建Lustre文件系统;在Lustre文件系统中配置高可用集群的目标资源,并设置目标资源的启动和停止顺序;将目标资源均衡挂载到所有节点上;以及对网络进行监控,并响应于节点故障,对目标资源进行切换和关闭问题节点。

根据优选的实施例,在创建Lustre文件系统和在Lustre文件系统中配置目标资源之间还包括:配置基本参数,以防止节点不断重启。

本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时执行如上方法的计算机程序。

最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,基于Lustre配置高可用集群的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。

此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。

此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。

结合这里的公开所描述的方法或算法的步骤可以直接包含在硬件中、由处理器执行的软件模块中或这两者的组合中。软件模块可以驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域已知的任何其它形式的存储介质中。示例性的存储介质被耦合到处理器,使得处理器能够从该存储介质中读取信息或向该存储介质写入信息。在一个替换方案中,存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。在一个替换方案中,处理器和存储介质可以作为分立组件驻留在用户终端中。

在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1