Debian Bullseye - ZFS installieren und Pool erstellen


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