Tool.Yun
Χρήσιμα εργαλεία για προγραμματιστές
CSV σε JSON από αρχεία CSV σε JSON
JSON Flattener/Unflattener
JSON Linter
JSON για να αντιταχθεί
JSON για χρήση
JSON ελαχιστοποίηση
JSON σε .env
JSON σε C#
JSON σε CSV
JSON σε MessagePack
JSON σε TOML
JSON σε TS
JSON σε XML
JSON σε δεδομένα
JSON σε οντότητα Java
Json Escaper/Unescaper
Json σε PHP-Array
Json σε Python
Json σε SQL DDL
Json σε Σχήμα
ObjGen σε JSON
PHP-Array σε JSON
tools.json-patch.name
Αναλυτής μεγέθους Json
Διαφορά JSON
Δοκιμαστής Jq/JSONPath
Επεξεργαστής JSON
Ερώτημα Json
Κύριος ταξινόμηση JSON
Κώδικας Json σε PHP
Μετατροπέας JS σε JSON
Μετατροπέας JSON σε JS
Μετατροπέας JSON σε YAML
Μετατροπέας συμβολοσειρών Json
Ομορφοποίηση και μορφοποίηση JSON
Πακέτο μηνυμάτων σε JSON
Συγχώνευση JSON
HTML σε PDF
Έλεγχος υπογραφών PDF
Αποκρυπτογράφηση και ξεκλείδωμα PDF
Γραμμικοποίηση PDF/FastWeb
Εξαγωγέας κειμένου PDF
Εξαγωγέας σελίδων PDF
Κρυπτογράφηση PDF
Συμπιεστής PDF
Συνδετήρας PDF
ObjGen σε HTML
XML Linter
XML σε JSON
Δοκιμαστής XSLT
Ελεγκτής XPath
Μορφοποιητής XML
YAML Flattener/Unflattener
YAML σε TOML
Μετατροπέας YAML σε JSON
Ομορφοποίηση και μορφοποίηση YAML
Συγχώνευση YAML
Εργαλείο δημιουργίας εκφράσεων Cron
CSS/JS Prettify & Minify
Json προς Protobuf
Json σε Typescript
SQL Minifier
Stacktrace πιο όμορφο
Άνοιγμα γεννήτριας μεταδεδομένων γραφημάτων
Αποκρυπτογράφος Javascript
Αποσυμπιεστής/Αποσυσκευαστής Javascript
Γεννήτρια Favicon
Γεννήτρια GitIgnore
Γεννήτρια αλληλογραφίας
Γεννήτρια μυστικών Django
Γεννήτρια παραμέτρων SQL
Γεννήτρια πινάκων βάσης δεδομένων
Γεννήτρια σεναρίων δοκιμής φόρτωσης K6
Γεννήτρια χαρακτηριστικών Gitat
Δημιουργός δημιουργίας βάσεων δεδομένων
Διαφυγέας χορδών
Διαχωριστής αρχείων
Δοκιμές API
Δοκιμαστής Picomatch
Δοκιμαστής UI Swagger
Δοκιμαστής διαφυγής ANSI
Εισαγωγή από Json σε SQL
Επεξεργαστής εντολών Cli
Επισήμανση κώδικα/σεναρίων
Εργαλείο δημιουργίας συμβολοσειρών σύνδεσης βάσης δεδομένων
Μετατροπέας Προσφορών
Μετατροπέας αρχείων HEX
Μετατροπέας μπούκλας
Ομορφοποίηση και μορφοποίηση SQL
Παραποιητής Δεδομένων
Προγραμματιστής Javascript
Χρονοδιακόπτης Pomodoro
Γεννήτρια NanoIDs
Γεννήτρια UUID
Γεννήτρια Ταχυδρομικού Κώδικα
Γεννήτρια αριθμητικών ονομάτων
Γεννήτρια διακριτικών
Γεννήτρια κωδικών OTP
Γεννήτρια κωδικών πρόσβασης
Γεννήτρια κωδικών πρόσβασης BIP39
Γεννήτρια κωδικών πρόσβασης Diceware
Γεννήτρια τυχαίων αριθμών
Μετατροπέας UUID
tools.epc-qrcode-generator.name
Αναγνώστης γραμμωτού κώδικα
Αποκωδικοποιητής κωδικών QR
Γεννήτρια γραμμωτού κώδικα
Γεννήτρια κωδικών QR
Γεννήτρια κωδικών QR WiFi
Γεννήτρια πληροφοριών επικοινωνίας QR
Επικυρωτής GTIN
IPv4-6/IPRange/CIDR σε IPRange/CIDR/IPMask
tools.restic-command-generator.name
tools.url-redirection-checker.name
Έλεγχος DNSBL
Έλεγχος Whois
Ακέραιοι αριθμοί σε IPv4/IPv6
Αναζήτηση διεύθυνσης MAC
Αναλυτής ισχύος κωδικού πρόσβασης
Αποκωδικοποιητής ARPA
Αποκωδικοποιητής X-VR-SpamCause
Απολυμαντικό HAS
Αριθμοί θυρών
Αριθμομηχανή Chmod
Αριθμομηχανή σκληρού δίσκου
Βασική γεννήτρια εξουσιοδότησης
Γεννήτρια Apache LogRotate
Γεννήτρια Crontab
Γεννήτρια DNS BIMI
Γεννήτρια DNS DKIM
Γεννήτρια DNS DMARC
Γεννήτρια DNS PTR
Γεννήτρια FStab
Γεννήτρια HTAccess
Γεννήτρια Htpasswd/htaccess
Γεννήτρια IPv6 ULA
Γεννήτρια Iptables
Γεννήτρια Option43
Γεννήτρια Rsync
Γεννήτρια SPF DNS
Γεννήτρια WPA PSK
Γεννήτρια διευθύνσεων MAC
Γεννήτρια εντολών Curl
Γεννήτρια εντολών UFW
Γεννήτρια εντολών τερματισμού λειτουργίας
Γεννήτρια ρυθμίσεων Wireguard
Γεννήτρια τυχαίων θυρών
Γεωγραφική τοποθεσία IP
Γραμμικοποιητής εντολών κελύφους
Δοκιμή Websocket
Δοκιμαστής θύρας TCP/UDP
Δοκιμαστής μικροφώνου
Εξουσιοδότηση SIP
Επεκτατήρας εύρους IPv4
Ερωτήματα DNS
Ερωτήματα DNS/RDAP του Cloudflare
Η διεύθυνση IP μου
Ισχύς κωδικού πρόσβασης Zxcvbn
Λήψη πολλαπλών συνδέσμων
Λίστα υποδικτύων IPv4
Μετατροπέας Punycode
Μετατροπέας διευθύνσεων IPv4
Μετατροπέας διευθύνσεων IPv6
Μετατροπέας διευθύνσεων MAC
Μορφοποιητής Nginx
Μορφοποιητής εντολών κελύφους
Πινγκ
Υπολογιστής RAID
Υπολογιστής ZPOOL RAID
Υπολογιστής αξιοπιστίας RAID
Υπολογιστής εξαίρεσης υποδικτύων IP
Υπολογιστής εύρους IPv4/6 CIDR σε IP
Υπολογιστής εύρους IPv4/6 έως CIDR(s)
Υπολογιστής οπτικού υποδικτύου
Υπολογιστής ρυθμού μεταφοράς δεδομένων
Υπολογιστής υποδικτύου IPv4
Υπολογιστής υποδικτύου IPv6
Φύλλο οδηγιών χρήσης ZPool
γεννήτρια γραμμής εντολών firewalld
Έλεγχος πιστωτικών καρτών
Αναζήτηση ISO 639
Αναζήτηση Unicode
Αναζήτηση κωδικών χωρών ISO 3166
Αναλυτής και μορφοποιητής τηλεφώνου
Εξηγήστε την εντολή Shell
Επικυρωτής Luhn
Επικυρωτής Αριθμών ΦΠΑ
Επικυρωτής και αναλυτής IBAN
Επικυρωτής και αναλυτής ISBN
Ηλεκτρονικό Λεξικό
Μετατροπέας Κεφαλαίων RMB
Μετατροπέας ημερολογίου
Μετατροπέας νομισμάτων
Οδηγίες φωτισμού IES
Συμβατότητα με άδειες χρήσης λογισμικού
Υπολογιστής SLA
Υπολογιστής ΔΜΣ
Υπολογιστής Ρυθμού Τρεξίματος
Αναζήτηση ιδιοτήτων ActiveDirectory LDAP
Αναλυτής Cookies
Αναλυτής MSG του Outlook
Αναλυτής URL
Αναλυτής αναπήδησης email
Αναλυτής αναφορών DMARC
Αναλυτής ηλεκτρονικού ταχυδρομείου
Ανιχνευτής τύπου αρχείου
Ανιχνευτής/Αποκωδικοποιητής συνόλου χαρακτήρων κειμένου
Αποκρυπτογράφος ευαίσθητων δεδομένων
Αποκωδικοποιητής EMV TLV
Αποκωδικοποιητής Safelink του Outlook
Αποκωδικοποιητής URL κοινής χρήσης SharePoint
Αποκωδικοποιητής συναλλαγών ETH
Αρχεία παρκέ Reader
Γεννήτρια TCPDump
Δεκαεξαδικός κωδικοποιητής/αποκωδικοποιητής
Δημιουργός URL
Δημιουργός εντολών Nmap
Δοκιμαστής DNS
Δοκιμαστής HTTPS
Δοκιμαστής διάδοσης DNS
Δοκιμαστής νεκρών εικονοστοιχείων
Εξολκέας ταυτότητας Snowflake
Επεκτατήρας σύντομων URL
Κονσόλα σειριακής θύρας
Μετατροπέας GZip/Deflate
Μετατροπέας Middle-End
Μετατροπέας ObjectId MongoDB
Μετατροπέας SMART Raw
Μετατροπέας αριθμών κινητής υποδιαστολής
Μετατροπέας κωδικοποίησης MIME
Πληροφορίες κωδικού πρόσβασης
Υπολογιστής αντίστασης
Φυλλάδιο με οδηγίες για την καλωδίωση RJ45 Cat6
键盘测试器
GIF σε MP4
OCR εικόνας και PDF
Αλλαγή μεγέθους εικόνας
Αναγνώστης εικόνας EXIF/Μεταδεδομένα/GPS/JPEG ποιότητας
Αφαίρεση EXIF
Αφαίρεση φόντου εικόνας
Εικόνα σε SVG (προβολή εικόνας)
Κάμερα εγγραφής
Μετατροπέας HEIC
Μετατροπέας ICO/PNG
Μετατροπέας μορφών εικόνας
Μετατροπέας χρώματος εικόνας
Περικοπή εικόνας
Προεπισκόπηση SVG
Σύγκριση εικόνων
Υδατόσημο
Αναλυτής αρχείων ICAL
Αντίστροφη μέτρηση
Γεννήτρια ICAL
Μετατροπέας αριθμών εβδομάδων
Μετατροπέας ζώνης ώρας
Μετατροπέας ημερομηνίας-ώρας
Ξυπνητήρι ώρας
Ποια μέρα;
Συγχώνευση iCal
Συναγερμός Cron/Εβδομαδιαίας Ημέρας
Υπολογιστής ETA
Υπολογιστής TTL
Υπολογιστής Διάρκειας
Υπολογιστής Ημερομηνίας+Διάρκειας
Υπολογιστής ημερών
Χρονόμετρο
HTML Prettifier
HTML ελαχιστοποιητής
HTML σε XHTML
HTML σε δεδομένα
Έλεγχος αντίθεσης χρωμάτων
Αναλυτής παράγοντα χρήστη
Βελτιωτής CSS
Γεννήτρια URL UTM
Γεννήτρια placeholder SVG
Γεννήτρια διαβάθμισης CSS
Δημιουργός τμημάτων αναζήτησης κειμένου URL
Εικόνα σε CSS
Επεξεργαστής HTML WYSIWYG
Καθαριστικό HTML
Καθαριστικό URL
Καταγραφή URL
Κωδικοί κατάστασης HTTP
Κωδικοποίηση/αποκωδικοποίηση συμβολοσειρών με μορφοποίηση URL
Μετατροπέας CSS XPath
Μετατροπέας εικονοστοιχείων REM
Μετατροπέας μονάδων CSS
Μετατροπέας χρωμάτων
Οντότητες HTML διαφυγής
Πληροφορίες συσκευής
Συμβολοσειρά Slugify
Τροχός Χρωμάτων
Τύποι MIME
I και L Checker
JSON σε TOON
TOON σε JSON
Tab σε κενά διαστήματα
Unicode σε GSM-7
Έξυπνη αντικατάσταση κειμένου και αλλαγή γραμμής
Αναγνώστης RSVP
Αποκρυπτογράφος συμβολοσειρών
Γεια σου, γεννήτρια.
Γεννήτρια εντολών Sed
Γεννήτρια κειμένου τέχνης ASCII
Γεννήτρια παραπομπών
Γεννήτρια/Banner Zalgo
Διάγραμμα δομής φακέλου
Διαφορά κειμένου
Διαχωριστής προτροπών AI
Δοκιμαστής Regex
Εικόνα σε ASCII Art
Εκτιμητής διακριτικών GPT
Εξαγωγέας γοργόνας
Εξαγωγή κειμένου από HTML
Επιλογέας emoji
Επιλογέας Τυχαίων Γραμμών
Εύρεση διπλότυπων γραμμών
Κείμενο στο αλφάβητο του ΝΑΤΟ
Κοινή χρήση συνδέσμων κοινωνικής δικτύωσης
Κωδικοποιητής/Αποκωδικοποιητής διακριτικών GPT
Μετατροπέας διάταξης πληκτρολογίου
Μετατροπέας κώδικα Μορς
Μετατροπέας λίστας
Μετατροπέας πεζών-κεφαλαίων
Μετατροπέας ρούνων
Μεταφραστής κειμένου
Μορφοποιητής Unicode
Ξεχωριστές λέξεις
Ονόματα κειμένου σε Unicode
Στατιστικά κειμένου
Συσκευασία αρχείων για AI
Σύγκριση γραμματοσειρών
Σύγκριση λιστών
Υπολογιστής Levenshtein
Argon2 Hasher
Bcrypt
Niceware Bytes σε Passphrase
PGP keygen
Paseto/PASERK Δημόσιο/Ιδιωτικό
Paseto/PASERK Τοπικό
Αναλυτής JWT
Αναλυτής SAML
Αναλυτής πιστοποιητικών/κλειδιών
Αποκρυπτογράφηση κρυπτογράφησης θησαυροφυλάκιου Ansible
Αρχείο Hasher
Γεννήτρια Hmac
Γεννήτρια JWT
Γεννήτρια ΕΚΕ
Γεννήτρια ζεύγους κλειδιών ECDSA
Γεννήτρια ζεύγους κλειδιών Ed25519
Γεννήτρια ζεύγους κλειδιών RSA
Γεννήτρια πιστοποιητικών X509
Κείμενο κατακερματισμού
Κρυπτογράφηση / αποκρυπτογράφηση κειμένου
Κρυπτογράφηση PGP
Κρυπτογράφηση RSA
Κρυπτογράφηση αρχείων PGP
Κρυπτογράφηση συμβολοσειρών Jasypt
Κρυπτογραφία AGE
Κωδικοποιητής/Αποκωδικοποιητής Bech32
Μετατροπέας πιστοποιητικών SSL
Μυστική Κοινοποίηση του Shamir
Υπογράφων και Επαληθευτών RSA/DSA/ECDSA
Υπολογιστής CRC
Docker Compose σε Quadlets
Docker επιθεώρηση για εκτέλεση Docker
Γεννήτρια RBAC Kubernetes
Γεννήτρια ετικετών Dockerfile
Δημιουργός σύνθεσης Traefik Docker
Εκτέλεση Docker σε Quadlets
Επικυρωτής Docker Compose
Ετικέτες Docker Pangolin
Λήψη εικόνων Docker
Μετατροπέας Docker Compose σε Docker run
Μετατροπέας Docker που εκτελείται σε Docker compose
Μετατροπέας μορφής Docker Compose
Σύνθεση Docker σε kubernetes
Σύνταξη Docker σε αρχείο .env
Το Docker εκτελείται στο kubernetes
Δημιουργός σημείων αναφοράς
Υπολογιστής αναλογίας διαστάσεων
Υπολογιστής γεωγραφικής απόστασης
Υπολογιστής ποσοστού
Αξιολογητής μαθηματικών
Δυαδική Αριθμομηχανή
Μαθηματικά OCR
Μετατροπέας Μαθηματικών Μορφών
Οπτικοποιητής Τριγωνομετρικών/Εξισώσεων Καμπυλών
Υπολογιστής φιλοδωρήματος
CSV σε δεδομένα
Excel σε δεδομένα
Torrent σε Magnet
Γεννήτρια ULID
Κανονικοποιητής ηλεκτρονικού ταχυδρομείου
Κείμενο σε Unicode
Κείμενο σε δυαδικό UTF-8
Κωδικοποιητής/αποκωδικοποιητής δεκαεξαδικού πίνακα Base64
Κωδικοποιητής/αποκωδικοποιητής συμβολοσειρών Base64
Μετατροπέας dBm mW
Μετατροπέας Γεωγραφικών Συντεταγμένων
Μετατροπέας αρχείων Base64
Μετατροπέας βάσης ακεραίων αριθμών
Μετατροπέας ιδιοτήτων
Μετατροπέας μονάδων αποθήκευσης δεδομένων
Μετατροπέας μορφής μεταβλητών περιβάλλοντος
Μετατροπέας πολλών μονάδων
Μετατροπέας ρωμαϊκών αριθμών
Μετατροπέας χαρακτήρων Unicode σε οντότητες Java
Υπολογιστής Κατανάλωσης και Εξόδων Ενέργειας
Υπολογιστής Απόσβεσης
Αναποδογυριστής κερμάτων
Επιλογέας καρτών
Ρόλερ ζαριών
Τροχός της τύχης
TOML Linter
TOML σε JSON
TOML σε YAML
Μετατροπέας Ενέργειας Τροφίμων
Μετατροπέας Μονάδων Δύναμης
Μετατροπέας Μονάδων Εμβαδού
Μετατροπέας Μονάδων Ενέργειας
Μετατροπέας Μονάδων Μάζας
Μετατροπέας Φωτισμού
Μετατροπέας επιτάχυνσης
Μετατροπέας θερμοκρασίας
Μετατροπέας ισχύος
Μετατροπέας μονάδων γωνίας
Μετατροπέας μονάδων μήκους
Μετατροπέας μονάδων πίεσης
Μετατροπέας μονάδων όγκου
Μετατροπέας προθεμάτων SI
Μετατροπέας ρυθμού ροής όγκου
Μετατροπέας συχνότητας
Μετατροπέας ταχύτητας
Υπολογιστής γυμναστικής
Docker Cheatsheet
Git cheatsheet
Jq Cheatsheet
Κοινό Regex Cheatsheet
Νανο Φύλλο Εξαρτήσεων
Φυλλάδιο με συμβουλές για το K8s
Φύλλο ελέγχου Docker Compose
Φύλλο ελέγχου Docker SWARM
Φύλλο ελέγχου Dockerfile
Φύλλο ελέγχου Regex
Φύλλο ελέγχου Sed
Φύλλο ελέγχου επιλογέων CSS
Φύλλο με τσιπς Bash
Φύλλο οδηγιών για την εντολή chmod
Φύλλο οδηγιών για τις εντολές Tmux
Φύλλο οδηγιών εντολών οθόνης
Φύλλο οδηγιών σύνταξης JSONPath
Φύλλο οδηγιών σύνταξης XPath
Φύλλο οδηγιών χρήσης Nginx
Φύλλο οδηγιών χρήσης Powershell
Φύλλο οδηγιών χρήσης VIM
Φύλλο οδηγιών χρήσης σημασιολογικής υποβολής Git
Φύλλο οδηγιών χρήσης της εντολής Zellij
Φύλλο πληροφοριών Markdown
HTML σε markdown
Markdown Lorem Ipsum
tools.markdown-format-converter.name
Από Epub σε Markdown
Βελτιωτής πίνακα Markdown
Γεννήτρια toc markdown
Γεννήτρια πίνακα Markdown
Διαφορά Markdown
Επεξεργαστής Markdown
Επικόλληση ως Markdown
Μείωση σε DOCX
Μείωση σε HTML
Μείωση σε κείμενο
Μείωση στα δεδομένα
Προεπισκόπηση Markdown

Φύλλο οδηγιών χρήσης ZPool

Εντολές και πληροφορίες χρήσης OpenZFS/ZPool

OpenZFS combines the volume manager and the filesystem. A pool (zpool) is built from vdevs, and vdevs are built from disks; datasets (zfs) are the filesystems and volumes that live inside a pool.

⚠️ Redundancy lives at the vdev level, not the pool level. Lose one vdev and you lose the whole pool, however healthy the others are.

📦 Pool Basics

# create a pool from a single disk (no redundancy)
zpool create mypool /dev/disk/by-id/<disk>

# a two-disk mirror, 4K-aligned
zpool create -o ashift=12 mypool mirror /dev/disk/by-id/<disk1> /dev/disk/by-id/<disk2>

# raidz2 across six disks
zpool create -o ashift=12 tank raidz2 <disk1> <disk2> <disk3> <disk4> <disk5> <disk6>

# mount the pool somewhere other than /<poolname>
zpool create -m /srv/data mypool <disk>

# add another vdev (this widens the pool, it does not add redundancy)
zpool add mypool mirror <disk3> <disk4>

# add a hot spare, a read cache (L2ARC) and a separate intent log
zpool add mypool spare <disk>
zpool add mypool cache <ssd>
zpool add mypool log mirror <ssd1> <ssd2>

# destroy a pool — irreversible
zpool destroy mypool

🔍 Inspecting

# pools, their size and health
zpool list

# per-vdev breakdown
zpool list -v

# layout, errors and any running scrub or resilver
zpool status mypool

# only the pools that need attention
zpool status -x

# live throughput, refreshed every 5 seconds
zpool iostat -v 5

# every property of the pool
zpool get all mypool

# what has been done to this pool, ever
zpool history mypool

🛠 Vdev Types

Vdev typeDescriptionRAID equivalentMin. disksSurvives
stripeData spread across disks, no parityRAID 01nothing
mirrorA full copy on every diskRAID 12all but one disk
raidz1Single parityRAID 531 disk
raidz2Double parityRAID 642 disks
raidz3Triple parity— (no common level)53 disks
dRAIDDistributed parity with spare space—6+as configured, rebuilds faster

Support vdevs: cache (L2ARC read cache), log (SLOG, for synchronous writes), special (metadata and small blocks), spare (hot spare).

🩺 Health & Maintenance

# verify every block against its checksum
zpool scrub mypool

# stop or pause a running scrub
zpool scrub -s mypool
zpool scrub -p mypool

# forget errors that have been dealt with
zpool clear mypool

# swap a failing disk for a new one
zpool replace mypool <old-disk> <new-disk>

# turn a single disk into a mirror, or break one up
zpool attach mypool <existing-disk> <new-disk>
zpool detach mypool <disk>

# take a disk out of service and bring it back
zpool offline mypool <disk>
zpool online mypool <disk>

# tell the SSDs which blocks are free
zpool trim mypool

# enable the on-disk features of a newer OpenZFS release
zpool upgrade mypool

💡 Scrub monthly on consumer disks, weekly if the data matters. zpool status reports what the last scrub found.

📤 Import & Export

# release a pool so it can be moved to another machine
zpool export mypool

# list the pools that could be imported
zpool import

# import by name, preferring the stable device names
zpool import -d /dev/disk/by-id mypool

# import every pool it can find
zpool import -a

# import a pool that was not exported cleanly
zpool import -f mypool

# import under a different name, or under an alternate root
zpool import mypool newname
zpool import -R /mnt mypool

⚙️ Pool Properties

# trim automatically as blocks are freed
zpool set autotrim=on mypool

# grow the pool when the underlying disks grow
zpool set autoexpand=on mypool

# replace a failed disk with a spare automatically
zpool set autoreplace=on mypool

# what to do when the pool faults: wait | continue | panic
zpool set failmode=continue mypool

# read one property
zpool get health,capacity,fragmentation mypool

📁 Datasets & Filesystems

# create a dataset
zfs create mypool/data

# create a nested dataset, making the parents as needed
zfs create -p mypool/data/projects/web

# create a block device (zvol) for a VM or iSCSI target
zfs create -V 50G mypool/vm-disk

# list datasets, snapshots and volumes
zfs list
zfs list -t all -r mypool

# common properties
zfs set compression=lz4 mypool/data
zfs set quota=100G mypool/data
zfs set reservation=10G mypool/data
zfs set atime=off mypool/data
zfs set recordsize=1M mypool/media

# read properties, including where they were inherited from
zfs get -r compression mypool
zfs get all mypool/data

# mount, unmount, and destroy
zfs mount mypool/data
zfs unmount mypool/data
zfs destroy -r mypool/data

📸 Snapshots & Replication

# take a snapshot (instant, and free until the data diverges)
zfs snapshot mypool/data@2026-08-22

# snapshot a dataset and everything under it
zfs snapshot -r mypool/data@nightly

# list snapshots and what they cost
zfs list -t snapshot -o name,used,refer

# go back in time — discards everything written since
zfs rollback mypool/data@2026-08-22

# read a single file out of a snapshot instead
ls /mypool/data/.zfs/snapshot/2026-08-22/

# a writable copy of a snapshot
zfs clone mypool/data@2026-08-22 mypool/data-copy

# send a full snapshot to another machine
zfs send mypool/data@snap1 | ssh user@host zfs receive backup/data

# send only what changed since the previous snapshot
zfs send -i mypool/data@snap1 mypool/data@snap2 | ssh user@host zfs receive backup/data

# delete a snapshot
zfs destroy mypool/data@snap1

🧠 Tips & Best Practices

  • Address disks by /dev/disk/by-id/..., never /dev/sdX — kernel names move between boots.
  • Set ashift=12 at creation time for any modern drive; it cannot be changed afterwards.
  • Give ZFS whole disks, not partitions, so it can manage the write cache itself.
  • Keep pools below ~80% full — performance falls off a cliff above that, and fragmentation is permanent.
  • Use ECC RAM where you can: ZFS trusts what is in memory.
  • Do not mix vdev types or widths in one pool; the pool is only as good as its weakest vdev.
  • A snapshot is not a backup — replicate it somewhere else with zfs send.

📚 Resources

  • OpenZFS documentation
  • zpool manual page
  • zfs manual page
  • Workload tuning guide