{"id":1085868,"date":"2026-07-29T20:56:32","date_gmt":"2026-07-29T20:56:32","guid":{"rendered":"https:\/\/raidzfscalculator.com\/en\/?page_id=1085868"},"modified":"2026-07-29T22:10:53","modified_gmt":"2026-07-29T22:10:53","slug":"zfs-calculator","status":"publish","type":"page","link":"https:\/\/raidzfscalculator.com\/en\/zfs-calculator\/","title":{"rendered":"ZFS calculator"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||0px|||&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_2,1_2&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb url=&#8221;https:\/\/raidzfscalculator.com\/&#8221; image=&#8221;https:\/\/www.raidzfscalculator.com\/en\/wp-content\/uploads\/2025\/11\/icons8-la-france-48.png&#8221; alt=&#8221;RAID ZFS CALCULATOR FIO  RESULT VIEWER&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<p style=\"text-align: center;\"><strong>Site en Fran\u00e7ais<\/strong><\/p>[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb url=&#8221;https:\/\/www.raidzfscalculator.com\/en\/&#8221; image=&#8221;https:\/\/www.raidzfscalculator.com\/en\/wp-content\/uploads\/2025\/11\/icons8-grande-bretagne-48.png&#8221; alt=&#8221;RAID ZFS CALCULATOR FIO RESULT VIEWER&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<p style=\"text-align: center;\"><strong>Website in english<\/strong><\/p>[\/et_pb_blurb][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; parallax__hover=&#8221;off&#8221; parallax_method__hover=&#8221;on&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_divider color=&#8221;#1ca5ff&#8221; divider_weight=&#8221;16px&#8221; _builder_version=&#8221;4.16&#8243; max_width=&#8221;48px&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_divider][et_pb_text _builder_version=&#8221;4.16&#8243; text_font=&#8221;||||||||&#8221; text_line_height=&#8221;2em&#8221; header_font=&#8221;Poppins|600|||||||&#8221; header_font_size=&#8221;50px&#8221; header_line_height=&#8221;1.3em&#8221; header_font_size_tablet=&#8221;30px&#8221; header_font_size_phone=&#8221;24px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<h1>ZFS calculator<\/h1>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]        <style>\n        .zfs-calc{max-width:1200px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}\n        .calc-container{background:#fff;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.1);padding:30px;margin:20px 0}\n        .calc-title{font-size:2.3rem;font-weight:700;color:#166534;margin-bottom:20px;text-align:center}\n        .warning{background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-left:5px solid #16a34a;border-radius:8px;padding:20px;margin-bottom:30px;display:flex;align-items:flex-start;gap:15px}\n        .warning-text{font-size:14px;line-height:1.6;color:#14532d}\n        .section{margin-bottom:40px}\n        .section h3{font-size:1.4rem;font-weight:600;color:#1e293b;margin-bottom:20px;border-bottom:2px solid #e2e8f0;padding-bottom:10px}\n        .config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:25px;margin-bottom:30px}\n        .input-group{display:flex;flex-direction:column;gap:8px}\n        .input-group label{font-weight:600;color:#374151;font-size:14px}\n        .input-group input,.input-group select{padding:12px 16px;border:2px solid #d1d5db;border-radius:8px;font-size:15px;transition:all .3s ease}\n        .input-group input:focus,.input-group select:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.1)}\n        .raid-btns{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}\n        .raid-btn{padding:12px 20px;border:2px solid #16a34a;border-radius:8px;background:#f0fdf4;color:#166534;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:14px}\n        .raid-btn:hover{background:#dcfce7;transform:translateY(-1px)}\n        .raid-btn.active{background:linear-gradient(135deg,#16a34a 0%,#15803d 100%);border-color:#15803d;color:#fff;box-shadow:0 4px 12px rgba(22,163,74,.4)}\n        .results{background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);border-radius:12px;padding:30px;border:2px solid #e2e8f0}\n        .results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin-bottom:30px}\n        .result-item{text-align:center;background:#fff;padding:20px;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.1)}\n        .result-value{font-size:1.8rem;font-weight:700;margin-bottom:8px}\n        .result-label{font-size:13px;color:#64748b;font-weight:500}\n        .usable{color:#16a34a} .parity{color:#f59e0b} .waste{color:#ef4444}\n        .disk-list{margin-top:15px;max-height:200px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:6px;padding:10px}\n        .disk-item{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #f1f5f9}\n        .disk-item:last-child{border-bottom:none}\n        .remove-btn{background:#ef4444;color:#fff;border:none;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:12px}\n        .add-btn{background:#16a34a;color:#fff;border:none;padding:10px 16px;border-radius:6px;font-weight:600;cursor:pointer;margin-top:8px}\n        .add-btn:hover{background:#15803d}\n        .tco-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:20px;margin-top:20px}\n        .tco-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}\n        @media (max-width:768px){.config-grid{grid-template-columns:1fr}.results-grid{grid-template-columns:1fr}}\n        <\/style>\n\n        <div class=\"zfs-calc\">\n            <div class=\"calc-container\">\n                <h1 class=\"calc-title\">Calculate ZFS Pool & RAIDZ (OpenZFS)<\/h1>\n                \n                <div class=\"warning\">\n                    <div style=\"font-size:24px;flex-shrink:0\">\ud83d\udee1\ufe0f<\/div>\n                    <div class=\"warning-text\">\n                        Calculate the exact capacity of a ZFS vdev, ZFS reserves (*Slop Space Allocation* ~3.2%), metadata overhead, and pool speed.\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>1.Vdev ZFS Configuration<\/h3>\n                    <div class=\"config-grid\">\n                        <div class=\"input-group\">\n                            <label>Type of ZFS diss<\/label>\n                            <select id=\"driveType\">\n                                <option value=\"hdd\">HDD (Enterprise SAS \/ SATA)<\/option>\n                                <option value=\"ssd\">SSD SAS \/ NVMe ZFS Pool<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>Vdev size and number of discs <\/label>\n                            <div style=\"display:flex;gap:10px\">\n                                <input type=\"number\" id=\"diskCapacity\" placeholder=\"Taille (TB)\" value=\"16\" min=\"0.1\" step=\"0.1\" style=\"flex:2\">\n                                <input type=\"number\" id=\"diskCount\" placeholder=\"Qt\u00e9\" value=\"6\" min=\"1\" max=\"100\" style=\"flex:1\">\n                            <\/div>\n                            <button class=\"add-btn\" type=\"button\" onclick=\"addMultipleDisks()\">+ Adjust vdev disks<\/button>\n                        <\/div>\n                    <\/div>\n\n                    <div style=\"margin-top:20px\">\n                        <h4>Disks in the vdev (<span id=\"totalDiskCount\">0<\/span> disks) :<\/h4>\n                        <div class=\"disk-list\" id=\"diskListContainer\"><\/div>\n                        <button style=\"background:#dc2626;color:#fff;border:none;padding:6px 12px;border-radius:4px;margin-top:10px;cursor:pointer;font-size:12px\" type=\"button\" onclick=\"resetConfig()\">Reset vdev<\/button>\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>2. Protection mode RAIDZ \/ ZFS<\/h3>\n                    <div class=\"raid-btns\">\n                        <button type=\"button\" class=\"raid-btn active\" onclick=\"setRaid('RAIDZ1', event)\">RAIDZ1 (Single Parity)<\/button>\n                        <button type=\"button\" class=\"raid-btn\" onclick=\"setRaid('RAIDZ2', event)\">RAIDZ2 (Dual Parity)<\/button>\n                        <button type=\"button\" class=\"raid-btn\" onclick=\"setRaid('RAIDZ3', event)\">RAIDZ3 (Triple Parity)<\/button>\n                        <button type=\"button\" class=\"raid-btn\" onclick=\"setRaid('ZFS Mirror', event)\">ZFS Mirror (VDEV)<\/button>\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>3. ZFS-Specific Settings & Performance<\/h3>\n                    <div class=\"config-grid\">\n                        <div class=\"input-group\">\n                            <label>ZFS record size (ashift\/recordsize)<\/label>\n                            <select id=\"recordSize\">\n                                <option value=\"128\">128 KiB (e\u00e9fault ZFS)<\/option>\n                                <option value=\"1024\">1 MiB (Recommanded for big files)<\/option>\n                                <option value=\"64\">64 KiB<\/option>\n                                <option value=\"16\">16 KiB (Data bases \/ VM)<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>Unit read speed (MB\/s)<\/label>\n                            <input type=\"number\" id=\"driveReadSpeed\" value=\"250\" min=\"1\">\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>Unit write speed (MB\/s)<\/label>\n                            <input type=\"number\" id=\"driveWriteSpeed\" value=\"230\" min=\"1\">\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>Unit IOPS <\/label>\n                            <input type=\"number\" id=\"driveIOPS\" value=\"200\" min=\"1\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>Actual Usable Capacity (ZFS Pool)<\/h3>\n                    <div class=\"results\">\n                        <div class=\"results-grid\">\n                            <div class=\"result-item\">\n                                <div class=\"result-value usable\" id=\"usableSpace\">0 TB<\/div>\n                                <div class=\"result-label\">Usable Space ZFS<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value parity\" id=\"paritySpace\">0 TB<\/div>\n                                <div class=\"result-label\">Network Parity RAIDZ<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value waste\" id=\"slopSpace\">0 TB<\/div>\n                                <div class=\"result-label\">ZFS Slop Space & Overhead (~12%)<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value\" id=\"efficiency\">0%<\/div>\n                                <div class=\"result-label\">Pool efficiency<\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"results-grid\">\n                            <div class=\"result-item\">\n                                <div class=\"result-value\" id=\"readSpeed\">0 MB\/s<\/div>\n                                <div class=\"result-label\">Sequential Read<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value\" id=\"writeSpeed\">0 MB\/s<\/div>\n                                <div class=\"result-label\">Sequential write<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value\" id=\"poolIOPS\">0<\/div>\n                                <div class=\"result-label\">Totales IOPS vdev<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>4. Server TCO & Costs ZFS \/ TrueNAS<\/h3>\n                    <div class=\"tco-section\">\n                        <div class=\"config-grid\">\n                            <div class=\"input-group\">\n                                <label>Unit price of a disk (\u20ac\/$)<\/label>\n                                <input type=\"number\" id=\"hddPrice\" value=\"320\" min=\"0\">\n                            <\/div>\n                            <div class=\"input-group\">\n                                <label>Server cost \/ HBA card (\u20ac\/$)<\/label>\n                                <input type=\"number\" id=\"serverCost\" value=\"1500\" min=\"0\">\n                            <\/div>\n                            <div class=\"input-group\">\n                                <label>Power\/disk consumption (W)<\/label>\n                                <input type=\"number\" id=\"hddPower\" value=\"9\" step=\"0.1\" min=\"0\">\n                            <\/div>\n                            <div class=\"input-group\">\n                                <label> kWh price (\u20ac\/$)<\/label>\n                                <input type=\"number\" id=\"electricityRate\" value=\"0.22\" step=\"0.01\" min=\"0\">\n                            <\/div>\n                        <\/div>\n\n                        <div style=\"margin-top:20px;padding:15px;background:#fff;border-radius:8px;border:1px solid #cbd5e1\">\n                            <div class=\"tco-grid\">\n                                <div><strong>Hardware Investment :<\/strong> <span id=\"capEx\">0<\/span> \u20ac<\/div>\n                                <div><strong>Electricity Cost (5 years) :<\/strong> <span id=\"powerCost5y\">0<\/span> \u20ac<\/div>\n                                <div><strong>Total TCO on 5 years :<\/strong> <span id=\"totalTco\" style=\"color:#16a34a;font-weight:700\">0<\/span> \u20ac<\/div>\n                                <div><strong>Cost per Usable TB :<\/strong> <span id=\"costPerTb\">0<\/span> \u20ac\/TB<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n        <\/div>\n\n        <script>\n        let selectedDisks = [];\n        let currentRaid = 'RAIDZ2';\n\n        function init() {\n            addDisks(16, 6);\n            bindEvents();\n        }\n\n        function setRaid(raid, evt) {\n            currentRaid = raid;\n            document.querySelectorAll('.raid-btn').forEach(b => b.classList.remove('active'));\n            if(evt && evt.target) evt.target.classList.add('active');\n            calculate();\n        }\n\n        function addMultipleDisks() {\n            const cap = parseFloat(document.getElementById('diskCapacity').value);\n            const count = parseInt(document.getElementById('diskCount').value);\n            if(cap > 0 && count > 0) addDisks(cap, count);\n        }\n\n        function addDisks(cap, count) {\n            for(let i=0; i<count; i++) selectedDisks.push(cap);\n            updateDisplay();\n            calculate();\n        }\n\n        function removeDisk(idx) {\n            selectedDisks.splice(idx, 1);\n            updateDisplay();\n            calculate();\n        }\n\n        function resetConfig() {\n            selectedDisks = [];\n            updateDisplay();\n            calculate();\n        }\n\n        function updateDisplay() {\n            document.getElementById('totalDiskCount').textContent = selectedDisks.length;\n            let html = '';\n            selectedDisks.forEach((d, i) => {\n                html += `<div class=\"disk-item\"><span>Disk ${i+1}: ${d} TB<\/span><button class=\"remove-btn\" type=\"button\" onclick=\"removeDisk(${i})\">Erase<\/button><\/div>`;\n            });\n            document.getElementById('diskListContainer').innerHTML = html;\n        }\n\n        function calculate() {\n            const N = selectedDisks.length;\n            if(N === 0) {\n                resetResults();\n                return;\n            }\n\n            const minCap = Math.min(...selectedDisks);\n            const totalRaw = selectedDisks.reduce((a,b) => a+b, 0);\n\n            let parityDisks = 0;\n            if(currentRaid === 'RAIDZ1') parityDisks = 1;\n            else if(currentRaid === 'RAIDZ2') parityDisks = 2;\n            else if(currentRaid === 'RAIDZ3') parityDisks = 3;\n            else if(currentRaid === 'ZFS Mirror') parityDisks = N \/ 2;\n\n            let rawUsable = 0;\n            if(currentRaid === 'ZFS Mirror') {\n                rawUsable = (N \/ 2) * minCap;\n            } else {\n                rawUsable = Math.max(0, (N - parityDisks) * minCap);\n            }\n\n            \/\/ Calcul ZFS overhead exact (~3.2% Slop space + m\u00e9tadonn\u00e9es + conversion TiB\/TB)\n            const zfsOverheadFactor = 0.88; \n            const netUsable = rawUsable * zfsOverheadFactor;\n            const parityTB = parityDisks * minCap;\n            const slopTB = totalRaw - netUsable - parityTB;\n            const eff = totalRaw > 0 ? (netUsable \/ totalRaw) * 100 : 0;\n\n            \/\/ Performances vdev ZFS\n            const rSpeed = parseFloat(document.getElementById('driveReadSpeed').value) || 250;\n            const wSpeed = parseFloat(document.getElementById('driveWriteSpeed').value) || 230;\n            const iopsUnit = parseFloat(document.getElementById('driveIOPS').value) || 200;\n\n            const readSpeedMax = rSpeed * (N - parityDisks);\n            const writeSpeedMax = wSpeed * (N - parityDisks);\n            \n            \/\/ En ZFS, un vdev RAIDZ a les IOPS d'UN SEUL disque en \u00e9criture\n            const poolIOPSMax = iopsUnit; \n\n            document.getElementById('usableSpace').textContent = netUsable.toFixed(2) + ' TB';\n            document.getElementById('paritySpace').textContent = parityTB.toFixed(2) + ' TB';\n            document.getElementById('slopSpace').textContent = Math.max(0, slopTB).toFixed(2) + ' TB';\n            document.getElementById('efficiency').textContent = eff.toFixed(1) + '%';\n\n            document.getElementById('readSpeed').textContent = Math.round(readSpeedMax) + ' MB\/s';\n            document.getElementById('writeSpeed').textContent = Math.round(writeSpeedMax) + ' MB\/s';\n            document.getElementById('poolIOPS').textContent = Math.round(poolIOPSMax) + ' IOPS (1 vdev)';\n\n            calculateTCO(netUsable);\n        }\n\n        function calculateTCO(usableTB) {\n            const N = selectedDisks.length;\n            const hddPrice = parseFloat(document.getElementById('hddPrice').value) || 0;\n            const serverCost = parseFloat(document.getElementById('serverCost').value) || 0;\n            const watts = parseFloat(document.getElementById('hddPower').value) || 0;\n            const kwhRate = parseFloat(document.getElementById('electricityRate').value) || 0;\n\n            const capEx = (N * hddPrice) + serverCost;\n            const kwhPerYear = ((N * watts) * 24 * 365) \/ 1000;\n            const powerCost5y = kwhPerYear * 5 * kwhRate;\n\n            const totalTco = capEx + powerCost5y;\n            const costPerTb = usableTB > 0 ? (totalTco \/ usableTB) : 0;\n\n            document.getElementById('capEx').textContent = Math.round(capEx);\n            document.getElementById('powerCost5y').textContent = Math.round(powerCost5y);\n            document.getElementById('totalTco').textContent = Math.round(totalTco);\n            document.getElementById('costPerTb').textContent = costPerTb.toFixed(2);\n        }\n\n        function resetResults() {\n            ['usableSpace','paritySpace','slopSpace'].forEach(id => document.getElementById(id).textContent = '0 TB');\n            document.getElementById('efficiency').textContent = '0%';\n        }\n\n        function bindEvents() {\n            ['driveReadSpeed','driveWriteSpeed','driveIOPS','hddPrice','serverCost','hddPower','electricityRate','recordSize'].forEach(id => {\n                const el = document.getElementById(id);\n                if(el) el.addEventListener('input', calculate);\n            });\n        }\n\n        document.addEventListener('DOMContentLoaded', init);\n        <\/script>\n        [\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<h2><strong>Mastering OpenZFS Capacity &amp; Pool Architecture<\/strong><\/h2>\n<p><strong><\/strong><\/p>\n<p>Planning an enterprise ZFS deployment requires a deeper understanding than traditional hardware arrays. Whether you are building an all-flash array on TrueNAS SCALE architecting storage for Proxmox VE, or configuring a backup target on Ubuntu Server, our ZFS Calculator accurately predicts your net usable capacity after accounting for parity overhead, metadata reservation, and ZFS Slop Allocation (~3.2%).<\/p>\n<p>Why Compute ZFS Capacity Differently Than Hardware RAID?<br \/>OpenZFS manages storage dynamically using Top-Level VDEVs (Virtual Devices) inside a unified &lt;em&gt;zpool&lt;\/em&gt;. Because data allocation depends on record size, parity width, and alignment, accurate sizing is critical before initializing your pool:<\/p>\n<p><strong>RAIDZ1 VDEV:<\/strong> Single-parity protection that tolerates one drive failure per vdev. Best suited for smaller pools or SSD-based pools where rebuild times are minimal.<\/p>\n<p><strong>RAIDZ2 VDEV:<\/strong>Dual-parity protection capable of surviving two simultaneous drive failures per vdev. Highly recommended when using enterprise HDDs larger than 8 TB to guard against UREs during resilvering.<\/p>\n<p><strong>RAIDZ3 VDEV:<\/strong> Triple-parity layout offering maximum fault tolerance for high-density storage chassis and critical archive workloads.<br \/>ZFS Mirroring (vdev pairs): The ZFS equivalent of RAID 10. Delivers maximum random E\/S performance and IOPS with faster resilver times, at the cost of 50% raw storage efficiency.<\/p>\n<p>OPS Estimation, Write Amplification, and ARC Cache:<\/p>\n<p>Storage planning isn&#8217;t just about Terabytes\u2014it&#8217;s about throughput. Our ZFS calculation engine factors in &lt;strong&gt;write amplification penalties, sequential MB\/s, and estimated;random IOPS This ensures your pool handles virtual machine disks (zvols) and database workloads without hitting I\/O bottlenecks or pool fragmentation degradation.<\/p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<h2 data-path-to-node=\"4\">Why Use a ZFS RAID Calculator for Your Storage Server?<\/h2>\n<p data-path-to-node=\"5\"><i data-path-to-node=\"5\" data-index-in-node=\"0\">Paragraph:<\/i> <b data-path-to-node=\"5\" data-index-in-node=\"11\">ZFS<\/b> (Zettabyte File System) has become the gold standard for data integrity on platforms like <b data-path-to-node=\"5\" data-index-in-node=\"105\">TrueNAS<\/b>, Proxmox, and Ubuntu. However, calculating usable capacity after parity overhead (<b data-path-to-node=\"5\" data-index-in-node=\"195\">RAID-Z1, RAID-Z2, RAID-Z3<\/b>) or mirroring can be tricky. Our online tool helps you simulate <b data-path-to-node=\"5\" data-index-in-node=\"285\">Vdev<\/b> configurations and predict available storage space while accounting for &#8220;slop space,&#8221; swap partitions, and system reserves.<\/p>\n<h2 data-path-to-node=\"7\">Optimize Your Server Performance with Our Free Tools<\/h2>\n<p data-path-to-node=\"8\"><i data-path-to-node=\"8\" data-index-in-node=\"0\">Paragraph:<\/i> Beyond raw capacity, disk performance for HDDs and SSDs is critical for a stable build. We have developed a suite of specialized tools for sysadmins and hardware enthusiasts:<\/p>\n<ul data-path-to-node=\"9\">\n<li>\n<p data-path-to-node=\"9,0,0\"><b data-path-to-node=\"9,0,0\" data-index-in-node=\"0\"><a href=\"https:\/\/raidzfscalculator.com\/en\/fio-results-viewer\/\" target=\"_blank\" rel=\"noopener\" title=\"FIO Results Visualizer\">FIO Results Visualizer<\/a>:<\/b> Convert complex JSON logs into readable charts to compare IOPS, throughput, and latency.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,1,0\"><b data-path-to-node=\"9,1,0\" data-index-in-node=\"0\"><a href=\"https:\/\/raidzfscalculator.com\/en\/rebuild-time-calculator\/\" target=\"_blank\" rel=\"noopener\" title=\"RAID Rebuild Time Estimator\">RAID Rebuild Time Estimator<\/a>:<\/b> Calculate how long it will take to resilver your ZFS pool after a drive failure to assess your data loss risk.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,2,0\"><b data-path-to-node=\"9,2,0\" data-index-in-node=\"0\"><a href=\"https:\/\/raidzfscalculator.com\/en\/bottleneck-analyzer\/\" target=\"_blank\" rel=\"noopener\" title=\"PC Bottleneck Calculator\">PC Bottleneck Calculator<\/a>:<\/b> Identify if your CPU or GPU is limiting your hardware performance in gaming or professional workloads.<\/p>\n<\/li>\n<\/ul>\n<p data-path-to-node=\"13\">[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_accordion _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_accordion_item title=&#8221;How much usable space do I get with RAIDZ2?&#8221; open=&#8221;on&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<p>RAIDZ2 requires at least 4 disks and uses 2 of them for parity. Your usable space is calculated as (N-2) times the smallest disk capacity. Our calculator also subtracts the ZFS overhead for more accuracy.<\/p>[\/et_pb_accordion_item][et_pb_accordion_item title=&#8221;Is RAIDZ1 safe for large hard drives?&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; open=&#8221;off&#8221;]<p>For modern high-capacity drives (8TB+), RAIDZ2 is highly recommended. The &#8220;resilver&#8221; (rebuild) time for large drives is long, and a second failure during this process would result in total data loss in RAIDZ1.<\/p>[\/et_pb_accordion_item][et_pb_accordion_item title=&#8221;What is the ZFS SLOP space reservation?&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; open=&#8221;off&#8221;]<p>ZFS reserves about 3.2% (1\/32) of the pool capacity as &#8220;SLOP&#8221; space. This prevents the file system from becoming completely locked or extremely slow when it reaches near-full capacity.<\/p>[\/et_pb_accordion_item][et_pb_accordion_item title=&#8221;Does this calculator work for TrueNAS and Unraid?&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; open=&#8221;off&#8221;]<p>Yes! While Unraid uses a different parity system for its main array, it supports ZFS pools. TrueNAS is built entirely on ZFS. Our tool provides accurate estimations for both systems.<\/p>[\/et_pb_accordion_item][et_pb_accordion_item title=&#8221;What are IOPS in a RAID configuration?&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; open=&#8221;off&#8221;]<p>IOPS (Input\/Output Operations Per Second) represent the speed of your array. In a RAIDZ configuration, the write IOPS are generally limited to the speed of a single drive in the VDEV, while read IOPS scale with the number of data drives.<\/p>[\/et_pb_accordion_item][\/et_pb_accordion][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;13px|||||&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.7&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<!DOCTYPE html><!-- [et_pb_line_break_holder] --><html lang=\"en\"><!-- [et_pb_line_break_holder] --><head><!-- [et_pb_line_break_holder] -->    <meta charset=\"UTF-8\"><!-- [et_pb_line_break_holder] -->    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><!-- [et_pb_line_break_holder] -->    <title>ZFS Capacity &#038; Pool Calculator | OpenZFS Usable Space &#038; IOPS Sizing<\/title><!-- [et_pb_line_break_holder] -->    <meta name=\"description\" content=\"Free ZFS Pool &#038; Capacity Calculator. Calculate real net storage, ZFS slop space, RAIDZ1\/Z2\/Z3 parity overhead, ashift alignment, and zpool IOPS performance.\"><!-- [et_pb_line_break_holder] -->    <style><!-- [et_pb_line_break_holder] -->        :root {<!-- [et_pb_line_break_holder] -->            --zfs-light-bg: #f4f6f8;<!-- [et_pb_line_break_holder] -->            --zfs-surface: #ffffff;<!-- [et_pb_line_break_holder] -->            --zfs-emerald-primary: #059669;<!-- [et_pb_line_break_holder] -->            --zfs-emerald-light: #ecfdf5;<!-- [et_pb_line_break_holder] -->            --zfs-emerald-border: #a7f3d0;<!-- [et_pb_line_break_holder] -->            --zfs-slate-dark: #0f172a;<!-- [et_pb_line_break_holder] -->            --zfs-slate-body: #334155;<!-- [et_pb_line_break_holder] -->            --zfs-slate-muted: #64748b;<!-- [et_pb_line_break_holder] -->            --zfs-border: #e2e8f0;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-container {<!-- [et_pb_line_break_holder] -->            max-width: 1200px;<!-- [et_pb_line_break_holder] -->            margin: 0 auto;<!-- [et_pb_line_break_holder] -->            padding: 40px 20px;<!-- [et_pb_line_break_holder] -->            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;<!-- [et_pb_line_break_holder] -->            line-height: 1.6;<!-- [et_pb_line_break_holder] -->            color: var(--zfs-slate-body);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/* Unique Light Hero Section with Mint\/Emerald Accents *\/<!-- [et_pb_line_break_holder] -->        .zfs-hero {<!-- [et_pb_line_break_holder] -->            background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%);<!-- [et_pb_line_break_holder] -->            border: 1px solid var(--zfs-emerald-border);<!-- [et_pb_line_break_holder] -->            border-left: 6px solid var(--zfs-emerald-primary);<!-- [et_pb_line_break_holder] -->            color: var(--zfs-slate-dark);<!-- [et_pb_line_break_holder] -->            padding: 50px 40px;<!-- [et_pb_line_break_holder] -->            border-radius: 20px;<!-- [et_pb_line_break_holder] -->            margin-bottom: 40px;<!-- [et_pb_line_break_holder] -->            box-shadow: 0 10px 30px rgba(5, 150, 105, 0.05);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-hero-title {<!-- [et_pb_line_break_holder] -->            font-size: 2.8rem;<!-- [et_pb_line_break_holder] -->            font-weight: 800;<!-- [et_pb_line_break_holder] -->            margin-bottom: 16px;<!-- [et_pb_line_break_holder] -->            color: var(--zfs-slate-dark);<!-- [et_pb_line_break_holder] -->            letter-spacing: -0.02em;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-hero-subtitle {<!-- [et_pb_line_break_holder] -->            font-size: 1.18rem;<!-- [et_pb_line_break_holder] -->            color: var(--zfs-slate-muted);<!-- [et_pb_line_break_holder] -->            margin-bottom: 30px;<!-- [et_pb_line_break_holder] -->            max-width: 900px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-hero-badges {<!-- [et_pb_line_break_holder] -->            display: flex;<!-- [et_pb_line_break_holder] -->            gap: 12px;<!-- [et_pb_line_break_holder] -->            flex-wrap: wrap;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-badge {<!-- [et_pb_line_break_holder] -->            display: inline-flex;<!-- [et_pb_line_break_holder] -->            align-items: center;<!-- [et_pb_line_break_holder] -->            gap: 6px;<!-- [et_pb_line_break_holder] -->            background: var(--zfs-surface);<!-- [et_pb_line_break_holder] -->            border: 1px solid var(--zfs-emerald-border);<!-- [et_pb_line_break_holder] -->            color: var(--zfs-emerald-primary);<!-- [et_pb_line_break_holder] -->            padding: 8px 16px;<!-- [et_pb_line_break_holder] -->            border-radius: 30px;<!-- [et_pb_line_break_holder] -->            font-size: 0.9rem;<!-- [et_pb_line_break_holder] -->            font-weight: 600;<!-- [et_pb_line_break_holder] -->            box-shadow: 0 2px 4px rgba(0,0,0,0.02);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/* Asymmetric Layout *\/<!-- [et_pb_line_break_holder] -->        .zfs-asymmetric-grid {<!-- [et_pb_line_break_holder] -->            display: grid;<!-- [et_pb_line_break_holder] -->            grid-template-columns: 2fr 1fr;<!-- [et_pb_line_break_holder] -->            gap: 30px;<!-- [et_pb_line_break_holder] -->            margin-bottom: 40px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-main-content {<!-- [et_pb_line_break_holder] -->            background: var(--zfs-surface);<!-- [et_pb_line_break_holder] -->            border-radius: 18px;<!-- [et_pb_line_break_holder] -->            padding: 35px;<!-- [et_pb_line_break_holder] -->            border: 1px solid var(--zfs-border);<!-- [et_pb_line_break_holder] -->            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-side-content {<!-- [et_pb_line_break_holder] -->            background: #f8fafc;<!-- [et_pb_line_break_holder] -->            border-radius: 18px;<!-- [et_pb_line_break_holder] -->            padding: 30px;<!-- [et_pb_line_break_holder] -->            border: 1px solid #cbd5e1;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-section-title {<!-- [et_pb_line_break_holder] -->            font-size: 1.75rem;<!-- [et_pb_line_break_holder] -->            font-weight: 700;<!-- [et_pb_line_break_holder] -->            color: var(--zfs-slate-dark);<!-- [et_pb_line_break_holder] -->            margin-bottom: 20px;<!-- [et_pb_line_break_holder] -->            display: flex;<!-- [et_pb_line_break_holder] -->            align-items: center;<!-- [et_pb_line_break_holder] -->            gap: 10px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-section-title::before {<!-- [et_pb_line_break_holder] -->            content: '';<!-- [et_pb_line_break_holder] -->            display: inline-block;<!-- [et_pb_line_break_holder] -->            width: 8px;<!-- [et_pb_line_break_holder] -->            height: 22px;<!-- [et_pb_line_break_holder] -->            background: var(--zfs-emerald-primary);<!-- [et_pb_line_break_holder] -->            border-radius: 4px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-list {<!-- [et_pb_line_break_holder] -->            list-style: none;<!-- [et_pb_line_break_holder] -->            padding: 0;<!-- [et_pb_line_break_holder] -->            margin: 20px 0;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-list li {<!-- [et_pb_line_break_holder] -->            padding: 14px 0;<!-- [et_pb_line_break_holder] -->            border-bottom: 1px solid #f1f5f9;<!-- [et_pb_line_break_holder] -->            display: flex;<!-- [et_pb_line_break_holder] -->            flex-direction: column;<!-- [et_pb_line_break_holder] -->            gap: 4px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-list li:last-child {<!-- [et_pb_line_break_holder] -->            border-bottom: none;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-list-header {<!-- [et_pb_line_break_holder] -->            font-weight: 700;<!-- [et_pb_line_break_holder] -->            color: var(--zfs-slate-dark);<!-- [et_pb_line_break_holder] -->            font-size: 1.05rem;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-list-desc {<!-- [et_pb_line_break_holder] -->            color: var(--zfs-slate-muted);<!-- [et_pb_line_break_holder] -->            font-size: 0.95rem;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/* Metrics Bar - Light Minimalist Theme *\/<!-- [et_pb_line_break_holder] -->        .zfs-metrics-bar {<!-- [et_pb_line_break_holder] -->            background: var(--zfs-emerald-light);<!-- [et_pb_line_break_holder] -->            border: 1px solid var(--zfs-emerald-border);<!-- [et_pb_line_break_holder] -->            border-radius: 18px;<!-- [et_pb_line_break_holder] -->            padding: 30px;<!-- [et_pb_line_break_holder] -->            margin: 40px 0;<!-- [et_pb_line_break_holder] -->            display: grid;<!-- [et_pb_line_break_holder] -->            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));<!-- [et_pb_line_break_holder] -->            gap: 25px;<!-- [et_pb_line_break_holder] -->            text-align: left;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-metric-value {<!-- [et_pb_line_break_holder] -->            font-size: 2.2rem;<!-- [et_pb_line_break_holder] -->            font-weight: 800;<!-- [et_pb_line_break_holder] -->            color: var(--zfs-emerald-primary);<!-- [et_pb_line_break_holder] -->            display: block;<!-- [et_pb_line_break_holder] -->            margin-bottom: 2px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-metric-title {<!-- [et_pb_line_break_holder] -->            font-weight: 700;<!-- [et_pb_line_break_holder] -->            font-size: 0.95rem;<!-- [et_pb_line_break_holder] -->            color: var(--zfs-slate-dark);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-metric-sub {<!-- [et_pb_line_break_holder] -->            font-size: 0.85rem;<!-- [et_pb_line_break_holder] -->            color: var(--zfs-slate-muted);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/* Cards Grid for Features *\/<!-- [et_pb_line_break_holder] -->        .zfs-features-grid {<!-- [et_pb_line_break_holder] -->            display: grid;<!-- [et_pb_line_break_holder] -->            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));<!-- [et_pb_line_break_holder] -->            gap: 25px;<!-- [et_pb_line_break_holder] -->            margin: 30px 0;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-feature-card {<!-- [et_pb_line_break_holder] -->            background: var(--zfs-surface);<!-- [et_pb_line_break_holder] -->            border: 1px solid var(--zfs-border);<!-- [et_pb_line_break_holder] -->            padding: 28px;<!-- [et_pb_line_break_holder] -->            border-radius: 16px;<!-- [et_pb_line_break_holder] -->            transition: all 0.3s ease;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-feature-card:hover {<!-- [et_pb_line_break_holder] -->            border-color: var(--zfs-emerald-primary);<!-- [et_pb_line_break_holder] -->            box-shadow: 0 10px 25px rgba(5, 150, 105, 0.08);<!-- [et_pb_line_break_holder] -->            transform: translateY(-2px);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-card-tag {<!-- [et_pb_line_break_holder] -->            font-size: 0.75rem;<!-- [et_pb_line_break_holder] -->            font-weight: 700;<!-- [et_pb_line_break_holder] -->            text-transform: uppercase;<!-- [et_pb_line_break_holder] -->            letter-spacing: 0.05em;<!-- [et_pb_line_break_holder] -->            color: var(--zfs-emerald-primary);<!-- [et_pb_line_break_holder] -->            background: var(--zfs-emerald-light);<!-- [et_pb_line_break_holder] -->            padding: 4px 10px;<!-- [et_pb_line_break_holder] -->            border-radius: 6px;<!-- [et_pb_line_break_holder] -->            display: inline-block;<!-- [et_pb_line_break_holder] -->            margin-bottom: 12px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/* Alert \/ Note Box *\/<!-- [et_pb_line_break_holder] -->        .zfs-alert {<!-- [et_pb_line_break_holder] -->            background: #fffbeeb0;<!-- [et_pb_line_break_holder] -->            border: 1px solid #fde68a;<!-- [et_pb_line_break_holder] -->            border-left: 5px solid #d97706;<!-- [et_pb_line_break_holder] -->            padding: 25px;<!-- [et_pb_line_break_holder] -->            border-radius: 14px;<!-- [et_pb_line_break_holder] -->            margin: 40px 0;<!-- [et_pb_line_break_holder] -->            color: #78350f;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        .zfs-alert-title {<!-- [et_pb_line_break_holder] -->            font-weight: 700;<!-- [et_pb_line_break_holder] -->            font-size: 1.1rem;<!-- [et_pb_line_break_holder] -->            margin-bottom: 8px;<!-- [et_pb_line_break_holder] -->            display: flex;<!-- [et_pb_line_break_holder] -->            align-items: center;<!-- [et_pb_line_break_holder] -->            gap: 8px;<!-- [et_pb_line_break_holder] -->            color: #92400e;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        @media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->            .zfs-asymmetric-grid {<!-- [et_pb_line_break_holder] -->                grid-template-columns: 1fr;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        @media (max-width: 768px) {<!-- [et_pb_line_break_holder] -->            .zfs-hero-title { font-size: 2.1rem; }<!-- [et_pb_line_break_holder] -->            .zfs-metrics-bar { grid-template-columns: 1fr 1fr; }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    <\/style><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><body><!-- [et_pb_line_break_holder] -->    <div class=\"zfs-container\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <header class=\"zfs-hero\"><!-- [et_pb_line_break_holder] -->            <h1 class=\"zfs-hero-title\">OpenZFS Pool Capacity &#038; Performance Sizing<\/h1><!-- [et_pb_line_break_holder] -->            <pee class=\"zfs-hero-subtitle\"><!-- [et_pb_line_break_holder] -->                Accurately forecast usable zpool capacity, block size overhead (ashift), parity distribution, and IOPS metrics across OpenZFS VDEV layouts. Built specifically for TrueNAS, Proxmox VE, and enterprise storage architects.<!-- [et_pb_line_break_holder] -->            <\/pee><!-- [et_pb_line_break_holder] -->            <div class=\"zfs-hero-badges\"><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-badge\">\u26a1 RAIDZ1 \/ RAIDZ2 \/ RAIDZ3<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-badge\">\ud83d\udee1\ufe0f ZFS Slop Allocation (~3.2%)<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-badge\">\ud83d\ude80 ZVOL &#038; Dataset Overhead<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-badge\">\ud83d\udcca Ashift 12 (4K) &#038; Ashift 13 (8K)<\/span><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->        <\/header><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <div class=\"zfs-asymmetric-grid\"><!-- [et_pb_line_break_holder] -->            <main class=\"zfs-main-content\"><!-- [et_pb_line_break_holder] -->                <h2 class=\"zfs-section-title\">Why Hardware RAID Sizing Fails for OpenZFS<\/h2><!-- [et_pb_line_break_holder] -->                <pee><!-- [et_pb_line_break_holder] -->                    Unlike legacy hardware controllers that present static virtual disks, <strong>OpenZFS combines volume management and file system operations into a unified storage pool (zpool)<\/strong>. This architecture introduces unique overhead variables that naive storage calculators overlook.<!-- [et_pb_line_break_holder] -->                <\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                <ul class=\"zfs-list\"><!-- [et_pb_line_break_holder] -->                    <li><!-- [et_pb_line_break_holder] -->                        <span class=\"zfs-list-header\">ZFS Slop Space Reservation<\/span><!-- [et_pb_line_break_holder] -->                        <span class=\"zfs-list-desc\">OpenZFS reserves roughly 3.2% (1\/32th) of total pool capacity as &#8220;slop space&#8221; to guarantee critical copy-on-write (CoW) operations and snapshot deletions when pools reach high capacity.<\/span><!-- [et_pb_line_break_holder] -->                    <\/li><!-- [et_pb_line_break_holder] -->                    <li><!-- [et_pb_line_break_holder] -->                        <span class=\"zfs-list-header\">RAIDZ Parity Padding &#038; Ashift Alignment<\/span><!-- [et_pb_line_break_holder] -->                        <span class=\"zfs-list-desc\">Dynamic block allocation requires padding based on sector size (ashift=12 for 4K sectors). Narrow RAIDZ vdevs combined with small record sizes can cause up to 20-30% parity waste.<\/span><!-- [et_pb_line_break_holder] -->                    <\/li><!-- [et_pb_line_break_holder] -->                    <li><!-- [et_pb_line_break_holder] -->                        <span class=\"zfs-list-header\">Dataset Swap &#038; Reservation Limits<\/span><!-- [et_pb_line_break_holder] -->                        <span class=\"zfs-list-desc\">Systems like TrueNAS and Proxmox carve out OS swap partitions (typically 2GB per drive) and zfs reservation margins to prevent pool lockup beyond 80-90% utilization.<\/span><!-- [et_pb_line_break_holder] -->                    <\/li><!-- [et_pb_line_break_holder] -->                <\/ul><!-- [et_pb_line_break_holder] -->            <\/main><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            <aside class=\"zfs-side-content\"><!-- [et_pb_line_break_holder] -->                <h3 style=\"font-size: 1.25rem; margin-bottom: 15px; color: #0f172a;\">ZFS VDEV Sizing Rules<\/h3><!-- [et_pb_line_break_holder] -->                <!-- [et_pb_line_break_holder] -->                <div style=\"margin-bottom: 18px;\"><!-- [et_pb_line_break_holder] -->                    <strong style=\"color: #059669; display: block; font-size: 0.9rem;\">RAIDZ1 VDEV<\/strong><!-- [et_pb_line_break_holder] -->                    <span style=\"font-size: 0.88rem; color: #475569;\">Best for 3\u20135 drives. Tolerates 1 failure. Recommended only with SSDs due to rebuild stress on HDDs.<\/span><!-- [et_pb_line_break_holder] -->                <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                <div style=\"margin-bottom: 18px;\"><!-- [et_pb_line_break_holder] -->                    <strong style=\"color: #059669; display: block; font-size: 0.9rem;\">RAIDZ2 VDEV<\/strong><!-- [et_pb_line_break_holder] -->                    <span style=\"font-size: 0.88rem; color: #475569;\">Best for 6\u201312 drives. Tolerates 2 failures. Standard choice for 8TB+ enterprise spinning drives.<\/span><!-- [et_pb_line_break_holder] -->                <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                <div style=\"margin-bottom: 18px;\"><!-- [et_pb_line_break_holder] -->                    <strong style=\"color: #059669; display: block; font-size: 0.9rem;\">Mirrored VDEVs (RAID 10 eq.)<\/strong><!-- [et_pb_line_break_holder] -->                    <span style=\"font-size: 0.88rem; color: #475569;\">Best for IOPS-critical VM workloads (Proxmox zvols, DBs). Maximum random performance and minimal resilver times.<\/span><!-- [et_pb_line_break_holder] -->                <\/div><!-- [et_pb_line_break_holder] -->            <\/aside><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <section class=\"zfs-metrics-bar\"><!-- [et_pb_line_break_holder] -->            <div><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-value\">3.2%<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-title\">Slop Space Factored<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-sub\">Automatic reservation deduction<\/span><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->            <div><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-value\">Ashift 12\/13<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-title\">4K\/8K Sector Aware<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-sub\">Prevents block padding waste<\/span><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->            <div><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-value\">100%<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-title\">ZVOL &#038; ARC Sizing<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-sub\">Tailored for VM &#038; NAS targets<\/span><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->            <div><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-value\">Free<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-title\">Open Source Utility<\/span><!-- [et_pb_line_break_holder] -->                <span class=\"zfs-metric-sub\">No restrictions or telemetry<\/span><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->        <\/section><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <section><!-- [et_pb_line_break_holder] -->            <h2 class=\"zfs-section-title\">Core Calculation Engine Capabilities<\/h2><!-- [et_pb_line_break_holder] -->            <div class=\"zfs-features-grid\"><!-- [et_pb_line_break_holder] -->                <!-- [et_pb_line_break_holder] -->                <div class=\"zfs-feature-card\"><!-- [et_pb_line_break_holder] -->                    <span class=\"zfs-card-tag\">Storage Architecture<\/span><!-- [et_pb_line_break_holder] -->                    <h3 style=\"font-size: 1.15rem; color: #0f172a; margin-bottom: 8px;\">Multi-VDEV Pool Simulation<\/h3><!-- [et_pb_line_break_holder] -->                    <pee style=\"color: #64748b; font-size: 0.95rem; margin: 0;\">Combine multiple top-level Virtual Devices (VDEVs) within a single zpool to calculate cumulative IOPS and net usable capacity accurately.<\/pee><!-- [et_pb_line_break_holder] -->                <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                <div class=\"zfs-feature-card\"><!-- [et_pb_line_break_holder] -->                    <span class=\"zfs-card-tag\">Workload Optimization<\/span><!-- [et_pb_line_break_holder] -->                    <h3 style=\"font-size: 1.15rem; color: #0f172a; margin-bottom: 8px;\">Recordsize &#038; Volblocksize Impact<\/h3><!-- [et_pb_line_break_holder] -->                    <pee style=\"color: #64748b; font-size: 0.95rem; margin: 0;\">Simulate how varying recordsize (128k default up to 1M for media) or volblocksize (16k\/64k for VM block storage) alters effective capacity and amplification.<\/pee><!-- [et_pb_line_break_holder] -->                <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                <div class=\"zfs-feature-card\"><!-- [et_pb_line_break_holder] -->                    <span class=\"zfs-card-tag\">Performance Sizing<\/span><!-- [et_pb_line_break_holder] -->                    <h3 style=\"font-size: 1.15rem; color: #0f172a; margin-bottom: 8px;\">ZFS Write Amplification &#038; IOPS<\/h3><!-- [et_pb_line_break_holder] -->                    <pee style=\"color: #64748b; font-size: 0.95rem; margin: 0;\">Analyze pool random read\/write throughput while factoring in ZFS Intent Log (SLOG\/ZIL) offload and ARC cache efficiency.<\/pee><!-- [et_pb_line_break_holder] -->                <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->        <\/section><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <div class=\"zfs-alert\"><!-- [et_pb_line_break_holder] -->            <div class=\"zfs-alert-title\"><!-- [et_pb_line_break_holder] -->                <span>\ud83d\udee1\ufe0f<\/span><!-- [et_pb_line_break_holder] -->                <span>Proxmox &#038; TrueNAS Best Practice: The 80% Pool Capacity Rule<\/span><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->            <pee style=\"margin: 0; font-size: 0.95rem;\"><!-- [et_pb_line_break_holder] -->                OpenZFS uses Copy-on-Write (CoW). When a zpool exceeds 80% capacity, the file system switches space allocation algorithms from <em>first-fit<\/em> to <em>best-fit<\/em>, which drastically increases write latency and pool fragmentation. <strong>Always size your pool using our calculator so that your operational dataset stays below 80% of total pool capacity.<\/strong><!-- [et_pb_line_break_holder] -->            <\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <section style=\"margin-top: 40px;\"><!-- [et_pb_line_break_holder] -->            <h2 class=\"zfs-section-title\">Architected for Modern Storage Operators<\/h2><!-- [et_pb_line_break_holder] -->            <div class=\"zfs-features-grid\"><!-- [et_pb_line_break_holder] -->                <!-- [et_pb_line_break_holder] -->                <div style=\"background: #ffffff; padding: 25px; border-radius: 14px; border: 1px solid #e2e8f0;\"><!-- [et_pb_line_break_holder] -->                    <h3 style=\"font-size: 1.05rem; color: #0f172a; margin-bottom: 8px;\">\ud83d\udda5\ufe0f Proxmox VE Hypervisor Admins<\/h3><!-- [et_pb_line_break_holder] -->                    <pee style=\"color: #64748b; font-size: 0.92rem; margin: 0;\">Calculate exact ZVOL allocation bounds for guest virtual machine disks, avoiding unexpected out-of-space panics during snapshot rollbacks.<\/pee><!-- [et_pb_line_break_holder] -->                <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                <div style=\"background: #ffffff; padding: 25px; border-radius: 14px; border: 1px solid #e2e8f0;\"><!-- [et_pb_line_break_holder] -->                    <h3 style=\"font-size: 1.05rem; color: #0f172a; margin-bottom: 8px;\">\ud83d\uddc4\ufe0f TrueNAS SCALE \/ CORE Systems<\/h3><!-- [et_pb_line_break_holder] -->                    <pee style=\"color: #64748b; font-size: 0.92rem; margin: 0;\">Model topology choices between RAIDZ2 arrays for cold storage pools vs mirrored SSD vdevs for high-performance SMB\/NFS file shares.<\/pee><!-- [et_pb_line_break_holder] -->                <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->        <\/section><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><\/body><!-- [et_pb_line_break_holder] --><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<script type=\"application\/ld+json\"><!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->  \"@context\": \"https:\/\/schema.org\",<!-- [et_pb_line_break_holder] -->  \"@type\": \"FAQPage\",<!-- [et_pb_line_break_holder] -->  \"mainEntity\": [<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"How much usable space do I get with RAIDZ2?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"RAIDZ2 requires at least 4 disks and uses 2 of them for parity. Your usable space is calculated as (N-2) times the smallest disk capacity. Our calculator also subtracts the ZFS overhead for more accuracy.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Is RAIDZ1 safe for large hard drives?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"For modern high-capacity drives (8TB+), RAIDZ2 is highly recommended. The resilver time for large drives is long, and a second failure during this process would result in total data loss in RAIDZ1.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"What is the ZFS SLOP space reservation?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"ZFS reserves about 3.2% (1\/32) of the pool capacity as SLOP space. This prevents the file system from becoming completely locked or slow when it reaches near-full capacity.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Does this calculator work for TrueNAS and Unraid?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Yes! While Unraid uses a different parity system for its main array, it supports ZFS pools. TrueNAS is built entirely on ZFS. Our tool provides accurate estimations for both.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"What are IOPS in a RAID configuration?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"IOPS represent the speed of your array. In RAIDZ, write IOPS are generally limited to the speed of a single drive in the VDEV, while read IOPS scale with the number of data drives.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  ]<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"<p>Site en Fran\u00e7aisWebsite in englishZFS calculator        <style>\n        .zfs-calc{max-width:1200px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}\n        .calc-container{background:#fff;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.1);padding:30px;margin:20px 0}\n        .calc-title{font-size:2.3rem;font-weight:700;color:#166534;margin-bottom:20px;text-align:center}\n        .warning{background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-left:5px solid #16a34a;border-radius:8px;padding:20px;margin-bottom:30px;display:flex;align-items:flex-start;gap:15px}\n        .warning-text{font-size:14px;line-height:1.6;color:#14532d}\n        .section{margin-bottom:40px}\n        .section h3{font-size:1.4rem;font-weight:600;color:#1e293b;margin-bottom:20px;border-bottom:2px solid #e2e8f0;padding-bottom:10px}\n        .config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:25px;margin-bottom:30px}\n        .input-group{display:flex;flex-direction:column;gap:8px}\n        .input-group label{font-weight:600;color:#374151;font-size:14px}\n        .input-group input,.input-group select{padding:12px 16px;border:2px solid #d1d5db;border-radius:8px;font-size:15px;transition:all .3s ease}\n        .input-group input:focus,.input-group select:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.1)}\n        .raid-btns{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}\n        .raid-btn{padding:12px 20px;border:2px solid #16a34a;border-radius:8px;background:#f0fdf4;color:#166534;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:14px}\n        .raid-btn:hover{background:#dcfce7;transform:translateY(-1px)}\n        .raid-btn.active{background:linear-gradient(135deg,#16a34a 0%,#15803d 100%);border-color:#15803d;color:#fff;box-shadow:0 4px 12px rgba(22,163,74,.4)}\n        .results{background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);border-radius:12px;padding:30px;border:2px solid #e2e8f0}\n        .results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin-bottom:30px}\n        .result-item{text-align:center;background:#fff;padding:20px;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.1)}\n        .result-value{font-size:1.8rem;font-weight:700;margin-bottom:8px}\n        .result-label{font-size:13px;color:#64748b;font-weight:500}\n        .usable{color:#16a34a} .parity{color:#f59e0b} .waste{color:#ef4444}\n        .disk-list{margin-top:15px;max-height:200px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:6px;padding:10px}\n        .disk-item{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #f1f5f9}\n        .disk-item:last-child{border-bottom:none}\n        .remove-btn{background:#ef4444;color:#fff;border:none;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:12px}\n        .add-btn{background:#16a34a;color:#fff;border:none;padding:10px 16px;border-radius:6px;font-weight:600;cursor:pointer;margin-top:8px}\n        .add-btn:hover{background:#15803d}\n        .tco-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:20px;margin-top:20px}\n        .tco-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}\n        @media (max-width:768px){.config-grid{grid-template-columns:1fr}.results-grid{grid-template-columns:1fr}}\n        <\/style>\n\n        <div class=\"zfs-calc\">\n            <div class=\"calc-container\">\n                <h1 class=\"calc-title\">Calculate ZFS Pool & RAIDZ (OpenZFS)<\/h1>\n                \n                <div class=\"warning\">\n                    <div style=\"font-size:24px;flex-shrink:0\">\ud83d\udee1\ufe0f<\/div>\n                    <div class=\"warning-text\">\n                        Calculate the exact capacity of a ZFS vdev, ZFS reserves (*Slop Space Allocation* ~3.2%), metadata overhead, and pool speed.\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>1.Vdev ZFS Configuration<\/h3>\n                    <div class=\"config-grid\">\n                        <div class=\"input-group\">\n                            <label>Type of ZFS diss<\/label>\n                            <select id=\"driveType\">\n                                <option value=\"hdd\">HDD (Enterprise SAS \/ SATA)<\/option>\n                                <option value=\"ssd\">SSD SAS \/ NVMe ZFS Pool<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>Vdev size and number of discs <\/label>\n                            <div style=\"display:flex;gap:10px\">\n                                <input type=\"number\" id=\"diskCapacity\" placeholder=\"Taille (TB)\" value=\"16\" min=\"0.1\" step=\"0.1\" style=\"flex:2\">\n                                <input type=\"number\" id=\"diskCount\" placeholder=\"Qt\u00e9\" value=\"6\" min=\"1\" max=\"100\" style=\"flex:1\">\n                            <\/div>\n                            <button class=\"add-btn\" type=\"button\" onclick=\"addMultipleDisks()\">+ Adjust vdev disks<\/button>\n                        <\/div>\n                    <\/div>\n\n                    <div style=\"margin-top:20px\">\n                        <h4>Disks in the vdev (<span id=\"totalDiskCount\">0<\/span> disks) :<\/h4>\n                        <div class=\"disk-list\" id=\"diskListContainer\"><\/div>\n                        <button style=\"background:#dc2626;color:#fff;border:none;padding:6px 12px;border-radius:4px;margin-top:10px;cursor:pointer;font-size:12px\" type=\"button\" onclick=\"resetConfig()\">Reset vdev<\/button>\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>2. Protection mode RAIDZ \/ ZFS<\/h3>\n                    <div class=\"raid-btns\">\n                        <button type=\"button\" class=\"raid-btn active\" onclick=\"setRaid('RAIDZ1', event)\">RAIDZ1 (Single Parity)<\/button>\n                        <button type=\"button\" class=\"raid-btn\" onclick=\"setRaid('RAIDZ2', event)\">RAIDZ2 (Dual Parity)<\/button>\n                        <button type=\"button\" class=\"raid-btn\" onclick=\"setRaid('RAIDZ3', event)\">RAIDZ3 (Triple Parity)<\/button>\n                        <button type=\"button\" class=\"raid-btn\" onclick=\"setRaid('ZFS Mirror', event)\">ZFS Mirror (VDEV)<\/button>\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>3. ZFS-Specific Settings & Performance<\/h3>\n                    <div class=\"config-grid\">\n                        <div class=\"input-group\">\n                            <label>ZFS record size (ashift\/recordsize)<\/label>\n                            <select id=\"recordSize\">\n                                <option value=\"128\">128 KiB (e\u00e9fault ZFS)<\/option>\n                                <option value=\"1024\">1 MiB (Recommanded for big files)<\/option>\n                                <option value=\"64\">64 KiB<\/option>\n                                <option value=\"16\">16 KiB (Data bases \/ VM)<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>Unit read speed (MB\/s)<\/label>\n                            <input type=\"number\" id=\"driveReadSpeed\" value=\"250\" min=\"1\">\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>Unit write speed (MB\/s)<\/label>\n                            <input type=\"number\" id=\"driveWriteSpeed\" value=\"230\" min=\"1\">\n                        <\/div>\n                        <div class=\"input-group\">\n                            <label>Unit IOPS <\/label>\n                            <input type=\"number\" id=\"driveIOPS\" value=\"200\" min=\"1\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>Actual Usable Capacity (ZFS Pool)<\/h3>\n                    <div class=\"results\">\n                        <div class=\"results-grid\">\n                            <div class=\"result-item\">\n                                <div class=\"result-value usable\" id=\"usableSpace\">0 TB<\/div>\n                                <div class=\"result-label\">Usable Space ZFS<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value parity\" id=\"paritySpace\">0 TB<\/div>\n                                <div class=\"result-label\">Network Parity RAIDZ<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value waste\" id=\"slopSpace\">0 TB<\/div>\n                                <div class=\"result-label\">ZFS Slop Space & Overhead (~12%)<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value\" id=\"efficiency\">0%<\/div>\n                                <div class=\"result-label\">Pool efficiency<\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"results-grid\">\n                            <div class=\"result-item\">\n                                <div class=\"result-value\" id=\"readSpeed\">0 MB\/s<\/div>\n                                <div class=\"result-label\">Sequential Read<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value\" id=\"writeSpeed\">0 MB\/s<\/div>\n                                <div class=\"result-label\">Sequential write<\/div>\n                            <\/div>\n                            <div class=\"result-item\">\n                                <div class=\"result-value\" id=\"poolIOPS\">0<\/div>\n                                <div class=\"result-label\">Totales IOPS vdev<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"section\">\n                    <h3>4. Server TCO & Costs ZFS \/ TrueNAS<\/h3>\n                    <div class=\"tco-section\">\n                        <div class=\"config-grid\">\n                            <div class=\"input-group\">\n                                <label>Unit price of a disk (\u20ac\/$)<\/label>\n                                <input type=\"number\" id=\"hddPrice\" value=\"320\" min=\"0\">\n                            <\/div>\n                            <div class=\"input-group\">\n                                <label>Server cost \/ HBA card (\u20ac\/$)<\/label>\n                                <input type=\"number\" id=\"serverCost\" value=\"1500\" min=\"0\">\n                            <\/div>\n                            <div class=\"input-group\">\n                                <label>Power\/disk consumption (W)<\/label>\n                                <input type=\"number\" id=\"hddPower\" value=\"9\" step=\"0.1\" min=\"0\">\n                            <\/div>\n                            <div class=\"input-group\">\n                                <label> kWh price (\u20ac\/$)<\/label>\n                                <input type=\"number\" id=\"electricityRate\" value=\"0.22\" step=\"0.01\" min=\"0\">\n                            <\/div>\n                        <\/div>\n\n                        <div style=\"margin-top:20px;padding:15px;background:#fff;border-radius:8px;border:1px solid #cbd5e1\">\n                            <div class=\"tco-grid\">\n                                <div><strong>Hardware Investment :<\/strong> <span id=\"capEx\">0<\/span> \u20ac<\/div>\n                                <div><strong>Electricity Cost (5 years) :<\/strong> <span id=\"powerCost5y\">0<\/span> \u20ac<\/div>\n                                <div><strong>Total TCO on 5 years :<\/strong> <span id=\"totalTco\" style=\"color:#16a34a;font-weight:700\">0<\/span> \u20ac<\/div>\n                                <div><strong>Cost per Usable TB :<\/strong> <span id=\"costPerTb\">0<\/span> \u20ac\/TB<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n        <\/div>\n\n        <script>\n        let selectedDisks = [];\n        let currentRaid = 'RAIDZ2';\n\n        function init() {\n            addDisks(16, 6);\n            bindEvents();\n        }\n\n        function setRaid(raid, evt) {\n            currentRaid = raid;\n            document.querySelectorAll('.raid-btn').forEach(b => b.classList.remove('active'));\n            if(evt && evt.target) evt.target.classList.add('active');\n            calculate();\n        }\n\n        function addMultipleDisks() {\n            const cap = parseFloat(document.getElementById('diskCapacity').value);\n            const count = parseInt(document.getElementById('diskCount').value);\n            if(cap > 0 && count > 0) addDisks(cap, count);\n        }\n\n        function addDisks(cap, count) {\n            for(let i=0; i<count; i++) selectedDisks.push(cap);\n            updateDisplay();\n            calculate();\n        }\n\n        function removeDisk(idx) {\n            selectedDisks.splice(idx, 1);\n            updateDisplay();\n            calculate();\n        }\n\n        function resetConfig() {\n            selectedDisks = [];\n            updateDisplay();\n            calculate();\n        }\n\n        function updateDisplay() {\n            document.getElementById('totalDiskCount').textContent = selectedDisks.length;\n            let html = '';\n            selectedDisks.forEach((d, i) => {\n                html += `<div class=\"disk-item\"><span>Disk ${i+1}: ${d} TB<\/span><button class=\"remove-btn\" type=\"button\" onclick=\"removeDisk(${i})\">Erase<\/button><\/div>`;\n            });\n            document.getElementById('diskListContainer').innerHTML = html;\n        }\n\n        function calculate() {\n            const N = selectedDisks.length;\n            if(N === 0) {\n                resetResults();\n                return;\n            }\n\n            const minCap = Math.min(...selectedDisks);\n            const totalRaw = selectedDisks.reduce((a,b) => a+b, 0);\n\n            let parityDisks = 0;\n            if(currentRaid === 'RAIDZ1') parityDisks = 1;\n            else if(currentRaid === 'RAIDZ2') parityDisks = 2;\n            else if(currentRaid === 'RAIDZ3') parityDisks = 3;\n            else if(currentRaid === 'ZFS Mirror') parityDisks = N \/ 2;\n\n            let rawUsable = 0;\n            if(currentRaid === 'ZFS Mirror') {\n                rawUsable = (N \/ 2) * minCap;\n            } else {\n                rawUsable = Math.max(0, (N - parityDisks) * minCap);\n            }\n\n            \/\/ Calcul ZFS overhead exact (~3.2% Slop space + m\u00e9tadonn\u00e9es + conversion TiB\/TB)\n            const zfsOverheadFactor = 0.88; \n            const netUsable = rawUsable * zfsOverheadFactor;\n            const parityTB = parityDisks * minCap;\n            const slopTB = totalRaw - netUsable - parityTB;\n            const eff = totalRaw > 0 ? (netUsable \/ totalRaw) * 100 : 0;\n\n            \/\/ Performances vdev ZFS\n            const rSpeed = parseFloat(document.getElementById('driveReadSpeed').value) || 250;\n            const wSpeed = parseFloat(document.getElementById('driveWriteSpeed').value) || 230;\n            const iopsUnit = parseFloat(document.getElementById('driveIOPS').value) || 200;\n\n            const readSpeedMax = rSpeed * (N - parityDisks);\n            const writeSpeedMax = wSpeed * (N - parityDisks);\n            \n            \/\/ En ZFS, un vdev RAIDZ a les IOPS d'UN SEUL disque en \u00e9criture\n            const poolIOPSMax = iopsUnit; \n\n            document.getElementById('usableSpace').textContent = netUsable.toFixed(2) + ' TB';\n            document.getElementById('paritySpace').textContent = parityTB.toFixed(2) + ' TB';\n            document.getElementById('slopSpace').textContent = Math.max(0, slopTB).toFixed(2) + ' TB';\n            document.getElementById('efficiency').textContent = eff.toFixed(1) + '%';\n\n            document.getElementById('readSpeed').textContent = Math.round(readSpeedMax) + ' MB\/s';\n            document.getElementById('writeSpeed').textContent = Math.round(writeSpeedMax) + ' MB\/s';\n            document.getElementById('poolIOPS').textContent = Math.round(poolIOPSMax) + ' IOPS (1 vdev)';\n\n            calculateTCO(netUsable);\n        }\n\n        function calculateTCO(usableTB) {\n            const N = selectedDisks.length;\n            const hddPrice = parseFloat(document.getElementById('hddPrice').value) || 0;\n            const serverCost = parseFloat(document.getElementById('serverCost').value) || 0;\n            const watts = parseFloat(document.getElementById('hddPower').value) || 0;\n            const kwhRate = parseFloat(document.getElementById('electricityRate').value) || 0;\n\n            const capEx = (N * hddPrice) + serverCost;\n            const kwhPerYear = ((N * watts) * 24 * 365) \/ 1000;\n            const powerCost5y = kwhPerYear * 5 * kwhRate;\n\n            const totalTco = capEx + powerCost5y;\n            const costPerTb = usableTB > 0 ? (totalTco \/ usableTB) : 0;\n\n            document.getElementById('capEx').textContent = Math.round(capEx);\n            document.getElementById('powerCost5y').textContent = Math.round(powerCost5y);\n            document.getElementById('totalTco').textContent = Math.round(totalTco);\n            document.getElementById('costPerTb').textContent = costPerTb.toFixed(2);\n        }\n\n        function resetResults() {\n            ['usableSpace','paritySpace','slopSpace'].forEach(id => document.getElementById(id).textContent = '0 TB');\n            document.getElementById('efficiency').textContent = '0%';\n        }\n\n        function bindEvents() {\n            ['driveReadSpeed','driveWriteSpeed','driveIOPS','hddPrice','serverCost','hddPower','electricityRate','recordSize'].forEach(id => {\n                const el = document.getElementById(id);\n                if(el) el.addEventListener('input', calculate);\n            });\n        }\n\n        document.addEventListener('DOMContentLoaded', init);\n        <\/script>\n        Mastering OpenZFS Capacity &amp; Pool Architecture Planning an enterprise ZFS deployment requires a deeper understanding than traditional hardware arrays. Whether you are building an all-flash array on TrueNAS SCALE architecting storage for Proxmox VE, or configuring a backup target on Ubuntu Server, our ZFS Calculator accurately predicts your net usable [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1085892,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-1085868","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages\/1085868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/comments?post=1085868"}],"version-history":[{"count":8,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages\/1085868\/revisions"}],"predecessor-version":[{"id":1085896,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages\/1085868\/revisions\/1085896"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/media\/1085892"}],"wp:attachment":[{"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/media?parent=1085868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}