{"id":331,"date":"2025-10-12T11:27:45","date_gmt":"2025-10-12T11:27:45","guid":{"rendered":"https:\/\/raidzfscalculator.com\/?page_id=331"},"modified":"2026-02-23T19:06:38","modified_gmt":"2026-02-23T19:06:38","slug":"erasure-coding-calculator","status":"publish","type":"page","link":"https:\/\/raidzfscalculator.com\/en\/erasure-coding-calculator\/","title":{"rendered":"Erasure coding calculator"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Header&#8221; _builder_version=&#8221;4.16&#8243; custom_width_px__hover=&#8221;1080px&#8221; custom_width_px__hover_enabled=&#8221;1080px&#8221; custom_width_percent__hover=&#8221;80%&#8221; custom_width_percent__hover_enabled=&#8221;80%&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; parallax_1__hover=&#8221;off&#8221; parallax_1__hover_enabled=&#8221;off&#8221; parallax_2__hover=&#8221;off&#8221; parallax_2__hover_enabled=&#8221;off&#8221; parallax_3__hover=&#8221;off&#8221; parallax_3__hover_enabled=&#8221;off&#8221; parallax_method_1__hover=&#8221;on&#8221; parallax_method_1__hover_enabled=&#8221;on&#8221; parallax_method_2__hover=&#8221;on&#8221; parallax_method_2__hover_enabled=&#8221;on&#8221; parallax_method_3__hover=&#8221;on&#8221; parallax_method_3__hover_enabled=&#8221;on&#8221; use_background_color_gradient__hover=&#8221;off&#8221; use_background_color_gradient__hover_enabled=&#8221;off&#8221; background_color_gradient_start__hover=&#8221;#2b87da&#8221; background_color_gradient_start__hover_enabled=&#8221;#2b87da&#8221; background_color_gradient_end__hover=&#8221;#29c4a9&#8243; background_color_gradient_end__hover_enabled=&#8221;#29c4a9&#8243; background_color_gradient_type__hover=&#8221;linear&#8221; background_color_gradient_type__hover_enabled=&#8221;linear&#8221; background_color_gradient_direction__hover=&#8221;180deg&#8221; background_color_gradient_direction__hover_enabled=&#8221;180deg&#8221; background_color_gradient_direction_radial__hover=&#8221;center&#8221; background_color_gradient_direction_radial__hover_enabled=&#8221;center&#8221; background_color_gradient_start_position__hover=&#8221;0%&#8221; background_color_gradient_start_position__hover_enabled=&#8221;0%&#8221; background_color_gradient_end_position__hover=&#8221;100%&#8221; background_color_gradient_end_position__hover_enabled=&#8221;100%&#8221; background_color_gradient_overlays_image__hover=&#8221;off&#8221; background_color_gradient_overlays_image__hover_enabled=&#8221;off&#8221; parallax__hover=&#8221;off&#8221; parallax__hover_enabled=&#8221;off&#8221; parallax_method__hover=&#8221;on&#8221; parallax_method__hover_enabled=&#8221;on&#8221; background_size__hover=&#8221;cover&#8221; background_size__hover_enabled=&#8221;cover&#8221; background_position__hover=&#8221;center&#8221; background_position__hover_enabled=&#8221;center&#8221; background_repeat__hover=&#8221;no-repeat&#8221; background_repeat__hover_enabled=&#8221;no-repeat&#8221; background_blend__hover=&#8221;normal&#8221; background_blend__hover_enabled=&#8221;normal&#8221; allow_player_pause__hover=&#8221;off&#8221; allow_player_pause__hover_enabled=&#8221;off&#8221; background_video_pause_outside_viewport__hover=&#8221;on&#8221; background_video_pause_outside_viewport__hover_enabled=&#8221;on&#8221; inner_shadow__hover=&#8221;off&#8221; inner_shadow__hover_enabled=&#8221;off&#8221; make_fullwidth__hover=&#8221;off&#8221; make_fullwidth__hover_enabled=&#8221;off&#8221; use_custom_width__hover=&#8221;off&#8221; use_custom_width__hover_enabled=&#8221;off&#8221; width_unit__hover=&#8221;on&#8221; width_unit__hover_enabled=&#8221;on&#8221; make_equal__hover=&#8221;off&#8221; make_equal__hover_enabled=&#8221;off&#8221; use_custom_gutter__hover=&#8221;off&#8221; use_custom_gutter__hover_enabled=&#8221;off&#8221; gutter_width__hover=&#8221;3&#8243; gutter_width__hover_enabled=&#8221;3&#8243; border_radii__hover=&#8221;on||||&#8221; border_radii__hover_enabled=&#8221;on||||&#8221; box_shadow_style__hover=&#8221;none&#8221; box_shadow_style__hover_enabled=&#8221;none&#8221; box_shadow_color__hover=&#8221;rgba(0,0,0,0.3)&#8221; box_shadow_color__hover_enabled=&#8221;rgba(0,0,0,0.3)&#8221; max_width__hover=&#8221;100%&#8221; max_width__hover_enabled=&#8221;100%&#8221; filter_hue_rotate__hover=&#8221;0deg&#8221; filter_hue_rotate__hover_enabled=&#8221;0deg&#8221; filter_saturate__hover=&#8221;100%&#8221; filter_saturate__hover_enabled=&#8221;100%&#8221; filter_brightness__hover=&#8221;100%&#8221; filter_brightness__hover_enabled=&#8221;100%&#8221; filter_contrast__hover=&#8221;100%&#8221; filter_contrast__hover_enabled=&#8221;100%&#8221; filter_invert__hover=&#8221;0%&#8221; filter_invert__hover_enabled=&#8221;0%&#8221; filter_sepia__hover=&#8221;0%&#8221; filter_sepia__hover_enabled=&#8221;0%&#8221; filter_opacity__hover=&#8221;100%&#8221; filter_opacity__hover_enabled=&#8221;100%&#8221; filter_blur__hover=&#8221;0px&#8221; filter_blur__hover_enabled=&#8221;0px&#8221; mix_blend_mode__hover=&#8221;normal&#8221; mix_blend_mode__hover_enabled=&#8221;normal&#8221; animation_style__hover=&#8221;none&#8221; animation_style__hover_enabled=&#8221;none&#8221; animation_repeat__hover=&#8221;once&#8221; animation_repeat__hover_enabled=&#8221;once&#8221; animation_direction__hover=&#8221;center&#8221; animation_direction__hover_enabled=&#8221;center&#8221; animation_duration__hover=&#8221;1000ms&#8221; animation_duration__hover_enabled=&#8221;1000ms&#8221; animation_delay__hover=&#8221;0ms&#8221; animation_delay__hover_enabled=&#8221;0ms&#8221; animation_intensity_slide__hover=&#8221;50%&#8221; animation_intensity_slide__hover_enabled=&#8221;50%&#8221; animation_intensity_zoom__hover=&#8221;50%&#8221; animation_intensity_zoom__hover_enabled=&#8221;50%&#8221; animation_intensity_flip__hover=&#8221;50%&#8221; animation_intensity_flip__hover_enabled=&#8221;50%&#8221; animation_intensity_fold__hover=&#8221;50%&#8221; animation_intensity_fold__hover_enabled=&#8221;50%&#8221; animation_intensity_roll__hover=&#8221;50%&#8221; animation_intensity_roll__hover_enabled=&#8221;50%&#8221; animation_starting_opacity__hover=&#8221;0%&#8221; animation_starting_opacity__hover_enabled=&#8221;0%&#8221; animation_speed_curve__hover=&#8221;ease-in-out&#8221; animation_speed_curve__hover_enabled=&#8221;ease-in-out&#8221; hover_transition_duration__hover=&#8221;300ms&#8221; hover_transition_duration__hover_enabled=&#8221;300ms&#8221; hover_transition_delay__hover=&#8221;0ms&#8221; hover_transition_delay__hover_enabled=&#8221;0ms&#8221; hover_transition_speed_curve__hover=&#8221;ease&#8221; hover_transition_speed_curve__hover_enabled=&#8221;ease&#8221; background_color_gradient_stops__hover=&#8221;#2b87da 0%|#29c4a9 100%&#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>\n<p style=\"text-align: center;\"><strong>Site en Fran\u00e7ais<\/strong><\/p>\n<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>\n<p style=\"text-align: center;\"><strong>Website in english<\/strong><\/p>\n<p>[\/et_pb_blurb][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;||3px|||&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;1_2&#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 content_last_edited=&#8221;off|desktop&#8221; _builder_version=&#8221;4.27.5&#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|desktop&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Erasure coding calculator<\/h1>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;||||||||&#8221; text_letter_spacing=&#8221;1px&#8221; global_colors_info=&#8221;{}&#8221;]<\/h3>\n<p>Warning : This tool is here to help you, but it may not represent your complete architecture which can bring some difference between result.<\/h3>\n<p>[\/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_code _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;]        <div id=\"erasure-calculator\">\n            <div class=\"ec-calculator\">\n                <div class=\"ec-header\">\n                    <h1>Erasure Coding Calculator<\/h1>\n                    <p>Calculate usable capacity and performance for K+M configurations<\/p>\n                <\/div>\n                <div class=\"ec-content\">\n                    <div class=\"ec-input-panel\">\n                        <div class=\"ec-calc-mode\">\n                            <div class=\"ec-mode-buttons\">\n                                <button class=\"ec-mode-btn active\" data-mode=\"theoretical\">Theoretical<\/button>\n                                <button class=\"ec-mode-btn\" data-mode=\"conservative\">Conservative<\/button>\n                            <\/div>\n                        <\/div>\n                        <div class=\"ec-section\">\n                            <h3>EC Settings (K+M)<\/h3>\n                            <div class=\"ec-grid-2\">\n                                <div class=\"ec-form-group\"><label>Data (K)<\/label><input type=\"number\" id=\"data_chunks\" value=\"4\"><\/div>\n                                <div class=\"ec-form-group\"><label>Parity (M)<\/label><input type=\"number\" id=\"parity_chunks\" value=\"2\"><\/div>\n                            <\/div>\n                        <\/div>\n                        <div class=\"ec-section\">\n                            <h3>Hardware<\/h3>\n                            <div class=\"ec-form-group\"><label>Number of Disks<\/label><input type=\"number\" id=\"num_disks\" value=\"12\"><\/div>\n                            <div class=\"ec-grid-2\">\n                                <div class=\"ec-form-group\"><label>Disk Size<\/label><input type=\"number\" id=\"drive_capacity\" value=\"10\"><\/div>\n                                <div class=\"ec-form-group\"><label>Unit<\/label><select id=\"capacity_unit\"><option value=\"TB\">TB<\/option><option value=\"GB\">GB<\/option><\/select><\/div>\n                            <\/div>\n                        <\/div>\n                        <div class=\"ec-section\">\n                            <h3>Performance<\/h3>\n                            <div class=\"ec-grid-2\">\n                                <div class=\"ec-form-group\"><label>Speed<\/label><input type=\"number\" id=\"drive_speed\" value=\"150\"><\/div>\n                                <div class=\"ec-form-group\"><label>Unit<\/label><select id=\"speed_unit\"><option value=\"MB\/s\">MB\/s<\/option><option value=\"GB\/s\">GB\/s<\/option><\/select><\/div>\n                            <\/div>\n                            <div class=\"ec-form-group\"><label>Drive IOPS<\/label><input type=\"number\" id=\"drive_iops\" value=\"100\"><\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"ec-results\">\n                        <div class=\"ec-result-card ec-capacity\">\n                            <h3>Capacity<\/h3>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Usable Capacity<\/div><div class=\"ec-metric-value\" id=\"usable_capacity\">-<\/div><\/div>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Efficiency<\/div><div class=\"ec-metric-value\" id=\"storage_efficiency\">-<\/div><\/div>\n                        <\/div>\n                        <div class=\"ec-result-card ec-speed\">\n                            <h3>Throughput<\/h3>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Read Speed<\/div><div class=\"ec-metric-value\" id=\"read_speed\">-<\/div><\/div>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Write Speed<\/div><div class=\"ec-metric-value\" id=\"write_speed\">-<\/div><\/div>\n                        <\/div>\n                        <div class=\"ec-result-card ec-iops\">\n                            <h3>IOPS<\/h3>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Read IOPS<\/div><div class=\"ec-metric-value\" id=\"read_iops\">-<\/div><\/div>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Write IOPS<\/div><div class=\"ec-metric-value\" id=\"write_iops\">-<\/div><\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <script>\n                jQuery(document).ready(function($) {\n                    var mode = 'theoretical';\n                    $('.ec-mode-btn').click(function() {\n                        $('.ec-mode-btn').removeClass('active'); $(this).addClass('active');\n                        mode = $(this).data('mode'); calculate();\n                    });\n                    function calculate() {\n                        $.post('https:\/\/raidzfscalculator.com\/en\/wp-admin\/admin-ajax.php', {\n                            action: 'calculate_erasure',\n                            data_chunks: $('#data_chunks').val(),\n                            parity_chunks: $('#parity_chunks').val(),\n                            drive_capacity: $('#drive_capacity').val(),\n                            capacity_unit: $('#capacity_unit').val(),\n                            drive_speed: $('#drive_speed').val(),\n                            speed_unit: $('#speed_unit').val(),\n                            drive_iops: $('#drive_iops').val(),\n                            num_disks: $('#num_disks').val(),\n                            calc_mode: mode\n                        }, function(r) {\n                            if(r.success) {\n                                $.each(r.data, function(k, v) { $('#'+k).text(v + (k==='storage_efficiency'?'%':'')); });\n                            }\n                        });\n                    }\n                    $('#erasure-calculator input, #erasure-calculator select').on('change keyup', calculate);\n                    calculate();\n                });\n            <\/script>\n        <\/div>\n        [\/et_pb_code][\/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_text _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1><span style=\"color: #ef8f00;\"><strong>How it works :<\/strong><\/span><\/h1>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][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_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\"><span style=\"color: #18af2c;\"><strong>Calculation Modes:<\/strong><\/span><\/h2>\n<p><strong><\/strong><\/p>\n<p><strong><\/strong><\/p>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\" level=\"3\"><strong>\ud83d\udcc8 Theoretical Mode (Green)<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Perfect conditions<\/strong> &#8211; no overhead<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\"><strong>Maximum performance<\/strong> scenarios<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\"><strong>Ideal network<\/strong> and hardware performance<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\"><strong>Best-case<\/strong> storage efficiency<\/li>\n<\/ul>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\" level=\"3\"><strong>\ud83d\udee1\ufe0f Conservative Mode (Red)<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Real-world conditions<\/strong> with overhead factors<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\"><strong>Practical expectations<\/strong> for production environments<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\"><strong>Accounts for<\/strong>:\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"1\">\n<li class=\"whitespace-normal break-words\" index=\"0\">15% capacity overhead (metadata, formatting, spares)<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\">25% speed reduction (network\/CPU overhead, reconstruction)<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\">30% IOPS reduction (latency, queuing, reconstruction)<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\">10% network overhead<\/li>\n<li class=\"whitespace-normal break-words\" index=\"4\">Additional write penalties (parity calculation, read-modify-write cycles)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p class=\"whitespace-normal break-words\">\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\"><span style=\"color: #18af2c;\"><strong>What is Stripe Size?<\/strong><\/span><\/h2>\n<p><strong><\/strong><\/p>\n<p><strong>Stripe Size (KB) is a crucial parameter that affects both performance and how your data is distributed across drives.<\/strong><\/p>\n<p class=\"whitespace-normal break-words\"><strong>Stripe Size<\/strong> is the amount of data (in KB) written to each individual disk before moving to the next disk in the erasure coding set.<\/p>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\">\ud83d\udcca <strong>How it Works:<\/strong><\/h2>\n<p><strong><\/strong><\/p>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\" level=\"3\"><strong>Example with K=4, M=2, Stripe Size=4KB:<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\">Your file gets split into <strong>4KB chunks<\/strong><\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\">Each chunk goes to a different disk in sequence<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\">After 4 data chunks (16KB total), parity is calculated<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\">The pattern repeats for the next 16KB of data<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"14\" height=\"14\" fill=\"currentColor\" viewbox=\"0 0 256 256\" class=\"transition-all opacity-100 scale-100\"><path d=\"M200,32H163.74a47.92,47.92,0,0,0-71.48,0H56A16,16,0,0,0,40,48V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V48A16,16,0,0,0,200,32Zm-72,0a32,32,0,0,1,32,32H96A32,32,0,0,1,128,32Zm72,184H56V48H82.75A47.93,47.93,0,0,0,80,64v8a8,8,0,0,0,8,8h80a8,8,0,0,0,8-8V64a47.93,47.93,0,0,0-2.75-16H200Z\"><\/path><\/svg><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"14\" height=\"14\" fill=\"currentColor\" viewbox=\"0 0 256 256\" class=\"absolute top-0 left-0 transition-all opacity-0 scale-50\"><path d=\"M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z\"><\/path><\/svg><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code><span>File: [16KB block] \u2192 Split into 4KB chunks\n<\/span><span>Disk 1: [4KB] \u2192 Disk 2: [4KB] \u2192 Disk 3: [4KB] \u2192 Disk 4: [4KB]\n<\/span><span>Parity Disk 1: [P1] \u2192 Parity Disk 2: [P2]<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\">\u26a1 <strong>Performance Impact:<\/strong><\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\" level=\"3\"><strong>Small Stripe Size (1-4KB):<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\">\u2705 <strong>Better for<\/strong>: Random I\/O, databases, small files<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\">\u2705 <strong>Lower latency<\/strong> for small operations<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\">\u274c <strong>More overhead<\/strong> for large sequential reads<\/li>\n<\/ul>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\" level=\"3\"><strong>Large Stripe Size (64-256KB):<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\">\u2705 <strong>Better for<\/strong>: Sequential I\/O, video files, backups<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\">\u2705 <strong>Higher throughput<\/strong> for large transfers<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\">\u274c <strong>Higher latency<\/strong> for small random operations<\/li>\n<\/ul>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\">\ud83d\udd22 <strong>Stripe Width Calculation:<\/strong><\/h2>\n<p class=\"whitespace-normal break-words\">The calculator shows <strong>&#8220;Erasure Code Stripe Width&#8221;<\/strong> = Stripe Size \u00d7 Data Chunks<\/p>\n<p class=\"whitespace-normal break-words\"><strong>Example<\/strong>: 4KB stripe \u00d7 4 data chunks = <strong>16KB stripe width<\/strong><\/p>\n<p class=\"whitespace-normal break-words\">This means every 16KB of your data gets distributed across all data disks before parity calculation.<\/p>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\">\ud83c\udfaf <strong>Choosing the Right Size:<\/strong><\/h2>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>4KB<\/strong>: Good default for mixed workloads<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\"><strong>8-16KB<\/strong>: Database and general purpose<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\"><strong>64-128KB<\/strong>: Video streaming, backup systems<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\"><strong>256KB+<\/strong>: Large file archives, data warehousing<\/li>\n<\/ul>\n<p class=\"whitespace-normal break-words\">The field directly affects how your erasure coding system balances between <strong>latency<\/strong> (small stripes) and <strong>throughput<\/strong> (large stripes)!<\/p>\n<p>[\/et_pb_text][\/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_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\"><span style=\"color: #18af2c;\">\u2728 <strong>Features :<\/strong><\/span><\/h2>\n<p><strong><\/strong><\/p>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\" level=\"3\"><strong>\ud83c\udf9b\ufe0f Mode Selector<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Two buttons<\/strong> at the top of configuration panel<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\"><strong>Visual indicators<\/strong> &#8211; Green for Theoretical, Red for Conservative<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\"><strong>Dynamic descriptions<\/strong> explaining each mode<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\"><strong>Instant switching<\/strong> between calculation methods<\/li>\n<\/ul>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\" level=\"3\"><strong>\ud83d\udcca Visual Feedback<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Mode badges<\/strong> on each result section showing current calculation mode<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\"><strong>Color-coded buttons<\/strong> with icons<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\"><strong>Real-time updates<\/strong> when switching modes<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\"><strong>Clear explanations<\/strong> of what each mode represents<\/li>\n<\/ul>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\" level=\"3\"><strong>\ud83d\udd27 Smart Calculations<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Conservative mode<\/strong> applies realistic overhead factors:\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"1\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Capacity<\/strong>: 85% efficiency (15% overhead)<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\"><strong>Read Speed<\/strong>: 75% efficiency (25% overhead)<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\"><strong>Write Speed<\/strong>: Additional 15% penalty for parity calculation<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\"><strong>Read IOPS<\/strong>: 70% efficiency (30% overhead)<\/li>\n<li class=\"whitespace-normal break-words\" index=\"4\"><strong>Write IOPS<\/strong>: Additional 40% penalty for read-modify-write cycles<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\">\ud83d\udca1 <strong>Use Cases:<\/strong><\/h2>\n<p><strong><\/strong><\/p>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Theoretical<\/strong>: Planning, budgeting, maximum potential<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\"><strong>Conservative<\/strong>: Production planning, realistic expectations, SLA planning<\/li>\n<\/ul>\n<p class=\"whitespace-normal break-words\">You can see the &#8220;best case scenario&#8221; and &#8220;what to actually expect in production&#8221; &#8211; giving both optimistic targets and realistic planning numbers!<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2 class=\"whitespace-normal break-words\"><span style=\"color: #18af2c;\"><strong>Failure Domain<\/strong><\/span><\/h2>\n<p class=\"whitespace-normal break-words\">The <strong>Failure Domain<\/strong> is a crucial concept in erasure coding that determines how your data chunks are distributed across your storage infrastructure to ensure fault tolerance.<\/p>\n<p class=\"whitespace-normal break-words\">Here&#8217;s what each option means:<\/p>\n<h3 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\"><strong>OSD (Object Storage Daemon)<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Lowest level<\/strong> &#8211; Individual disk drives<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\">Chunks are distributed across different disks<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\">Can tolerate disk failures, but if a server fails, you might lose multiple chunks<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\"><strong>Use when<\/strong>: You have many disks and want maximum storage density<\/li>\n<\/ul>\n<h3 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\"><strong>Host<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Server level<\/strong> &#8211; Individual servers\/nodes<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\">Chunks are distributed across different servers<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\">Can tolerate entire server failures<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\"><strong>Most common choice<\/strong> for typical deployments<\/li>\n<li class=\"whitespace-normal break-words\" index=\"4\"><strong>Use when<\/strong>: You want to survive server failures (recommended)<\/li>\n<\/ul>\n<h3 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\"><strong>Rack<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Rack level<\/strong> &#8211; Physical server racks<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\">Chunks are distributed across different racks<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\">Can tolerate entire rack failures (power, network, cooling issues)<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\"><strong>Use when<\/strong>: You have multiple racks and want rack-level fault tolerance<\/li>\n<\/ul>\n<h3 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\"><strong>Datacenter<\/strong><\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\"><strong>Highest level<\/strong> &#8211; Different datacenters\/sites<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\">Chunks are distributed across different geographic locations<\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\">Can tolerate entire datacenter failures<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\"><strong>Use when<\/strong>: You have multiple datacenters and need geographic redundancy<\/li>\n<\/ul>\n<h3 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\" level=\"2\"><strong>Practical Example:<\/strong><\/h3>\n<p class=\"whitespace-normal break-words\">If you choose <strong>K=4, M=2<\/strong> with <strong>Host<\/strong> failure domain:<\/p>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\" depth=\"0\">\n<li class=\"whitespace-normal break-words\" index=\"0\">Your data is split into 4 data chunks + 2 parity chunks = 6 total chunks<\/li>\n<li class=\"whitespace-normal break-words\" index=\"1\">Each chunk goes to a <strong>different server<\/strong><\/li>\n<li class=\"whitespace-normal break-words\" index=\"2\">You can lose up to 2 entire servers and still recover your data<\/li>\n<li class=\"whitespace-normal break-words\" index=\"3\">If you chose &#8220;OSD&#8221; instead, losing one server with multiple disks could potentially lose multiple chunks<\/li>\n<\/ul>\n<p class=\"whitespace-normal break-words\"><strong>\ud83d\udca1 Recommendation:<\/strong> Use <strong>&#8220;Host&#8221;<\/strong> for most deployments as it provides good protection against server failures while being practical to implement.<\/p>\n<p>[\/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_text _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p data-path-to-node=\"14,0\"><b data-path-to-node=\"14,0\" data-index-in-node=\"0\">What is Erasure Coding (EC)?<\/b> Erasure Coding is a method of data protection in which data is broken into fragments, expanded and encoded with redundant data pieces and stored across a set of different locations or disks. Unlike RAID, EC is highly flexible and used in modern Object Storage (like MinIO, Ceph, or AWS S3).<\/p>\n<p data-path-to-node=\"14,1\"><b data-path-to-node=\"14,1\" data-index-in-node=\"0\">Understanding K+M Parameters:<\/b><\/p>\n<ul data-path-to-node=\"14,2\">\n<li>\n<p data-path-to-node=\"14,2,0,0\"><b data-path-to-node=\"14,2,0,0\" data-index-in-node=\"0\">K (Data chunks):<\/b> The number of original data fragments.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"14,2,1,0\"><b data-path-to-node=\"14,2,1,0\" data-index-in-node=\"0\">M (Parity chunks):<\/b> The number of additional fragments added for redundancy.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"14,2,2,0\"><b data-path-to-node=\"14,2,2,0\" data-index-in-node=\"0\">Fault Tolerance:<\/b> A system can lose up to <b data-path-to-node=\"14,2,2,0\" data-index-in-node=\"41\">M<\/b> fragments without losing any data. For example, a 4+2 setup can survive 2 simultaneous failures.<\/p>\n<\/li>\n<\/ul>\n<h3>Why choose Erasure Coding over RAID?<\/h3>\n<p>While RAID is the standard for single servers and home NAS devices, Erasure Coding has emerged as the technology of choice for object storage (S3) and distributed architectures (Ceph, MinIO). The reason is simple: flexibility. With Erasure Coding, you are not limited by the number of physical disks in a single bay. You can define schemes like 16+3, allowing you to lose three entire storage nodes without any service interruption.<\/p>\n<h3>Overhead Calculation and Efficiency<\/h3>\n<p>Calculating efficiency is crucial for optimizing your cloud storage costs. For a $K+M$ scheme, efficiency is calculated using the formula $K \/ (K+M)$. For example, a 12+4 configuration offers an efficiency of $12 \/ 16 = 75%$, while providing significantly higher security than any traditional RAID system. Use our calculator to simulate your needs and compare the cost per usable terabyte.<\/p>\n<p>[\/et_pb_text][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;Erasure Coding vs RAID: Which is better?&#8221; open=&#8221;on&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Erasure Coding is more efficient for large-scale distributed systems and provides better protection against multiple failures. RAID is generally faster for local, small-scale storage arrays.<\/p>\n<p>[\/et_pb_accordion_item][et_pb_accordion_item title=&#8221;What is the storage overhead of Erasure Coding?&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; open=&#8221;off&#8221;]<\/p>\n<p>The overhead is calculated as (M\/K). For example, in a 4+2 configuration, the overhead is 50%, providing 66% usable capacity.<\/p>\n<p>[\/et_pb_accordion_item][\/et_pb_accordion][et_pb_text _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<table style=\"width: 100%; border-collapse: collapse; margin: 20px 0; font-family: Arial, sans-serif; font-size: 14px;\">\n<thead>\n<tr style=\"background-color: #2c3e50; color: white; border-bottom: 2px solid #ddd;\">\n<th style=\"padding: 12px; text-align: left;\">Characteristic<\/th>\n<th style=\"padding: 12px; text-align: left;\">Traditionnal RAID (5, 6, 10)<\/th>\n<th style=\"padding: 12px; text-align: left;\">Erasure Coding (K+M)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"border-bottom: 1px solid #eee;\">\n<td style=\"padding: 12px; font-weight: bold;\">Scalability<\/td>\n<td style=\"padding: 12px;\">Limited to one box or node.<\/td>\n<td style=\"padding: 12px;\">Ideal for cloud and distributed storage.<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #eee; background-color: #f9f9f9;\">\n<td style=\"padding: 12px; font-weight: bold;\">Storage Efficiency<\/td>\n<td style=\"padding: 12px;\">Fixed (e.g., 66,7% in RAID 6 with 6 disks).<\/td>\n<td style=\"padding: 12px;\">Granular and flexible (e.g., 80% in 8+2).<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #eee;\">\n<td style=\"padding: 12px; font-weight: bold;\">Fault tolerance<\/td>\n<td style=\"padding: 12px;\">Max 2 disks (RAID 6).<\/td>\n<td style=\"padding: 12px;\">Theoretically unlimited (depends on M).<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #eee; background-color: #f9f9f9;\">\n<td style=\"padding: 12px; font-weight: bold;\">Performance (IOPS)<\/td>\n<td style=\"padding: 12px;\">Excellent for local access.<\/td>\n<td style=\"padding: 12px;\">Slower (latency due to CPU\/Network).<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #eee;\">\n<td style=\"padding: 12px; font-weight: bold;\">Rebuild time<\/td>\n<td style=\"padding: 12px;\">Long (intense stress on the discs).<\/td>\n<td style=\"padding: 12px;\">Fast (parallelization across multiple nodes).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/et_pb_text][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\": \"Erasure Coding vs RAID: Which is better?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Erasure Coding is more efficient for large-scale distributed systems and provides better protection against multiple failures. RAID is generally faster for local, small-scale storage arrays.\"<!-- [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 storage overhead of Erasure Coding?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"The overhead is calculated as (M\/K). For example, in a 4+2 configuration, the overhead is 50%, providing 66% usable capacity.\"<!-- [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]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Site en Fran\u00e7aisWebsite in englishErasure coding calculatorWarning : This tool is here to help you, but it may not represent your complete architecture which can bring some difference between result.        <div id=\"erasure-calculator\">\n            <div class=\"ec-calculator\">\n                <div class=\"ec-header\">\n                    <h1>Erasure Coding Calculator<\/h1>\n                    <p>Calculate usable capacity and performance for K+M configurations<\/p>\n                <\/div>\n                <div class=\"ec-content\">\n                    <div class=\"ec-input-panel\">\n                        <div class=\"ec-calc-mode\">\n                            <div class=\"ec-mode-buttons\">\n                                <button class=\"ec-mode-btn active\" data-mode=\"theoretical\">Theoretical<\/button>\n                                <button class=\"ec-mode-btn\" data-mode=\"conservative\">Conservative<\/button>\n                            <\/div>\n                        <\/div>\n                        <div class=\"ec-section\">\n                            <h3>EC Settings (K+M)<\/h3>\n                            <div class=\"ec-grid-2\">\n                                <div class=\"ec-form-group\"><label>Data (K)<\/label><input type=\"number\" id=\"data_chunks\" value=\"4\"><\/div>\n                                <div class=\"ec-form-group\"><label>Parity (M)<\/label><input type=\"number\" id=\"parity_chunks\" value=\"2\"><\/div>\n                            <\/div>\n                        <\/div>\n                        <div class=\"ec-section\">\n                            <h3>Hardware<\/h3>\n                            <div class=\"ec-form-group\"><label>Number of Disks<\/label><input type=\"number\" id=\"num_disks\" value=\"12\"><\/div>\n                            <div class=\"ec-grid-2\">\n                                <div class=\"ec-form-group\"><label>Disk Size<\/label><input type=\"number\" id=\"drive_capacity\" value=\"10\"><\/div>\n                                <div class=\"ec-form-group\"><label>Unit<\/label><select id=\"capacity_unit\"><option value=\"TB\">TB<\/option><option value=\"GB\">GB<\/option><\/select><\/div>\n                            <\/div>\n                        <\/div>\n                        <div class=\"ec-section\">\n                            <h3>Performance<\/h3>\n                            <div class=\"ec-grid-2\">\n                                <div class=\"ec-form-group\"><label>Speed<\/label><input type=\"number\" id=\"drive_speed\" value=\"150\"><\/div>\n                                <div class=\"ec-form-group\"><label>Unit<\/label><select id=\"speed_unit\"><option value=\"MB\/s\">MB\/s<\/option><option value=\"GB\/s\">GB\/s<\/option><\/select><\/div>\n                            <\/div>\n                            <div class=\"ec-form-group\"><label>Drive IOPS<\/label><input type=\"number\" id=\"drive_iops\" value=\"100\"><\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"ec-results\">\n                        <div class=\"ec-result-card ec-capacity\">\n                            <h3>Capacity<\/h3>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Usable Capacity<\/div><div class=\"ec-metric-value\" id=\"usable_capacity\">-<\/div><\/div>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Efficiency<\/div><div class=\"ec-metric-value\" id=\"storage_efficiency\">-<\/div><\/div>\n                        <\/div>\n                        <div class=\"ec-result-card ec-speed\">\n                            <h3>Throughput<\/h3>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Read Speed<\/div><div class=\"ec-metric-value\" id=\"read_speed\">-<\/div><\/div>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Write Speed<\/div><div class=\"ec-metric-value\" id=\"write_speed\">-<\/div><\/div>\n                        <\/div>\n                        <div class=\"ec-result-card ec-iops\">\n                            <h3>IOPS<\/h3>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Read IOPS<\/div><div class=\"ec-metric-value\" id=\"read_iops\">-<\/div><\/div>\n                            <div class=\"ec-metric\"><div class=\"ec-metric-label\">Write IOPS<\/div><div class=\"ec-metric-value\" id=\"write_iops\">-<\/div><\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <script>\n                jQuery(document).ready(function($) {\n                    var mode = 'theoretical';\n                    $('.ec-mode-btn').click(function() {\n                        $('.ec-mode-btn').removeClass('active'); $(this).addClass('active');\n                        mode = $(this).data('mode'); calculate();\n                    });\n                    function calculate() {\n                        $.post('https:\/\/raidzfscalculator.com\/en\/wp-admin\/admin-ajax.php', {\n                            action: 'calculate_erasure',\n                            data_chunks: $('#data_chunks').val(),\n                            parity_chunks: $('#parity_chunks').val(),\n                            drive_capacity: $('#drive_capacity').val(),\n                            capacity_unit: $('#capacity_unit').val(),\n                            drive_speed: $('#drive_speed').val(),\n                            speed_unit: $('#speed_unit').val(),\n                            drive_iops: $('#drive_iops').val(),\n                            num_disks: $('#num_disks').val(),\n                            calc_mode: mode\n                        }, function(r) {\n                            if(r.success) {\n                                $.each(r.data, function(k, v) { $('#'+k).text(v + (k==='storage_efficiency'?'%':'')); });\n                            }\n                        });\n                    }\n                    $('#erasure-calculator input, #erasure-calculator select').on('change keyup', calculate);\n                    calculate();\n                });\n            <\/script>\n        <\/div>\n        How it works :Calculation Modes: \ud83d\udcc8 Theoretical Mode (Green) Perfect conditions &#8211; no overhead Maximum performance scenarios Ideal network and hardware performance Best-case storage efficiency \ud83d\udee1\ufe0f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1085570,"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-331","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages\/331","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=331"}],"version-history":[{"count":25,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages\/331\/revisions"}],"predecessor-version":[{"id":1085729,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/pages\/331\/revisions\/1085729"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/media\/1085570"}],"wp:attachment":[{"href":"https:\/\/raidzfscalculator.com\/en\/wp-json\/wp\/v2\/media?parent=331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}