Skip to content

Debian Bullseye - ZFS installieren und Pool erstellen

Linux
  • Für mein kleines Virtualisierungsprojekt brauche ich ein Debian Bullseye mit ZFS-Pool. Warum? Man muss auch mal Neues ausprobieren 😉

    Das Debian läuft als VM innerhalb meines Proxmox. Diese VM soll als erstes zwei Platten zugewiesen bekommen. Wir nehmen zwei Festplatten und machen diese am Besten mit fdisk schön platt. Danach sollte der Proxmox die anzeigen.

    Wir bruchen die IDs.

    /dev/disk/by-id

    ls -lha /dev/disk/by-id
    lrwxrwxrwx 1 root root   9 Oct 17 16:36 ata-ST2000LM015-2E8174_WDZHD87G -> ../../sdc
    lrwxrwxrwx 1 root root   9 Oct 17 16:36 ata-ST2000LM015-2E8174_ZDZ2MY9W -> ../../sdd
    

    Nehmen wir an, wir haben diese beiden Platten und die wollen wir jetzt der VM zuweisen. Das geht nicht übers GUI, dazu gibt man auf der Konsole folgendes ein.

    qm set 100 -scsi1 /dev/disk/by-id/ata-ST2000LM015-2E8174_WDZHD87G
    qm set 100 -scsi2 /dev/disk/by-id/ata-ST2000LM015-2E8174_ZDZ2MY9W
    

    Sieht dann so aus.

    a6b208b0-9e34-4f9b-b725-85737840c66d-grafik.png

    Damit stehen uns diese beiden Platten innerhalb der VM zur Verfügung. Sieht dann wie folgt aus (hier schon mit ZFS-Pool)

    root@debian1:~# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   32G  0 disk 
    ├─sda1   8:1    0   31G  0 part /
    ├─sda2   8:2    0    1K  0 part 
    └─sda5   8:5    0  975M  0 part [SWAP]
    sdb      8:16   0  1,8T  0 disk 
    ├─sdb1   8:17   0  1,8T  0 part 
    └─sdb9   8:25   0    8M  0 part 
    sdc      8:32   0  1,8T  0 disk 
    ├─sdc1   8:33   0  1,8T  0 part 
    └─sdc9   8:41   0    8M  0 part 
    sr0     11:0    1  377M  0 rom 
    

    Nun möchte ich aus diesen beiden Platten einen ZFS-Pool machen. Auf Debian Bullseye ist kein ZFS vorinstalliert. Dazu müssen wir die Repositories anpassen.

    nano /etc/apt/sources.list

    # deb cdrom:[Debian GNU/Linux 11.0.0 _Bullseye_ - Official amd64 NETINST 20210814-10:07]/ bullseye main
    
    #deb cdrom:[Debian GNU/Linux 11.0.0 _Bullseye_ - Official amd64 NETINST 20210814-10:07]/ bullseye main
    
    deb http://deb.debian.org/debian/ bullseye contrib main
    deb-src http://deb.debian.org/debian/ bullseye contrib main
    
    deb http://security.debian.org/debian-security bullseye-security main
    deb-src http://security.debian.org/debian-security bullseye-security main
    
    # bullseye-updates, to get updates before a point release is made;
    # see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
    deb http://deb.debian.org/debian/ bullseye-updates main
    deb-src http://deb.debian.org/debian/ bullseye-updates main
    
    # This system was installed using small removable media
    # (e.g. netinst, live or single CD). The matching "deb cdrom"
    # entries were disabled at the end of the installation process.
    # For information about how to configure apt package sources,
    # see the sources.list(5) manual.
    

    Wir müssen das contrib ergänzen, danach kann man ZFS installieren.

    apt update
    apt install zfs-dkms
    

    Danach steht uns ZFS in der VM zur Verfügung. Wir bauen nun den Pool, dafür brauchen wir wieder die IDs.

    root@debian1:~# ls -lha /dev/disk/by-id/
    insgesamt 0
    drwxr-xr-x 2 root root 260 17. Okt 16:42 .
    drwxr-xr-x 8 root root 160 17. Okt 16:42 ..
    lrwxrwxrwx 1 root root   9 17. Okt 16:42 ata-QEMU_DVD-ROM_QM00003 -> ../../sr0
    lrwxrwxrwx 1 root root   9 17. Okt 16:42 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0 -> ../../sda
    lrwxrwxrwx 1 root root  10 17. Okt 16:42 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part1 -> ../../sda1
    lrwxrwxrwx 1 root root  10 17. Okt 16:42 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part2 -> ../../sda2
    lrwxrwxrwx 1 root root  10 17. Okt 16:42 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part5 -> ../../sda5
    lrwxrwxrwx 1 root root   9 17. Okt 16:42 scsi-0QEMU_QEMU_HARDDISK_drive-scsi1 -> ../../sdc
    lrwxrwxrwx 1 root root  10 17. Okt 16:42 scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part1 -> ../../sdc1
    lrwxrwxrwx 1 root root  10 17. Okt 16:42 scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part9 -> ../../sdc9
    lrwxrwxrwx 1 root root   9 17. Okt 16:42 scsi-0QEMU_QEMU_HARDDISK_drive-scsi2 -> ../../sdb
    lrwxrwxrwx 1 root root  10 17. Okt 16:42 scsi-0QEMU_QEMU_HARDDISK_drive-scsi2-part1 -> ../../sdb1
    lrwxrwxrwx 1 root root  10 17. Okt 16:42 scsi-0QEMU_QEMU_HARDDISK_drive-scsi2-part9 -> ../../sdb9
    

    scsi0 ist die Systemplatte, scsi1 und scsi2 die Platten, die wir hinzugefügt haben.

    Pool anlegen

    zpool create ZFS-Pool scsi-0QEMU_QEMU_HARDDISK_drive-scsi1 scsi-0QEMU_QEMU_HARDDISK_drive-scsi2
    

    Status abfragen

    root@debian1:~# zpool status NAS
      pool: NAS
     state: ONLINE
      scan: resilvered 232K in 00:00:01 with 0 errors on Sun Oct 17 16:38:46 2021
    config:
    
    	NAME                                      STATE     READ WRITE CKSUM
    	NAS                                       ONLINE       0     0     0
    	  mirror-0                                ONLINE       0     0     0
    	    scsi-0QEMU_QEMU_HARDDISK_drive-scsi1  ONLINE       0     0     0
    	    scsi-0QEMU_QEMU_HARDDISK_drive-scsi2  ONLINE       0     0     0
    
    errors: No known data errors
    

    Das wars 🙂 Nun kann man mit dem ZFS-Pool arbeiten, z.B. als NAS gebrauchen und dann mittels NFS verteilen. Jetzt denkt der ein oder andere vielleicht, warum nicht direkt auf dem Host!? Das habe ich genauso auch gemacht, aber das Netz ist leider vor meiner pfSense, so mit musste das hinter die pfSense. So mit brauchte ich eine VM, die das verteilt.

    Viel Spaß beim Testen....

  • Storage Box für den REST-Server

    Restic
    1
    0 Stimmen
    1 Beiträge
    127 Aufrufe
    Niemand hat geantwortet
  • Manjaro KDE Plasma 21.2.2

    Linux
    5
    0 Stimmen
    5 Beiträge
    152 Aufrufe
    FrankMF

    Ok, geht nicht. Manjaro und ich werden leider keine Freunde. Da sind zu viele Dinge, die nicht besonders gut umgesetzt sind. Heute mal den Test gemacht und mein geliebtes Linux Mint Cinnamon installiert.

    Passwort für die Verschlüsselung nimmt anstandslos deutsche Sonderzeichen an WiFi geht auch nicht mit WPA3, man kann aber einfach auf WPA2 umstellen und das funktioniert.

    Damit endet dieser Versuch jetzt..

  • Ansible - ein kurzer Test

    Linux
    1
    0 Stimmen
    1 Beiträge
    130 Aufrufe
    Niemand hat geantwortet
  • ZFS - Wichtige Befehle

    Linux
    2
    0 Stimmen
    2 Beiträge
    400 Aufrufe
    FrankMF

    Unter dem Beitrag sammel ich mal ein paar Beispiele, für mich zum Nachlesen 🙂

    Den Anfang macht die

    ZFS-Replication

    Ich hatte Am Anfang ein wenig Verständnisprobleme, bis es klar war, das diese Replication von Pool zu Pool funktioniert. Also brauchen wir zwei vorhandene ZFS-Pools.

    root@pbs:/mnt/datastore/datapool/test# zfs list NAME USED AVAIL REFER MOUNTPOINT Backup_Home 222G 677G 222G /mnt/datastore/Backup_Home datapool 2.36G 1.75T 2.36G /mnt/datastore/datapool

    Wir erzeugen ein Dataset im datapool

    zfs create datapool/docs -o mountpoint=/docs

    Wir erzeugen eine Datei mit Inhalt

    echo "version 1" > /docs/data.txt

    Wir erzeugen einen Snapshot

    zfs snapshot datapool/docs@today

    Kontrolle

    root@pbs:/mnt/datastore/datapool/test# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT datapool/docs@today 0B - 96K -

    Wir replizieren den vorhandenen Snapshot zum ZFS-Pool Backup_Home und speichern ihn da im Dataset test.

    zfs send datapool/docs@today | zfs receive Backup_Home/test

    Nun befinden sich die Daten in dem anderen ZFS-Pool

    root@pbs:/mnt/datastore/datapool/test# ls /mnt/datastore/Backup_Home/test/ data.txt

    Und was mich am meisten interessiert, ist wie man das zu einem anderen Server schickt 😉

    zfs send datapool/docs@today | ssh otherserver zfs receive backuppool/backup

    Den Test reiche ich dann später nach.

    Quelle: https://www.howtoforge.com/tutorial/how-to-use-snapshots-clones-and-replication-in-zfs-on-linux/

    ZFS inkrementelle Replication

    Als, nur die geänderten Daten senden!

    Wir erzeugen ein paar Dateien

    root@pbs:/mnt/datastore/datapool/test# echo "data" > /docs/data1.txt root@pbs:/mnt/datastore/datapool/test# echo "data" > /docs/data2.txt root@pbs:/mnt/datastore/datapool/test# echo "data" > /docs/data3.txt root@pbs:/mnt/datastore/datapool/test# echo "data" > /docs/data4.txt

    Neuer Snapshot

    zfs snapshot datapool/docs@17:02

    Liste der Snapshots

    root@pbs:/mnt/datastore/datapool/test# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT datapool/docs@today 56K - 96K - datapool/docs@17:02 0B - 112K -

    Wir senden dieinkrementelle Replication

    zfs send -vi datapool/docs@today datapool/docs@17:02 | zfs receive Backup_Home/test send from datapool/docs@today to datapool/docs@17:02 estimated size is 38.6K total estimated size is 38.6K cannot receive incremental stream: destination Backup_Home/test has been modified since most recent snapshot

    Dazu schreibt die Anleitung, die ich unten verlinkt habe, das die Daten verändert wurden. Warum, verstehe ich aktuell noch nicht. Mit -F im send Befehl erzwingt man einen Rollback zum letzten Snapshot.

    zfs send -vi datapool/docs@today datapool/docs@17:02 | zfs receive -F Backup_Home/test send from datapool/docs@today to datapool/docs@17:02 estimated size is 38.6K total estimated size is 38.6K

    Und Kontrolle

    ls /mnt/datastore/Backup_Home/test/ data1.txt data2.txt data3.txt data4.txt data.txt

    Quelle: https://klarasystems.com/articles/introduction-to-zfs-replication/

  • Kopia - Aufbau und Funktionsweise

    Kopia
    1
    0 Stimmen
    1 Beiträge
    762 Aufrufe
    Niemand hat geantwortet
  • IPTables dauerhaft speichern

    Angeheftet Linux
    1
    0 Stimmen
    1 Beiträge
    442 Aufrufe
    Niemand hat geantwortet
  • Proxmox - Neue HDD hinzufügen

    Verschoben Proxmox
    2
    0 Stimmen
    2 Beiträge
    3k Aufrufe
    FrankMF

    Hoppla, da passt was nicht.

    root@frank-mankel:~# pvesm status Name Type Status Total Used Available % VM lvmthin active 488136704 23284120 464852583 4.77% backup dir active 57278576 3501916 50837372 6.11% local dir active 57278576 3501916 50837372 6.11% local-lvm lvmthin active 147275776 0 147275776 0.00%

    Hier sieht man, das backup ca. 50GB groß ist. Da die Partition deutlich größer ist, fehlt da was!?? Kurz mal nachgedacht und gesucht..... 😉

    Der Eintrag in /etc/fstab muss natürlich auch vorhanden sein, so wie gewohnt. Danach

    root@frank-mankel:~# pvesm status Name Type Status Total Used Available % VM lvmthin active 488136704 23284120 464852583 4.77% backup dir active 1921797220 77856 1824027568 0.00% local dir active 57278576 3502984 50836304 6.12% local-lvm lvmthin active 147275776 0 147275776 0.00%

    e9b52dbe-dc81-4bec-a4e8-a26885f57d84-grafik.png

    Mein vorhin erstelltes Backup war weg. Also aufpassen!!

  • Let's Encrypt installieren

    Verschoben Let's Encrypt
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    FrankMF

    Wenn ihr alles richtig gemacht habt, dann könnt ihr Euer Zertifikat überprüfen lassen. Sollte dann so aussehen.

    0_1538314120455_index.jpeg