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

2. Cambiar la siguiente lΓ­nea de /etc/default/minio:

MINIO_OPTS="--console-address :9001"

a

MINIO_OPTS="--config /opt/minio/config.yml"

3. Remover las siguientes lΓ­neas de /etc/default/minio, que ahora estΓ‘n en /opt/minio/config.yml:

MINIO_VOLUMES=...
MINIO_ROOT_USER=...
MINIO_ROOT_PASSWORD=...

4. Agregar la siguiente lΓ­nea a /etc/default/minio:

MINIO_STORAGE_CLASS_STANDARD=EC:4

5. En el archivo /etc/systemd/system/minio.service, reemplazar:

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

6. Recargar la unidad minio.service:

sudo systemctl daemon-reload
sudo systemctl restart minio.service

7. Validar que minio estΓ© activo y sano en cualquier nodo:

sudo systemctl status minio.service
sudo journalctl -f -u minio.service

B. Agregar un pool. Realizar lo siguiente en todo nodo.

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>

2. Recargar minio:

sudo systemctl restart minio.service

3. Validar que minio estΓ© activo y sano en cualquier nodo:

sudo systemctl status minio.service
sudo journalctl -f -u minio.service

C. Desmantelar pool original. Realizar lo siguiente en un solo nodo.

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   β”‚
β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

3. Una vez terminado el proceso, el campo Status dirΓ‘ Complete en el pool siendo desmantelado:

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>

5. Recargar minio:

sudo systemctl restart minio.service

6. Validar que minio estΓ© activo y sano en cualquier nodo:

sudo systemctl status minio.service
sudo journalctl -f -u minio.service
⚠️ **GitHub.com Fallback** ⚠️