当前位置: 首页 > news >正文

ZFS的元数据

SAN最终给客户提供的是基于块设备的存储,客户实际分区格式化用到的文件系统的类型决定了上层的data/ meta data的组织形式,但是对提供块存储设备的系统而言,上层的data/medta data都是它的data,都需要根据上层传递进来的flag (O_DIREC/O_SYNC/O_DSYNC)到达io 队列或者磁盘。而提供块存储的 文件系统中的其他数据结构都是meta data。

因此,zfs中的meta data包括:

  • 首尾的四个label

ZFS的元数据

其中每个Label存储了跟整个系统池相关的全局信息,结构如下:
ZFS的元数据

  • uber block、name value pair
    super block 如何定位到具体的磁盘偏移super block中是索引数据的入口? 下图红线部分指出了相关数据结构之间的关联:
    ZFS的元数据

  • 基于叶子节点的vtree
    在上面112KB的Label 区间,有一个叫做vdev tree 的name-value pairs,内容如下:

ZFS的元数据
两个或多个vdev可以构成不同类型和级别的vtree,比如RAID1/2/3//5/10等。以下面的截图为例来说明一个基于两个叶子节点的mirror 的name-value pairs:

ZFS的元数据

上面中的ubber-block框图可以由来解释基于块的zfs on-disk静态数据的layout结构,那么这些块block又是如何管理的呢?实际是由zfs DMU统一管理文件系统操作的所有的对象,比如dnode/directory/zvol/intent log 都抽象成一个object。 由SPA层根据object/object set的需求一块块申请和分配、释放的.

转载于:https://blog.51cto.com/xiamachao/2368156

相关文章:

  • 算法不扎实的程序员,每个都很慌
  • 外媒表示大规模的恶意广告在肆虐 相关用戶恐受影响
  • KubeEdge:开源的Kubernetes原生边缘计算框架
  • PDF裁剪页面,PDF怎么裁剪页面的方法
  • Saltstack_使用指南03_配置管理
  • Python:游戏:写一个和 XP 上一模一样的“扫雷”
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 一墙之隔-看向世界和直面速度与激情
  • 金山云最新财报:Q4营收7.27亿,同比增长81%
  • STM32 HAL库学习系列第2篇 GPIO配置
  • IntelliJ IDEA 2019.1 正式发布,“JetBrains 全家桶”齐更新
  • 深入学习MySQL事务:ACID特性的实现原理
  • Promise异步编程整理
  • Linux 非正常关闭配置文件解决方法
  • 【译】浏览器如何工作:在现代web浏览器场景的之下
  • codis proxy处理流程
  • Date型的使用
  • eclipse的离线汉化
  • ECS应用管理最佳实践
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • export和import的用法总结
  • gops —— Go 程序诊断分析工具
  • HTML-表单
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • ReactNative开发常用的三方模块
  • swift基础之_对象 实例方法 对象方法。
  • TypeScript实现数据结构(一)栈,队列,链表
  • 算法-插入排序
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 移动端唤起键盘时取消position:fixed定位
  • # Maven错误Error executing Maven
  • # 计算机视觉入门
  • #1015 : KMP算法
  • #define 用法
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (10)STL算法之搜索(二) 二分查找
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (已解决)什么是vue导航守卫
  • (原)本想说脏话,奈何已放下
  • ../depcomp: line 571: exec: g++: not found
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .Net MVC4 上传大文件,并保存表单
  • .NET6实现破解Modbus poll点表配置文件
  • @RestController注解的使用
  • @staticmethod和@classmethod的作用与区别
  • [BZOJ] 2044: 三维导弹拦截
  • [CSS]中子元素在父元素中居中
  • [go] 迭代器模式
  • [hdu4622 Reincarnation]后缀数组
  • [JDBC-1] JDBC Base Template