一种存储链路清理方法、装置、设备及介质
文献发布时间:2023-06-19 13:45:04
技术领域
本申请涉及存储技术领域,特别涉及一种存储链路清理方法、装置、设备、介质。
背景技术
随着云计算技术及容器技术的发展,越来越多的生产环境正在逐步变革,将以传统虚拟化为中心的架构向以容器和微服务为中心的云原生架构(kubernetes、dockerswarm等)过渡。存储是“容器即服务”平台最关键的组件之一,容器原生存储将基础存储服务公开给容器和微服务,像软件定义的存储一样,它从不同的介质当中聚合和合并存储资源。存储作为容器云平台的基础设施资源,保证着容器云数据的安全,使数据能安全持久的存储、查询、不丢失。
多路径存储是能通过容器云平台节点和存储服务器之间采用多条链路进行连接,一旦某条链路出现故障,会自动切换到另一条链路,避免出现单点故障。多路径存储支持iSCSI协议(Internet Small Computer System Interface)和fc协议(Fibre Channel,光纤通道),运行在容器云平台的应用在挂载多路径存储设备的时候,一旦应用出现问题或者需要清理时,容器云平台的节点会存在冗余的多路径残留链路,这种情况下,如果容器云平台上有新建其他应用,新建应用挂载多路径存储设备时,有可能被分配到冗余的残留链路上,导致应用服务异常。
发明内容
有鉴于此,本申请的目的在于提供一种存储链路清理方法、装置、设备、介质,能够自动对容器云平台中主机节点上的残留存储链路进行清理,避免存储主机上的应用连接到残留存储链路导致应用服务异常的问题。其具体方案如下:
第一方面,本申请公开了一种存储链路清理方法,用于预设的目标主机节点,其中,目标主机节点上运行有ansible工具,包括:
获取预设的批量免密互信名单,其中,所述批量免密互信名单中包括待清理存储链路的容器云平台集群中的各个主机节点的节点信息;
根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,其中,所述存储链路配置文件用于记录各个所述主机节点上的容器与多路径存储设备之间建立的存储链路的信息;
根据所述存储链路配置文件确定出各个所述主机节点上是否存在残留存储链路;
如果是,则对各个所述主机节点上存在的所述残留存储链路进行批量清理,以便将各个所述主机节点上存在的所述残留存储链路置为初始状态。
可选的,所述目标主机节点为所述容器云平台集群中的任一主机节点,或,所述目标主机节点为所述容器云平台集群之外的主机节点。
可选地,还包括:
获取所述容器云平台中的主机节点变更信息;
根据所述主机节点变更信息更新所述批量免密互信名单。
可选地,所述根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,包括:
获取存储链路清理指令,并根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件;
或,按照预设时间间隔根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件。
可选地,所述根据所述存储链路配置文件确定出各个所述主机节点上是否存在残留存储链路,包括:
判断所述存储链路配置文件中记录的各条存储链路的链路状态是否为失效;
如果是,则将链路状态为失效的存储链路确定为残留存储链路,并根据所述存储链路配置文件确定所述残留存储链路的链路标识和所述残留存储链路对应的主机节点标识。
可选地,所述对各个所述主机节点上存在的所述残留存储链路进行批量清理,包括:
利用echo 1>/sys/block/残留存储链路的链路标识/device/delete命令对各个所述主机节点上存在的所述残留存储链路进行批量清理。
可选地,所述根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,包括:
利用ansible playbook根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件。
第二方面,本申请公开了一种存储链路清理装置,应用于预设的目标主机节点,其中,目标主机节点上运行有ansible工具,包括:
信息获取模块,用于获取预设的批量免密互信名单,其中,所述批量免密互信名单中包括待清理存储链路的容器云平台集群中的各个主机节点的节点信息;
存储链路查询模块,用于根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,其中,所述存储链路配置文件用于记录各个所述主机节点上的容器与多路径存储设备之间建立的存储链路的信息;
残留存储链路判断模块,用于根据所述存储链路配置文件确定出各个所述主机节点上是否存在残留存储链路;
残留存储链路清理模块,用于在所述残留存储链路判断模块的判定结果为是时,则对各个所述主机节点上存在的所述残留存储链路进行批量清理,以便将各个所述主机节点上存在的所述残留存储链路置为初始状态。
第三方面,本申请公开了一种电子设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述公开的存储链路清理方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的存储链路清理方法。
可见,本申请公开了存储链路清理方法,应用于预设的目标主机节点,其中,目标主机节点上运行有ansible工具,包括:首先获取预设的批量免密互信名单,其中,所述批量免密互信名单中包括待清理存储链路的容器云平台集群中的各个主机节点的节点信息。然后再根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,其中,所述存储链路配置文件用于记录各个所述主机节点上的容器与多路径存储设备之间建立的存储链路的信息。接着根据所述存储链路配置文件确定出各个所述主机节点上是否存在残留存储链路。如果是,则对各个所述主机节点上存在的所述残留存储链路进行批量清理,以便将各个所述主机节点上存在的所述残留存储链路置为初始状态。由此可见,本申请中可以自动对待清理存储链路的容器云平台集群中各个主机节点上的残留存储链路进行清理,将残留存储链路清理为初始状态,以便主机节点上的新容器使用,避免主机节点上新容器中的应用连接到残留存储链路导致应用服务异常的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种存储链路清理方法流程图;
图2为本申请公开的一种具体的存储链路清理方法流程图;
图3为本申请公开的一种存储链路清理装置结构示意图;
图4为本申请公开的一种电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,多路径存储是能通过容器云平台节点和存储服务器之间采用多条链路进行连接,一旦某条链路出现故障,会自动切换到另一条链路,避免出现单点故障。多路径存储支持iSCSI协议和fc协议,运行在容器云平台的应用在挂载多路径存储设备的时候,一旦应用出现问题或者需要清理时,容器云平台的节点会存在冗余的多路径残留链路,这种情况下,如果容器云平台上有新建其他应用,新建应用挂载多路径存储设备时,有可能被分配到冗余的残留链路上,导致应用服务异常。
参见图1所示,本申请实施例公开了一种存储链路清理方法,应用于预设的目标主机节点,其中,目标主机节点上运行有ansible工具,该方法包括:
步骤S11:获取预设的批量免密互信名单,其中,所述批量免密互信名单中包括待清理存储链路的容器云平台集群中的各个主机节点的节点信息。
在实际实施过程中,所述目标主机节点为用于进行存储链路清理的主机节点,所述目标主机节点可以为待清理存储链路的容器云平台中的任意一个主机节点,也即,可以从所述待清理存储链路的容器云平台中任意选择一个主机节点作为所述目标主机节点,也可以为所述待清理存储链路的容器云平台之外的主机节点,当所述目标主机节点为所述待清理存储链路的容器云平台之外的主机节点时,所述目标主机节点可以为所述待清理存储链路的容器云平台中的主机节点进行通信。不论是以上的那种情况,所述目标主机节点上运行有ansible工具,以便可以对所述容器云平台集群中的各个主机节点进行批量操作。
为了所述目标主机节点可以不用登录便可以直接访问所述待清理存储链路的容器云平台中的各个主机节点,所述目标主机节点需要先获取预设的批量免密互信名单,所述批量免密互信名单中包括待清理存储链路的容器云平台集群中的各个主机节点的节点信息。
步骤S12:根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,其中,所述存储链路配置文件用于记录各个所述主机节点上的容器与多路径存储设备之间建立的存储链路的信息。
可以理解的是,接下来便可以根据所述批量免密互信名单批量查询所述容器云平台集群中各个主机节点上的存储链路配置文件,所述存储链路配置文件用于记录各个所述主机节点上的容器与多路径存储设备之间建立的存储链路的信息。
也即,所述容器云平台集群中各个主机节点上的容器与多路径存储设备之间建立了存储链路之后,建立的存储链路的信息会记录在系统的存储链路配置文件中,所述存储链路配置文件中会记录各条存储链路的链路标识、链路状态等信息,所以需要先根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件。由于所述批量免密互信名单中已经包括了所述容器云平台集群中各个主机节点的节点信息,所以便可以对所述容器云平台集群中各个主机节点进行免密互信操作,批量对所述容器云平台集群中各个主机节点上的存储链路配置文件进行查询,得到所述容器云平台集群中各个主机节点上的建立的存储链路的情况。
步骤S13:根据所述存储链路配置文件确定出各个所述主机节点上是否存在残留存储链路。
相应的,在得到所述存储链路配置文件之后,还需要根据所述存储链路配置文件确定各个所述主机节点上是否存在残留存储链路,其中,所述残留存储链路为容器迁移等变化之后剩余的链路。
具体的,根据所述存储链路配置文件确定出各个所述主机节点上是否存在残留存储链路,包括:判断所述存储链路配置文件中记录的各条存储链路的链路状态是否为失效;如果是,则将链路状态为失效的存储链路确定为残留存储链路,并根据所述存储链路配置文件确定所述残留存储链路的链路标识和所述残留存储链路对应的主机节点标识。
也即,所述存储链路配置文件中有记录各条存储链路的链路状态,所以先判断所述存储链路配置文件中记录的各条存储链路的链路状态是否为失效(也即failed),如果是,则表明该存储链路已失效,所以便可以将链路状态为失效的存储链路确定为残留存储链路,并从所述存储链路配置文件中确定出所述残留存储链路的链路标识,以及该存储链路配置文件是从所述容器云平台集群中的哪一个主机节点上获取到的确定出所述残留存储链路对应的主机节点标识。
步骤S14:如果是,则对各个所述主机节点上存在的所述残留存储链路进行批量清理,以便将各个所述主机节点上存在的所述残留存储链路置为初始状态。
如果所述容器云平台集群中的主机节点上存在残留存储链路,则需要对各个所述主机节点上存在的所述残留存储链路进行批量清理,以便将各个所述主机节点上存在的所述残留存储链路置为初始状态。
也即,只是将各个所述主机节点上存在的残留存储链路批量设置为初始状态,以便新容器可以使用,便不是直接将残留存储链路删除。
可见,本申请公开了存储链路清理方法,应用于预设的目标主机节点,其中,目标主机节点上运行有ansible工具,包括:首先获取预设的批量免密互信名单,其中,所述批量免密互信名单中包括待清理存储链路的容器云平台集群中的各个主机节点的节点信息。然后再根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,其中,所述存储链路配置文件用于记录各个所述主机节点上的容器与多路径存储设备之间建立的存储链路的信息。接着根据所述存储链路配置文件确定出各个所述主机节点上是否存在残留存储链路。如果是,则对各个所述主机节点上存在的所述残留存储链路进行批量清理,以便将各个所述主机节点上存在的所述残留存储链路置为初始状态。由此可见,本申请中可以自动对待清理存储链路的容器云平台集群中各个主机节点上的残留存储链路进行清理,将残留存储链路清理为初始状态,以便主机节点上的新容器使用,避免主机节点上新容器中的应用连接到残留存储链路导致应用服务异常的问题。
参见图2所示,本申请实施例公开了一种具体的存储链路清理方法,应用于预设的目标主机节点,其中,目标主机节点上运行有ansible工具,该方法包括:
步骤S21:获取预设的批量免密互信名单,其中,所述批量免密互信名单中包括待清理存储链路的容器云平台集群中的各个主机节点的节点信息。
首先需要获取预设的批量免密互信名单,其中,所述批量免密互信名单中包括待清理存储链路的容器云平台集群中的各个主机节点的节点信息。
由于所述容器云平台集群中会有主机节点的变更,也即,可能会将有的主机节点从所述容器云平台集群中移除,也可能会在所述容器云平台集群中增加新的主机节点,所以还需要获取容器云平台中的主机节点变更信息;根据所述主机节点变更信息更新所述批量免密互信名单,其中,所述主机节点变更信息中包括变更的主机节点的节点信息,包括但不限于IP地址、用户名、密码等。
步骤S22:根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,其中,所述存储链路配置文件用于记录各个所述主机节点上的容器与多路径存储设备之间建立的存储链路的信息。
在应用中,在得到所述批量免密互信名单之后,需要根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,其中,所述存储链路配置文件用于记录各个所述主机节点上的容器与多路径存储设备之间建立的存储链路的信息。
具体的,获取存储链路清理指令,并根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件;或,按照预设时间间隔根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件。
也即,可以在获取到用户触发的存储链路清理指令时,根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件。也可以按照一定预设时间间隔对根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,从而进行残留存储链路的定期清理。
其中,所述根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,包括:利用ansible playbook根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件。
也即,所述目标主机节点上是运行有ansible工具的,所以可以利用ansibleplaybook根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件。
步骤S23:判断所述存储链路配置文件中记录的各条存储链路的链路状态是否为失效。
步骤S24:如果是,则将链路状态为失效的存储链路确定为残留存储链路,并根据所述存储链路配置文件确定所述残留存储链路的链路标识和所述残留存储链路对应的主机节点标识。
步骤S23和步骤S24的具体实施过程可以参考前述实施例中公开的内容,在此不再进行赘述。
步骤S25:对各个所述主机节点上存在的所述残留存储链路进行批量清理,以便将各个所述主机节点上存在的所述残留存储链路置为初始状态。
在确定出各个所述主机节点上存在的残留存储链路之后,便需要对各个所述主机节点上存在的所述残留存储链路进行批量清理,以便将各个所述主机节点上存在的所述残留存储链路置为初始状态。
其中,对各个所述主机节点上存在的所述残留存储链路进行批量清理,包括:利用echo 1>/sys/block/残留存储链路的链路标识/device/delete命令对各个所述主机节点上存在的所述残留存储链路进行批量清理。
也即,可以利用echo 1>/sys/block/残留存储链路的链路标识/device/delete命令对各个所述主机节点上存在的残留存储链路进行清理。
参见图3所示,本申请实施例公开了一种存储链路清理装置,应用于预设的目标主机节点,其中,目标主机节点上运行有ansible工具,包括:
信息获取模块11,用于获取预设的批量免密互信名单,其中,所述批量免密互信名单中包括待清理存储链路的容器云平台集群中的各个主机节点的节点信息;
存储链路查询模块12,用于根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,其中,所述存储链路配置文件用于记录各个所述主机节点上的容器与多路径存储设备之间建立的存储链路的信息;
残留存储链路判断模块13,用于根据所述存储链路配置文件确定出各个所述主机节点上是否存在残留存储链路;
残留存储链路清理模块14,用于在所述残留存储链路判断模块的判定结果为是时,则对各个所述主机节点上存在的所述残留存储链路进行批量清理,以便将各个所述主机节点上存在的所述残留存储链路置为初始状态。
可见,本申请公开了存储链路清理方法,应用于预设的目标主机节点,其中,目标主机节点上运行有ansible工具,包括:首先获取预设的批量免密互信名单,其中,所述批量免密互信名单中包括待清理存储链路的容器云平台集群中的各个主机节点的节点信息。然后再根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件,其中,所述存储链路配置文件用于记录各个所述主机节点上的容器与多路径存储设备之间建立的存储链路的信息。接着根据所述存储链路配置文件确定出各个所述主机节点上是否存在残留存储链路。如果是,则对各个所述主机节点上存在的所述残留存储链路进行批量清理,以便将各个所述主机节点上存在的所述残留存储链路置为初始状态。由此可见,本申请中可以自动对待清理存储链路的容器云平台集群中各个主机节点上的残留存储链路进行清理,将残留存储链路清理为初始状态,以便主机节点上的新容器使用,避免主机节点上新容器中的应用连接到残留存储链路导致应用服务异常的问题。
在一些具体的实施例中,所述目标主机节点为所述容器云平台集群中的任一主机节点,或,所述目标主机节点为所述容器云平台集群之外的主机节点。
在一些具体的实施例中,还包括批量免密互信名单更新模块,用于:
获取所述容器云平台中的主机节点变更信息;
根据所述主机节点变更信息更新所述批量免密互信名单。
在一些具体的实施例中,所述存储链路查询模块12,用于:
获取存储链路清理指令,并根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件;
或,按照预设时间间隔根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件。
在一些具体的实施例中,所述残留存储链路判断模块13,用于:
判断所述存储链路配置文件中记录的各条存储链路的链路状态是否为失效;
如果是,则将链路状态为失效的存储链路确定为残留存储链路,并根据所述存储链路配置文件确定所述残留存储链路的链路标识和所述残留存储链路对应的主机节点标识。
在一些具体的实施例中,所述存储链路查询模块12,用于:
利用ansible playbook根据所述批量免密互信名单批量查询所述容器云平台集群中各个所述主机节点上的存储链路配置文件。
在一些具体的实施例中,所述残留存储链路清理模块14,用于:
利用echo 1>/sys/block/残留存储链路的链路标识/device/delete命令对各个所述主机节点上存在的所述残留存储链路进行批量清理。
图4为本申请实施例提供的一种电子设备20的结构示意图,该电子设备20具体可以包括但不限于笔记本电脑或台式电脑等。
通常,本实施例中的电子设备20包括:处理器21和存储器22。
其中,处理器21可以包括一个或多个处理核心,比如四核心处理器、八核心处理器等。处理器21可以采用DSP(digital signal processing,数字信号处理)、FPGA(field-programmable gate array,现场可编程们阵列)、PLA(programmable logic array,可编程逻辑阵列)中的至少一种硬件来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有GPU(graphics processing unit,图像处理器),GPU用于负责显示屏所需要显示的图像的渲染和绘制。一些实施例中,处理器21可以包括AI(artificialintelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器22可以包括一个或多个计算机可读存储介质,计算机可读存储介质可以是非暂态的。存储器22还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器22至少用于存储以下计算机程序221,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例中公开的由存储链路清理方法步骤。
在一些实施例中,电子设备20还可包括有显示屏23、输入输出接口24、通信接口25、传感器26、电源27以及通信总线28。
本技术领域人员可以理解,图4中示出的结构并不构成对电子设备20的限定,可以包括比图示更多或更少的组件。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一实施例中公开的存储链路清理方法。
其中,关于上述存储链路清理方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种存储链路清理方法、装置、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
- 一种存储链路清理方法、装置、设备及介质
- 存储清理方法、装置、电子设备及存储介质