← blog.yadon3141.com

MinioでWaiting for MinIO to be readyエラー

始まり

MinioをKubernetes上で運用しているとArgocd上でProgressingのまま進まなくなっていた。

WaitingMinIOIsHealthy Waiting for MinIO to be ready 38303 2d ago Last Saturday at 7:03 PM 3m ago Today at 12:43 AM

minioのPodのログを確認すると以下のようなエラーが出ていた。

Error: Write quorum could not be established on pool: 0, set: 0, expected write quorum: 3, drives-online: 2 (*errors.errorString)

書き込みには3台のドライブが必要だが、2台しかオンラインになっていないというエラー。

しかし、PVCの状態を確認すると全てBoundになっている。

❯ kubectl get pvc -n minio
NAME                     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
data0-myminio-pool-0-0   Bound    pvc-97a7fff5-954c-4099-82be-6bd6b8141ede   10Gi       RWO            longhorn       <unset>                 46d
data0-myminio-pool-0-1   Bound    pvc-509cf6ae-dd62-48c7-8943-9fca50cc88d7   10Gi       RWO            longhorn       <unset>                 46d
data0-myminio-pool-0-2   Bound    pvc-3004a824-d1c9-4e07-b041-d5cfa5b2c132   10Gi       RWO            longhorn       <unset>                 46d
data0-myminio-pool-0-3   Bound    pvc-0ad1b2d0-733f-43d3-b440-feef6b10422d   10Gi       RWO            longhorn       <unset>                 46d

minioのpodの状態を見ると, 4台正常に動作しているが各podで同様のエラーが出ている。

🌱 🌐 k8s-master in ~ x86_64
❯ kubectl get pod -o wide -n minio
NAME               READY   STATUS             RESTARTS          AGE    IP           NODE     NOMINATED NODE   READINESS GATES
myminio-pool-0-0   2/2     Running            0                 30d    10.0.1.222   newpi2   <none>           <none>
myminio-pool-0-1   2/2     Running            0                 2d5h   10.0.2.17    newpi1   <none>           <none>
myminio-pool-0-2   2/2     Running            0                 45h    10.0.3.179   ana      <none>           <none>
myminio-pool-0-3   2/2     Running            0                 30d    10.0.1.132   newpi2   <none>           <none>
Error: Write quorum could not be established on pool: 0, set: 0, expected write quorum: 3, drives-online: 2 (*errors.errorString)

元々4つのPodが立っていて、2しかOnlineとなっていないので2台乗っているnewpi2のノード何か起こっている可能性が高い。

newpi2でdmesgを確認すると以下のようなアンマウント処理が行われたログが出ていた。

@newpi2:~$ sudo dmesg -T | egrep -i "i/o|blk|nvme|usb|reset|timeout|error|read-only|ext4|xfs|hung" | tail -n 200
[Mon Dec 29 15:57:01 2025] EXT4-fs (sdh): unmounting filesystem 8bf510b7-5dc4-4751-8b9e-a92dc68c00db.
[Mon Dec 29 15:57:01 2025] EXT4-fs (sde): unmounting filesystem c742ccdb-16c1-4db7-af80-13db6349ebdd

さらにvcgencmdでスロットリングの状態を確認すると以下のように電圧低下が発生していることがわかった。

@newpi2:~$ sudo vcgencmd get_throttled
throttled=0x50005

ref: https://raspberrypi.mongonta.com/underpower/

対処

newpi2から追い出して、再スケジュールすると治った。

kubectl cordon newpi2
kubectl delete pod -n minio myminio-pool-0-0 myminio-pool-0-3

備忘録

おそらくnewpi2の電源が不安定なので電圧が下がってしまって、一時てきにディスク I/O エラーが発生してアンマウントされてしまったのだと思う。 それによって一瞬書き込みができなくなったが、longhorn側で復帰している。が、minio側では2台しかオンラインになっていないと認識してしまい、書き込みクォーラムが確立できない状態になってしまった。 newpi1も同じ環境なのでラズベリーパイの電源周りを見直さないといけない。