@[TOC](minio报错should be less than or equal解决方案)
问题背景
在进行minio扩容时,报错
parity validation returned an error: parity 4 should be less than or equal to 2 <- (4, 4), for pool(2nd
解决方案
- minio对节点的数目是有要求的,4的倍数,如果报以上类似的错误,不能增加节点,可以去增加data文件夹的数量
如我原本的启动命令
#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=123456789
nohup /minio/run/minio server --config-dir /minio/config --address :8009 http://192.168.3.{102...105}/minio/data/data{1...2} --console-address ":8002" > /minio/minio.log 2>&1 &
更改之后,我分别在103、104两个节点各增加了1个挂载盘/incease,每个盘增加了data{1...4} 4个文件夹
#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=123456789
nohup /minio/run/minio server --config-dir /minio/config --address :8009 http://192.168.3.{102...105}/minio/data/data{1...2} http://192.168.3.{103...104}/increase/data/data{1...4} --console-address ":8002" > /minio/minio.log 2>&1 &
- minio磁盘推荐
MinIO强烈推荐直连的JBOD阵列,xfs格式的磁盘以获得最佳性能
DAS (Direct-Attached Storage)与网络存储(NAS、SAN、NFS)相比具有显著的性能和一致性优势。
使用非xfs文件系统(ext4、btrfs、zfs)的部署往往具有较低的性能,同时ext4等文件存储对单个目录下的文件有个数限制,容易影响可用性。
Minio天生具有分布式存储的优势,并且内部采用纠删码,RAID或类似技术反而不能提供额外的弹性或可用性优势,而且通常会降低系统性能。
请确保服务器池中的所有节点使用相同类型(NVMe、SSD或HDD)的驱动器,并且容量相同。MinIO不区分驱动器类型,也不能从混合存储类型中获益。此外。MinIO将每个驱动器的大小限制为部署中最小的驱动器所拥有的容量。例如,如果部署有15个10TB驱动器和1个1TB驱动器,MinIO将每个驱动器的容量限制为1TB。
MinIO需要使用展开符号{x…y}用来表示Server Pool中每一个节点的一组磁盘驱动器,并且要求Server Pool中所有节点的磁盘驱动器序列相同。MinIO还要求物理驱动器的顺序在重新启动时保持不变,这样给定的挂载点总是指向相同的格式化驱动器。因此,MinIO强烈建议使用/etc/fstab或类似的基于文件的挂载配置。 - 扩容文件写策略
MinIO不会将对象从旧的Server Pool中自动迁移到新添加的Server Pool中,即不会进行重平衡。但是,MinIO根据存储空闲大小进行加权选择,空闲空间越大的Server Pool会承担更多的写入流量,加权值是Server Pool的空闲空间量除以所有可用池上的空闲空间。
例如目前集群有3个Server Pool:
Pool A has 3 TiB of free space
Pool B has 2 TiB of free space
Pool C has 5 TiB of free space
Minio分别向各个Pool中写入的概率为:
Pool A:30% = 3 / (3 + 2 + 5)
Pool B:20% = 2 / (3 + 2 + 5)
Pool C:50% = 5 / (3 + 2 + 5)
除了可用空间加权后,如果继续写入文件会使得磁盘使用率超过99%或者空闲的inode计数低于1000,同样不会再往该Pool中写入新文件。
作为程序员第 248 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha ...