dataserver 源码分析(一) 格式化

一、磁盘格式化、挂载

现有TFS可以在一台服务器上启动多个DataServer进程。一般每个DataServer进程负责一个磁盘。 将数据盘格式化成EXT4文件系统,并挂载到/data/tfs1至/data/tfs(i),其中i为磁盘号。

 

二、存储区预分配

执行scripts下的stfs format n (n为挂载点的序号,具体用法见stfs的Usage)。例如stfs format 2,4-6 则会对/data/tfs2, /data/tfs4,/data/tfs5,/data/tfs6,进行预分配。运行完后会在生成/data/tfs2, /data/tfs4,/data/tfs5,/data/tfs6下预先创建主块,扩展块及相应的统计信息。

1、加载配置文件,获取配置项,构造超级块文件路径为/data/tfs(index)/fs_super

2、初始化超级块,超级块内部格式:|   reserve   |   SuperBlockInfo     |     {BlockINdex|...|BlockIndex }   |

     将配置项信息设置到SuperBlockInfo中,由于在磁盘上保存的block块分为主块和扩展块,SuperBlockInfo中的mmap_option.first_mmap_size设置为主块的大小(向上取pagesize整数倍),mmap_option.per_mmap_size为扩展块大小(同上),mmap_option.max_mmap_size为MAX_MMAP_SIZE(同上)。main_block_id_seq初始化设置为1,ext_block_id_seq设置为totol_main_block_count_ + 1,以防冲突。将 超级块文件全映射到内存,并将SuperBlockInfo的信息更新过去。至此,超级块格式化完成。

3、创建mount_point目录,以及下面的index目录

4、预分配主块。在mount_point目录下创建预定个数的主块(fallocate方法)。

至此,启动dataserver服务前的准备工作已完成。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值