本发明涉及计算机信息存储技术领域,具体涉及一种双控磁盘阵列共享文件系统。
背景技术:
随着信息技术和网络技术的迅猛发展,互联网上的信息总量以爆炸式的增长,同时信息的重要性和价值也不断地增长,信息技术行业也逐步进入了以信息存储为核心的时代。在云存储技术快速发展的背后,是对海量信息存储系统提出的更高要求和挑战:存储容量更大、存取速度更快、可靠性更强、稳定性更优等。现代存储系统应当具备高性能、高可用性、高可靠性、易扩展性、易使用性和易维护性等特征。磁盘阵列控制器作为磁盘阵列的核心部件,它的性能高低已经成为影响磁盘阵列系统整体性能的关键因素,与之相应的磁盘阵列存储系统的单点故障开始逐渐向控制器端转移,通过控制器的冗余机制,保证了在控制器端出现单点故障的情况下,系统不会瘫痪,仍能对外提供不间断服务。双控磁盘阵列中控制器组直接使用共享存储介质建立本地文件系统的情况下无法保证文件系统的一致性和可用性。因此,在共享存储介质中建立文件系统,保证文件系统的可用性和一致性,需要一种新的架构设计。
技术实现要素:
(一)要解决的技术问题
本发明要解决的技术问题是:如何保证双控磁盘阵列的控制器组能够互斥地访问共享存储介质的文件系统,保证文件系统数据一致性和可用性。
(二)技术方案
为了解决上述技术问题,本发明提供了一种双控磁盘阵列共享文件系统,所述双控磁盘阵列共享文件系统包括一套双控磁盘阵列1,所述双控磁盘阵列1包括一个控制器组2,所述控制器组2包括两个控制器3,均为磁盘阵列控制器,两个控制器3通过以太网心跳通道4互连,两个控制器3使用相同的时钟服务器,用于保证两个控制器3的时间一致,以便设置控制器3的主备角色;
所述控制器组2中通过sas通道5使用共享存储介质6,两个控制器3通过sas通道5互连;
所述两个控制器3并行工作且互为冗余,当控制器组2中的一个控制器出现故障,另外一个控制器接管;
所述共享存储介质6中包含两个分区,其中一个分区保存控制器3的唯一标识信息,用于标明当前共享存储介质6的共享文件系统62挂载在哪个控制器本地,以及标识信息的最后更新时间,所述唯一标识信息为属主信息61;另一个分区建立共享文件系统62,如xfs、ext4,用于存储共享配置信息。
优选地,所述所述共享存储介质6为sas机械硬盘或sas固态硬盘。
优选地,所述唯一标识信息为mac地址。
优选地,所述共享文件系统62为xfs。
优选地,所述共享文件系统62为ext4。
优选地,所述控制器组2中,所述共享配置信息以文件的形式保存在共享文件系统62中,主控制器31、备控制器32二者互斥访问该共享文件系统62,主控制器31有读写权限,备控制器32有读权限,在控制器3正常运行时,共享文件系统62在主控制器31挂载,备控制器32通过以太网远程挂载方式,将已在主控制器31挂载的目录挂载到备控制器32本地,远程挂载采用用户授权方式,远程挂载用户只有读权限,并且备控制器32所有的读操作请求全部发送到主控制器31进行处理。
本发明还提供了一种利用所述的系统实现共享文件系统挂载的方法,包括以下步骤:
在正常使用情况下,双控磁盘阵列1开机启动,控制器组2中的两个控制器3正常启动,在控制器3启动过程中,两个控制器3通过以太网心跳通道4检测互连状态,检测完成后,根据开机时间的先后决定两个控制器3的主备角色;主备角色生成后,主控制器31使用硬盘锁对共享存储介质6加写互斥锁;在首次使用共享文件系统62,将共享存储介质6进行分区并建立文件系统再进行挂载,后续使用时主控制器31直接挂载共享文件系统62到本地,并周期性地在共享存储介质6中更新属主信息61;备控制器32远程挂载共享文件系统62。
本发明又提供了一种利用所述的系统实现主控制器宕机备控制器接管的方法,包括以下步骤:
若双控磁盘阵列1在正常运行过程中,出现控制器组2中的控制器3出现宕机导致心跳通道不可用的情况发生时,主控制器31、备控制器32检测到心跳通道4不可用,若主控制器31宕机,属主信息61的最后更新时间无法更新,备控制器32通过以太网心跳通道4检测到对端的主控制器31以太网心跳不通时,等待10秒后,会重新查看属主信息61的最后更新时间,此时会发现最后更新时间与当前时间相差多于30秒,判定主控制器31宕机,发生备控制器32提主操作;若备控制器32宕机,主控制器31仍会更新属主信息61的最后更新时间;
若双控磁盘阵列1在正常运行过程中,出现心跳通道4物理连接出现故障导致心跳通道不可用的情况发生时,主控制器31、备控制器32检测到心跳通道4不可用,主控制器31立即更新属主信息61的最后更新时间。
优选地,所述双控磁盘阵列1在正常运行过程中,出现控制器组2中的控制器3出现宕机导致心跳通道不可用的情况发生时,备控制器32执行如下提主操作:
备控制器32将自身角色变更为主控制器31;
抢占共享存储介质6的写互斥锁;
新的主控制器31取消当前的远程挂载,并将共享文件系统62直接挂载到本地;
新的主控制器31更新共享存储介质6的属主信息。
以上操作完成后,共享文件系统62可正常使用,
优选地,所述双控磁盘阵列1在正常运行过程中,出现心跳通道4物理连接出现故障导致心跳通道不可用的情况发生时,主控制器31重新更新共享存储介质6上的属主信息61,修改属主信息更新时间后;备控制器32等待10秒,然后重新查看属主信息61的最后更新时间,此时最后更新时间与当前时间相差少于30秒,备控制器62将远程挂载的共享文件系统62卸载,并停止该控制器3提供的服务,并开启守护进程,不断轮询共享文件系统62的最后更新时间,当检测到的最后更新时间与当前时间相差多于30秒时,判定在心跳不可用的情况下,主控制器31发生宕机,备控制器32执行提主操作;
以上操作完成后,共享文件系统62可正常使用。
(三)有益效果
本发明提出一种双控磁盘阵列共享文件系统设计方法,该系统中,双控磁盘阵列在开机阶段通过以太网心跳通道选举出两个控制器的主备角色。主控制器直接挂载共享介质上建立的文件系统,具有读写权限;备控制器通过以太网远程挂载的方式挂载已在主控制器上挂载的共享介质文件系统,远程挂载采用用户授权方式,提供该用户只读权限,保证共享介质的文件系统在同一时间只有一个控制器具有写权限,保证数据一致性和可靠性。当主控制器宕机后,备控制器发现以太网心跳不通,会自动将自身提升为主控制器,将远程挂载卸载,并直接挂载共享介质文件系统,拥有对该文件系统的读写权限。当心跳通道不可用时,主备控制器同时发现以太网心跳不通,主控制器会更新属主信息的最后更新时间,备控制器会根据最后更新时间停止该控制器的服务。该方法设计保证控制器组中,在至少有一个控制器正常运行的情况下,能够对共享存储介质的文件系统进行读写。该方案保证双控磁盘阵列的控制器组能够互斥地访问共享存储介质的文件系统,保证文件系统数据一致性和可用性。
附图说明
图1为本发明双控磁盘阵列的共享文件系统原理图;
图2为本发明双控磁盘阵列的共享存储介质结构图;
图3是本发明共享文件系统读写操作的示意图;
图4为本发明控制器组开机共享文件系统挂载流程图;
图5是本发明主控制器宕机备控制器接管图;
图6是本发明心跳通道不可用的处理流程图;
图7是本发明备控制器重新开机流程图。
其中:
1双控磁盘阵列2控制器组
3控制器4以太网心跳通道
5sas通道6共享存储介质
31主控制器32备控制器
61属主信息62共享文件系统
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明提供的一种双控磁盘阵列的共享文件系统设计方法,该系统所需的硬件平台由一套双控磁盘阵列1构成,双控磁盘阵列包括一个控制器组2,如图1所示:
控制器组2包括两个控制器3,均为磁盘阵列控制器,两个控制器3通过以太网心跳通道4互连,两个控制器3使用相同的时钟服务器,保证两个控制器3的时间一致,准确设置控制器3的主备角色;
控制器组2中通过sas通道5使用共享存储介质6,两个控制器3通过sas通道5互连;
其中,两个控制器3并行工作且互为冗余,当控制器组2中的一个控制器出现故障,另外一个控制器接管。
共享存储介质6为sas机械硬盘或sas固态硬盘。如图2所示,共享存储介质6中包含两个分区,其中一个分区保存控制器的唯一标识信息,如mac地址,用来标明当前共享存储介质6的共享文件系统62挂载在哪个控制器本地,以及标识信息的最后更新时间,共同组成属主信息61;另一个分区建立共享文件系统62,如xfs、ext4,用来存储共享配置信息。
如图3所示,控制器组2中,共享配置信息以文件的形式保存在共享文件系统62中,主控制器31、备控制器32二者互斥访问该共享文件系统62,主控制器31有读写权限,备控制器32有读权限。在控制器3正常运行时,共享文件系统62在主控制器31挂载,备控制器32通过以太网远程挂载方式,如sshfs,将已在主控制器31挂载的目录挂载到备控制器32本地,远程挂载采用用户授权方式,远程挂载用户只有读权限,并且备控制器32所有的读操作请求全部发送到主控制器31进行处理。
如图4所示,在正常使用情况下,双控磁盘阵列1开机启动,控制器组2中的两个控制器3正常启动。在控制器3启动过程中,两个控制器3通过以太网心跳通道4检测互连状态,检测完成后,会根据开机时间的先后决定两个控制器3的主备角色;主备角色生成后,主控制器31会使用硬盘锁(persistentreservation)对共享存储介质6(sashdd或sasssd)加写互斥锁,该硬盘锁的作用在于,即使双控磁盘阵列1中的两个控制器3因心跳网络波动导致控制器3主备角色不稳定,由于硬盘锁的存在,也能保证只有一个控制器3有读写权限,确保共享文件系统62的一致性;首次使用共享文件系统62,需将共享存储介质6进行分区并建立文件系统再进行挂载,后续使用时只需主控制器31直接挂载共享文件系统62到本地,并周期性地在共享存储介质6中更新属主信息61;备控制器32远程挂载共享文件系统62。
双控磁盘阵列1在正常运行过程中,会出现心跳通道不可用的情况。造成该情况发生的原因有两种:
控制器组2中的控制器3出现宕机;
心跳通道4物理连接出现故障。
两种情况任意一种发生时,主控制器31、备控制器32都会检测到心跳通道4不可用。本发明的系统设计中,在上述第二种情况发生时,主控制器31、备控制器32并未宕机,主控制器31会立即更新属主信息61的最后更新时间;而上述第一种情况发生时,若主控制器31宕机,属主信息61的最后更新时间无法更新,若备控制器32宕机,主控制器31仍会更新属主信息61的最后更新时间。
当发生上述第一种情况时,若宕机的控制器3为备控制器32,整个控制器组2仍能正常运行;当宕机的控制器3为主控制器31时,会发生备控制器32提主操作。备控制器32通过以太网心跳通道4检测到对端的主控制器31以太网心跳不通时,等待10秒后,会重新查看属主信息61的最后更新时间。此时会发现最后更新时间与当前时间相差多于30秒,判定主控制器31宕机,备控制器32会执行如下提主操作:
备控制器32将自身角色变更为主控制器31;
抢占共享存储介质6的写互斥锁;
新的主控制器31取消当前的远程挂载,并将共享文件系统62直接挂载到本地;
新的主控制器31更新共享存储介质6的属主信息。
以上操作完成后,共享文件系统62可正常使用,流程图如图5所示。
当发生第二种情况时,两个控制器3上的以太网心跳检测程序会检测出以太网心跳不通。主控制器31此时会重新更新共享存储介质6上的属主信息61,修改属主信息更新时间;备控制器32等待10秒后,会重新查看属主信息61的最后更新时间。此时最后更新时间与当前时间相差少于30秒,备控制器62会将远程挂载的共享文件系统62卸载,并停止该控制器3提供的服务,并开启守护进程,不断轮询共享文件系统62的最后更新时间,当检测到的最后更新时间与当前时间相差多于30秒时,判定在心跳不可用的情况下,主控制器31发生宕机,备控制器32会执行提主操作。
以上操作完成后,共享文件系统62可正常使用,流程图如图6所示。
宕机的控制器3重新加入到双控磁盘阵列1的控制器组2中,该控制器3通过以太网心跳检测获得备控制器32角色,并将共享文件系统62远程挂载到本地,流程图如图7所示。
双控磁盘阵列中两个控制器3在共享存储介质6使用本地文件系统实现互斥共享访问。所述双控磁盘阵列的控制器组2中,保证在任意一个控制器3宕机的情况下,仍能保证共享文件系统62的可用性和一致性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。