一种文件系统技术方案

技术编号:39898825 阅读:8 留言:0更新日期:2023-12-30 13:12
本发明专利技术的目的在于提供一种文件系统

【技术实现步骤摘要】
一种文件系统inode的扩容方法、系统及存储介质


[0001]本专利技术属于数据存储的
,具体涉及一种文件系统
inode
的扩容方法

系统及存储介质


技术介绍

[0002]Inode
简言之就是文件索引,每一个文件对应一个
inode。

linux
系统中,分区的
inode
数量在文件系统初始化之际就固定不变

随着文件系统的不断使用,分区的容量会逐渐增大,文件系统的
inode
数量也会被逐步消耗殆尽


inode
节点数量爆满时,将无法创建新文件

但常规的
inode
节点扩容方法存在如下缺陷:
[0003]①
对于
inode
节点使用量的感知是被动性的,往往是节点已经耗尽触发故障时才感知到;
[0004]②
inode
扩容需要提前进行数据备份才能格式化分区重新指定
inode
节点数,在这期间,分区上的数据处于不可用状态,无法对上层服务提供持续依赖;
[0005]③
如果设备没有多余的磁盘,那么备份数据无法存放,需要单独添加磁盘或者通过网络尽进行备份,操作繁琐

[0006]因此,本专利技术提供了一种文件系统
inode
自动扩容的方案,实时监控文件系统的
inode
节点数量是否达到阈值,并在节点爆满之前自动完成
inode
扩容动作

同时在扩容期间将数据备份到
nbd0
上并以此临时提供数据支持,避免上层服务中断

扩容后再将数据腾挪至本地磁盘,整个过程对上层应用透明无感知


技术实现思路

[0007]本专利技术的目的在于提供一种文件系统
inode
的扩容方法

系统及存储介质,旨在解决上述的问题

[0008]本专利技术主要通过以下技术方案实现:
[0009]一种文件系统
inode
的扩容方法,包括以下步骤:
[0010]步骤
S1
:轮询检查本地磁盘
inode
节点的占用率
B

[0011]步骤
S2
:若占用率
B≥
设定阈值
A
,则进入步骤
S3
,否则进入步骤
S1

[0012]步骤
S3
:启动
nbd
备份机制,采用
rsync
增量备份数据至
nbd0
上,将
nbd0
进行挂载,将上层应用的使用目录通过软连接指向
nbd0

[0013]步骤
S4
:启动扩容算法,扩容后的
inode
节点数量呈指数型增加;
[0014]步骤
S5
:计算扩容后的空间占用
inode_table
以及当前分区剩余空间
space_free
,若
inode_table>space_free
,则无法扩容,在
nbd0
上执行文件系统瘦身并进入步骤
S7
;如果
inode_table≤space_free
,则进入步骤
S6

[0015]步骤
S6
:扩容本地磁盘:读出文件系统类型,然后执行磁盘格式化,并重新指定
inode
节点数量;
[0016]步骤
S7
:数据恢复:将
nbd0
上的数据腾挪至本地磁盘,再将本地磁盘进行挂载,然
后将上层应用的使用目录通过软连接指向本地磁盘

[0017]为了更好地实现本专利技术,进一步地,所述步骤
S3
包括以下步骤:
[0018]步骤
A1
:通过命令
uname

r
读出操作系统的指令架构,再加载对应架构的
nbd
内核模块;启动
nbd

client
,并将
nbd

server
的虚拟磁盘映射到本地;
[0019]步骤
A2
:将本地磁盘的数据用
rsync
增量复制到
nbd0
上,将
nbd0
进行挂载,然后将上层应用的使用目录通过软连接指向
nbd0

[0020]步骤
A3
:监控
nbd

client
端的内核态进程,确保内核会调用
sendmsg
写到
nbd

client

socket
中,否则重新连接
nbd

server。
[0021]为了更好地实现本专利技术,进一步地,所述步骤
S4
中,扩容后的节点数量计算公式为:
[0022]inode_sum

B*2
n+1
[0023]其中,
B
为扩容前
inode
数量,
n
为历史扩容次数

[0024]为了更好地实现本专利技术,进一步地,在步骤
S4
与步骤
S5
之间进行对备份数据进行
inode
瘦身;清理
nbd0
上备份文件系统的垃圾文件,以及长时间未访问的文件,回收
inode
节点

[0025]为了更好地实现本专利技术,进一步地,所述步骤
S5
中,若无法扩容,则统计分区中的大文件列表,并呈现给用户以进行选择性删除

[0026]为了更好地实现本专利技术,进一步地,所述步骤
S5
中,首先在
nbd0
上执行瘦身动作,清理文件系统的垃圾文件,以及长时间未访问的文件,回收
inode
节点;在执行瘦身动作后,如果
inode
占用率减少值小于设定阈值,则统计分区中的大文件列表,并呈现给用户以进行选择性删除

[0027]为了更好地实现本专利技术,进一步地,所述步骤
S6
中,在扩容之前,在
nbd0
上执行瘦身动作

[0028]为了更好地实现本专利技术,进一步地,所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种文件系统
inode
的扩容方法,其特征在于,包括以下步骤:步骤
S1
:轮询检查本地磁盘
inode
节点的占用率
B
;步骤
S2
:若占用率
B≥
设定阈值
A
,则进入步骤
S3
,否则进入步骤
S1
;步骤
S3
:启动
nbd
备份机制,采用
rsync
增量备份数据至
nbd0
上,将
nbd0
进行挂载,将上层应用的使用目录通过软连接指向
nbd0
;步骤
S4
:启动扩容算法,扩容后的
inode
节点数量呈指数型增加;步骤
S5
:计算扩容后的空间占用
inode_table
以及当前分区剩余空间
space_free
,若
inode_table>space_free
,则无法扩容,在
nbd0
上执行文件系统瘦身并进入步骤
S7
;如果
inode_table≤space_free
,则进入步骤
S6
;步骤
S6
:扩容本地磁盘:读出文件系统类型,然后执行磁盘格式化,并重新指定
inode
节点数量;步骤
S7
:数据恢复:将
nbd0
上的数据腾挪至本地磁盘,再将本地磁盘进行挂载,然后将上层应用的使用目录通过软连接指向本地磁盘
。2.
根据权利要求1所述的一种文件系统
inode
的扩容方法,其特征在于,所述步骤
S3
包括以下步骤:步骤
A1
:通过命令
uname

r
读出操作系统的指令架构,再加载对应架构的
nbd
内核模块;启动
nbd

client
,并将
nbd

server
的虚拟磁盘映射到本地;步骤
A2
:将本地磁盘的数据用
rsync
增量复制到
nbd0
上,将
nbd0
进行挂载,然后将上层应用的使用目录通过软连接指向
nbd0
;步骤
A3
:监控
nbd

client
端的内核态进程,确保内核会调用
sendmsg
写到
nbd

client

socket
中,否则重新连接
nbd

server。3.
根据权利要求1所述的一种文件系统
inode
的扩容方法,其特征在于,所述步骤
S4
中,扩容后的节点数量计算公式为:
inode_sum

B*2
n+1
其中,

【专利技术属性】
技术研发人员:高浩岚段平霞郑学新黄海
申请(专利权)人:成都安恒信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1