minio
一、概述
之前我们安装的是 non-ec standalone版本的安装,是不具备纠删码功能(数据恢复)
纠删码
erasure code 丢了一般磁盘仍然可以恢复数据
纠删码将对象拆分为一半数据,一半是奇偶校验块,任意丢失一般磁盘都可以进行数据恢复
- Data Block 数据块
- Party Block 校验块
在Minio中 一个Block = 10m
二、实践
使用 Minio Docker镜像,在8块盘中启动Minio 服务:
docker run --name minio01 \
-p 9000:9000 \
-p 9988:9988 \
-d --restart=always \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=admin123" \
-v /minio/datatest1:/data1 \
-v /minio/datatest2:/data2 \
-v /minio/datatest3:/data3 \
-v /minio/datatest4:/data4 \
-v /minio/config:/root/.minio \
minio/minio server /data1 /data2 /data3 /data4 \
--console-address '0.0.0.0:9988'
就是之前是一个盘,现在挂了8个盘
启动成功后,新建一个bucket,上传三个文件
图示:
在minio 存储数据的目录下观察结构:
tree
.
├── config
│ └── certs
│ └── CAs
├── data
│ └── miniotest01
│ ├── 1644faea418203d3c70be08932cb9bc5.jpg
│ ├── 56834dd8cfc427cb2707e00060ba74bd.jpg
│ ├── 7b2bf7279923865bf6c34f646ba05efa.jpg
│ ├── 7bcc5012760162254b5721201912d3f4.jpg
│ └── a499bc5eef995cccf04b4467b5fe613b.jpg
├── data1
│ └── erasurecodetest01
│ ├── 7b2bf7279923865bf6c34f646ba05efa.jpg
│ │ ├── 5bf1b250-ad28-42e5-913e-49e14d2d8b3d
│ │ │ └── part.1
│ │ └── xl.meta
│ ├── 7bcc5012760162254b5721201912d3f4.jpg
│ │ ├── 5b0e4bed-89c4-457c-bf48-f8b96014450f
│ │ │ └── part.1
│ │ └── xl.meta
│ └── 968c59f6bc796b5926a6ccbad5fd6cfd.jpg
│ ├── a29b80e0-330d-4971-ada6-3f3d4d941dbe
│ │ └── part.1
│ └── xl.meta
├── data2
│ └── erasurecodetest01
│ ├── 7b2bf7279923865bf6c34f646ba05efa.jpg
│ │ ├── 5bf1b250-ad28-42e5-913e-49e14d2d8b3d
│ │ │ └── part.1
│ │ └── xl.meta
│ ├── 7bcc5012760162254b5721201912d3f4.jpg
│ │ ├── 5b0e4bed-89c4-457c-bf48-f8b96014450f
│ │ │ └── part.1
│ │ └── xl.meta
│ └── 968c59f6bc796b5926a6ccbad5fd6cfd.jpg
│ ├── a29b80e0-330d-4971-ada6-3f3d4d941dbe
│ │ └── part.1
│ └── xl.meta
├── data3
│ └── erasurecodetest01
│ ├── 7b2bf7279923865bf6c34f646ba05efa.jpg
│ │ ├── 5bf1b250-ad28-42e5-913e-49e14d2d8b3d
│ │ │ └── part.1
│ │ └── xl.meta
│ ├── 7bcc5012760162254b5721201912d3f4.jpg
│ │ ├── 5b0e4bed-89c4-457c-bf48-f8b96014450f
│ │ │ └── part.1
│ │ └── xl.meta
│ └── 968c59f6bc796b5926a6ccbad5fd6cfd.jpg
│ ├── a29b80e0-330d-4971-ada6-3f3d4d941dbe
│ │ └── part.1
│ └── xl.meta
├── data4
│ └── erasurecodetest01
│ ├── 7b2bf7279923865bf6c34f646ba05efa.jpg
│ │ ├── 5bf1b250-ad28-42e5-913e-49e14d2d8b3d
│ │ │ └── part.1
│ │ └── xl.meta
│ ├── 7bcc5012760162254b5721201912d3f4.jpg
│ │ ├── 5b0e4bed-89c4-457c-bf48-f8b96014450f
│ │ │ └── part.1
│ │ └── xl.meta
│ └── 968c59f6bc796b5926a6ccbad5fd6cfd.jpg
│ ├── a29b80e0-330d-4971-ada6-3f3d4d941dbe
│ │ └── part.1
│ └── xl.meta
├── data5
│ └── erasurecodetest01
│ ├── 7b2bf7279923865bf6c34f646ba05efa.jpg
│ │ ├── 5bf1b250-ad28-42e5-913e-49e14d2d8b3d
│ │ │ └── part.1
│ │ └── xl.meta
│ ├── 7bcc5012760162254b5721201912d3f4.jpg
│ │ ├── 5b0e4bed-89c4-457c-bf48-f8b96014450f
│ │ │ └── part.1
│ │ └── xl.meta
│ └── 968c59f6bc796b5926a6ccbad5fd6cfd.jpg
│ ├── a29b80e0-330d-4971-ada6-3f3d4d941dbe
│ │ └── part.1
│ └── xl.meta
├── data6
│ └── erasurecodetest01
│ ├── 7b2bf7279923865bf6c34f646ba05efa.jpg
│ │ ├── 5bf1b250-ad28-42e5-913e-49e14d2d8b3d
│ │ │ └── part.1
│ │ └── xl.meta
│ ├── 7bcc5012760162254b5721201912d3f4.jpg
│ │ ├── 5b0e4bed-89c4-457c-bf48-f8b96014450f
│ │ │ └── part.1
│ │ └── xl.meta
│ └── 968c59f6bc796b5926a6ccbad5fd6cfd.jpg
│ ├── a29b80e0-330d-4971-ada6-3f3d4d941dbe
│ │ └── part.1
│ └── xl.meta
├── data7
│ └── erasurecodetest01
│ ├── 7b2bf7279923865bf6c34f646ba05efa.jpg
│ │ ├── 5bf1b250-ad28-42e5-913e-49e14d2d8b3d
│ │ │ └── part.1
│ │ └── xl.meta
│ ├── 7bcc5012760162254b5721201912d3f4.jpg
│ │ ├── 5b0e4bed-89c4-457c-bf48-f8b96014450f
│ │ │ └── part.1
│ │ └── xl.meta
│ └── 968c59f6bc796b5926a6ccbad5fd6cfd.jpg
│ ├── a29b80e0-330d-4971-ada6-3f3d4d941dbe
│ │ └── part.1
│ └── xl.meta
└── data8
└── erasurecodetest01
├── 7b2bf7279923865bf6c34f646ba05efa.jpg
│ ├── 5bf1b250-ad28-42e5-913e-49e14d2d8b3d
│ │ └── part.1
│ └── xl.meta
├── 7bcc5012760162254b5721201912d3f4.jpg
│ ├── 5b0e4bed-89c4-457c-bf48-f8b96014450f
│ │ └── part.1
│ └── xl.meta
└── 968c59f6bc796b5926a6ccbad5fd6cfd.jpg
├── a29b80e0-330d-4971-ada6-3f3d4d941dbe
│ └── part.1
└── xl.meta69 directories, 53 files
在结构图中:
-
xl.meta 元数据
root@ubuntu:/minio/data1/.minio.sys/buckets/erasurecodetest01/.metadata.bin# cat xl.meta XL2 �v�$�����tE�{�6T9)�J��Type�V2Obj��ID��DDir��@k �ZH���j�l#�EcAlgo�EcM�EcN�EcBSize��EcIndex�EcDist�CSumAlgo�PartNums��PartETags��PartSizes��6�PartASizes��6�Size�6�MTime���tE�{�MetaSys��x-minio-internal-inline-data�true�MetaUsr��content-type�application/octet-stream�etag� 21427baebc17f50874839c4c93f890b9ζ�h���null�n��H^�S>����:��G�Gg6�}�M��)�1c��piL�U���i���#����+���I�=!�m�/G.�F)�<$=m�Vo��u��5Ь�[>�W1AE�PP�_�&�-W� root@ubuntu:/minio/data1/.minio.sys/buckets/erasurecodetest01/.metadata.bin#
- part.1 哈希编码数据