Pasos para migrar a un pool nuevo - allanrogerr/public GitHub Wiki
Asegurarse due que la nueva infraestructura tenga al menos el doble de la capacidad de lo utilizado anteriormente.
Contemplar el uso de https://min.io/product/erasure-code-calculator para determinar el balance deseado entre redundancia y capacidad. Esto se espresa entre en la paridad (fija) y stripe size o bien nΓΊmero de unidades en las cuales se distribuye los objetos (puede variar entre pools).
A. Utilizar a la metodologΓa de config.yml (https://github.com/minio/minio/blob/master/docs/distributed/CONFIG.md) para facilitar el cambio de stripe size. Realizar lo siguiente en todo nodo.
1. Crear archivo /opt/minio/config.yml
. Sustituye valores reales. Asegurarse de que el usuario que corra el proceso de minio pueda leerlo.
version: v2
address: ":9000"
console-address: ":9001"
rootUser: "<MINIO_ROOT_USER>"
rootPassword: "<MINIO_ROOT_PASSWORD>"
pools: # Especificar nodos y unidades en sus respectivos pools
- args:
- "http://minio{1...8}:9000/disk{1...10}/minio"
set-drive-count: 16
- args:
- "http://minio{1...8}:9000/disk{11...20}/minio"
set-drive-count: 16
- args:
- "http://minio{1...8}:9000/disk{21...25}/minio"
set-drive-count: 8
MINIO_OPTS="--console-address :9001"
a
MINIO_OPTS="--config /opt/minio/config.yml"
MINIO_VOLUMES=...
MINIO_ROOT_USER=...
MINIO_ROOT_PASSWORD=...
MINIO_STORAGE_CLASS_STANDARD=EC:4
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
#ExecStart=/usr/local/bin/minio server $MINIO_VOLUMES $MINIO_OPTS
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
con
ExecStart=/usr/local/bin/minio server $MINIO_OPTS
sudo systemctl daemon-reload
sudo systemctl restart minio.service
sudo systemctl status minio.service
sudo journalctl -f -u minio.service
1. Modificar archivo /opt/minio/config.yml
. Sustituye valores reales con respeto a su nueva infraestructura. <STRIPE-SIZE>
es probablemente 16 en tu caso.
version: v2
address: ":9000"
console-address: ":9001"
rootUser: "<MINIO_ROOT_USER>"
rootPassword: "<MINIO_ROOT_PASSWORD>"
pools: # Especificar nodos y unidades en sus respectivos pools
- args:
- "http://minio{1...8}:9000/disk{1...10}/minio"
set-drive-count: 16
- args:
- "http://minio{1...8}:9000/disk{11...20}/minio"
set-drive-count: 16
- args:
- "http://minio{1...8}:9000/disk{21...25}/minio"
set-drive-count: 8
- args:
- "http://poolx.server{1...y}:<API-PORT>/disk{a...b}/minio"
set-drive-count: <STRIPE-SIZE>
sudo systemctl restart minio.service
sudo systemctl status minio.service
sudo journalctl -f -u minio.service
1. Validar que minio estΓ© activo en cualquier nodo, donde representa el hash del resultado de mc admin decom status
. El campo Status
dirΓ‘ Active
en todo pool:
mc admin decom status <ALIAS>
mc admin decom start <ALIAS> <HASH>
ejemplo de la salida esperada
βββββββ¬ββββββββββββββββββββββββ¬ββββββββββββββββββββββββ¬βββββββββ
β ID β Pools β Drives Usage β Status β
β 1st β hash:fdf7509f43af745b β 2.4% (total: 80 GiB) β Active β
β 2nd β hash:e18f9d362a1afd98 β 2.2% (total: 119 GiB) β Active β
βββββββ΄ββββββββββββββββββββββββ΄ββββββββββββββββββββββββ΄βββββββββ
Decommission started successfully for `hash:fdf7509f43af745b`.
2. Periodicamente validar que el proceso sigue en marcha. El campo Status
dirΓ‘ Draining
en el pool siendo desmantelado:
mc admin decom status <ALIAS>
mc admin trace <ALIAS> --call decom
ejemplo de la salida esperada
βββββββ¬ββββββββββββββββββββββββ¬ββββββββββββββββββββββββ¬βββββββββββ
β ID β Pools β Drives Usage β Status β
β 1st β hash:fdf7509f43af745b β 2.4% (total: 70 GiB) β Draining β
β 2nd β hash:e18f9d362a1afd98 β 2.3% (total: 119 GiB) β Active β
βββββββ΄ββββββββββββββββββββββββ΄ββββββββββββββββββββββββ΄βββββββββββ
ejemplo de la salida esperada
βββββββ¬ββββββββββββββββββββββββ¬ββββββββββββββββββββββββ¬βββββββββββ
β ID β Pools β Drives Usage β Status β
β 1st β hash:fdf7509f43af745b β 2.4% (total: 80 GiB) β Complete β
β 2nd β hash:e18f9d362a1afd98 β 2.4% (total: 119 GiB) β Active β
βββββββ΄ββββββββββββββββββββββββ΄ββββββββββββββββββββββββ΄βββββββββββ
4. Remover los pools original, modificando archivo /opt/minio/config.yml
. Sustituye valores reales. <STRIPE-SIZE>
es probablemente 16 en tu caso.
version: v2
address: ":9000"
console-address: ":9001"
rootUser: "<MINIO_ROOT_USER>"
rootPassword: "<MINIO_ROOT_PASSWORD>"
pools: # Especificar nodos y unidades en sus respectivos pools
- args:
- "http://poolx.server{1...y}:<API-PORT>/disk{a...b}/minio"
set-drive-count: <STRIPE-SIZE>
sudo systemctl restart minio.service
sudo systemctl status minio.service
sudo journalctl -f -u minio.service