minio_multinode - OpenNebula/one-apps GitHub Wiki

MinIO Multi-Node OneFlow Service

The Multi-Node deployment mode is delivered as a OneFlow Service template, using the same disk image as the one used for the Single-Node deployment, check the Features and usage page for the list of available parameters. The service template consists of two roles:

  • vr: Uses the Virtual Router appliance with a custom VM template configured to enable Load Balancing to the deployed MinIO instance (as recommended in the MinIO Multi-Node Networking and Firewalls documentation.
  • minio: MinIO backend servers to be configured in a Multi-Node deployment. Adjust this role's cardinality to set the number of MinIO backends (minimum recommended is 4).

Downloading and Deploying MinIO Multi-Node

  1. Download the Service MinIO Multi-Node appliance from the OpenNebula Marketplace:

    $ onemarketapp export 'Service MinIO Multi-Node' 'Service MinIO Multi-Node' --datastore default
    
  2. Adjust MinIO Multi-Node VM template to your needs. Add the necessary additional drives to the template as documented in the Quick Start guide. You can also set the CPU and RAM for the VMs, according to your needs and following the recommended MinIO requirements.

  3. Configure networks for the Service MinIO Multi-Node, by selecting the OpenNebula existing private and public networks that the service will use.

  4. Configure Role MinIO parameters to match your needs. In this step you can enable the TLS configuration, in which case the TLS certificate and key parameters have to be provided, in plain text, so the configuracion succeeds.

[!NOTE] If you want to disable the TLS configuration, remember to change the "LB port for MinIO Console parameter" to the port 80 -or the port of your choice- instead of 443 in both roles.

[!IMPORTANT] The MinIO hostname parameter is necessary for the MinIO instances to be able to communicate internally, please configure a valid hostname (e.g. minio.example.local). The provided certificate for the TLS connection must match this hostname.

  1. Instantiate the Flow service:

    $ oneflow-template instantiate 'Service MinIO Multi-Node' /tmp/MinIOMulti-instantiate
    
  2. Access the MinIO instance connecting through the public NIC of the vr role VM.

Requirements

  • OpenNebula version: >= 6.8
  • OneFlow and OneGate for multi-node orchestration.
  • Minimal Memory per VM: 512 MB (VR), 2 GB (MinIO).
  • Minimal Cores (VCPU) per VM: 1 (VR), 1 (MinIO).
  • Recommended specs for MinIO VMs: Check MinIO Hardware Recommendations.