FreeBSD ZFSonRoot auf M.2 NVME

kashee Opeiah

FreeBSD rockz
Hallo zusammen,
ich brauche mal euren Rat bei meinem folgenden Installationsplan.
Also bisher habe ich mein System in einem RaidZ 1 mit drei Festplatten laufen.

Mein neues Board untersützt nun M2 NVME und im Rahmen der Adventskalender konnte ich für wenig Geld einen 256 GB NVME kaufen.

Mein Plan ist jetzt mein FreeBSD System auf die NVME zu packen. Also alles was zum Booten gebraucht wird sowie Plasma, Firefox. Dadurch erhoffe ich mir einen Geschwindigskeitgewinn?
Mein Homeverzeichnis, sowie alle persönlichen Daten soll auf dem RaidZ gespeichert werden.

Jetzt meine Fragen:
1. Kann ich ein ZFS auf der NVME installieren? (Ich habe habe noch Ratschläge im Hinterkopf, für SSD ist UFS da "bessere" Dateisystem.)
2. Welche Mointpoints sollten auf die NVME gelegt werden? (/ & /boot /usr/local/ ist klar) Wie sieht es mit /usr/ports aus?
3. Kann ich die ZFS Snapshots der Mountpoints die auf der NVME liegen auf dem RaidZ speichern? Wenn ja wie?
4. Ist dieses Vorhaben generell Sinnvoll, oder ist die Performancesteigerung gegenüber dem RaidZ garnicht spürbar.

Vielen Dank für eure Hilfe
Kashee
 
Hi!

Natürlich kannst du ZFS auch auf NVME nutzen. Denke bitte aber ans Alingment, vor dem Erstellen des zpools also:
Code:
sysctl vfs.zfs.min_auto_ashift=12

Ich würde alles außer /home (bzw. /usr/home) auf den neuen Speicher legen, da du ja nur Redundanz für deine Nutzerdaten brauchst. Die Snapshots kannst du warscheinlich mit zfs send/recv auch auf deinem RaidZ unterbringen - ich würde darauf verzichten, da das System an sich ja eigentlich nicht wichtig ist.

Die Performancesteigerungen wirst du auf jeden Fall merken, wenn du bisher rotierende Platten eingesetzt hast.

Rob
 
Ist es immer noch notwendig das Alignment zu definieren? Kann das FreeBSD/ZFS nicht endlich alleine?
 
Ist es immer noch notwendig das Alignment zu definieren? Kann das FreeBSD/ZFS nicht endlich alleine?
bei meinen letzten Versuchen damit konnte es das sehr wohl, also schon vor FreeBSD12. Ab irgendeiner 10er Version hatte das automatisch funktioniert, aber Vorsicht ist natürlich die Mutter...
Sieh es dir halt genau an, wenn du Zweifel daran hast. Ich habe es mir immer angesehen und wie gesagt, bei den letzten Versionen wurde alles automatisch realisiert (auch lzh und andere Dinge), die immer empfohlen worden waren oder die ich selbst für gut befunden hatte.

Einfach nehmen, wie es aktuell kommt und es wird voraussichtlich gut gehen, wenn es nicht um etwas sehr spezielles geht.
 
Ist es immer noch notwendig das Alignment zu definieren? Kann das FreeBSD/ZFS nicht endlich alleine?
Vorhin beim Aufsetzen eines FreeBSD 12.0 und manueller zfs-Einrichtung stand das Alignment auf 9 und daher ist der Hinweis von Rob meines Erachtens durchaus angebracht.
Es mag sein, dass es bei der automatischen zfs-Einrichtung nicht notwendig ist, das Alignment manuell zu ändern.
 
ZFS setzt das Alignement korrekt, wenn das Medium seine Blocksize korrekt kommuniziert. Da aber praktisch alle SSDs auf dem Markt mit "Aber natürlich habe ich 512 Byte Sektoren, Ehrenwort!" antworten - sonst wären sie nicht mit dem heiligen und unersetzbaren Windows 7 inkompatibel - und der Quirktable des Kernels aufgrund der großen Anzahl verschiedener SSDs niemals vollständig sein kann, ist es besser das Alignement manuell zu setzen.
 
Also bei mir ist es so, dass
sysctl vfs.zfs.min_auto_ashift
mit
vfs.zfs.min_auto_ashift: 9
antwortet.
Aber
zdb auf der SSDs brav ein ashift: 12 liefert.
Ihr mal exemplarisch ein Auszug der Ausgabe:
Code:
zroot:
    version: 5000
    name: 'zroot'
    state: 0
    txg: 2350501
    com.delphix:has_per_vdev_zaps
    vdev_children: 1
    vdev_tree:
        type: 'root'
        id: 0
        guid: 2321884639340613962
        create_txg: 4
        children[0]:
            type: 'disk'
            id: 0
            guid: 7612019943626062873
            path: '/dev/ada0p2'
            whole_disk: 1
            metaslab_array: 37
            metaslab_shift: 31
            ashift: 12
            asize: 250053394432
            is_log: 0
            DTL: 235
            create_txg: 4
            com.delphix:vdev_zap_leaf: 35
            com.delphix:vdev_zap_top: 36
    features_for_read:
        com.delphix:hole_birth
        com.delphix:embedded_data
Allerdings ist der Pool bei der Installation angelegt worden.
 
hallo zusammen,
danke f[r die Hilfreichen Antworten.
Das Alingment habe vor der Erstellung gesetzt und FreeBSD 12 Release erfolgreich installiert.

Jetzt ist meine naechste Frage wie ich meinen zPool so importiere, dass ich meinen vorhandens /usr/home/ zur neuen Installation hinzufuege.

Ich wuerde die alte Installtion gern noch auf dem zPool lassen.

Kashee
 
beschreibe bitte mal etwas genauer, was du nun wie hast und in Zukunft haben möchtest. Nicht, dass man voreilige Tips gibt, die nachher falsch sind.
 
Hallo pit,
okay, dann spezifiziere ich mal:

Ich habe zwei zPools:
Zpool102
- RaidZ-1 mit installierten Freebsd 10.2 und all meinen Daten

Code:
zroot102                        2.97T  3.80T   117K  none
zroot102/ROOT                   7.65G  3.80T   117K  none
zroot102/ROOT/default           7.65G  3.80T  4.11G  /mnt/
zroot102/tmp                    1.83G  3.80T  1.82G  /mnt//tmp
zroot102/usr                    2.93T  3.80T   636M  /mnt//usr
zroot102/usr/home               2.74T  3.80T  2.71T  /mnt//usr/home <-- mounten im neuen System
zroot102/usr/local              60.1G  3.80T  16.0G  /mnt//usr/local
zroot102/usr/obj                79.8M  3.80T  79.7M  /mnt//usr/obj
zroot102/usr/ports              8.55G  3.80T  1.52G  /mnt//usr/ports
zroot102/usr/ports/distfiles    4.35G  3.80T  4.35G  /mnt//usr/ports/distfiles
zroot102/usr/ports/packages      272K  3.80T   123K  /mnt//usr/ports/packages
zroot102/usr/src                1.70G  3.80T   801M  /mnt//usr/src
zroot102/usr/vms                 118G  3.80T   117K  /mnt//usr/vms <--  mounten im neuen System
zroot102/usr/vms/win10          15.3G  3.80T   117K  /mnt//usr/vms/win10 <-- mounten im neuen System
zroot102/usr/vms/win10/os_disk  15.3G  3.80T  15.3G  -
zroot102/usr/vms/win2008         103G  3.87T  32.6G  -
zroot102/var                    35.3G  3.80T  27.9G  /mnt//var
zroot102/var/crash              1.33G  3.80T  1.33G  /mnt//var/crash
zroot102/var/db                 5.63G  3.80T  4.47G  /mnt//var/db
zroot102/var/db/pkg              452M  3.80T  96.2M  /mnt//var/db/pkg
zroot102/var/empty               117K  3.80T   117K  /mnt//var/empty
zroot102/var/log                3.43M  3.80T  1023K  /mnt//var/log
zroot102/var/mail                890K  3.80T   272K  /mnt//var/mail
zroot102/var/run                1.82M  3.80T   298K  /mnt//var/run
zroot102/var/tmp                 223M  3.80T   112M  /mnt//var/tmp

Dazu gibt es jetzt einen zweiten Zpool
Zpool12, auf der NVME

Code:
zpool12                          5.78G   219G    88K  /zpool12
zpool12/ROOT                     4.41G   219G    88K  none
zpool12/ROOT/default             4.41G   219G  4.41G  /
zpool12/tmp                       260K   219G   260K  /tmp
zpool12/usr                      1.36G   219G    88K  /usr
zpool12/usr/home                   88K   219G    88K  /usr/home
zpool12/usr/ports                 715M   219G   715M  /usr/ports
zpool12/usr/src                   682M   219G   682M  /usr/src
zpool12/var                       672K   219G    88K  /var
zpool12/var/audit                  88K   219G    88K  /var/audit
zpool12/var/crash                  88K   219G    88K  /var/crash
zpool12/var/log                   208K   219G   208K  /var/log
zpool12/var/mail                  112K   219G   112K  /var/mail
zpool12/var/tmp                    88K   219G    88K  /var/tmp


Nun moechte ich die markierten ZFS Mountpoint aus dem 102 Pool so mounten, dass sie in meinem neuen System 12.0 Release als /usr/home/ yur verfuegung stehen. Dabei moechte ich die anderen Mountpoint des 102 Pools aber nicht aendern byw. sollen diese nicht gemountet werden. Geht das.

Gruss KO
 
Aber
zdb auf der SSDs brav ein ashift: 12 liefert.
Ihr mal exemplarisch ein Auszug der Ausgabe:
Welche Optionen hast du dazu benutzt?
Ich bekomme das grad nicht hin.

Das "//" kommt mir merkwürdig vor, aber die Antwort hast du ja schon erhalten, wie du das nun ändern kannst.
Was ich noch anmerken wollte: ZFS aus 10.2 ist ein wenig älter als ZFS für 12.0 und ich weiß nicht, ob man nicht besser einen Upgrade aller Pools auf die letzte Version durchführen sollte. Also, ich habe das jedenfalls mal so gemacht, denke aber, dass auch unterschiedliche Versionen (mit entsprechenden Einschränkungen) zusammen auf einem System benutzt werden können. Mir persönlich gefällt so etwas halt nicht.
 
Na mit zdb :-)
Was heißt denn "bekomme es nicht hin" ?
Du kannst auch sonst explizit: zdb -C probieren.

siehe dazu auch: man zdb
ich werd verrückt.
Die man habe ich natürlich mehrmals gelesen und alles probiert und nie einen Wert für ashift gefunden. Nun habe ich einfach mal einen grep über die Ausgabe laufen lassen und siehe da: doch vorhanden!
Einfach mal wieder den Wald vor Bäumen... oder so ähnlich.
Danke.
 
Zurück
Oben