HBS3 - kopia zapasowa danych na serwer z systemem Debian/Ubuntu

Zadanie proste - chcę wykonać kopię do zdalnej lokalizacji gdzie mam postawiony serwer z systemem Debian Buster.
Serwer źródłowy to QNAP TVS-472xt, a docelowy to Dell Wyse Dx0Q + QNAP TR-002.
W całym procesie skorzystałem z MINio jako serwer S3.
Po zalogowaniu się do SSH naszego Debiana musimy pobrać binarkę
wget https://dl.min.io/server/minio/release/linux-amd64/minio
Musimy też nadać uprawnienia do wykonywania pliku i przenieść plik w odpowiednie miejsce.
chmod +x minio
mv minio /usr/local/bin
Musimy dodać też usera na którym będzie minio pracował
useradd -r minio-user -s /sbin/nologin
Ja danę będę zapisywał do /mnt/tr002 gdzie mam zamontowany już storage, zatem trzeba ustawić właściciela. Oczywiście montowanie dodane jest w fstab dla QNAP TR-002.
chown minio-user:minio-user -R /mnt/tr002
Teraz pozostaje nam kwestia konfiguracji:
mkdir /etc/minio
chown minio-user:minio-user /etc/minio
vi /etc/default/minio
Teraz wrzucamy konfigurację do pliku:
MINIO_ACCESS_KEY="qnap"
MINIO_VOLUMES="/mnt/tr002/"
MINIO_OPTS="-C /etc/minio"
MINIO_SECRET_KEY="mojesupertajnehaslo"
Jak widać wyżej parametry trzeba sobie dopasować.
Teraz czas na systemd aby nasz s3 server uruchamiał się automatycznie.
curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
Czss dopasować nasz plik o ile jest taka potrzeba:
minio.service
I zawartość:
[Unit]
Description=MinIO
Documentation=https://docs.min.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})
Teraz przerzucamy plik w odpowiednie miejsce i uruchomić serwer:
mv minio.service /etc/systemd/system
systemctl daemon-reload
systemctl enable minio
Wynik poleceń:
Created symlink /etc/systemd/system/multi-user.target.wants/minio.service → /etc/systemd/system/minio.service.
I samo uruchomienie:
systemctl start minio
I możemy sprawdzić czy aplikacja działa poprawnie:
systemctl status minio
wynik polecenia:
minio.service - MinIO
Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-07-20 08:41:57 CEST; 1h 26min ago
Docs: https://docs.min.io
Main PID: 16453 (minio)
Tasks: 17 (limit: 3996)
Memory: 2.6G
CGroup: /system.slice/minio.service
└─16453 /usr/local/bin/minio server -C /etc/minio /mnt/tr002/backup/
lip 20 08:41:58 piwnica minio[16453]: Attempting encryption of all config, IAM users and policies on MinIO backend
lip 20 08:41:59 piwnica minio[16453]: Endpoint: http://192.168.1.135:9000 http://172.17.0.1:9000 http://127.0.0.1:9000
lip 20 08:41:59 piwnica minio[16453]: Browser Access:
lip 20 08:41:59 piwnica minio[16453]: http://192.168.1.135:9000 http://172.17.0.1:9000 http://127.0.0.1:9000
lip 20 08:41:59 piwnica minio[16453]: Object API (Amazon S3 compatible):
lip 20 08:41:59 piwnica minio[16453]: Go: https://docs.min.io/docs/golang-client-quickstart-guide
lip 20 08:41:59 piwnica minio[16453]: Java: https://docs.min.io/docs/java-client-quickstart-guide
lip 20 08:41:59 piwnica minio[16453]: Python: https://docs.min.io/docs/python-client-quickstart-guide
lip 20 08:41:59 piwnica minio[16453]: JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
lip 20 08:41:59 piwnica minio[16453]: .NET: https://docs.min.io/docs/dotnet-client-quickstart-guide
Teraz można już nasz storage dodać w QNAP HBS3.

Podajemy adres serwera z portem 9000 oraz wcześniej zdeklarowane parametry dostępu Access Key oraz Secret Key.