【技术实现步骤摘要】
一种文件系统inode的扩容方法、系统及存储介质
[0001]本专利技术属于数据存储的
,具体涉及一种文件系统
inode
的扩容方法
、
系统及存储介质
。
技术介绍
[0002]Inode
简言之就是文件索引,每一个文件对应一个
inode。
在
linux
系统中,分区的
inode
数量在文件系统初始化之际就固定不变
。
随着文件系统的不断使用,分区的容量会逐渐增大,文件系统的
inode
数量也会被逐步消耗殆尽
。
当
inode
节点数量爆满时,将无法创建新文件
。
但常规的
inode
节点扩容方法存在如下缺陷:
[0003]①
对于
inode
节点使用量的感知是被动性的,往往是节点已经耗尽触发故障时才感知到;
[0004]②
inode
扩容需要提前进行数据备份才能格式化分区重新指定
inode
节点数,在这期间,分区上的数据处于不可用状态,无法对上层服务提供持续依赖;
[0005]③
如果设备没有多余的磁盘,那么备份数据无法存放,需要单独添加磁盘或者通过网络尽进行备份,操作繁琐
。
[0006]因此,本专利技术提供了一种文件系统
inode
自动扩容的方案,实时监控文件系统的
...
【技术保护点】
【技术特征摘要】
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
其中,
【专利技术属性】
技术研发人员:高浩岚,段平霞,郑学新,黄海,
申请(专利权)人:成都安恒信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。