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.

  • Manjaro - KDE Plasma 6

    Linux
    3
    0 Stimmen
    3 Beiträge
    598 Aufrufe
    FrankMF

    Da fällt mir heute beim Lesen dieses Beitrages auf das ich damals ja auf unstable gestellt habe.

    [frank-manjaro ~]# pacman-mirrors --get-branch unstable

    Anleitung dazu -> https://wiki.manjaro.org/index.php/Switching_Branches

    Ok, da könnte ja auch mal was schief gehen? Da ich hier aber ein btrfs Filesystem fahre und Timeshift Snapshots anlegt, sollte das Risiko überschaubar sein.

    567442e5-80f0-4ce9-9b91-3e8f9a4a94d8-grafik.png

    Es werden bei jeder Aktion vorher Snapshots angelegt, auf die man im Grub Menü zugreifen kann und diese wieder installieren lassen kann. Hatte das früher schon mal getestet, ging wirklich gut. Werde ich die Tage auch hier auf dem System, zur Sicherheit, mal testen.

    Fazit, ich lasse das mal so wie es ist 🙂

  • Give back to open source 2023

    Allgemeine Diskussionen
    1
    0 Stimmen
    1 Beiträge
    102 Aufrufe
    Niemand hat geantwortet
  • Intel ARC A580

    Linux
    4
    0 Stimmen
    4 Beiträge
    387 Aufrufe
    FrankMF

    Zwei Monitore ausprobiert, einen 4K und einen Full-HD (HDMI). Lief einwandfrei, auch gemeinsam.

  • Nextcloud - Hub 5 (27.0.0)

    Nextcloud
    1
    0 Stimmen
    1 Beiträge
    100 Aufrufe
    Niemand hat geantwortet
  • OpenWRT - Zonen

    Verschoben OpenWRT & Ubiquiti ER-X
    2
    0 Stimmen
    2 Beiträge
    462 Aufrufe
    FrankMF

    Es ist was heller geworden 🙂

    7b86e97c-31a5-44b6-809f-25d9d1c2ee4a-image.png

    Die besagte Forward Regel

    Zonen.png

    Diese Forward Regel zieht erst dann, wenn es mehrere Interfaces in einer Zone gibt. Aus der Doku

    INPUT rules for a zone describe what happens to traffic trying to reach the router itself through an interface in that zone. OUTPUT rules for a zone describe what happens to traffic originating from the router itself going through an interface in that zone. FORWARD rules for a zone describe what happens to traffic passing between different interfaces belonging in the same zone.

    Das heisst nun, das ein Forwarding zwischen zwei Zonen immer eine spezifische Regel unter Traffic Rules benötigt.

    Forwarding between zones always requires a specific rule.

    Somit ist ein Forwarding zwischen zwei Zonen in den Standard Einstellungen nicht erlaubt. Das kann ich hier auch so bestätigen. Das ist ja auch das was ich mit meiner "DMZ"-Zone erreichen möchte. Kein Zugriff auf LAN.

    Unter Zone ⇒ Forwardings kann man jetzt sehen, das das Forwarding von LAN in Richtung WAN und DMZ erlaubt ist. WAN ist logisch, sonst komme ich ja nicht ins Internet. DMZ habe ich eingestellt, damit ich auch Teilnehmer im DMZ Netz erreichen kann, wenn ich da mal ran muss.

    8a548c29-8bc5-4074-8099-66460bcea9a8-image.png

    Stelle ich das jetzt so ein.

    dca8b393-f613-4cab-a377-ffbc2bb8ddf5-image.png

    Dann kann ich von der DMZ Zone aus das LAN erreichen. Aha, so langsam verstehe ich 😉

    Quelle: https://forum.openwrt.org/t/firewall-zones-and-settings/84369

  • Kopia - Error 405

    Kopia
    1
    0 Stimmen
    1 Beiträge
    211 Aufrufe
    Niemand hat geantwortet
  • Debian 10 Buster 10.5 released

    Linux
    1
    0 Stimmen
    1 Beiträge
    204 Aufrufe
    Niemand hat geantwortet
  • Restic - Einen ROCKPro64 als Datengrab benutzen

    Verschoben Restic
    2
    0 Stimmen
    2 Beiträge
    821 Aufrufe
    FrankMF

    So, dann mal das Ganze testen wenn man seinen Haupt-PC neu installiert hat und ein paar Daten braucht.

    0_1534692578537_IMG_20180819_090116_ergebnis.jpg

    Also, mal Restic installiert.

    sudo apt-get install restic

    Nach erfolgter Installation ein Test

    frank@frank-MS-7A34:~/restic$ restic version restic 0.8.3 compiled with go1.10 on linux/amd64

    Geht so weit.

    Snapshots auflisten. restic -r sftp:rock64@IP:/home/rock64/backup snapshots

    Sieht dann so aus.

    frank@frank-MS-7A34:~$ sudo restic -r sftp:rock64@192.168.3.207:/home/rock64/backup snapshots [sudo] Passwort für frank: rock64@192.168.3.207's password: enter password for repository: password is correct ID Date Host Tags Directory ---------------------------------------------------------------------- 7e2eddcb 2018-08-18 10:10:40 frank-MS-7A34 /home/frank/Bilder 073b7cb4 2018-08-18 14:21:17 frank-MS-7A34 /home/frank 6bc9b21b 2018-08-18 16:11:19 frank-MS-7A34 /home/frank ---------------------------------------------------------------------- 3 snapshots Snapshot wiederherstellen sudo restic -r sftp:rock64@IP:/home/rock64/backup restore latest --target /tmp/backup

    Hiermit stellen wir das Backup im temporären Ordner /tmp/backup wieder her. Hat ewig gedauert, aber ging !?!?!?