{"id":14237,"date":"2025-12-26T09:58:48","date_gmt":"2025-12-26T04:28:48","guid":{"rendered":"https:\/\/www.youstable.com\/blog\/?p=14237"},"modified":"2025-12-26T09:58:50","modified_gmt":"2025-12-26T04:28:50","slug":"create-zfs-on-linux-server","status":"publish","type":"post","link":"https:\/\/www.youstable.com\/blog\/create-zfs-on-linux-server","title":{"rendered":"How to Create ZFS on Linux Server Using OpenZFS"},"content":{"rendered":"\n<p><strong>To create ZFS on a Linux server<\/strong>, install OpenZFS packages, identify disks, then build a storage pool with \u201czpool create.\u201d Add datasets, enable compression and snapshots, configure mount points and permissions, and schedule scrubs and backups.<\/p>\n\n\n\n<p>Use mirrors or RAIDZ for redundancy and monitor health with \u201czpool status\u201d for a resilient, high-performance filesystem.<\/p>\n\n\n\n<p>In this guide, you\u2019ll learn exactly how to create ZFS on Linux server environments using OpenZFS. We\u2019ll walk through installation on popular distros, designing pools (mirror, RAIDZ1\/2\/3), creating datasets, enabling encryption, snapshots, send\/receive backups, performance tuning, and ongoing maintenance. The steps are beginner-friendly and grounded in real-world server operations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"what-is-zfs-and-why-use-it-on-linux\">What is ZFS and Why Use it on Linux?<\/h2>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\"><div class=\"wp-block-media-text__content\">\n<p>ZFS (OpenZFS on Linux) is a 128-bit, copy-on-write filesystem and volume manager. It combines RAID, checksumming, snapshots, compression, and replication in one stack, making it ideal for virtualization, databases, containers, backups, and NAS workloads. Its design prevents silent data corruption and simplifies storage administration.<\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1168\" height=\"784\" src=\"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/What-Is-ZFS-and-Why-Use-It-on-Linux-2.png\" alt=\"What Is ZFS and Why Use It on Linux\" class=\"wp-image-14598 size-full\" srcset=\"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/What-Is-ZFS-and-Why-Use-It-on-Linux-2.png 1168w, https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/What-Is-ZFS-and-Why-Use-It-on-Linux-2-150x101.png 150w\" sizes=\"auto, (max-width: 1168px) 100vw, 1168px\" \/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>End-to-end checksums:<\/strong> Detects and corrects bit rot.<\/li>\n\n\n\n<li><strong>Copy-on-write:<\/strong> Safe writes and space-efficient clones.<\/li>\n\n\n\n<li><strong>Self-healing mirrors\/RAIDZ: <\/strong>Automatic repair on read.<\/li>\n\n\n\n<li><strong>Instant snapshots and replication:<\/strong> Easy backups and DR.<\/li>\n\n\n\n<li><strong>Inline compression (lz4):<\/strong> Better throughput and capacity.<\/li>\n\n\n\n<li><strong>Scalable management: <\/strong>Pools, datasets, quotas, encryption.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"prerequisites-and-planning\"><strong>Prerequisites and Planning<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"hardware-and-disk-layout\"><strong>Hardware and Disk Layout<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use identical disks for each vdev (e.g., same size\/firmware).<\/li>\n\n\n\n<li>Prefer whole disks via \/dev\/disk\/by-id\/ to keep metadata stable.<\/li>\n\n\n\n<li>For SSD\/NVMe, set ashift=12 (4K sectors) for performance and longevity.<\/li>\n\n\n\n<li>Avoid hardware RAID; use HBA or IT-mode controllers so ZFS sees individual drives.<\/li>\n\n\n\n<li><strong>Recommended RAM: <\/strong>8 GB minimum for meaningful workloads; more is better (ARC cache).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"safety-and-data-protection\">Safety and Data Protection<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Backup first:<\/strong> Creating pools wipes listed disks.<\/li>\n\n\n\n<li>Use UPS on critical servers to protect against power loss.<\/li>\n\n\n\n<li><strong>Plan redundancy:<\/strong> Mirror for small\/fast pools, RAIDZ2 for larger pools.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"install-zfs-on-popular-linux-distros\"><strong>Install ZFS on Popular Linux Distros<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"ubuntu-debian\"><strong>Ubuntu \/ Debian<\/strong><\/h3>\n\n\n\n<p>Ubuntu ships ZFS packages in the main repository. Debian also supports OpenZFS (enable contrib if needed).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\n# Ubuntu:\nsudo apt install -y zfsutils-linux\n\n# Debian (if dkms modules are needed):\nsudo apt install -y dkms linux-headers-$(uname -r) zfs-dkms zfsutils-linux\n\n# Load kernel module\nsudo modprobe zfs<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"rhel-rocky-linux-almalinux\"><strong>RHEL \/ Rocky Linux \/ AlmaLinux<\/strong><\/h3>\n\n\n\n<p>Enable the official OpenZFS repository for your release, then install ZFS. On enterprise systems, ensure kernel headers match and secure boot settings allow out-of-tree modules where applicable.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Add OpenZFS repo for your exact version (see OpenZFS docs)\n# Example flow:\nsudo dnf install -y epel-release\n# Install the zfs release package for your OS version, then:\nsudo dnf install -y kernel-devel make\nsudo dnf install -y zfs\nsudo modprobe zfs<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"fedora\"><strong>Fedora<\/strong><\/h3>\n\n\n\n<p>Fedora requires enabling the OpenZFS repository matching the Fedora version, then installing packages.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Add the OpenZFS repo for your Fedora release, then:\nsudo dnf install -y zfs\nsudo modprobe zfs<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"create-your-first-zfs-pool\"><strong>Create Your First ZFS Pool<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"identify-disks-safely\"><strong>Identify Disks Safely<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>lsblk -o NAME,SIZE,MODEL,SERIAL\nsudo ls -l \/dev\/disk\/by-id\/\n# Optional: wipe existing labels to avoid conflicts\nsudo wipefs -a \/dev\/sdb \/dev\/sdc<\/code><\/pre>\n\n\n\n<p>Use \/dev\/disk\/by-id paths to avoid device name changes after reboots.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"create-a-pool-stripe-mirror-or-raidz\"><strong>Create a Pool (Stripe, Mirror, or RAIDZ)<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Stripe (no redundancy):<\/strong> Maximum performance, zero fault tolerance.<\/li>\n\n\n\n<li><strong>Mirror: <\/strong>Redundancy with 50% usable capacity; fast reads, simple recovery.<\/li>\n\n\n\n<li><strong>RAIDZ1\/2\/3: <\/strong>Parity-based; use RAIDZ2 for 6\u201312 disk vdevs (balanced protection).<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Example 1: 2-disk mirror pool\nsudo zpool create -o ashift=12 \\\n  -O atime=off -O compression=lz4 -O xattr=sa -O acltype=posixacl \\\n  tank mirror \\\n  \/dev\/disk\/by-id\/ata-DISK_A \/dev\/disk\/by-id\/ata-DISK_B\n\n# Example 2: 6-disk RAIDZ2\nsudo zpool create -o ashift=12 \\\n  -O atime=off -O compression=lz4 \\\n  tank raidz2 \\\n  \/dev\/disk\/by-id\/ata-DISK_1 \/dev\/disk\/by-id\/ata-DISK_2 \/dev\/disk\/by-id\/ata-DISK_3 \\\n  \/dev\/disk\/by-id\/ata-DISK_4 \/dev\/disk\/by-id\/ata-DISK_5 \/dev\/disk\/by-id\/ata-DISK_6\n\n# Verify\nzpool status\nzpool list\nzfs list<\/code><\/pre>\n\n\n\n<p>By default, the pool mountpoint is \/tank. You can change this per dataset for clean separation of workloads.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"create-datasets-set-mountpoints-and-enable-features\"><strong>Create Datasets, Set Mountpoints, and Enable Features<\/strong><\/h2>\n\n\n\n<p>Datasets are lightweight filesystems inside your pool. Use them to isolate applications, enable the right recordsize, and apply quotas\/reservations independently.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># General-purpose dataset at \/srv\nsudo zfs create -o mountpoint=\/srv tank\/data\n\n# App-specific datasets\nsudo zfs create -o mountpoint=\/var\/lib\/postgresql tank\/pg\nsudo zfs create -o mountpoint=\/var\/lib\/libvirt\/images tank\/vms\n\n# Recommended defaults\nsudo zfs set compression=lz4 tank\nsudo zfs set atime=off tank\n\n# Tune recordsize by workload:\n# DBs with 8\u201316K pages:\nsudo zfs set recordsize=16K tank\/pg\n# VM\/large files:\nsudo zfs set recordsize=128K tank\/vms\n\n# Optional per-dataset quotas\nsudo zfs set quota=1T tank\/vms<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"add-native-encryption-optional\"><strong>Add Native Encryption (Optional)<\/strong><\/h2>\n\n\n\n<p>ZFS supports built in encryption at the dataset level. You can passphrase-protect sensitive data without whole-disk encryption complexity.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Create an encrypted dataset (prompt for passphrase)\nsudo zfs create -o encryption=aes-256-gcm -o keyformat=passphrase tank\/secure\n\n# To load keys after reboot (interactive)\nsudo zfs load-key tank\/secure\nsudo zfs mount tank\/secure<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"snapshots-clones-and-backups-send-receive\"><strong>Snapshots, Clones, and Backups (Send\/Receive)<\/strong><\/h2>\n\n\n\n<p>Snapshots are instantaneous and space-efficient. Use them for versioning, fast rollbacks, and replication to a backup server.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Create snapshots (recursive -r includes children)\nsudo zfs snapshot -r tank@daily-2025-12-16\nsudo zfs list -t snapshot\n\n# Roll back a dataset\nsudo zfs rollback tank\/data@daily-2025-12-16\n\n# Replicate to another host (full then incremental)\nsudo zfs send -R tank@daily-2025-12-16 | ssh backuphost sudo zfs receive -F backup\/tank\nsudo zfs send -R -i tank@daily-2025-12-16 tank@daily-2025-12-17 | ssh backuphost sudo zfs receive -F backup\/tank<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"performance-and-tuning-essentials\"><strong>Performance and Tuning Essentials<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Compression:<\/strong> lz4 is fast and often increases throughput.<\/li>\n\n\n\n<li><strong>ashift=12: <\/strong>Best for modern 4K sector disks and SSDs.<\/li>\n\n\n\n<li><strong>Recordsize: <\/strong>Align with workload (DB pages vs large files).<\/li>\n\n\n\n<li><strong>ARC size: <\/strong>Limit on memory-constrained systems.<\/li>\n\n\n\n<li><strong>Dedup:<\/strong> Avoid unless you\u2019ve sized RAM and validated gains; it\u2019s memory-heavy.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Limit ARC (example: 8 GiB). Set and reboot.\necho \"options zfs zfs_arc_max=8589934592\" | sudo tee \/etc\/modprobe.d\/zfs.conf\n\n# Add a dedicated SLOG (separate ZIL) for sync-write heavy workloads\nsudo zpool add tank log \/dev\/disk\/by-id\/nvme-FAST_SLOG\n\n# Add L2ARC (read cache) on fast NVMe if needed\nsudo zpool add tank cache \/dev\/disk\/by-id\/nvme-FAST_CACHE<\/code><\/pre>\n\n\n\n<p>Notes: Use a power-loss-protected SSD for the SLOG. L2ARC helps read-heavy datasets but does not replace sufficient RAM. Always benchmark changes in a staging environment when possible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"maintenance-and-monitoring\"><strong>Maintenance and Monitoring<\/strong><\/h2>\n\n\n\n<p><strong>Routine tasks keep your ZFS pool healthy and fast.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Health checks: <\/strong>\u201czpool status\u201d and \u201czpool list\u201d.<\/li>\n\n\n\n<li><strong>Scrubs: <\/strong>Run monthly to proactively detect and repair issues.<\/li>\n\n\n\n<li><strong>Alerts: <\/strong>Enable ZED (ZFS Event Daemon) to receive notifications.<\/li>\n\n\n\n<li><strong>Smart monitoring:<\/strong> Use smartctl for disk health outside of ZFS.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Check health\nzpool status\nzpool status -x\nzpool list\nzfs list\n\n# Manual scrub\nsudo zpool scrub tank\n\n# Enable ZFS event daemon for alerts\nsudo systemctl enable --now zfs-zed.service\n\n# Replace a failed disk\nzpool status        # Identify the FAULTED device\nsudo zpool replace tank &lt;old-device&gt; \/dev\/disk\/by-id\/ata-NEW_DISK\n\n# Export\/import a pool (move to another server)\nsudo zpool export tank\nsudo zpool import -d \/dev\/disk\/by-id tank<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"common-mistakes-to-avoid\"><strong>Common Mistakes to Avoid<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Using hardware RAID: <\/strong>You lose ZFS\u2019s visibility and integrity checks.<\/li>\n\n\n\n<li><strong>Mixing disk sizes in the same vdev: <\/strong>Capacity and performance will follow the smallest drive.<\/li>\n\n\n\n<li><strong>Turning on dedup by default: <\/strong>It can exhaust RAM and slow writes.<\/li>\n\n\n\n<li><strong>Skipping backups:<\/strong> Snapshots are not backups unless replicated off the pool.<\/li>\n\n\n\n<li><strong>Using \/dev\/sdX path instead of by-id:<\/strong> Device names can change on reboot.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"real-world-use-cases-on-linux-servers\"><strong>Real-World Use Cases on Linux Servers<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Virtualization hosts:<\/strong> Store VM images on a dataset with 128K recordsize, compression=lz4, and snapshots for quick checkpoints.<\/li>\n\n\n\n<li><strong>Databases<\/strong>: Align recordsize with DB page size (8\u201316K), disable atime, and mirror NVMe for low-latency storage.<\/li>\n\n\n\n<li><strong>Container registries and CI caches:<\/strong> Fast clones and snapshots speed up builds.<\/li>\n\n\n\n<li><strong>Backup targets: <\/strong>Use datasets, quotas, and receive incremental streams from remote sites.<\/li>\n<\/ul>\n\n\n\n<p>If you prefer a managed route, YouStable\u2019s managed servers can be provisioned with ZFS, tuned for your workload, and monitored 24\u00d77\u2014so you get integrity, performance, and clean backups without the learning curve.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-by-step-quickstart-checklist\"><strong>Step-by-Step Quickstart Checklist<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install OpenZFS packages for your distro and load the kernel module.<\/li>\n\n\n\n<li>Identify target disks via \/dev\/disk\/by-id and wipe old labels if needed.<\/li>\n\n\n\n<li>Create a pool with ashift=12 and enable lz4 compression.<\/li>\n\n\n\n<li>Create datasets for apps, set mountpoints, recordsize, and quotas.<\/li>\n\n\n\n<li>Enable snapshots and set a replication routine to a backup server.<\/li>\n\n\n\n<li>Schedule monthly scrubs and enable zfs-zed alerts.<\/li>\n\n\n\n<li>Tune ARC and consider SLOG\/L2ARC for specific workloads.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"troubleshooting-tips\"><strong>Troubleshooting Tips<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u201cmodule zfs not found\u201d: <\/strong>Ensure headers match your kernel and secure boot is configured to allow out-of-tree modules.<\/li>\n\n\n\n<li><strong>Pool won\u2019t import: <\/strong>Use \u201czpool import\u201d with \u201c-f\u201d only if absolutely necessary and check cabling\/HBA.<\/li>\n\n\n\n<li><strong>Slow writes: <\/strong>Verify compression, disable dedup, check for failing disks, and confirm no hardware RAID layer.<\/li>\n\n\n\n<li><strong>Mount issues: <\/strong>Check \u201czfs get mountpoint canmount\u201d and \u201csystemctl status zfs-mount\u201d.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"faqs\">FAQ&#8217;s<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1765963699003\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"1-is-zfs-better-than-ext4-or-xfs-for-servers\">1. <strong>Is ZFS better than ext4 or XFS for servers?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>For data integrity, snapshots, and integrated RAID, ZFS stands out. Ext4\/XFS are lighter and fine for simple use, but ZFS\u2019s checksums, replication, and pool management make it superior for mission-critical or data-heavy workloads.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765963716131\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"2-how-much-ram-does-zfs-need\">2. <strong>How much RAM does ZFS need?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>ZFS benefits from RAM for its ARC cache. Start with 8 GB minimum; 16\u201364 GB+ is common on servers. You can cap ARC with zfs_arc_max if memory is tight or you\u2019re running large applications alongside storage.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765963727893\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"3-can-i-use-zfs-with-hardware-raid\">3. <strong>Can I use ZFS with hardware RAID?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>It\u2019s not recommended. Present individual disks (HBA\/IT mode) so ZFS can manage redundancy, checksums, and error correction end-to-end. Hardware RAID can hide errors and reduce ZFS\u2019s effectiveness.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765963742427\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"4-how-do-i-expand-a-zfs-pool-later\">4. <strong>How do I expand a ZFS pool later?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>You can add a new vdev (e.g., another mirror or RAIDZ) to grow the pool. Replacing each disk in a vdev with a larger one also works; after the last replacement resilvers, ZFS expands capacity automatically.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765963753244\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"5-how-do-i-migrate-a-zfs-pool-to-a-new-server\">5. <strong>How do I migrate a ZFS pool to a new server?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Export on the old server (\u201czpool export tank\u201d), move the disks or JBOD, then import on the new server (\u201czpool import tank\u201d). Alternatively, replicate datasets using \u201czfs send|receive\u201d for zero-downtime migration.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>To create ZFS on a Linux server, install OpenZFS packages, identify disks, then build a storage pool with \u201czpool create.\u201d [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":16084,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[350],"tags":[],"class_list":["post-14237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledgebase"],"acf":[],"featured_image_src":"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/How-to-Create-ZFS-on-Linux-Server-Using-OpenZFS.jpg","author_info":{"display_name":"Sanjeet Chauhan","author_link":"https:\/\/www.youstable.com\/blog\/author\/sanjeet"},"_links":{"self":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/14237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/comments?post=14237"}],"version-history":[{"count":5,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/14237\/revisions"}],"predecessor-version":[{"id":16086,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/14237\/revisions\/16086"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media\/16084"}],"wp:attachment":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media?parent=14237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/categories?post=14237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/tags?post=14237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}