zfs块申请机制研究

本文深入探讨了ZFS文件系统的块申请机制,重点在于如何选择metaslab以优化写性能。ZFS在申请block时,首先确定top vdev,再选取合适的metaslab,并基于权值选择空闲空间最大或最近使用的slab。当磁盘接近满载时,ZFS会使用按空闲空间排序的avl树。调整ZFS参数,如延迟最佳适配算法的阈值和选择slab的空闲空间比例,能显著提升系统写速度和整体性能。
摘要由CSDN通过智能技术生成

看了下面的这个文章,熟悉了zfs的块的申请的机制。

https://blogs.oracle.com/roch/entry/doubling_exchange_performance


首先如果某个zio要请求vdev,申请一个block,他会经过zio流水线的一级 zio_dva_allocate。

在块申请的时候 首先 会选择出top vdev,然后通过这个top vdev,找到一个metaslab,然后再在metaslab当中,找到所要请求块的dva。

(Data Virtual Address),挑选metaslab是系统写性能问题的核心和关键。  

       一个vdev被分为200个metaslab,每个metaslab可能会在内存当中,可能不会放到内存当中。放到内存当中的部分,将会有一个spacemap与之对应。并且我们可以从中申请块。

      同时也有可能不在内存当中,那么我们不能申请不在内存当中的metaslab,但是我们却可以释放(由于copy on write的原

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值