-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
disk layout #28
Comments
PFS2默认启动在host上,大部分场景可能是在启动PFS2之后,添加/删除共享盘的FS,而非启动PFS2时就已经存在共享盘,因此可能需要支持的流程: a. 向PFS2进程挂载 share disk; b. 初始化share disk元数据; c . 删除share disk; |
meta 区域的 backup 是有必要的;否则无法解决下刷 freelist/trimlist/MTL过程中,异常掉电的问题 |
也就是说,盘是动态添加上去的,而不是通过pfs配置文件预先加进去的。还可以更进一步,在pfs2部署的时候,完全去掉store服务。只提供动态加盘的命令 去掉store节点后,原来store里面的IO下发功能需要移到client实现。 |
meta data需要owner来负责维护,owner由store节点担任。因此store节点还不能完全移除 |
非owner store进程,似乎没有具体的工作了 |
磁盘的元数据区 大小可以通过
meta_size
在配置文件中配置。缺省40GB支持PFS2需要进行下面的修改:
0x00030000
在原来的元数据区,2.5GB 以后的位置是空的,这里开辟一片锁区域,大小为32M. 每4K为一个锁。其中第一个作为global meta lock, 其他的保留作为volume lock
当存储节点启动时要检查磁盘是否为新盘,对新盘需要进行创建元数据操作。由于共享盘挂在多个存储节点上,为避免多个节点同时对盘进行初始化,初始化前每个节点要获取global meta lock。 流程如下:
1. 判断盘是否为新盘,如果是:
a. 获取global meta lock
b. 再次判断盘是否为新盘,如果已经被其他节点初始化了,则结束初始化
c. 初始化global meta
d. 释放global meta lock
The text was updated successfully, but these errors were encountered: