三副本的PNFS重构流程

重构流程概述:

重构步骤如下,后面会有相关主要代码分析,具体代码实现可参考http://git.erc.ict.ac.cn/?p=bwfs_pnfs.sles11u1.git;a=shortlog;h=refs/heads/replication

1.       客户端在下刷或者读取磁盘时候,发现错误,记录到nfs_inode中的链表中。

2.       读写完成时,把错误链表发送到服务器。

3.       服务器收到错误链表后,将其插入到exfs_inode_info中的链表。启动异步重构线程

4.       重构线程,先召回需要重构文件的layout。设置重构标志位,构建file_handle和stateid等结构。然后选择一个client,发送重构命令和必要的信息。

5.       客户端接到重构要求后,异步启动一个重构线程。

6.       客户端的重构线程根据fh和i_ino等信息,调用getattr,构建出nfs_inode dentry(此结构只有重构线程可见)nfs_open_contex等必要信息,完成重构。

7.       客户端完成重构后,向服务器发送rebuild_done,服务器更新exfs_inode_info中的错误链表。

三副本读写情景分析:

1.在bl_read_pagelist()函数中,选择可用的副本完成磁盘内容的读取,代码如下:

for (i = pg_index; i < nr_pages; i++) {

。。。

be =find_get_extent(BLK_LSEG2EXT(rdata->pdata.lseg),

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值