Und man soll ja auch was mitnehmen....
Screenshot_20230809_194620.png
Das ist Semaphore, installiert in einer VM auf meinem Proxmox.
Ok, weiter geht's Kopia hat auch einen eingebauten Server Modus. Das entspricht dann dem REST-Server von Restic.
Da es auch eine arm64 Version gibt, klatschen wir das mal schnell auf einen ROCKPro64 zum Testen.
Wir suchen uns hier die richtige Version aus und kopieren den Download Pfad. In meinem Fall brauchen wir dann das hier.
root@debian:~# wget https://github.com/kopia/kopia/releases/download/v0.6.0-rc1/kopia_0.6.0-rc1_linux_arm64.deb
Danach installieren
root@debian:~# dpkg -i *.deb
Selecting previously unselected package kopia.
(Reading database ... 161388 files and directories currently installed.)
Preparing to unpack kopia_0.6.0-rc1_linux_arm64.deb ...
Unpacking kopia (0.6.0~rc1) ...
Setting up kopia (0.6.0~rc1) ...
Wir brauchen mal irgendeinen Pfad zum Testen
root@debian:~# mkdir kopia
Wir erzeugen ein Repository
root@debian:~# kopia repository create filesystem --path kopia
Enter password to create new repository:
Re-enter password for verification:
Initializing repository with:
block hash: BLAKE2B-256-128
encryption: AES256-GCM-HMAC-SHA256
splitter: DYNAMIC-4M-BUZHASH
Connected to repository.
NOTICE: Kopia will check for updates on GitHub every 7 days, starting 24 hours after first use.
To disable this behavior, set environment variable KOPIA_CHECK_FOR_UPDATES=false
Alternatively you can remove the file "/root/.config/kopia/repository.config.update-info.json".
Policy for (global):
Retention:
Annual snapshots: 3 (default)
Monthly snapshots: 24 (default)
Weekly snapshots: 4 (default)
Daily snapshots: 7 (default)
Hourly snapshots: 48 (default)
Latest snapshots: 10 (default)
Files policy:
No ignore rules.
Read ignore rules from files:
.kopiaignore (default)
Error handling policy:
Ignore file read errors: false (default)
Ignore directory read errors: false (default)
Scheduled snapshots:
None
Compression disabled.
To change the policy use:
kopia policy set --global <options>
or
kopia policy set <dir> <options>
Für das Tool htpasswd brauchen wir
apt install apache2-utils
Danach legen wir einen User mit Passwort an.
root@debian:~# htpasswd -c htpasswd frank@frank-MS-XX
New password:
Re-type new password:
Adding password for user frank@frank-MS-XX
root@debian:~# kopia server --htpasswd-file htpasswd --address 192.168.3.2:51515
SERVER ADDRESS: http://192.168.3.2:51515
Open the address above in a web browser to use the UI.
serving patched index
Den Server kann man jetzt über einen Webbrowser erreichen
Was mich aber mehr interessiert, ich möchte den Server ja von extern erreichen um dort Backups anzulegen.
Ich hatte von meinem Test gestern Version 0.5.2 installiert, die kann das nicht. Also purgen und die Version 0.6.0-rc1 installieren. Diese ist im Github als Latest Releases markiert.
wget https://github.com/kopia/kopia/releases/download/v0.6.0-rc1/kopia_0.6.0-rc1_linux_amd64.deb
sudo dpkg -i *.deb
Ok, installiert und dann Version kontrollieren
frank@frank-MS-XX:~$ kopia --version
0.6.0-rc1 build: cfa30f2e45e7a9ec421757ced6361428412014bb
Passt
frank@frank-MS-XX:~$ kopia repo connect server --url=http://192.168.3.2:51515 --override-username=frank --override-hostname=frank-MS-XX
Enter password to open repository:
Connected to repository API Server.
NOTICE: Kopia will check for updates on GitHub every 7 days, starting 24 hours after first use.
To disable this behavior, set environment variable KOPIA_CHECK_FOR_UPDATES=false
Alternatively you can remove the file "/home/frank/.config/kopia/repository.config.update-info.json".
Ok, das sollte die Verbindung aufgebaut haben.
frank@frank-MS-XX:~$ kopia snapshot create $HOME/Downloads
Snapshotting frank@frank-MS-7C37:/home/frank/Downloads ...
* 0 hashing, 64 hashed (7.4 GB), 0 cached (0 B), 0 uploaded (0 B), 0 errors
Created snapshot with root k69751246cde8eb9180fb27e54da88220 and ID c936bac0515e9b740c1e67f64e3ea352 in 2m54s
Im Interface kann man dann oben rechts auswählen, welche Snapshots man angezeigt haben möchte.
Man kann sich sofort den Snapshot anzeigen lassen und nach Dateien suchen usw.
Sehr praktisch
Nach einigen wenigen Minuten, ein kleines Kurzfazit. Das Ding hat ganz viel Potential und gefällt mir aktuell sehr gut. Auch wenn man das sicherlich noch etwas ausführlicher testen muss.
Ich hatte ein paar Probleme, die ich mir teilweise nicht erklären kann
Ich möchte den Kopia Server gerne über systemd steuern.
[Unit]
Description=Kopia Server
After=syslog.target
After=network.target
[Service]
Type=simple
User=kopia
Group=kopia
ExecStart=/usr/bin/kopia server --tls-cert-file /home/kopia-server/fullchain.pem --tls-key-file /home/kopia-server/privkey.pem --htpasswd-file /home/kopia-server/.htpasswd --address <IPv4>:51515
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Danach
systemctl daemon-reload
systemctl start kopia-server
Mit
systemctl status kopia-server
kann man sich den Status anzeigen lassen.
Auf dem Client, der das Backup zum Server schicken soll, machen wir dann folgendes.
USER@HOSTNAME:~$ kopia repo connect server --url=https://<DOMAIN>:51515 --override-username=USER --override-hostname=HOSTNAME
Enter password to open repository:
Connected to repository API Server.
NOTICE: Kopia will check for updates on GitHub every 7 days, starting 24 hours after first use.
To disable this behavior, set environment variable KOPIA_CHECK_FOR_UPDATES=false
Alternatively you can remove the file "/home/frank/.config/kopia/repository.config.update-info.json".
Danach steht die Verbindung und wir können Backups hochschieben.
kopia snapshot create $HOME
Damit wird das Homeverzeichnis gesichert. Das initiale Backup, hat 30 Minuten gebraucht.
created snapshot with root kb9e50ff5xxxxxxxxxx265d40a5d0861 and ID cda5c0ffxxxxxxxxxxxxxxa4cb4a367b in 30m28s
Ein späteres Backup, sieht so aus.
USER@HOSTNAME:~$ kopia snapshot create $HOME
Snapshotting USER@HOSTNAME:/home/frank ...
* 0 hashing, 51 hashed (324.8 MB), 8524 cached (6.6 GB), 0 uploaded (0 B), 0 errors 100.0%
Created snapshot with root kc20a4xxxxxxxxxxxx745c6c7b37c and ID d7a96eaxxxxxxxxxxx0961018eacffa in 3m12s
Nach 3 Minuten durch. Zu diesem Zeitpunkt hat sich aber auch nicht wirklich was geändert!
Das Tool macht immer noch einen sehr guten Eindruck. Die Geschwindigkeit ist sehr gut. Die Anleitung ist leider unzureichend. Da gibt es so viele Möglichkeiten, da braucht es sehr lange, bis man da mal durchsteigt. Zum Glück, ist das was man normalerweise braucht, recht überschaubar. Bis zum produktiven Einsatz braucht das aber bei mir noch eine Menge mehr Tests.
Was ich noch testen möchte
Der Test läuft mit Standard Einstellungen, also z.B. ohne Kompression. Das sollte man dann auch mal testen..
Bitte achtet auf gleiche Versionen auf dem Clienten, wie auf dem Server. Ich meine da ein paar Probleme festgestellt zu haben...