Skip to content

Kopia - Aufbau und Funktionsweise

Kopia
  • Guten Morgen, heute möchte ich mal ein wenig aufzeigen, wie https://kopia.io/ aufgebaut ist und funktioniert. Ich hatte da am Anfang so ein wenig Probleme mit 🙂

    Client

    Software

    Was gibt es?

    09a96182-795d-4eef-9b09-c52cfaa4f54f-image.png

    kopia CLI

    Man kann bei kopia, wie bei vielen Programme, den Sourcecode runterladen und das Tool selber bauen. Wir können uns aber auch ein passendes Debian-Paket installieren.

    wget  https://github.com/kopia/kopia/releases/download/v0.6.3/kopia_0.6.3_linux_amd64.deb
    dpkg -i kopia_0.6.3_linux_amd64.deb
    

    Dazu gibt es auch noch die Möglichkeit sich die Downloadquellen in APT einzubauen. Das macht auf meinem System leider einen Fehler, habe ich den schon eingereicht?

    Heute kurz im Slack mit Jarek drüber gechattet, Problem gelöst 🙂 Das war das Problem.

     Das Laden der konfigurierten Datei »main/binary-i386/Packages« wird übersprungen, da das Depot »http://packages.kopia.io/apt stable InRelease« die Architektur »i386« nicht unterstützt.
    

    Jarek hat das auf seiner Seite gefixt.

    Aktuell empfehle ich die Installation des .deb Paketes, geht einfach und problemlos.

    Kopia-UI

    desktop app for all supported platforms: Windows, macOS, and Linux

    Bildschirmfoto vom 2020-08-29 10-35-47.png

    Hier hat man auch wieder viel Auswahl. Ein .deb Paket oder ein AppImage z.B. Beide funktionieren sehr gut.

    repo connect

    Was bei mir etwas gedauert hat, war das Verständnis wie kopia die Verbindung z.B. zu einem Kopia Repository Server verarbeitet. Das ist aber, wenn man es mal verstanden hat, relativ einfach.

    Ich connecte so, zu meinem Server.

    kopia repo connect server --url=https://DOMAIN.de:51515/ --override-username=USER --override-hostname=HOSTNAME
    

    Was passiert dann?

    kopia legt folgende Dateien unter /home/USER/.config/kopia an.

    26f93b1d-0765-44f2-a0aa-f09318160379-image.png

    repository.config

    {
      "apiServer": {
        "url": "https://DOMAIN.de:51515",
        "serverCertFingerprint": ""
      },
      "hostname": "HOSTNAME",
      "username": "USER"
    }
    

    Gut, er speichert die Login-Daten hier ab.

    repository.config.kopia-password

    XXXHHHSSSBBBDBBDJDJDJJ
    

    Das Passwort zum Login auf dem Server in gehashter Form.

    repository.config.update-info.json

     {"nextCheckTimestamp":"2020-09-02T16:41:05.804210493+02:00","nextNotifyTimestamp":"2020-08-26T17:41:07.10204226+02:00","availableVersion":"v0.6.3"}
    

    Die Daten, wenn man ein automatisches Backup angelegt hätte.

    Zusammenfassung

    Nach der erfolgreichen Ausführung von kopia repo connect server werden die Daten im o.g. Verzeichnis gespeichert. Das heisst, man muss das danach nicht wieder machen! Kopia kennt jetzt den Login und könnte jederzeit ein

    kopia snapshot create $HOME
    

    ausführen. Ich habe mich beim Testen immer gefragt, wo hat denn das UI die Login-Daten her. Ok, nun weiß ich das, das UI schaut in den abgelegten Daten nach und verbindet sich automatisch mit dem Server!

    Wichtig! Bei einem

    kopia repo disconnect
    

    werden diese Dateien wieder gelöscht!

    Damit ist nun klar, wie das funktioniert. Somit kann man auch sehr einfach das UI Interface nutzen, was keine eingebaute Funktion zum Verbinden mit dem Repository Server hat. Es hat auch noch ein paar andere Unzulänglichkeiten, dazu gibt es aber einen Issue, der auch abgearbeitet ist. Sollte im nächsten Release drin sein.

    Man verbindet zur Zeit über das CLI zum Server und kann danach das UI nutzen 😉

    Server

    Auf dem Server findet man den selben Aufbau.

    drwx------ 2 kopia kopia 4.0K Aug 29 10:16 .
    drwx------ 4 kopia kopia 4.0K Aug 23 08:39 ..
    -rw------- 1 kopia kopia  392 Aug 24 18:14 repository.config
    -rw------- 1 kopia kopia   64 Aug 24 18:14 repository.config.kopia-password
    -rw------- 1 kopia kopia    0 Aug 22 10:10 repository.config.mlock
    -rw------- 1 kopia kopia  143 Aug 24 17:06 repository.config.update-info.json
    

    repository.config

    {
      "storage": {
        "type": "filesystem",
        "config": {
          "path": "/home/kopia/data",
          "dirShards": null
        }
      },
      "caching": {
        "cacheDirectory": "../../.cache/kopia/3d45987959a6d07f",
        "maxCacheSize": 5242880000,
        "maxMetadataCacheSize": 5242880000,
        "maxListCacheDuration": 600
      },
      "hostname": "HOSTNAME",
      "username": "kopia"
    }
    

    repository.config.kopia-password

    Das gehashte Passwort zum Filesystem.

    repository.config.mlock

    Leer. Bin mir nicht ganz sicher, wird vermutlich nur temporär benutzt (lock)

    repository.config.update-info.json

    {"nextCheckTimestamp":"2020-08-25T17:06:04.915833327+02:00","nextNotifyTimestamp":"2020-08-25T17:06:04.915833878+02:00","availableVersion":""}
    

    Auch hier wieder die Daten für einen automatischen Snapshot, wenn man das nutzt.

    Logfile

    Ihr sucht das Logfile des Servers?

    /home/kopia/.cache/kopia
    

    Fazit

    Sehr logisch aufgebaut, wenn man es mal verstanden und durchschaut hat. Das UI sollte sich mit dem nächsten Release auch besser nutzen lassen. Man kann aber aktuell problemlos Snapshots erstellen, was ich aktuell zur Zeit jeden Tag auch mache,

    Aufpassen! Produktiv einsetzen sollte man sich noch sehr gut überlegen, es gibt da ein Problem was dem Coder aufgefallen ist, der nicht so gut ist.

    Aktuell nutze ich weiterhin Restic, fahre aber zweigleisig, da mir Kopia sehr gut gefällt. Vor allen Dingen das UI macht es sehr einfach einen guten Überblick über seine Backups zu behalten.

  • Redis ändert das Lizenz Modell

    Redis
    2
    0 Stimmen
    2 Beiträge
    59 Aufrufe
    FrankMF

    Ein Artikel von Heise zum Thema

    Link Preview Image Datenbankanbieter Redis ändert sein Lizenzmodell – erneut

    Die No-SQL-Datenbank wird künftig nach einem dualen Modell lizenziert: Redis Source Available License Version 2 oder Server-Side Public License Version 1.​

    favicon

    Developer (www.heise.de)

  • duf - ein hübsches Kommandozeilen Tool

    Linux
    1
    0 Stimmen
    1 Beiträge
    122 Aufrufe
    Niemand hat geantwortet
  • Semaphore - Die API

    Verschoben Ansible
    2
    0 Stimmen
    2 Beiträge
    129 Aufrufe
    FrankMF

    Ich hasse schlecht lesbaren Code, scheint man sich bei Python so anzugewöhnen. Habe da nochmal was mit der langen Zeile getestet.

    stages: - deploy deploy: stage: deploy script: # $SEMAPHORE_API_TOKEN is stored in gitlab Settings/ CI/CD / Variables - >- curl -v XPOST -H 'Content-Type: application/json' -H 'Accept: application/json' -H "Authorization: Bearer $SEMAPHORE_API_TOKEN " -d '{"template_id": 2}' https://<DOMAIN>/api/project/2/tasks only: - master # Specify the branch to trigger the pipeline (adjust as needed)

    Hier noch was Dr. ChatGPT dazu schreibt

    631de9d4-b04d-4043-bfff-c5f2d1b6eea7-grafik.png

    Erledigt - läuft 🙂 Und verstanden habe ich es auch.

  • Kopia - Error 405

    Kopia
    1
    0 Stimmen
    1 Beiträge
    200 Aufrufe
    Niemand hat geantwortet
  • Kopia - Mit Snapshots arbeiten

    Kopia
    2
    0 Stimmen
    2 Beiträge
    342 Aufrufe
    FrankMF

    Solltet Ihr mal snaps mit dem Status incomplete haben und möchtet diese loswerden

    :~$ kopia snap ls -i USER@HOST:/home/frank 2020-09-10 16:31:45 CEST k89770cab1061e00ada49efc41075ed34 incomplete:canceled 728.8 MB drwxr-xr-x files:8891 dirs:3033 (incomplete) 2020-09-10 16:40:05 CEST k27f028b63299983167cb0b4a0c85df80 incomplete:canceled 153.8 MB drwxr-xr-x files:1052 dirs:324 (incomplete)

    So was passiert z.B. wenn die Internetleitung rumzickt. Jarek meint, das wäre nicht schlimm, beim nächsten Snapshot wird das gefixt und die Daten genutzt, die schon verarbeitet wurden.

  • Kopia - APT Repository verfügbar

    Kopia
    1
    0 Stimmen
    1 Beiträge
    190 Aufrufe
    Niemand hat geantwortet
  • Kopia - Mounten einer Sicherung

    Verschoben Kopia
    1
    0 Stimmen
    1 Beiträge
    199 Aufrufe
    Niemand hat geantwortet
  • Kopia - HTTP/S Server

    Verschoben Kopia
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    FrankMF

    Ich hatte ein paar Probleme, die ich mir teilweise nicht erklären kann 🤔

    Ich möchte den Kopia Server gerne über systemd steuern.

    SystemD [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.

    Client Rechner

    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!

    Fazit

    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

    Verzeichnis mounten Backup testweise wieder herstellen (zumindestens teilweise)

    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...