ubuntuusers.de

zfs compression zstd

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

ChristianKnorr

Anmeldungsdatum:
15. Januar 2008

Beiträge: 100

Hallo zusammen, meine ersten Gehversuche an zfs scheitern an der ZStandard Kompression.

zfs set compression=zstd testpool
cannot set property for 'testpool': 'compression' must be one of 'on | off | lzjb | gzip | gzip-[1-9] | zle | lz4'

Wie komme ich an ZStandard ran?

dpkg --get-selections |grep zfs
libzfs2linux                                    install
zfs-doc                                         install
zfs-zed                                         install
zfsutils-linux                                  install

Ich habe bewusst kein ppa hinzugefügt, habe ich auch nur bis 15.10 gefunden. Oder würde das die gewünschte Kompression liefern?

Danke schonmal im Voraus, Christian...

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 4753

Du möchtest lz4 als deine Lieblinkgskompressionsmethode auswählen. Schau hier: http://wiki.illumos.org/display/illumos/LZ4+Compression.

Und hier gibt es was zu lesen über ZFS unter Ubuntu: https://wiki.ubuntu.com/Kernel/Reference/ZFS. Der entsprechende Befehl um die lz4 compression einzuschalten lautet also:

sudo zfs set compression=lz4 testpool

Dann kann man bei längerer Benutzung des Pools beobachten wie das Kompressionsverhältnis ansteigt. Zunächst sind ja noch keine komprimierten Daten drauf.

sudo zfs get compressratio

Die Kompression lässt sich auch später einschalten, aber sinnvoll ist es durchaus das direkt nach der Erstellung des ZFS Pools zu machen. Bereits zuvor ohne Kompression geschriebene Daten werden durch das einschalten nicht komprimiert, sondern erst nach einschalten der Kompression neu geschriebene Daten werden komprimiert. Damit lz4 als Kompressionsmethode genutzt werden kann müssen die Feature Sets aktiv sein. Siehe auch: http://manpages.ubuntu.com/manpages/xenial/en/man8/zfs.8.html und http://manpages.ubuntu.com/manpages/xenial/en/man5/zpool-features.5.html.

zpool get all | grep feature

Oder, hier mal etwas mit Beispielausgabe:

zpool upgrade -vvv

This system supports ZFS pool feature flags.

The following features are supported:

FEAT DESCRIPTION
-------------------------------------------------------------
async_destroy                         (read-only compatible)
     Destroy filesystems asynchronously.
empty_bpobj                           (read-only compatible)
     Snapshots use less space.
lz4_compress                         
     LZ4 compression algorithm support.
multi_vdev_crash_dump                
     Crash dumps to multiple vdev pools.
spacemap_histogram                    (read-only compatible)
     Spacemaps maintain space histograms.
enabled_txg                           (read-only compatible)
     Record txg at which a feature is enabled
hole_birth                           
     Retain hole birth txg for more precise zfs send
extensible_dataset                   
     Enhanced dataset functionality, used by other features.
embedded_data                        
     Blocks which compress very well use even less space.
bookmarks                             (read-only compatible)
     "zfs bookmark" command
filesystem_limits                     (read-only compatible)
     Filesystem and snapshot limits.
large_blocks                         
     Support for blocks larger than 128KB.

The following legacy versions are also supported:

VER  DESCRIPTION
---  --------------------------------------------------------
 1   Initial ZFS version
 2   Ditto blocks (replicated metadata)
 3   Hot spares and double parity RAID-Z
 4   zpool history
 5   Compression using the gzip algorithm
 6   bootfs pool property
 7   Separate intent log devices
 8   Delegated administration
 9   refquota and refreservation properties
 10  Cache devices
 11  Improved scrub performance
 12  Snapshot properties
 13  snapused property
 14  passthrough-x aclinherit
 15  user/group space accounting
 16  stmf property support
 17  Triple-parity RAID-Z
 18  Snapshot user holds
 19  Log device removal
 20  Compression using zle (zero-length encoding)
 21  Deduplication
 22  Received properties
 23  Slim ZIL
 24  System attributes
 25  Improved scrub stats
 26  Improved snapshot deletion performance
 27  Improved snapshot creation performance
 28  Multiple vdev replacements

For more information on a particular version, including supported releases,
see the ZFS Administration Guide.

ChristianKnorr

(Themenstarter)

Anmeldungsdatum:
15. Januar 2008

Beiträge: 100

trollsportverein schrieb:

Du möchtest lz4 als deine Lieblinkgskompressionsmethode auswählen. Schau hier: http://wiki.illumos.org/display/illumos/LZ4+Compression.

Aber der Link ist von 2013, ist zstd nicht viel jünger? lz4 habe ich bis dato auch ausgewählt ☺

trollsportverein schrieb:

Und hier gibt es was zu lesen über ZFS unter Ubuntu: https://wiki.ubuntu.com/Kernel/Reference/ZFS. Der entsprechende Befehl um die lz4 compression einzuschalten lautet also: [...]

Danke für die restlichen Infos! 👍 ☺

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 4753

ChristianKnorr schrieb:

Aber der Link ist von 2013, ist zstd nicht viel jünger?

Nicht nur das, es ist wohl auch gar nicht bei den verfügbaren Kompressionsmethoden deiner Xenial Xerus Installation dabei. Aber ist das so schlimm? Gerade bei Filesystemen muss man ja nicht unbedingt "Erster" schreien. Das ZFS mit lz4 hat sich schon bei vielen über Jahre hinweg bewährt und erheblich schneller ist es auch: http://facebook.github.io/zstd/#benchmarks. Da in der ersten Tabelle sehe ich den Vorteil von zstd bei der etwas höheren Kompression, aber dafür ist lz4 rund 2 bis 3 Mal so schnell. Was man ja auch nicht vergessen sollte, nicht alle Daten lassen sich noch weiter komprimieren. Etwa Multimediadateien sind ja heutzutage möglichst optimal komprimiert, da kommt es ja oft schon zu absurden Situation, das irgendjemand etwa eine Videodatei in ein Archiv hineinpackt und dieses Archiv dann eine höhere Dateigröße als die Videodatei zuvor erreicht. Wenn also Komprimierung nicht mehr viel weiter helfen kann, dann sollte sie doch besser nicht unnötig bremsen.

ChristianKnorr

(Themenstarter)

Anmeldungsdatum:
15. Januar 2008

Beiträge: 100

Nein, erster muss ich nicht sein, bin ich bestimmt auch nicht 😀

Habe wie erwähnt lz4 gewählt und lasse es auch so, solange zstd nicht in den Paketquellen ist.

Die Video und Audio Storages sind auch nicht komprimiert:

zfs get compression bigdata/audio bigdata/dvd bigdata/enigma2 bigdata/home bigdata/owncloud bigdata/pictures bigdata/system bigdata/video bigdata/web
NAME              PROPERTY     VALUE     SOURCE
bigdata/audio     compression  off       local
bigdata/dvd       compression  off       local
bigdata/enigma2   compression  off       local
bigdata/home      compression  lz4       inherited from bigdata
bigdata/owncloud  compression  lz4       inherited from bigdata
bigdata/pictures  compression  lz4       inherited from bigdata
bigdata/system    compression  lz4       inherited from bigdata
bigdata/video     compression  off       local
bigdata/web       compression  lz4       inherited from bigdata
Antworten |