目录

1 前言

2 邀约

3 MinIO 元数据介绍

    3.1 粒度

    3.2 元数据格式

        3.2.1 version 字段

        3.2.2 format 字段

        3.2.3 stat 字段

        3.2.4 erasure 字段

        3.2.5 minio 字段

        3.2.6 meta 字段

        3.2.7 parts 字段


1 前言

        如果你对博客有任何疑问,请告诉我。

第六章 九析带你轻松完爆 MinIO - 元数据介绍_第1张图片


2 邀约

        你可以从 b 站搜索 “九析”,获取免费的、更生动的视频资料:

第六章 九析带你轻松完爆 MinIO - 元数据介绍_第2张图片


3 MinIO 元数据介绍

3.1 粒度

        MinIO 并没有元数据数据库,所有的操作都是对象级别的粒度。这样设计的好处在于:

个别对象的失效,不会导致整个存储系统失效

3.2 元数据格式

        元数据与数据一起存放在磁盘上,如下图所示:

clipboard3.png

        数据部分纠删分片以后存储在磁盘上(part.1,即存储对象的第一个数据分片),对象的元数据以明文形式存放在元数据文件里(xl.json)。对象的元数据文件 xl.json 内容如下所示:

第六章 九析带你轻松完爆 MinIO - 元数据介绍_第3张图片

3.2.1 version 字段

        元数据文件版本。目前是 1.0.1。

3.2.2 format 字段

        该字段指明了这个对象的格式是 xl。MinIO 内部存储数据主要有两种数据格式:xl 和 fs。在生产环境部署模式下,存储格式都是 xl。

3.2.3 stat 字段

        该字段记录了对象的状态,包括大小和修改时间,如下图所示:

第六章 九析带你轻松完爆 MinIO - 元数据介绍_第4张图片

3.2.4 erasure 字段

        该字段记录此对象与纠删码有关的信息,如下图:

第六章 九析带你轻松完爆 MinIO - 元数据介绍_第5张图片

algorithm: 指明了此对象采用的是Klaus Post实现的纠删码,生成矩阵是范德蒙矩阵

data、parity:指明了纠删组中的数据盘、校验盘个数

blockSize:指明了对象被分块的大小,默认是 5M

index:指明了当前磁盘在纠删组中的序号

distribution: 每个纠删组的数据盘、校验盘的个数是固定的,但是不同的对象分片写入这个纠删组的不同磁盘的顺序是不同的。这里记录了分布顺序

checksum:它下面的字段个数跟此对象的分片数量有关。最新版的 MinIO 会把 checksum 直接计入分片文件(即 part.1 等文件)的前 32 个字节

3.2.5 minio 字段

        这个字段记录了存储此对象的 minio 版本:

clipboard7.png

3.2.6 meta 字段

        Content-type、etag 两个字段是 MinIO 对象存储系统自动生成的:

clipboard8.png

3.2.7 parts 字段

        记录各个分片的信息:

第六章 九析带你轻松完爆 MinIO - 元数据介绍_第6张图片