Before reading this document you must read:
By the time you read this document, I assume that you have already setup MINIO Block Storage Server and Configured it in Cloud Platform.
Backup plans are starting point for your backups to MINIO Block Storge Server. Backup plan define following things:
To create backup plan visit:
https://platform.cyberpanel.net/s3/<Server Name>/manage/createBackupPlancreateBackupPlanMINIO
Replace server name with name of your server in Cloud Platform. Configure your plan and click Create Plan. Now depending upon your backup frequency backups will be scheduled to send to MINIO Object Storage Server. You can also force run backup at any point in time.
Backups are usually scheduled to run daily or weekly, but you can force run them at any point in time. To force run a backup visit:
https://platform.cyberpanel.net/s3/<Server Name>/manage/listBackupPlansMINIO
From there you can force backup to run at current point in time.
Backup job runs in background, for any backup plan you can view logs at:
https://platform.cyberpanel.net/s3/<Server Name>/plansMINIO/<Plan Name>
Replace Server and Plan name with Server and Backup plan name respectively.
MINIO Node can be configured from Cloud Platform. Register your self on cloud platform if you haven’t already, once registered you need to connect your server from here (Make sure you are on version 1.7.5 or above, you can visit upgrade instructions)
Once your server is connected to Cloud Platform, you need to add at least one MINIO node. Go go https://platform.cyberpanel.net/s3/"Server Name"/minioBackups
. To add servers 3 parameters are required. (Replace Server Name with name of your server within Cloud Platform)
You can get all these parameters by reading Setup MINIO Block Storage Server.
If added successfully it should appear in the Current Servers table.
Next: Configure Backups
MINIO is an opensource object storage server with AWS S3 compatible APIs. We've already implemented AWS S3 and DigitalOcean Spaces Backups. With MINIO you can self host a block storage server for automated backups.
This guide works on Centos 7.x and Ubuntu 18.xx. We need to create Systemd service for minio so that it can run in background.
First create new file at /etc/default/minio
and paste following in it:
# Volume to be used for Minio server. MINIO_VOLUMES="/tmp/minio/" # Use if you want to run Minio on a custom port. MINIO_OPTS="--address :9000" # Access Key of the server. MINIO_ACCESS_KEY=Server-Access-Key # Secret key of the server. MINIO_SECRET_KEY=Server-Secret-Key
Download MINIO binary and make it executable.
wget https://dl.minio.io/server/minio/release/linux-amd64/minio cp minio /usr/local/bin/ chmod +x /usr/local/bin/minio
Create new file at /etc/systemd/system/minio.service
and paste:
[Unit] Description=Minio Documentation=https://docs.minio.io Wants=network-online.target After=network-online.target AssertFileIsExecutable=/usr/local/bin/minio [Service] WorkingDirectory=/usr/local/ User=minio-user Group=minio-user EnvironmentFile=-/etc/default/minio 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_OPTS $MINIO_VOLUMES # Let systemd restart this service always Restart=always # Specifies the maximum file descriptor number that can be opened by this process LimitNOFILE=65536 # Disable timeout logic and wait until process is stopped TimeoutStopSec=infinity SendSIGKILL=no [Install] WantedBy=multi-user.target # Built for ${project.name}-${project.version} (${project.name})
Replace User=minio-user
and Group=minio-user
as required. (Make sure that this user have write access to your volume path)
Generate SSL for MINIO:
openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout ~/.minio/certs/private.key -out ~/.minio/certs/public.crt
Enable and start MINIO:
systemctl enale minio.service systemctl start minio
Now you should be able to access MINIO at https:// IP Address :9000/
. You can login using your MINIO_ACCESS_KEY and MINIO_SECRET_KEY that you set above in configuration file.
Next: Configure MINIO Node