{"id":238660,"date":"2024-09-13T16:00:42","date_gmt":"2024-09-13T14:00:42","guid":{"rendered":"https:\/\/www.evidian.com\/?page_id=238660"},"modified":"2026-02-18T14:54:00","modified_gmt":"2026-02-18T12:54:00","slug":"safekit-quick-installation-guide-with-kvm","status":"publish","type":"page","link":"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/safekit-quick-installation-guide-with-kvm\/","title":{"rendered":"KVM High Availability with SafeKit: Install the kvm.safe Module for Failover"},"content":{"rendered":"<div id=\"pl-238660\"  class=\"panel-layout\" ><div id=\"pg-238660-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-238660-0\" ><div id=\"pgc-238660-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-238660-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"0\" ><div class=\"panel-widget-style panel-widget-style-for-238660-0-0-0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h1 style=\"text-align: left; color: white; font-size: 38px;\">KVM High Availability with SafeKit: Install the kvm.safe Module for Failover<\/h1>\n<h2 style=\"text-align: left; color: white; font-size: 26px;\">Configuring kvm.safe for Active\/Active VM-Level HA and Shared-Nothing Clustering<\/h2>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><div id=\"pg-238660-1\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-238660-1\" ><div id=\"pgc-238660-1-0\"  class=\"panel-grid-cell\" ><div id=\"panel-238660-1-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<div data-post-id=\"71458\" class=\"insert-page insert-page-71458 \"><div id=\"pl-71458\"  class=\"panel-layout\" ><div id=\"pg-71458-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-71458-0\" ><div id=\"pgc-71458-0-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><div id=\"pgc-71458-0-1\"  class=\"panel-grid-cell\" ><div id=\"panel-71458-0-1-0\" class=\"so-panel widget widget_sow-button panel-first-child panel-last-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-button so-widget-sow-button-atom-22117c521b6b-71458\"\n\t\t\t\n\t\t><div class=\"ow-button-base ow-button-align-center\"\n>\n\t\t\t<a\n\t\t\t\t\thref=\"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/contact-us-for-safekit\/\"\n\t\t\t\t\tclass=\"sowb-button ow-icon-placement-left ow-button-hover\" target=\"_blank\" rel=\"noopener noreferrer\" \t>\n\t\t<span>\n\t\t\t\n\t\t\t\ud83e\uddd1 Contact us\t\t<\/span>\n\t\t\t<\/a>\n\t<\/div>\n<\/div><\/div><\/div><div id=\"pgc-71458-0-2\"  class=\"panel-grid-cell\" ><div id=\"panel-71458-0-2-0\" class=\"so-panel widget widget_sow-button panel-first-child panel-last-child\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-button so-widget-sow-button-atom-22117c521b6b-71458\"\n\t\t\t\n\t\t><div class=\"ow-button-base ow-button-align-center\"\n>\n\t\t\t<a\n\t\t\t\t\thref=\"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/safekit-free-trial\/\"\n\t\t\t\t\tclass=\"sowb-button ow-icon-placement-left ow-button-hover\" target=\"_blank\" rel=\"noopener noreferrer\" \t>\n\t\t<span>\n\t\t\t\n\t\t\t\ud83c\udf81 SafeKit free trial\t\t<\/span>\n\t\t\t<\/a>\n\t<\/div>\n<\/div><\/div><\/div><div id=\"pgc-71458-0-3\"  class=\"panel-grid-cell\" ><div id=\"panel-71458-0-3-0\" class=\"so-panel widget widget_sow-button panel-first-child panel-last-child\" data-index=\"2\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-button so-widget-sow-button-atom-22117c521b6b-71458\"\n\t\t\t\n\t\t><div class=\"ow-button-base ow-button-align-center\"\n>\n\t\t\t<a\n\t\t\t\t\thref=\"https:\/\/training.my.evidian.com\/mod\/page\/view.php?id=712\"\n\t\t\t\t\tclass=\"sowb-button ow-icon-placement-left ow-button-hover\" target=\"_blank\" rel=\"noopener noreferrer\" \t>\n\t\t<span>\n\t\t\t\n\t\t\t\ud83c\udfc5 Free certification\t\t<\/span>\n\t\t\t<\/a>\n\t<\/div>\n<\/div><\/div><\/div><div id=\"pgc-71458-0-4\"  class=\"panel-grid-cell panel-grid-cell-mobile-last\" ><div id=\"panel-71458-0-4-0\" class=\"so-panel widget widget_sow-button panel-first-child panel-last-child\" data-index=\"3\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-button so-widget-sow-button-atom-22117c521b6b-71458\"\n\t\t\t\n\t\t><div class=\"ow-button-base ow-button-align-center\"\n>\n\t\t\t<a\n\t\t\t\t\thref=\"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/get-a-quote-safekit-en\/\"\n\t\t\t\t\tclass=\"sowb-button ow-icon-placement-left ow-button-hover\" target=\"_blank\" rel=\"noopener noreferrer\" \t>\n\t\t<span>\n\t\t\t\n\t\t\t\ud83d\udcb0 Perpetual license cost\t\t<\/span>\n\t\t\t<\/a>\n\t<\/div>\n<\/div><\/div><\/div><div id=\"pgc-71458-0-5\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><\/div><\/div><\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-238660-2\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-238660-2\" ><div id=\"pgc-238660-2-0\"  class=\"panel-grid-cell\" ><div id=\"panel-238660-2-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"2\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<div data-post-id=\"246959\" class=\"insert-page insert-page-246959 \"><div id=\"pl-246959\"  class=\"panel-layout\" ><div id=\"pg-246959-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-246959-0\" ><div id=\"pgc-246959-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-246959-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h2 id=\"quick-guide\">High Availability Quick Installation Guide  for KVM<\/h2>\n<p>This guide explains how to set up a <strong>mirror cluster<\/strong>  for KVM using SafeKit, ensuring automatic failover and synchronous replication without the need for shared storage.<\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-246959-1\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-246959-1\" ><div id=\"pgc-246959-1-0\"  class=\"panel-grid-cell\" ><div id=\"panel-246959-1-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>1. Overview<\/h3>\n<ul>\n<li><strong>Architecture:<\/strong> Uses a two-node system (Primary\/Secondary).<\/li>\n<li><strong>Data Protection:<\/strong> Implements real-time synchronous replication for <strong>zero data loss<\/strong> (RPO=0).<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-246959-1-1\"  class=\"panel-grid-cell\" ><div id=\"panel-246959-1-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"2\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>2. Installation<\/h3>\n<ul>\n<li><strong>Software:<\/strong> Install the SafeKit engine on both servers.<\/li>\n<li><strong>Module:<\/strong> Download the pre-configured <code>kvm.safe<\/code> application module.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-246959-1-2\"  class=\"panel-grid-cell\" ><div id=\"panel-246959-1-2-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"3\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>3. Configuration<\/h3>\n<ul>\n<li><strong>Web Console:<\/strong> Configure the specific folders containing the KVM files.<\/li>\n<li><strong>Monitoring:<\/strong> Start monitoring and protecting the KVM application.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-238660-3\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-238660-3\" ><div id=\"pgc-238660-3-0\"  class=\"panel-grid-cell\" ><div id=\"panel-238660-3-0-0\" class=\"so-panel widget widget_sow-accordion panel-first-child panel-last-child\" data-index=\"3\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-accordion so-widget-sow-accordion-default-b801f6bb2521-246959\"\n\t\t\t data-max-open-panels=\"0\" data-initial-scroll-panel=\"0\"\n\t\t><h3 class=\"widget-title\">Overview-Installation-Configuration<\/h3><div>\n\t<div class=\"sow-accordion\">\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\t\"\n\t\t\t\tdata-anchor-id=\"overview-of-the-safekit-kvm-solution\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-overview-of-the-safekit-kvm-solution\" aria-controls=\"accordion-content-overview-of-the-safekit-kvm-solution\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h2>Overview of the SafeKit \/ KVM solution<\/h2>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"&#xf218;\"\n\t\t \n\t\taria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"&#xf209;\"\n\t\t \n\t\taria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div\n\t\t\t\tclass=\"sow-accordion-panel-content\"\n\t\t\t\trole=\"region\"\n\t\t\t\taria-labelledby=\"accordion-label-overview-of-the-safekit-kvm-solution\"\n\t\t\t\tid=\"accordion-content-overview-of-the-safekit-kvm-solution\"\n\t\t\t\tstyle=\"display: none;\"\t\t\t>\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<div id=\"pl-w8d0272ef\"  class=\"panel-layout\" ><div id=\"pg-w8d0272ef-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-w8d0272ef-0\" ><div id=\"pgc-w8d0272ef-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-w8d0272ef-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"0\" ><div class=\"panel-widget-style panel-widget-style-for-w8d0272ef-0-0-0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>The solution is described here: <strong><a href=\"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/\">Simple Linux KVM High Availability without Shared Storage<\/a><\/strong><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\t\"\n\t\t\t\tdata-anchor-id=\"installation-of-the-safekit-kvm-solution-on-linux-kvm-safe\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-installation-of-the-safekit-kvm-solution-on-linux-kvm-safe\" aria-controls=\"accordion-content-installation-of-the-safekit-kvm-solution-on-linux-kvm-safe\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h2>Installation of the SafeKit \/ KVM solution on Linux (kvm.safe)<\/h2>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"&#xf218;\"\n\t\t \n\t\taria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"&#xf209;\"\n\t\t \n\t\taria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div\n\t\t\t\tclass=\"sow-accordion-panel-content\"\n\t\t\t\trole=\"region\"\n\t\t\t\taria-labelledby=\"accordion-label-installation-of-the-safekit-kvm-solution-on-linux-kvm-safe\"\n\t\t\t\tid=\"accordion-content-installation-of-the-safekit-kvm-solution-on-linux-kvm-safe\"\n\t\t\t\tstyle=\"display: none;\"\t\t\t>\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<div id=\"pl-wcfeb7039\"  class=\"panel-layout\" ><div id=\"pg-wcfeb7039-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-wcfeb7039-0\" ><div id=\"pgc-wcfeb7039-0-0\"  class=\"panel-grid-cell panel-grid-cell-mobile-last\" ><div id=\"panel-wcfeb7039-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"0\" ><div class=\"panel-widget-style panel-widget-style-for-wcfeb7039-0-0-0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3 style=\"color: #0596ff;\">Prerequisites<\/h3>\n<ul>\n<li>You need KVM installed on 2 Linux nodes.<\/li>\n<li>You need your critical applications installed in one or more virtual machines.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><\/div><div id=\"pgc-wcfeb7039-0-1\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><\/div><div id=\"pg-wcfeb7039-1\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-wcfeb7039-1\" ><div id=\"pgc-wcfeb7039-1-0\"  class=\"panel-grid-cell\" ><div id=\"panel-wcfeb7039-1-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<div data-post-id=\"75934\" class=\"insert-page insert-page-75934 \"><div id=\"pl-75934\"  class=\"panel-layout\" ><div id=\"pg-75934-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-75934-0\" ><div id=\"pgc-75934-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-75934-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3 style=\"color: #0596ff;\">Package installation on Linux<\/h3>\n<ul>\n<li>\n<p>Install the free version of SafeKit on 2 Linux nodes. <\/p>\n<p>Note: the free trial includes all SafeKit features. At the end of the trial, you can activate permanent license keys without uninstalling the package.<\/p>\n<\/li>\n<li>\n<p>After the download of safekit_xx.bin package, execute it to extract the rpm and the safekitinstall script and then execute the <strong>safekitinstall<\/strong> script<\/p>\n<\/li>\n<li>\n<p>Answer <strong>yes<\/strong> to firewall automatic configuration<\/p>\n<\/li>\n<li>\n<p>Set the password for the web console and the default user <strong>admin<\/strong>.<\/p>\n<p><strong>Set the same password on all nodes.<\/strong><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-75934-0-1\"  class=\"panel-grid-cell\" ><div id=\"panel-75934-0-1-0\" class=\"so-panel widget widget_sow-button panel-first-child panel-last-child\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-button so-widget-sow-button-atom-f4c7bd33de2b-75934\"\n\t\t\t\n\t\t><div class=\"ow-button-base ow-button-align-center\"\n>\n\t\t\t<a\n\t\t\t\t\thref=\"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/safekit-free-trial\/\"\n\t\t\t\t\tclass=\"sowb-button ow-icon-placement-left ow-button-hover\" target=\"_blank\" rel=\"noopener noreferrer\" \t>\n\t\t<span>\n\t\t\t\n\t\t\tDownload SafeKit (Linux) &gt;\t\t<\/span>\n\t\t\t<\/a>\n\t<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-wcfeb7039-2\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-wcfeb7039-2-0\"  class=\"panel-grid-cell\" ><div id=\"panel-wcfeb7039-2-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"2\" ><div class=\"panel-widget-style panel-widget-style-for-wcfeb7039-2-0-0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<div data-post-id=\"236266\" class=\"insert-page insert-page-236266 \"><div id=\"pl-236266\"  class=\"panel-layout\" ><div id=\"pg-236266-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-236266-0\" ><div id=\"pgc-236266-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-236266-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3 style=\"color: #0596ff;\">Module installation on Linux<\/h3>\n<ul>\n<li>\n<p>Download the kvm.safe module.<\/p>\n<p>The module is free. It contains the files userconfig.xml and the restart scripts.<\/p>\n<\/li>\n<li>Put <strong>kvm.safe<\/strong> under <strong>\/opt\/safekit\/Application_Modules\/generic\/<\/strong>.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-236266-0-1\"  class=\"panel-grid-cell\" ><div id=\"panel-236266-0-1-0\" class=\"so-panel widget widget_sow-button panel-first-child panel-last-child\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-button so-widget-sow-button-atom-6a35e817fdb8-236266\"\n\t\t\t\n\t\t><div class=\"ow-button-base ow-button-align-center\"\n>\n\t\t\t<a\n\t\t\t\t\thref=\"\/safekit\/downloads\/modules_linux\/kvm.safe\"\n\t\t\t\t\tclass=\"sowb-button ow-icon-placement-left ow-button-hover\" download=\"\" \t>\n\t\t<span>\n\t\t\t\n\t\t\tDownload kvm.safe (Linux) &gt;\t\t<\/span>\n\t\t\t<\/a>\n\t<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<div class=\"sow-accordion-panel\n\t\t\t\t\t\"\n\t\t\t\tdata-anchor-id=\"step-by-step-configuration-of-the-safekit-kvm-solution\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header-container\" role=\"heading\" aria-level=\"2\">\n\t\t\t\t\t<div class=\"sow-accordion-panel-header\" tabindex=\"0\" role=\"button\" id=\"accordion-label-step-by-step-configuration-of-the-safekit-kvm-solution\" aria-controls=\"accordion-content-step-by-step-configuration-of-the-safekit-kvm-solution\" aria-expanded=\"false\">\n\t\t\t\t\t\t<div class=\"sow-accordion-title sow-accordion-title-icon-left\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h2>Step by step configuration of the SafeKit \/ KVM solution<\/h2>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"sow-accordion-open-close-button\">\n\t\t\t\t\t\t\t<div class=\"sow-accordion-open-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"&#xf218;\"\n\t\t \n\t\taria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"sow-accordion-close-button\">\n\t\t\t\t\t\t\t\t<span class=\"sow-icon-ionicons\" data-sow-icon=\"&#xf209;\"\n\t\t \n\t\taria-hidden=\"true\"><\/span>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div\n\t\t\t\tclass=\"sow-accordion-panel-content\"\n\t\t\t\trole=\"region\"\n\t\t\t\taria-labelledby=\"accordion-label-step-by-step-configuration-of-the-safekit-kvm-solution\"\n\t\t\t\tid=\"accordion-content-step-by-step-configuration-of-the-safekit-kvm-solution\"\n\t\t\t\tstyle=\"display: none;\"\t\t\t>\n\t\t\t\t<div class=\"sow-accordion-panel-border\">\n\t\t\t\t\t<div data-post-id=\"235992\" class=\"insert-page insert-page-235992 \"><div id=\"pl-235992\"  class=\"panel-layout\" ><div id=\"pg-235992-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-0\" ><div id=\"pgc-235992-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<div style=\"display: inline-block; vertical-align: top; width: 6%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/warning-small.png.webp\" alt=\"Warning\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 93%;\">\n<p>The KVM configuration is presented with a virtual machine named <code>VM1<\/code> and containing the application to restart in case of failure.<\/p>\n<p>You will have to repeat this configuration for all VMs that you want to replicate and to restart. SafeKit supports up to 32 virtual machines.<\/p>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-1\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-1\" ><div id=\"pgc-235992-1-0\"  class=\"panel-grid-cell panel-grid-cell-mobile-last\" ><div id=\"panel-235992-1-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3><a name=\"prerequisite\"><\/a>1. Prerequisites<\/h3>\n<p>\nThe VM1 virtual machine image is in the file <code>\/var\/lib\/libvirt\/images\/vm1.qcow2<\/code>. Before configuring SafeKit, you must perform the following configuration to place the virtual machine in a vm1-specific directory that will be replicated by SafeKit.\n<\/p>\n<p>\nOn node 1:\n<\/p>\n<ul>\n<li>\n<p>Stop vm1:<\/p>\n<pre><code>virsh shutdown vm1<\/code><\/pre>\n<\/li>\n<li>\n<p>Create a <code>vm1\/<\/code> directory:<\/p>\n<pre><code>mkdir -p \/var\/lib\/libvirt\/images\/vm1\/<\/code><\/pre>\n<\/li>\n<li>\n<p>Copy the vm1 image to the new location:<\/p>\n<pre><code>cp -a \/var\/lib\/libvirt\/images\/vm1.qcow2 \/var\/lib\/libvirt\/images\/vm1\/<\/code><\/pre>\n<p>The original vm1 image can be deleted as soon as tests with the new location are successfull.<\/p>\n<\/li>\n<li>\n<p>Edit the vm1 configuration file:<\/p>\n<pre><code>EDITOR=vi virsh edit vm1<\/code><\/pre>\n<p>And change the line:<\/p>\n<pre><code>&lt;source file='\/var\/lib\/libvirt\/images\/vm1.qcow2'&gt;<\/code><\/pre>\n<p>by :<\/p>\n<pre><code>&lt;source file='\/var\/lib\/libvirt\/images\/vm1\/vm1.qcow2'&gt;<\/code><\/pre>\n<\/li>\n<li>\n<p>Set the <a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/kvm-2.png.webp\" target=\"_blank\" rel=\"noopener\">cache option to 'none'<\/a> in the same file, for data integrity in case of crash:<\/p>\n<pre><code>&lt;disk type='file' device='disk'&gt; &lt;driver name='qemu' type=\u2019qcow2\u2019 <strong>cache='none'<\/strong>\/&gt;<\/code><\/pre>\n<\/li>\n<li>\n<p>Close the vm1 configuration file<\/p>\n<\/li>\n<li>\n<p>Disable <a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/kvm-3.png.webp\" target=\"_blank\" rel=\"noopener\">vm1 automatic start<\/a>:<\/p>\n<pre><code>virsh autostart vm1 --disable<\/code><\/pre>\n<\/li>\n<li>\n<p>Create a <code>vm1.xml<\/code> configuration file for vm1: <\/p>\n<pre><code>virsh dumpxml vm1 &gt; vm1.xml<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>On node 2:<\/p>\n<ul>\n<li>\n<p>Copy the <code>vm1.xml<\/code> configuration file from node 1.<\/p>\n<p>Note: whenever vm1 configuration is changed on node 1, you must reapply the new configuration on node 2.<\/p>\n<\/li>\n<li>\n<p>Create vm1 but do not start it:<\/p>\n<pre><code>virsh define vm1.xml<\/code><\/pre>\n<\/li>\n<li>\n<p>Disable vm1 automatic start:<\/p>\n<pre><code>virsh autostart vm1 --disable<\/code><\/pre>\n<\/li>\n<li>\n<p>Create the directory for the image location:<\/p>\n<pre><code>mkdir -p \/var\/lib\/libvirt\/images\/vm1\/<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-1-1\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><\/div><div id=\"pg-235992-2\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-2\" ><div id=\"pgc-235992-2-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-2-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"2\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>2. Launch the SafeKit console<\/h3>\n<ul>\n<li>Launch the web console in a browser on one cluster node by connecting to <code>http:\/\/localhost:9010<\/code>.<\/li>\n<li>Enter <code>admin<\/code> as user name and the password defined during installation.<\/li>\n<\/ul>\n<p>You can also run the console in a browser on a workstation external to the cluster.<\/p>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 6%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/warning-small.png.webp\" alt=\"Warning\" style=\"vertical-align:bottom;\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 93%;\">\n<p>The configuration of SafeKit is done on both nodes from a single browser.<\/p>\n<\/div>\n<\/div>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 6%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/note.png.webp\" alt=\"Note\" style=\"vertical-align:bottom;\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 93%;\">\n<p>To secure the web console, see <a href=\"\/safekit\/downloads\/version-82\/safekituserguidehtml\/userguide.html.en.htm#Https\" target=\"_blank \" rel=\"noopener\">11. Securing the SafeKit web service<\/a> in the User's Guide.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-2-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-2-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"3\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/01-login-large.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/01-login-large.png.webp\" alt=\"Start the SafeKit web console to configure the KVM cluster\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-3\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-3\" ><div id=\"pgc-235992-3-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-3-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"4\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>3. Configure node addresses<\/h3>\n<ul>\n<li>Enter the node IP addresses, press the Tab key to check connectivity and fill node names.<\/li>\n<li>Then, click on <code>Save and apply<\/code> to save the configuration.<\/li>\n<\/ul>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/warning-small.png.webp\" alt=\"Warning\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>If either node1 or node2 has a red color, check connectivity of the browser to both nodes and check firewall on both nodes for <a href=\"\/safekit\/downloads\/version-82\/safekituserguidehtml\/userguide.html.en.htm#Troubleshooting\" target=\"_blank\" rel=\"noopener\">troubleshooting<\/a>.<\/p>\n<\/div>\n<\/div>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" style=\"vertical-align: bottom;\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/note.png.webp\" alt=\"Note\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>If you want, you can add a new LAN for a second heartbeat and for a dedicated replication network.<\/p>\n<\/div>\n<\/div>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" style=\"vertical-align: bottom;\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/note.png.webp\" alt=\"Note\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>This operation will place the IP addresses in the <code>cluster.xml<\/code> file on both nodes (more information in the <a href=\"#training\">training<\/a> with the command line).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-3-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-3-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"5\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/02-cluster-edit.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/02-cluster-edit.png.webp\" alt=\"Enter the nodes of the KVM cluster\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-4\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-4\" ><div id=\"pgc-235992-4-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-4-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"6\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>4. Select a module<\/h3>\n<ul>\n<li>In <code>New module<\/code>, click on the <code>kvm.safe<\/code> module.<\/li>\n<\/ul>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/note.png.webp\" alt=\"Note\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>The console finds xxx.safe in the Application_Modules\/generic\/ directory on the server side if you dropped a module there during installation.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-4-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-4-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"7\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/04-module-new.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/04-module-new.png.webp\" alt=\"Choose the module for KVM\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-5\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-5\" ><div id=\"pgc-235992-5-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-5-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"8\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>5. Configure the module<\/h3>\n<ul>\n<li>Choose an <code>Automatic<\/code> start of the module at boot without delay.<\/li>\n<li>Normally, you have a single <code>Heartbeat<\/code> network on which the replication is made. But, you can define a private network if necessary (by adding a LAN at step 3).<\/li>\n<li>Put in <code>VM_PATH<\/code>, the root path of the replicated directory (<code>\/var\/lib\/libvirt\/images<\/code>).<\/li>\n<li>Enter in <code>VM_NAME<\/code>, the name of the virtual machine (<code>vm1<\/code>).<\/li>\n<\/ul>\n<p>We assume that the VM1 files are in <code>\/var\/lib\/libvirt\/image\/vm1\/<\/code> (see <a href=\"#prerequisite\">prerequisites<\/a>). This directory will be replicated in real-time by SafeKit.<\/p>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/note.png.webp\" alt=\"Note\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>You do not need to configure a virtual IP address. VM1 will be rebooted on the secondary KVM with its physical IP address, and this IP address will be rerouted.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-5-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-5-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"9\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/21-module-kvm-edit-config-1.png.webp\" target=\"_blank\" rel=\"noopener\"><br \/>\n<img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/21-module-kvm-edit-config-1.png.webp\" alt=\"Enter the KVM parameters\" \/><br \/>\n<\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-6\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-6\" ><div id=\"pgc-235992-6-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-6-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"10\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>6. Custom checker to detect VM malfunction<\/h3>\n<p>The custom checker checks if the VM is running (with the 'virsh domstate' command). If the VM is not running, the custom checker automatically restarts the VM on the same KVM node or on the other.<\/p>\n<ul>\n<li>Click on <code>Checkers \/ Custom<\/code> (see image).<\/li>\n<li><code>Resource name<\/code> identifies the virtual machine with a resource name in SafeKit: <code>custom.VM_NAME_check<\/code>.<\/li>\n<li>With <code>restart<\/code> in <code>Action<\/code>, the VM is restarted on the same KVM node. After 3 unsuccessful restarts in 24 hours, the SafeKit kvm module stops on the primary node and there is a failover of the VM on the secondary node.<\/li>\n<li>If you set <code>stopstart<\/code> in <code>Action<\/code>, there is a direct failover on the other KVM node as soon as the VM is not running.<\/li>\n<\/ul>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/note.png.webp\" alt=\"Note\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>For maintenance, if you want to stop the virtual machine, the custom checker will restart it automatically. To avoid that, you can temporarly <a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/04\/safekit-disable-checkers.png.webp\" target=\"_blank\" rel=\"noopener\">suspend the checker<\/a>. Or you can remove it by deleting the configuration line in the console.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-6-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-6-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"11\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/12\/custom-kvm-checker-2.png.webp\" target=\"_blank\" rel=\"noopener\"><br \/>\n<img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/12\/custom-kvm-checker-2.png.webp\" alt=\"Enter the KVM custom checker parameters\" \/><br \/>\n<\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-7\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-7\" ><div id=\"pgc-235992-7-0\"  class=\"panel-grid-cell panel-grid-cell-mobile-last\" ><div id=\"panel-235992-7-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"12\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>7. Edit scripts (optional)<\/h3>\n<ul>\n<li>Do not edit scripts.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-7-1\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><\/div><div id=\"pg-235992-8\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-8\" ><div id=\"pgc-235992-8-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-8-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"13\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>8. Communication encryption (optional)<\/h3>\n<ul>\n<li>Keep encryption of communication between nodes.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-8-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-8-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"14\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/07-module-encryption.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/07-module-encryption.png.webp\" alt=\"Communication encryption of the KVM module\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-9\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-9\" ><div id=\"pgc-235992-9-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-9-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"15\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>9. Save and apply<\/h3>\n<ul>\n<li><code>Save and apply<\/code> the configuration and scripts on both nodes.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-9-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-9-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"16\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/08-module-save.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/08-module-save.png.webp\" alt=\"Save and apply the KVM module configuration\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-10\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-10\" ><div id=\"pgc-235992-10-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-10-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"17\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>10. Verify successful configuration<\/h3>\n<ul>\n<li>Check the <code>Success<\/code> message (green) on both nodes and click on <code>Monitor modules<\/code>.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-10-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-10-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"18\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/09-module-save-check.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/09-module-save-check.png.webp\" alt=\"Check the KVM module configuration success\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-11\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-11\" ><div id=\"pgc-235992-11-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-11-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"19\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>11. Start the node with up-to-date data<\/h3>\n<ul>\n<li>If node 1 has the up-to-date replicated directory for <code>vm1\/<\/code>, select it and start it <code>As primary<\/code>.<\/li>\n<\/ul>\n<p>When node 2 will be started, all data will be copied from node 1 to node 2.<\/p>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/warning-small.png.webp\" alt=\"Warning\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>If you make the wrong choice, you run the risk of synchronizing outdated data on both nodes.<\/p>\n<\/div>\n<\/div>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/warning-small.png.webp\" alt=\"Warning\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>It is also assumed that <code>VM1<\/code> is stopped on node 1 so that SafeKit installs the replication mechanisms and then starts <code>VM1<\/code> in the <code>start_prim<\/code> script.<\/p>\n<\/div>\n<\/div>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/warning-small.png.webp\" alt=\"Warning\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>Use <code>Start<\/code> for subsequent starts: SafeKit retains the most up-to-date server. Starting <code>As primary<\/code> is a special start-up the first time or during exceptional operations.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-11-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-11-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"20\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/10-monitoring-mirror-stop-stop-prim.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/10-monitoring-mirror-stop-stop-prim.png.webp\" alt=\"Start as primary the KVM node with the up-to-date data\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-12\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-12\" ><div id=\"pgc-235992-12-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-12-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"21\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>12. Wait for the transition to ALONE (green)<\/h3>\n<ul>\n<li>Node 1 should reach the ALONE (green) state, which means that the <code>start_prim<\/code> script has been executed on node 1.<\/li>\n<\/ul>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/warning-small.png.webp\" alt=\"Warning\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>If ALONE (green) is not reached or if VM1 is not started, <a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/24-module-log-script.png.webp\" target=\"_blank\" rel=\"noopener\">analyze why with the module log of node 1<\/a>.<\/p>\n<ul>\n<li>click the \"log\" icon of <code>node1<\/code> to open the module log and look for error messages such as a checker detecting an error and stopping the module.<\/li>\n<li>click on <code>start_prim<\/code> in the log: output messages of the script are displayed on the right and errors can be detected such as VM1 incorrectly started.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/warning-small.png.webp\" alt=\"Warning\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>If the cluster is in <code>WAIT (red) not uptodate, STOP (red) not uptodate<\/code> state, stop the WAIT node and <a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/10-monitoring-mirror-stop-stop-prim.png.webp\" target=\"_blank\" rel=\"noopener\">force its start as primary<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-12-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-12-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"22\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/12-monitoring-alone-stop.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/12-monitoring-alone-stop.png.webp\" alt=\"The first KVM node starts as primary and becomes ALONE\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-13\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-13\" ><div id=\"pgc-235992-13-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-13-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"23\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>13. Start node 2<\/h3>\n<ul>\n<li>Start node 2 with its contextual menu.<\/li>\n<li>Wait for the SECOND (green) state.<\/li>\n<\/ul>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/note.png.webp\" alt=\"Note\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>Node 2 stays in the SECOND (orange) state while resynchronizing the replicated directories (copy from node 1 to node 2).<\/p>\n<p>This may take a while depending on the size of files to resynchronize in replicated directories and the network bandwidth.<\/p>\n<p>To see the progress of the copy, see the <a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/27-module-log-reintegration.png.webp\" target=\"_blank\" rel=\"noopener\">module log<\/a> and the <a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/26-replication-resources-reintegration.png.webp\" target=\"_blank\" rel=\"noopener\">replication resources<\/a> of node 2.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-13-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-13-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"24\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/13-monitoring-alone-stop-start.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/13-monitoring-alone-stop-start.png.webp\" alt=\"Start the KVM node 2\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-14\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-14\" ><div id=\"pgc-235992-14-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-14-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"25\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>14. Verify that the cluster is operational<\/h3>\n<ul>\n<li>Check that the cluster is green\/green with <code>VM1<\/code> running on the PRIM node and not running on the SECOND node.<\/li>\n<\/ul>\n<p>Only changes inside files are replicated in real time in this state.<\/p>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-14-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-14-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"26\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/14-monitoring-prim-second.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/14-monitoring-prim-second.png.webp\" alt=\"The KVM node 2 is SECOND (green)\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-15\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-15\" ><div id=\"pgc-235992-15-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-15-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"27\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>15. Testing<\/h3>\n<ul>\n<li>Stop the PRIM node by scrolling down its contextual menu and clicking <code>Stop<\/code>.<\/li>\n<li>Verify that there is a failover on the SECOND node which should become ALONE (green).<\/li>\n<li>Check with KVM tools that <code>VM1<\/code> is running on node 2.<\/li>\n<\/ul>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/warning-small.png.webp\" alt=\"Warning\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>If ALONE (green) is not reached on node2 or if VM1 is not started, <a href=\"\/wp-content\/uploads\/2024\/03\/38-module-log-script-second.png\" target=\"_blank\" rel=\"noopener\">analyze why with the module log of node 2<\/a>.<\/p>\n<ul>\n<li>click the \"log\" icon of <code>node2<\/code> to open the module log and look for error messages such as a checker detecting an error and stopping the module.<\/li>\n<li>click on <code>start_prim<\/code> in the log: output messages of the script are displayed on the right and errors can be detected such as VM1 incorrectly started.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 7%;\">\n<p><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/warning-small.png.webp\" alt=\"Warning\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 92%;\">\n<p>If everything is okay, initiate a start on node1, which will resynchronize the replicated directories from node2.<\/p>\n<p>If things go wrong, stop node2 and <a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/10-monitoring-mirror-stop-stop-prim.png.webp\" target=\"_blank\" rel=\"noopener\">force the start as primary<\/a> of node1, which will restart with its locally healthy data at the time of the stop.<\/p>\n<\/div>\n<\/div>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 6%;\">\n<p><img decoding=\"async\" style=\"vertical-align: bottom;\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/note.png.webp\" alt=\"Note\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 93%;\">\n<p><a href=\"\/safekit\/downloads\/version-82\/safekituserguidehtml\/userguide.html.en.htm#Tests\" target=\"_blank\" rel=\"noopener\">More information on tests in the User's Guide.<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-15-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-15-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"28\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/16-monitoring-prim-second-stop.png.webp\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/16-monitoring-prim-second-stop.png.webp\" alt=\"Stop the KVM module on the PRIM server\" \/><\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-16\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-16\" ><div id=\"pgc-235992-16-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-16-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"29\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>16. Replicating snapshots<\/h3>\n<p>The directory that contains the snapshot xml files is:<\/p>\n<pre><code class=\"dos hljs\">\/var\/lib\/libvirt\/qemu\/snapshot\/%VM_NAME%<\/code><\/pre>\n<p>where <code>VM_NAME<\/code> is the name of the virtual machine (vm1).<\/p>\n<p>Note: If no snapshot has been created, create one to generate the directory (else the SafeKit configuration will fail).<\/p>\n<p>To replicate it:<\/p>\n<ul>\n<li>In the module configuration, click on <code>Advanced Configuration<\/code> (see image) to edit <code>userconfig.xml<\/code>.<\/li>\n<li>Insert the lines below into the <code>&lt;rfs&gt;<\/code> section of userconfig.xml:\n<pre><code class=\"dos hljs\">&lt;replicated dir=\"\/var\/lib\/libvirt\/qemu\/snapshot\/%VM_NAME%\" mode=\"read_only\"&gt; &lt;\/replicated&gt;<\/code><\/pre>\n<\/li>\n<li><code>Save and apply<\/code> the new configuration to redeploy the modified userconfig.xml file on both nodes (module must be stopped on both nodes to save and apply).<\/li>\n<li>Create snapshots on the PRIM node either through virt-manager or a command line:\n<pre><code class=\"dos hljs\">virsh snapshot-create-as vm1 snapshot-name<\/code><\/pre>\n<p>Note: when creating a snapshot with a command line, you have to refresh the snapshot view into virt-manager.<\/li>\n<\/ul>\n<p>Snapshots created on the PRIM node are operationnal on node 2 after failover, but not listed on node 2.<\/p>\n<ul>\n<li>For importing a snapshot on node 2, you have to run the command:\n<pre><code class=\"dos hljs\">virsh snapshot-create --redefine vm1 \/var\/lib\/libvirt\/qemu\/snapshot\/vm1\/snapshot-name<\/code><\/pre>\n<\/li>\n<li>The command line for listing all snapshots of vm1 is:\n<pre><code class=\"dos hljs\">virsh snapshot-list vm1<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-16-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-16-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"30\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/21-module-kvm-edit-config-1.png.webp\" target=\"_blank\" rel=\"noopener\"><br \/>\n<img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/21-module-kvm-edit-config-1.png.webp\" alt=\"Enter the KVM parameters\" \/><br \/>\n<\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-17\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-17\" ><div id=\"pgc-235992-17-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-17-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"31\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>17. Support<\/h3>\n<ul>\n<li>For getting support, take 2 SafeKit <code>Snapshots<\/code> (2 .zip files), one for each node.<\/li>\n<\/ul>\n<div>\n<div style=\"display: inline-block; vertical-align: top; width: 6%;\">\n<p><img decoding=\"async\" style=\"vertical-align: bottom;\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2022\/07\/note.png.webp\" alt=\"Note\" \/><\/p>\n<\/div>\n<div style=\"display: inline-block; width: 93%;\">\n<p><a href=\"\/products\/high-availability-software-for-application-clustering\/safekit-user-guide-82\/#Troubleshooting\" target=\"_blank\" rel=\"noopener\">Troubleshooting in the User's Guide.<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-17-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-17-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"32\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/30-snapshots-mirror.png.webp\" target=\"_blank\" rel=\"noopener\"><br \/>\n<img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/30-snapshots-mirror.png.webp\" alt=\"Take the KVM snaphots for support\" \/><br \/>\n<\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-18\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-18\" ><div id=\"pgc-235992-18-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-18-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"33\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3>18. If necessary, configure a splitbrain checker<\/h3>\n<ul>\n<li>See below <a href=\"#isolation\">\"What are the different scenarios in case of network isolation in a cluster?\"<\/a> to know if you need to configure a splitbrain checker.<\/li>\n<li>Go to the module configuration and click on <code>Checkers \/ Splitbrain<\/code> (see image) to edit the splitbrain parameters.<\/li>\n<li><code>Save and apply<\/code> the new configuration to redeploy it on both nodes (module must be stopped on both nodes to save and apply).<\/li>\n<\/ul>\n<p><strong>Parameters<\/strong>:<\/p>\n<ul>\n<li><code>Resource name<\/code> identifies the witness with a resource name: <code>splitbrain.witness<\/code>. You can change this value to identify the witness.<\/li>\n<li><code>Witness address<\/code> is the argument for a ping when a node goes from PRIM to ALONE or from SECOND to ALONE. Change this value with the IP of the witness (a robust element, typically a router).<\/li>\n<li>Note: you can set several IPs separated by white spaces. Pay attention that the IP addresses must be accessible from one node but not from the other in the event of network isolation.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-235992-18-1\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-18-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"34\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p><a href=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/03\/19-module-hyperv-edit-config-1.png.webp\" target=\"_blank\" rel=\"noopener\"><br \/>\n<img decoding=\"async\" class=\"aligncenter\" title=\"View full size\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2024\/04\/safekit-split-brain-checker.png.webp\" alt=\"Enter the KVM splitbrain parameters\" \/><br \/>\n<\/a><\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-235992-19\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-235992-19\" ><div id=\"pgc-235992-19-0\"  class=\"panel-grid-cell\" ><div id=\"panel-235992-19-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"35\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<div data-post-id=\"232468\" class=\"insert-page insert-page-232468 \"><div id=\"pl-232468\"  class=\"panel-layout\" ><div id=\"pg-232468-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-232468-0\" ><div id=\"pgc-232468-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-232468-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h2><a name=\"isolation\"><\/a>What are the different scenarios in case of network isolation in a cluster?<\/h2>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-232468-1\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-232468-1\" ><div id=\"pgc-232468-1-0\"  class=\"panel-grid-cell\" ><div id=\"panel-232468-1-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3 style=\"text-align: center;\">A single network<\/h3>\n<\/div>\n<\/div><\/div><div id=\"panel-232468-1-0-1\" class=\"so-panel widget widget_sow-hero\" data-index=\"2\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-hero so-widget-sow-hero-default-03fb85345dee-232468 so-widget-fittext-wrapper\"\n\t\t\t data-fit-text-compressor=\"0.85\"\n\t\t>\t\t\t\t<div class=\"sow-slider-base\" style=\"display: none\" tabindex=\"0\">\n\t\t\t\t\t<ul\n\t\t\t\t\tclass=\"sow-slider-images\"\n\t\t\t\t\tdata-settings=\"{&quot;pagination&quot;:true,&quot;speed&quot;:500,&quot;timeout&quot;:2000,&quot;paused&quot;:true,&quot;pause_on_hover&quot;:false,&quot;swipe&quot;:true,&quot;nav_always_show_desktop&quot;:true,&quot;nav_always_show_mobile&quot;:true,&quot;breakpoint&quot;:&quot;780px&quot;,&quot;unmute&quot;:false,&quot;anchor&quot;:null}\"\n\t\t\t\t\t\t\t\t\t\tdata-anchor-id=\"\"\n\t\t\t\t>\t\t<li class=\"sow-slider-image\" style=\"visibility: visible;\" >\n\t\t\t\t\t<div class=\"sow-slider-image-container\">\n\t\t\t<div class=\"sow-slider-image-wrapper\">\n\t\t\t\t<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2023\/02\/safekit-prim-second-300.png.webp\" width=\"300\" height=\"169\" alt=\"SafeKit primary secondary\" \/><\/p>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t\t\t<li class=\"sow-slider-image\" style=\"visibility: hidden;\" >\n\t\t\t\t\t<div class=\"sow-slider-image-container\">\n\t\t\t<div class=\"sow-slider-image-wrapper\">\n\t\t\t\t<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2023\/02\/safekit-alone-alone-300.png.webp\" width=\"300\" height=\"169\" alt=\"SafeKit alone alone\" \/><\/p>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t<\/ul>\t\t\t\t<ol class=\"sow-slider-pagination\">\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#\" data-goto=\"0\" aria-label=\"Display slide 1\"><\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#\" data-goto=\"1\" aria-label=\"Display slide 2\"><\/a><\/li>\n\t\t\t\t\t\t\t\t\t<\/ol>\n\n\t\t\t\t<div class=\"sow-slide-nav sow-slide-nav-next\">\n\t\t\t\t\t<a href=\"#\" data-goto=\"next\" aria-label=\"Next slide\" data-action=\"next\">\n\t\t\t\t\t\t<em class=\"sow-sld-icon-thick-right\"><\/em>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"sow-slide-nav sow-slide-nav-prev\">\n\t\t\t\t\t<a href=\"#\" data-goto=\"previous\" aria-label=\"Previous slide\" data-action=\"prev\">\n\t\t\t\t\t\t<em class=\"sow-sld-icon-thick-left\"><\/em>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/div><\/div><div id=\"panel-232468-1-0-2\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"3\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>When there is a network isolation, the default behavior is:<\/p>\n<ul>\n<li>as heartbeats are lost for each node, each node goes to ALONE and runs the application with its virtual IP address (double execution of the application modifying its local data),<\/li>\n<li>when the isolation is repaired, one ALONE node is forced to stop and to resynchronize its data from the other node,<\/li>\n<li>at the end the cluster is PRIM-SECOND (or SECOND-PRIM according the duplicate virtual IP address detection made by Windows).<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-232468-1-1\"  class=\"panel-grid-cell\" ><div id=\"panel-232468-1-1-0\" class=\"so-panel widget widget_sow-editor panel-first-child\" data-index=\"4\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3 style=\"text-align: center;\">Two networks with a dedicated replication network<\/h3>\n<\/div>\n<\/div><\/div><div id=\"panel-232468-1-1-1\" class=\"so-panel widget widget_sow-hero\" data-index=\"5\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-hero so-widget-sow-hero-default-03fb85345dee-232468 so-widget-fittext-wrapper\"\n\t\t\t data-fit-text-compressor=\"0.85\"\n\t\t>\t\t\t\t<div class=\"sow-slider-base\" style=\"display: none\" tabindex=\"0\">\n\t\t\t\t\t<ul\n\t\t\t\t\tclass=\"sow-slider-images\"\n\t\t\t\t\tdata-settings=\"{&quot;pagination&quot;:true,&quot;speed&quot;:500,&quot;timeout&quot;:2000,&quot;paused&quot;:true,&quot;pause_on_hover&quot;:false,&quot;swipe&quot;:true,&quot;nav_always_show_desktop&quot;:true,&quot;nav_always_show_mobile&quot;:true,&quot;breakpoint&quot;:&quot;780px&quot;,&quot;unmute&quot;:false,&quot;anchor&quot;:null}\"\n\t\t\t\t\t\t\t\t\t\tdata-anchor-id=\"\"\n\t\t\t\t>\t\t<li class=\"sow-slider-image\" style=\"visibility: visible;\" >\n\t\t\t\t\t<div class=\"sow-slider-image-container\">\n\t\t\t<div class=\"sow-slider-image-wrapper\">\n\t\t\t\t<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2023\/02\/safekit-prim-second-300.png.webp\" width=\"300\" height=\"169\" alt=\"SafeKit primary secondary\" \/><\/p>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t\t\t<li class=\"sow-slider-image\" style=\"visibility: hidden;\" >\n\t\t\t\t\t<div class=\"sow-slider-image-container\">\n\t\t\t<div class=\"sow-slider-image-wrapper\">\n\t\t\t\t<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2023\/02\/safekit-prim-second-300.png.webp\" width=\"300\" height=\"169\" alt=\"SafeKit failover\" \/><\/p>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t<\/ul>\t\t\t\t<ol class=\"sow-slider-pagination\">\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#\" data-goto=\"0\" aria-label=\"Display slide 1\"><\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#\" data-goto=\"1\" aria-label=\"Display slide 2\"><\/a><\/li>\n\t\t\t\t\t\t\t\t\t<\/ol>\n\n\t\t\t\t<div class=\"sow-slide-nav sow-slide-nav-next\">\n\t\t\t\t\t<a href=\"#\" data-goto=\"next\" aria-label=\"Next slide\" data-action=\"next\">\n\t\t\t\t\t\t<em class=\"sow-sld-icon-thick-right\"><\/em>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"sow-slide-nav sow-slide-nav-prev\">\n\t\t\t\t\t<a href=\"#\" data-goto=\"previous\" aria-label=\"Previous slide\" data-action=\"prev\">\n\t\t\t\t\t\t<em class=\"sow-sld-icon-thick-left\"><\/em>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/div><\/div><div id=\"panel-232468-1-1-2\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"6\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>When there is a network isolation, the behavior with a dedicated replication network is:<\/p>\n<ul>\n<li>a dedicated replication network is implemented on a private network,<\/li>\n<li>heartbeats on the production network are lost (isolated network),<\/li>\n<li>heartbeats on the replication network are working (not isolated network),<\/li>\n<li>the cluster stays in PRIM\/SECOND state.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><div id=\"pgc-232468-1-2\"  class=\"panel-grid-cell\" ><div id=\"panel-232468-1-2-0\" class=\"so-panel widget widget_sow-editor panel-first-child\" data-index=\"7\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h3 style=\"text-align: center;\">A single network and a splitbrain checker<\/h3>\n<\/div>\n<\/div><\/div><div id=\"panel-232468-1-2-1\" class=\"so-panel widget widget_sow-hero\" data-index=\"8\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-hero so-widget-sow-hero-default-03fb85345dee-232468 so-widget-fittext-wrapper\"\n\t\t\t data-fit-text-compressor=\"0.85\"\n\t\t>\t\t\t\t<div class=\"sow-slider-base\" style=\"display: none\" tabindex=\"0\">\n\t\t\t\t\t<ul\n\t\t\t\t\tclass=\"sow-slider-images\"\n\t\t\t\t\tdata-settings=\"{&quot;pagination&quot;:true,&quot;speed&quot;:500,&quot;timeout&quot;:2000,&quot;paused&quot;:true,&quot;pause_on_hover&quot;:false,&quot;swipe&quot;:true,&quot;nav_always_show_desktop&quot;:true,&quot;nav_always_show_mobile&quot;:true,&quot;breakpoint&quot;:&quot;780px&quot;,&quot;unmute&quot;:false,&quot;anchor&quot;:null}\"\n\t\t\t\t\t\t\t\t\t\tdata-anchor-id=\"\"\n\t\t\t\t>\t\t<li class=\"sow-slider-image\" style=\"visibility: visible;\" >\n\t\t\t\t\t<div class=\"sow-slider-image-container\">\n\t\t\t<div class=\"sow-slider-image-wrapper\">\n\t\t\t\t<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2023\/02\/safekit-prim-second-300.png.webp\" width=\"300\" height=\"169\" alt=\"SafeKit primary secondary\" \/><\/p>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t\t\t<li class=\"sow-slider-image\" style=\"visibility: hidden;\" >\n\t\t\t\t\t<div class=\"sow-slider-image-container\">\n\t\t\t<div class=\"sow-slider-image-wrapper\">\n\t\t\t\t<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/www.evidian.com\/wp-content\/smush-webp\/2023\/02\/safekit-alone-wait-300.png.webp\" width=\"300\" height=\"169\" alt=\"SafeKit alone wait\" \/><\/p>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<\/li>\n\t\t<\/ul>\t\t\t\t<ol class=\"sow-slider-pagination\">\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#\" data-goto=\"0\" aria-label=\"Display slide 1\"><\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t<li><a href=\"#\" data-goto=\"1\" aria-label=\"Display slide 2\"><\/a><\/li>\n\t\t\t\t\t\t\t\t\t<\/ol>\n\n\t\t\t\t<div class=\"sow-slide-nav sow-slide-nav-next\">\n\t\t\t\t\t<a href=\"#\" data-goto=\"next\" aria-label=\"Next slide\" data-action=\"next\">\n\t\t\t\t\t\t<em class=\"sow-sld-icon-thick-right\"><\/em>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"sow-slide-nav sow-slide-nav-prev\">\n\t\t\t\t\t<a href=\"#\" data-goto=\"previous\" aria-label=\"Previous slide\" data-action=\"prev\">\n\t\t\t\t\t\t<em class=\"sow-sld-icon-thick-left\"><\/em>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/div><\/div><div id=\"panel-232468-1-2-2\" class=\"so-panel widget widget_sow-editor panel-last-child\" data-index=\"9\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<p>When there is a network isolation, the behavior with a split-brain checker is:<\/p>\n<ul>\n<li>a split-brain checker has been configured with the IP address of a witness (typically a router),<\/li>\n<li>the split-brain checker operates when a server goes from PRIM to ALONE or from SECOND to ALONE,<\/li>\n<li>in case of network isolation, before going to ALONE, both nodes test the IP address,<\/li>\n<li>the node which can access the IP address goes to ALONE, the other one goes to WAIT,<\/li>\n<li>when the isolation is repaired, the WAIT node resynchronizes its data and becomes SECOND.<\/li>\n<\/ul>\n<p>Note: If the witness is down or disconnected, both nodes go to WAIT and the application is no more running. That's why you must choose a robust witness like a router.<\/p>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-238660-4\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-238660-4\" ><div id=\"pgc-238660-4-0\"  class=\"panel-grid-cell\" ><div id=\"panel-238660-4-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"4\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<div data-post-id=\"246517\" class=\"insert-page insert-page-246517 \"><div id=\"pl-246517\"  class=\"panel-layout\" ><div id=\"pg-246517-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-246517-0\" ><div id=\"pgc-246517-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-246517-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<article>\n<header>\n<h2 id=\"hub\">\ud83d\udd0d SafeKit High Availability Navigation Hub<\/h2>\n<\/header>\n<div class=\"table-container-mobile\">\n<table class=\"border vertical-middle\">\n<caption>Explore SafeKit: Features, technical videos, documentation, and free trial<\/caption>\n<thead>\n<tr>\n<th scope=\"col\">Resource Type<\/th>\n<th scope=\"col\">Description<\/th>\n<th scope=\"col\">Direct Link<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th scope=\"row\"><strong>Key Features<\/strong><\/th>\n<td>Why Choose SafeKit for Simple and Cost-Effective High Availability?<\/td>\n<td>\n        <a href=\"\/products\/high-availability-software-for-application-clustering\/#why-choose-safekit-for-ha\" title=\"Discover SafeKit features for simple and cost-effective high availability\">See Why Choose SafeKit for High Availability<\/a>\n    <\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><strong>Deployment Model<\/strong><\/th>\n<td>All-in-One SANless HA: Shared-Nothing Software Clustering<\/td>\n<td>\n        <a href=\"\/products\/high-availability-software-for-application-clustering\/#all-in-one-sanless-ha\" title=\"Learn about all-in-one SANless high availability with shared-nothing software clustering\">See SafeKit All-in-One SANless HA<\/a>\n    <\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><strong>Partners<\/strong><\/th>\n<td>SafeKit: The Benchmark in High Availability for Partners<\/td>\n<td><a title=\"Explore SafeKit high availability partnership opportunities and benchmark solutions\" href=\"\/products\/high-availability-software-for-application-clustering\/#safekit-ha-benchmark-for-partners\">See Why SafeKit Is the HA Benchmark for Partners<\/a><\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><strong>HA Strategies<\/strong><\/th>\n<td>SafeKit: Infrastructure (VM) vs. Application-Level High Availability<\/td>\n<td><a href=\"\/products\/high-availability-software-for-application-clustering\/#safekit-ha-redundancy-choices\" title=\"Compare VM-level redundancy with SafeKit application-level high availability strategies\">See SafeKit HA &amp; Redundancy: VM vs. Application Level<\/a>\n    <\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><strong>Technical Specifications<\/strong><\/th>\n<td>Technical Limitations for SafeKit Clustering<\/td>\n<td><a title=\"Technical requirements and limitations for SafeKit application clustering\" href=\"\/products\/high-availability-software-for-application-clustering\/#safekit-ha-limitations\">See SafeKit High Availability Limitations<\/a><\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><strong>Proof of Concept<\/strong><\/th>\n<td>SafeKit: High Availability Configuration &amp; Failover Demos<\/td>\n<td><a title=\"Step-by-step videos on SafeKit high availability, from installation to automated failover\" href=\"\/products\/high-availability-software-for-application-clustering\/#safekit-failover-tutorials\">See SafeKit Failover Tutorials<\/a><\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><strong>Architecture<\/strong><\/th>\n<td>How the SafeKit Mirror Cluster works (Real-Time Replication &amp; Failover)<\/td>\n<td><a title=\"See technical architecture and failover mechanism of SafeKit Mirror Cluster\" href=\"\/products\/high-availability-software-for-application-clustering\/#safekit-mirror-cluster\">See SafeKit Mirror Cluster: Real-Time Replication &amp; Failover<\/a><\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><strong>Architecture<\/strong><\/th>\n<td>How the SafeKit Farm Cluster works (Network Load Balancing & Failover)<\/td>\n<td>\n        <a href=\"\/products\/high-availability-software-for-application-clustering\/#safekit-farm-cluster\" title=\"Technical overview of SafeKit Farm Cluster architecture with network load balancing\">See SafeKit Farm Cluster: Network Load Balancing & Failover<\/a><\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><strong>Competitive Advantages<\/strong><\/th>\n<td>Comparison: SafeKit vs. Traditional High Availability (HA) Clusters<\/td>\n<td><a href=\"\/products\/high-availability-software-for-application-clustering\/#safekit-ha-comparison\" title=\"Detailed comparison of SafeKit software vs traditional hardware-based HA clusters\">See SafeKit vs. Traditional HA Cluster Comparison<\/a><\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><strong>Technical Resources<\/strong><\/th>\n<td>SafeKit High Availability: Documentation, Downloads &amp; Trial<\/td>\n<td><a href=\"\/products\/high-availability-software-for-application-clustering\/#safekit-ha-technical-resources\" title=\"Access SafeKit free trial, technical documentation, and high availability white papers\">See SafeKit HA Free Trial &amp; Technical Documentation<\/a><\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><strong>Pre-configured Solutions<\/strong><\/th>\n<td>SafeKit Application Module Library: Ready-to-Use HA Solutions<\/td>\n<td><a href=\"\/products\/high-availability-software-for-application-clustering\/#safekit-ha-application-modules\" title=\"Browse the library of pre-configured SafeKit modules for automated application failover\">See SafeKit High Availability Application Modules<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/article>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pg-238660-5\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-238660-5\" ><div id=\"pgc-238660-5-0\"  class=\"panel-grid-cell\" ><div id=\"panel-238660-5-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"5\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<div data-post-id=\"71458\" class=\"insert-page insert-page-71458 \"><div id=\"pl-71458\"  class=\"panel-layout\" ><div id=\"pg-71458-0\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-71458-0\" ><div id=\"pgc-71458-0-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><div id=\"pgc-71458-0-1\"  class=\"panel-grid-cell\" ><div id=\"panel-71458-0-1-0\" class=\"so-panel widget widget_sow-button panel-first-child panel-last-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-button so-widget-sow-button-atom-22117c521b6b-71458\"\n\t\t\t\n\t\t><div class=\"ow-button-base ow-button-align-center\"\n>\n\t\t\t<a\n\t\t\t\t\thref=\"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/contact-us-for-safekit\/\"\n\t\t\t\t\tclass=\"sowb-button ow-icon-placement-left ow-button-hover\" target=\"_blank\" rel=\"noopener noreferrer\" \t>\n\t\t<span>\n\t\t\t\n\t\t\t\ud83e\uddd1 Contact us\t\t<\/span>\n\t\t\t<\/a>\n\t<\/div>\n<\/div><\/div><\/div><div id=\"pgc-71458-0-2\"  class=\"panel-grid-cell\" ><div id=\"panel-71458-0-2-0\" class=\"so-panel widget widget_sow-button panel-first-child panel-last-child\" data-index=\"1\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-button so-widget-sow-button-atom-22117c521b6b-71458\"\n\t\t\t\n\t\t><div class=\"ow-button-base ow-button-align-center\"\n>\n\t\t\t<a\n\t\t\t\t\thref=\"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/safekit-free-trial\/\"\n\t\t\t\t\tclass=\"sowb-button ow-icon-placement-left ow-button-hover\" target=\"_blank\" rel=\"noopener noreferrer\" \t>\n\t\t<span>\n\t\t\t\n\t\t\t\ud83c\udf81 SafeKit free trial\t\t<\/span>\n\t\t\t<\/a>\n\t<\/div>\n<\/div><\/div><\/div><div id=\"pgc-71458-0-3\"  class=\"panel-grid-cell\" ><div id=\"panel-71458-0-3-0\" class=\"so-panel widget widget_sow-button panel-first-child panel-last-child\" data-index=\"2\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-button so-widget-sow-button-atom-22117c521b6b-71458\"\n\t\t\t\n\t\t><div class=\"ow-button-base ow-button-align-center\"\n>\n\t\t\t<a\n\t\t\t\t\thref=\"https:\/\/training.my.evidian.com\/mod\/page\/view.php?id=712\"\n\t\t\t\t\tclass=\"sowb-button ow-icon-placement-left ow-button-hover\" target=\"_blank\" rel=\"noopener noreferrer\" \t>\n\t\t<span>\n\t\t\t\n\t\t\t\ud83c\udfc5 Free certification\t\t<\/span>\n\t\t\t<\/a>\n\t<\/div>\n<\/div><\/div><\/div><div id=\"pgc-71458-0-4\"  class=\"panel-grid-cell panel-grid-cell-mobile-last\" ><div id=\"panel-71458-0-4-0\" class=\"so-panel widget widget_sow-button panel-first-child panel-last-child\" data-index=\"3\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-button so-widget-sow-button-atom-22117c521b6b-71458\"\n\t\t\t\n\t\t><div class=\"ow-button-base ow-button-align-center\"\n>\n\t\t\t<a\n\t\t\t\t\thref=\"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/get-a-quote-safekit-en\/\"\n\t\t\t\t\tclass=\"sowb-button ow-icon-placement-left ow-button-hover\" target=\"_blank\" rel=\"noopener noreferrer\" \t>\n\t\t<span>\n\t\t\t\n\t\t\t\ud83d\udcb0 Perpetual license cost\t\t<\/span>\n\t\t\t<\/a>\n\t<\/div>\n<\/div><\/div><\/div><div id=\"pgc-71458-0-5\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><\/div><\/div><\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"The configuration is presented with a virtual machine named VM1 and containing the application to restart in case of failure. You will have to repeat this configuration for all VMs that you want to replicate and to restart. SafeKit supports up to 32 virtual machines. 1. Prerequisites The VM1 virtual machine image is in the [&hellip;]","protected":false},"author":3,"featured_media":0,"parent":41511,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-full-screen.php","meta":{"_acf_changed":false,"_lmt_disableupdate":"no","_lmt_disable":"","footnotes":""},"class_list":["post-238660","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>KVM High Availability with SafeKit: Install the kvm.safe Module for Failover - Evidian<\/title>\n<meta name=\"description\" content=\"Learn about configuring kvm.safe for an active\/active KVM cluster with SafeKit. Achieve High Availability at the VM level with a 2-node shared-nothing architecture. Synchronously replicate several VMs across nodes for automatic failover without the cost of a SAN or shared storage.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/safekit-quick-installation-guide-with-kvm\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"KVM High Availability with SafeKit: Install the kvm.safe Module for Failover\" \/>\n<meta property=\"og:description\" content=\"Learn about configuring kvm.safe for an active\/active KVM cluster with SafeKit. Achieve High Availability at the VM level with a 2-node shared-nothing architecture. Synchronously replicate several VMs across nodes for automatic failover without the cost of a SAN or shared storage.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/safekit-quick-installation-guide-with-kvm\/\" \/>\n<meta property=\"og:site_name\" content=\"Evidian\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-18T12:54:00+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.evidian.com\\\/products\\\/high-availability-software-for-application-clustering\\\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\\\/safekit-quick-installation-guide-with-kvm\\\/\",\"url\":\"https:\\\/\\\/www.evidian.com\\\/products\\\/high-availability-software-for-application-clustering\\\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\\\/safekit-quick-installation-guide-with-kvm\\\/\",\"name\":\"KVM High Availability with SafeKit: Install the kvm.safe Module for Failover - Evidian\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.evidian.com\\\/#website\"},\"datePublished\":\"2024-09-13T14:00:42+00:00\",\"dateModified\":\"2026-02-18T12:54:00+00:00\",\"description\":\"Learn about configuring kvm.safe for an active\\\/active KVM cluster with SafeKit. Achieve High Availability at the VM level with a 2-node shared-nothing architecture. Synchronously replicate several VMs across nodes for automatic failover without the cost of a SAN or shared storage.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.evidian.com\\\/products\\\/high-availability-software-for-application-clustering\\\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\\\/safekit-quick-installation-guide-with-kvm\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.evidian.com\\\/products\\\/high-availability-software-for-application-clustering\\\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\\\/safekit-quick-installation-guide-with-kvm\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.evidian.com\\\/products\\\/high-availability-software-for-application-clustering\\\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\\\/safekit-quick-installation-guide-with-kvm\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Evidian\",\"item\":\"https:\\\/\\\/www.evidian.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Products\",\"item\":\"https:\\\/\\\/www.evidian.com\\\/products\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SafeKit: All-in-One SANless High Availability &amp; Application Clustering Software\",\"item\":\"https:\\\/\\\/www.evidian.com\\\/products\\\/high-availability-software-for-application-clustering\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Simple Linux KVM High Availability without Shared Storage\",\"item\":\"https:\\\/\\\/www.evidian.com\\\/products\\\/high-availability-software-for-application-clustering\\\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"KVM High Availability with SafeKit: Install the kvm.safe Module for Failover\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.evidian.com\\\/#website\",\"url\":\"https:\\\/\\\/www.evidian.com\\\/\",\"name\":\"Evidian\",\"description\":\"The European Leader in Unified Identity, Access Management, and Business Continuity\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.evidian.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.evidian.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.evidian.com\\\/#organization\",\"name\":\"Evidian\",\"alternateName\":\"Evidian\",\"url\":\"https:\\\/\\\/www.evidian.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.evidian.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.evidian.com\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/evidian-new-blue-1.png\",\"contentUrl\":\"https:\\\/\\\/www.evidian.com\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/evidian-new-blue-1.png\",\"width\":734,\"height\":200,\"caption\":\"Evidian\"},\"image\":{\"@id\":\"https:\\\/\\\/www.evidian.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/showcase\\\/eviden-cybersecurity\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJKPuw2SDVNYUjZEJyLbIAA\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"KVM High Availability with SafeKit: Install the kvm.safe Module for Failover - Evidian","description":"Learn about configuring kvm.safe for an active\/active KVM cluster with SafeKit. Achieve High Availability at the VM level with a 2-node shared-nothing architecture. Synchronously replicate several VMs across nodes for automatic failover without the cost of a SAN or shared storage.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/safekit-quick-installation-guide-with-kvm\/","og_locale":"en_US","og_type":"article","og_title":"KVM High Availability with SafeKit: Install the kvm.safe Module for Failover","og_description":"Learn about configuring kvm.safe for an active\/active KVM cluster with SafeKit. Achieve High Availability at the VM level with a 2-node shared-nothing architecture. Synchronously replicate several VMs across nodes for automatic failover without the cost of a SAN or shared storage.","og_url":"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/safekit-quick-installation-guide-with-kvm\/","og_site_name":"Evidian","article_modified_time":"2026-02-18T12:54:00+00:00","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/safekit-quick-installation-guide-with-kvm\/","url":"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/safekit-quick-installation-guide-with-kvm\/","name":"KVM High Availability with SafeKit: Install the kvm.safe Module for Failover - Evidian","isPartOf":{"@id":"https:\/\/www.evidian.com\/#website"},"datePublished":"2024-09-13T14:00:42+00:00","dateModified":"2026-02-18T12:54:00+00:00","description":"Learn about configuring kvm.safe for an active\/active KVM cluster with SafeKit. Achieve High Availability at the VM level with a 2-node shared-nothing architecture. Synchronously replicate several VMs across nodes for automatic failover without the cost of a SAN or shared storage.","breadcrumb":{"@id":"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/safekit-quick-installation-guide-with-kvm\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/safekit-quick-installation-guide-with-kvm\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/safekit-quick-installation-guide-with-kvm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Evidian","item":"https:\/\/www.evidian.com\/"},{"@type":"ListItem","position":2,"name":"Products","item":"https:\/\/www.evidian.com\/products\/"},{"@type":"ListItem","position":3,"name":"SafeKit: All-in-One SANless High Availability &amp; Application Clustering Software","item":"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/"},{"@type":"ListItem","position":4,"name":"Simple Linux KVM High Availability without Shared Storage","item":"https:\/\/www.evidian.com\/products\/high-availability-software-for-application-clustering\/linux-kvm-high-availability-replication-automatic-failover-load-balancing\/"},{"@type":"ListItem","position":5,"name":"KVM High Availability with SafeKit: Install the kvm.safe Module for Failover"}]},{"@type":"WebSite","@id":"https:\/\/www.evidian.com\/#website","url":"https:\/\/www.evidian.com\/","name":"Evidian","description":"The European Leader in Unified Identity, Access Management, and Business Continuity","publisher":{"@id":"https:\/\/www.evidian.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.evidian.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.evidian.com\/#organization","name":"Evidian","alternateName":"Evidian","url":"https:\/\/www.evidian.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.evidian.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.evidian.com\/wp-content\/uploads\/2024\/01\/evidian-new-blue-1.png","contentUrl":"https:\/\/www.evidian.com\/wp-content\/uploads\/2024\/01\/evidian-new-blue-1.png","width":734,"height":200,"caption":"Evidian"},"image":{"@id":"https:\/\/www.evidian.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/showcase\/eviden-cybersecurity\/","https:\/\/www.youtube.com\/channel\/UCJKPuw2SDVNYUjZEJyLbIAA"]}]}},"_links":{"self":[{"href":"https:\/\/www.evidian.com\/wp-json\/wp\/v2\/pages\/238660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.evidian.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.evidian.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.evidian.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.evidian.com\/wp-json\/wp\/v2\/comments?post=238660"}],"version-history":[{"count":0,"href":"https:\/\/www.evidian.com\/wp-json\/wp\/v2\/pages\/238660\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.evidian.com\/wp-json\/wp\/v2\/pages\/41511"}],"wp:attachment":[{"href":"https:\/\/www.evidian.com\/wp-json\/wp\/v2\/media?parent=238660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}