[发明专利]一种基于Linux的存储设备树实现方法有效
申请号: | 201811551918.X | 申请日: | 2018-12-18 |
公开(公告)号: | CN109683820B | 公开(公告)日: | 2022-02-08 |
发明(设计)人: | 毛可绪;陈乃阔;刘毅枫;巩玉旺 | 申请(专利权)人: | 超越科技股份有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 刘雪萍 |
地址: | 250101 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 linux 存储 设备 实现 方法 | ||
1.一种基于Linux的存储设备树实现方法,其特征在于,包括如下步骤:
S1.获取设备信息;
S2.根据获取的设备信息生成设备树的类封装;
S3.处理设备树中父节点与子节点之间的关系;
S4.处理设备树中兄弟节点之间的关系;
S5.根据设备树,对设备树中节点进行管理;
步骤S2具体步骤如下:
S21.获取设备信息中的所有磁盘;
S22.获取每个磁盘的名称;
S23.获取磁盘的识别码UUID的映射;
S24.根据磁盘的设备码UUID判断磁盘的类型;
步骤S24具体步骤如下:
S241.根据磁盘的识别码UUID获取磁盘的域;所述磁盘的域为一数组;
S242.判断磁盘域的数组中是否有逻辑卷;
S243.若是,判断磁盘域的数组长度是否为3;
若是,磁盘类型为逻辑卷;
若否,磁盘类型为逻辑卷组;
S244.若否,判断磁盘类型是否为磁盘映射;
若否,则磁盘类型为物理硬盘;
步骤S3具体步骤如下:
S31.获取设备信息中的所有磁盘节点;
S32.定位一个磁盘节点,并设定为第一磁盘节点;
S33.判断第一磁盘节点类型是否为磁盘或分区;
S34.若是,根据路径获取以第一磁盘节点作为从属的父节点;
S35.根据路径获取父节点的名称;
S36.获取与父节点名称相同的磁盘节点,并设定为第二磁盘节点;
S37.添加第二磁盘节点为第一磁盘节点的父节点;
S38.添加第一磁盘节点为第二磁盘节点的子节点;
S39.定位下一个磁盘节点为第一磁盘节点;返回步骤S33;
步骤S4设备树中兄弟节点之间关系包括明显兄弟节点关系和不明显兄弟节点关系;
当兄弟节点之间关系为明显兄弟节点关系时,步骤S4具体步骤如下:
S41. 获取设备信息中的所有磁盘节点;
S42. 定位一个磁盘节点,设为第三磁盘节点;
S43. 判断是否第三磁盘节点类型为磁盘或分区;
S44.若是,根据路径获取以第三磁盘节点作为从属的所有父节点;
S45.根据路径获取所有父节点的名称列表;
S46.从父节点名称列表中获取一个父节点,定义为第一兄弟节点;
S47.从父节点名称列表中获取一个父节点,定义为第二兄弟节点;
S48.添加第一兄弟节点和第二兄弟节点互为兄弟节点;
S49.定位下一个磁盘节点为第三磁盘节点,返回步骤S43;
当兄弟节点之间关系为不明显兄弟节点关系时,步骤S4具体步骤如下:
S41a. 获取设备信息中的所有磁盘节点;
S42a.定位一个磁盘节点,设为第四磁盘节点;
S43a.判断第四磁盘节点是否没有子节点;
S44a.若否,定位一个磁盘节点,设为第五磁盘节点;
S45a.判断第五磁盘节点是否没有子节点;
S46a.若否,判断第四磁盘节点名称与第五磁盘节点名称是否相同;
S47a.若否,定位第四磁盘节点的所有子节点;
S48a.判断是否第四磁盘节点的子节点没有兄弟节点;
S49a.若否,则第四磁盘节点的所有子节点为同一个父节点的兄弟节点;
S410a.定位第五磁盘节点的所有子节点;
S411a. 判断是否第五磁盘节点的子节点没有兄弟节点;
S412a.若否,则第五磁盘节点的所有子节点为同一个父节点的兄弟节点;
S413a.第五磁盘节点的每个子节点与第四磁盘节点的每个子节点为不同父节点的兄弟节点;
S414a.定位下一个磁盘节点为第五磁盘节点,返回步骤S45a;
S415a.定位下一个磁盘节点为第四磁盘节点,返回步骤S43a。
2.如权利要求1所述的一种基于Linux的存储设备树实现方法,其特征在于,步骤S1中通过udevlib获取设备信息。
3.如权利要求1所述的一种基于Linux的存储设备树实现方法,其特征在于,所述磁盘名称包括磁盘的卷组名称的映射和磁盘逻辑卷名称的映射。
4.如权利要求1所述的一种基于Linux的存储设备树实现方法,其特征在于,步骤S5具体包括:
S51.获取设备树中的叶子节点;
S52.清除设备信息中的磁盘节点的内容;
S51.具体步骤如下:
S511.获取设备信息中的所有磁盘节点;
S512.定位一个磁盘节点为第六磁盘节点;
S513.判断第六磁盘节点是否没有子节点;
S514.若否,获取第六磁盘节点的所有子节点;
S515.获取每个子节点的叶子节点;
S516.定位下一个磁盘节点为第六磁盘节点,返回步骤S513;
S52.具体步骤如下:
S521.获取要清除内容的磁盘节点;
S522.获取设备信息中所有磁盘节点;
S523.定位一个磁盘节点为第七磁盘节点;
S524.判断第七磁盘节点是否与要清除内容的磁盘节点名称相同;
S525.若是,获取第七磁盘节点的所有叶子节点;
S526.定位一个叶子节点为第一叶子节点;
S527.通过挂载点卸载第一叶子节点;
S528.清除第一叶子节点的内容;
S529.删除第一叶子节点;
S5210.清除第一叶子节点的兄弟节点的内容;
S5211.定位下一个磁盘节点为第七磁盘节点,返回步骤S524。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于超越科技股份有限公司,未经超越科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811551918.X/1.html,转载请声明来源钻瓜专利网。