{"id":9094,"date":"2025-04-23T16:05:39","date_gmt":"2025-04-23T14:05:39","guid":{"rendered":"https:\/\/www.codecon.sk\/?p=9094"},"modified":"2026-03-11T16:09:25","modified_gmt":"2026-03-11T15:09:25","slug":"disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2","status":"publish","type":"post","link":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/","title":{"rendered":"Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror"},"content":{"rendered":"<h2>1. Introduction<\/h2>\n<p>Ceph is a highly available, scalable, and resilient storage solution widely used in cloud and enterprise environments. However, even with its built-in redundancy, disaster recovery (DR) strategies are essential to ensure business continuity in case of data center failures, network outages, or hardware failures. Ceph provides robust disaster recovery options, including RBD mirroring, to replicate block storage volumes across geographically separated Ceph clusters.<\/p>\n<p>With the introduction of <strong>cephadm<\/strong>, Ceph cluster management has become more straightforward, making it easier to deploy and maintain disaster recovery setups. Additionally, <strong>Ceph-CSI<\/strong> enables Kubernetes clusters to consume Ceph storage efficiently. In this blog post, we will explore how to set up disaster recovery in Ceph using <strong>cephadm, Ceph-CSI,<\/strong> and <strong>RBD Mirror<\/strong> to protect RBD volumes used by Kubernetes clusters deployed across two data centers.<\/p>\n<h2>2. Disaster Recovery Architecture<\/h2>\n<p>We have two geographically separated data centers:<\/p>\n<ul>\n<li><strong>Primary Data Center (Production):<\/strong> Hosts a Kubernetes cluster and a Ceph cluster.<\/li>\n<li><strong>Secondary Data Center (Disaster Recovery &#8211; DR):<\/strong> Hosts another Kubernetes cluster and a Ceph cluster where data is replicated using RBD mirroring.<\/li>\n<\/ul>\n<p>Kubernetes workloads in the primary DC store their persistent data in Ceph RBD volumes via Ceph-CSI. These volumes are mirrored asynchronously to the secondary DC using RBD mirroring, ensuring data availability in case of a failure in the primary DC.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6877\" src=\"https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/03\/1920x1080_banner-sirka-linkedin-newsletter-300x169.png\" alt=\"\" width=\"898\" height=\"506\" srcset=\"https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/03\/1920x1080_banner-sirka-linkedin-newsletter-300x169.png 300w, https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/03\/1920x1080_banner-sirka-linkedin-newsletter-1024x576.png 1024w, https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/03\/1920x1080_banner-sirka-linkedin-newsletter-768x432.png 768w, https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/03\/1920x1080_banner-sirka-linkedin-newsletter-1536x864.png 1536w, https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/03\/1920x1080_banner-sirka-linkedin-newsletter.png 1920w\" sizes=\"auto, (max-width: 898px) 100vw, 898px\" \/><\/p>\n<h2>3. Deploying Ceph with cephadm in Both Data Centers<\/h2>\n<p><strong>a) Bootstrap the Ceph Cluster<\/strong><\/p>\n<p>On each Ceph cluster (Primary and Secondary):<\/p>\n<pre>cephadm bootstrap --mon-ip &lt;MONITOR_IP&gt;<\/pre>\n<p><strong>b) Add Additional Nodes<\/strong><\/p>\n<pre>cephadm shell -- ceph orch host add &lt;HOSTNAME&gt; &lt;IP_ADDRESS&gt;<\/pre>\n<p><strong>c) Deploy Required Services<\/strong><\/p>\n<pre>ceph orch apply mon\r\nceph orch apply mgr\r\nceph orch apply osd --all-available-devices\r\nceph orch apply rbd-mirror<\/pre>\n<p>Ensure that the rbd-mirror daemon is running on both clusters:<\/p>\n<pre>ceph orch ps | grep rbd-mirror<\/pre>\n<p><strong>d) Configure RBD Mirroring<\/strong><\/p>\n<p>On the primary Ceph cluster:<\/p>\n<pre>rbd mirror pool enable &lt;pool-name&gt; snapshot<\/pre>\n<p>Export and import the authentication key:<\/p>\n<pre class=\"p1\">ceph auth get-key client.rbd-mirror &gt; rbd-mirror.key\r\nscp rbd-mirror.key &lt;secondary-cluster&gt;\r\nssh &lt;secondary-cluster&gt; 'ceph auth import -i rbd-mirror.key'<\/pre>\n<p>On the secondary Ceph cluster, add a peer connection:<\/p>\n<pre>rbd mirror pool peer add &lt;pool-name&gt; client.rbd-mirror@&lt;primary-cluster-mon&gt;<\/pre>\n<p>Verify peering status:<\/p>\n<pre>rbd mirror pool status &lt;pool-name&gt;<\/pre>\n<h2>4. Installing Ceph-CSI in Kubernetes Clusters<\/h2>\n<p>Now we have ceph cluster ready and we can deploy ceph-csi on our k8s clusters. We need to deploy ceph-<br \/>\ncsi in both locations, but<\/p>\n<p><strong>a) Deploy Ceph-CSI Driver<\/strong><\/p>\n<pre>kubectl apply -f https:\/\/raw.githubusercontent.com\/ceph\/ceph-csi\/devel\/deploy\/csi-rbdplugin.yaml\r\nkubectl apply -f https:\/\/raw.githubusercontent.com\/ceph\/ceph-csi\/devel\/deploy\/csi-rbdplugin-provisioner.yaml<\/pre>\n<p><strong>b) Enable RBD Mirroring on the Pool<\/strong><\/p>\n<pre>rbd mirror pool enable &lt;pool-name&gt; snapshot<\/pre>\n<p><strong>c) Configure StorageClass to Use the Mirrored Pool<\/strong><\/p>\n<pre class=\"p1\">apiVersion: storage.k8s.io\/v1\r\nkind: StorageClass\r\nmetadata:\r\n  name: ceph-rbd-mirrored\r\nprovisioner: rbd.csi.ceph.com\r\nparameters:\r\n  clusterID: &lt;ceph-cluster-id&gt;\r\n  pool: &lt;pool-name&gt;\r\n  imageFormat: \"2\"\r\n  imageFeatures: layering\r\n  csi.storage.k8s.io\/provisioner-secret-name: csi-rbd-secret\r\n  csi.storage.k8s.io\/provisioner-secret-namespace: default\r\n  csi.storage.k8s.io\/node-stage-secret-name: csi-rbd-secret\r\n  csi.storage.k8s.io\/node-stage-secret-namespace: default\r\nreclaimPolicy: Delete\r\nallowVolumeExpansion: true<\/pre>\n<p>Apply this StorageClass:<\/p>\n<pre class=\"p1\">kubectl apply -f storageclass.yaml<\/pre>\n<p><strong>d) Create a PersistentVolumeClaim (PVC)<\/strong><\/p>\n<pre class=\"p1\">apiVersion: v1\r\nkind: PersistentVolumeClaim\r\nmetadata:\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0<\/span>name: ceph-rbd-pvc\r\nspec:\r\n<span class=\"Apple-converted-space\">\u00a0 <\/span>accessModes:\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>- ReadWriteOnce\r\n<span class=\"Apple-converted-space\">\u00a0\u00a0<\/span>resources:\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>requests:\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>storage: 10Gi\r\n<span class=\"Apple-converted-space\">\u00a0 <\/span>storageClassName: ceph-rbd-mirrored<\/pre>\n<h2>5. Failover Process (Switching to the Secondary Data Center)<\/h2>\n<p><strong>a) Promote the Secondary Ceph Cluster<\/strong><\/p>\n<pre>rbd mirror pool promote &lt;pool-name&gt;<\/pre>\n<p><strong>b) Update ClusterID and PoolID Mappings<\/strong><\/p>\n<p class=\"p1\">Ensure that the Kubernetes cluster in the DR site correctly maps the Ceph cluster&#8217;s ClusterID and PoolID using the predefined mapping.<\/p>\n<pre>apiVersion: v1\r\nkind: ConfigMap\r\nmetadata:\r\n<span class=\"Apple-converted-space\">\u00a0 <\/span>name: ceph-csi-config\r\ndata:\r\n<span class=\"Apple-converted-space\">\u00a0 <\/span>cluster-mapping.json: |-\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>{\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"clusterIDMapping\": {\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"primary-cluster-id\": \"secondary-cluster-id\"\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>},\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"RBDPoolIDMapping\": [\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>{\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"1\": \"2\"\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>},\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>{\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"11\": \"12\"\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>}\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>]\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>}\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>]<\/pre>\n<p>Apply this updated mapping:<\/p>\n<pre>kubectl apply -f ceph-csi-config.yaml<\/pre>\n<p><strong>c) Modify Ceph-CSI Config to Update Monitor Addresses on Secondary Cluster<\/strong><\/p>\n<p class=\"p1\">To use a mirrored and promoted RBD image on a secondary site during a failover, you need to replace the primary monitor addresses with the IP addresses of the secondary cluster in ceph-csi-config. Otherwise, Ceph-CSI won&#8217;t be able to use the volumes, and application pods will become stuck in the ContainerCreating state. Thus, during failover, both clusters will have the same monitor IP addresses in csi-config on secondary site.<\/p>\n<pre>apiVersion: v1\r\nkind: ConfigMap\r\nmetadata:\r\n<span class=\"Apple-converted-space\">\u00a0 <\/span>name: ceph-csi-config\r\ndata:\r\n<span class=\"Apple-converted-space\">\u00a0 <\/span>config.json: |-\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>[\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>{\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>\"clusterID\": \"ceph1\",\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>\"rbd\": {\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"radosNamespace\": \"&lt;rados-namespace&gt;\",\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>},\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>\"monitors\": [\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"192.168.39.82:6789\"\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>],\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>\"cephFS\": {\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"subvolumeGroup\": \"&lt;subvolumegroup for cephfs volumes&gt;\"\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>}\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>},\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>{\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>\"clusterID\": \"ceph2\",\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>\"rbd\": {\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"radosNamespace\": \"&lt;rados-namespace&gt;\",\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>},\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>\"monitors\": [\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"192.168.39.82:6789\"\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>],\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>\"cephFS\": {\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 \u00a0 <\/span>\"subvolumeGroup\": \"&lt;subvolumegroup for cephfs volumes&gt;\"\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>}\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 \u00a0 <\/span>}\r\n<span class=\"Apple-converted-space\">\u00a0 \u00a0 <\/span>]<\/pre>\n<p>Apply the updated configuration<\/p>\n<pre>kubectl apply -f ceph-csi-config.yaml<\/pre>\n<p class=\"p1\"><b>d) Modify StorageClass to Point to the Secondary Cluster<\/b><\/p>\n<pre class=\"p1\">parameters:\r\n clusterID: secondary-cluster-id<\/pre>\n<p>Apply the modified StorageClass:<\/p>\n<pre>kubectl apply -f storageclass.yaml<\/pre>\n<p><strong>e) Restart Affected Workloads<\/strong><\/p>\n<pre>kubectl rollout restart deployment &lt;deployment-name&gt;<\/pre>\n<p><strong>f) Validate Data Accessibility<\/strong><\/p>\n<p>Ensure the applications can access data stored in the secondary Ceph cluster.<\/p>\n<h2>6. Failback Process (Restoring to the Primary Data Center)<\/h2>\n<p class=\"p1\"><b>a) Demote the Secondary Cluster and Re-enable Mirroring<\/b><\/p>\n<pre class=\"p1\">rbd mirror pool demote &lt;pool-name&gt;<\/pre>\n<pre class=\"p1\">b) Update ClusterID and PoolID Mappings Back to Primary<\/pre>\n<pre class=\"p1\">apiVersion: v1\r\nkind: ConfigMap\r\nmetadata:\r\n<span class=\"Apple-converted-space\">\u00a0 <\/span>name: ceph-csi-config<\/pre>\n<p class=\"p1\"><strong>c) Modify StorageClass to Point Back to the Primary Cluster<\/strong><\/p>\n<pre class=\"p1\">parameters:\r\n\u00a0clusterID: primary-cluster-id<\/pre>\n<p class=\"p1\"><strong>d) Restart Workloads to Use the Primary Cluster<\/strong><\/p>\n<pre class=\"p1\">kubectl rollout restart deployment &lt;deployment-name&gt;<\/pre>\n<p class=\"p1\"><strong>e) Verify Mirroring and Data Integrity<\/strong><\/p>\n<pre class=\"p1\">rbd mirror pool status &lt;pool-name&gt;<\/pre>\n<h2>7. Conclusion<\/h2>\n<p class=\"p1\">By configuring ClusterID and PoolID mappings and ensuring proper Ceph monitor address updates during failover, you enable seamless disaster recovery for Kubernetes workloads using Ceph-CSI. This approach maintains data accessibility and consistency, facilitating a smoother failover and failback process. Using <b>cephadm<\/b>, deploying and managing mirroring has become significantly easier, enabling organizations to set up failover mechanisms efficiently. By following the above steps, you can ensure data integrity, minimize downtime, and enhance business continuity in the event of a disaster.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction Ceph is a highly available, scalable, and resilient storage solution widely used in cloud and enterprise environments. However, even with its built-in redundancy, disaster recovery (DR) strategies are essential to ensure business continuity in case of data center failures, network outages, or hardware failures. Ceph provides robust disaster recovery options, including RBD mirroring, [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":9097,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[56],"tags":[],"class_list":["post-9094","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror &#8212; CODECON<\/title>\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.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror &#8212; CODECON\" \/>\n<meta property=\"og:description\" content=\"1. Introduction Ceph is a highly available, scalable, and resilient storage solution widely used in cloud and enterprise environments. However, even with its built-in redundancy, disaster recovery (DR) strategies are essential to ensure business continuity in case of data center failures, network outages, or hardware failures. Ceph provides robust disaster recovery options, including RBD mirroring, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/\" \/>\n<meta property=\"og:site_name\" content=\"CODECON\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-23T14:05:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-11T15:09:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/04\/blog-2-2-1024x512-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Eva Kalinov\u00e1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eva Kalinov\u00e1\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/\"},\"author\":{\"name\":\"Eva Kalinov\u00e1\",\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/#\\\/schema\\\/person\\\/815e94ce93756757859939501e018711\"},\"headline\":\"Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror\",\"datePublished\":\"2025-04-23T14:05:39+00:00\",\"dateModified\":\"2026-03-11T15:09:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/\"},\"wordCount\":632,\"image\":{\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codecon.sk\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/blog-2-2-1024x512-1.webp\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/\",\"url\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/\",\"name\":\"Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror &#8212; CODECON\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codecon.sk\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/blog-2-2-1024x512-1.webp\",\"datePublished\":\"2025-04-23T14:05:39+00:00\",\"dateModified\":\"2026-03-11T15:09:25+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/#\\\/schema\\\/person\\\/815e94ce93756757859939501e018711\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codecon.sk\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/blog-2-2-1024x512-1.webp\",\"contentUrl\":\"https:\\\/\\\/www.codecon.sk\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/blog-2-2-1024x512-1.webp\",\"width\":1024,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Domovsk\u00e1 str\u00e1nka\",\"item\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/\",\"name\":\"CODECON\",\"description\":\"Najv\u00e4\u010d\u0161ie komunitn\u00e9 stretnutie v\u00fdvoj\u00e1rov na Slovensku\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codecon.sk\\\/en\\\/#\\\/schema\\\/person\\\/815e94ce93756757859939501e018711\",\"name\":\"Eva Kalinov\u00e1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror &#8212; CODECON","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.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/","og_locale":"en_US","og_type":"article","og_title":"Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror &#8212; CODECON","og_description":"1. Introduction Ceph is a highly available, scalable, and resilient storage solution widely used in cloud and enterprise environments. However, even with its built-in redundancy, disaster recovery (DR) strategies are essential to ensure business continuity in case of data center failures, network outages, or hardware failures. Ceph provides robust disaster recovery options, including RBD mirroring, [&hellip;]","og_url":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/","og_site_name":"CODECON","article_published_time":"2025-04-23T14:05:39+00:00","article_modified_time":"2026-03-11T15:09:25+00:00","og_image":[{"width":1024,"height":512,"url":"https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/04\/blog-2-2-1024x512-1.webp","type":"image\/webp"}],"author":"Eva Kalinov\u00e1","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Eva Kalinov\u00e1","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/#article","isPartOf":{"@id":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/"},"author":{"name":"Eva Kalinov\u00e1","@id":"https:\/\/www.codecon.sk\/en\/#\/schema\/person\/815e94ce93756757859939501e018711"},"headline":"Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror","datePublished":"2025-04-23T14:05:39+00:00","dateModified":"2026-03-11T15:09:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/"},"wordCount":632,"image":{"@id":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/04\/blog-2-2-1024x512-1.webp","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/","url":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/","name":"Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror &#8212; CODECON","isPartOf":{"@id":"https:\/\/www.codecon.sk\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/#primaryimage"},"image":{"@id":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/04\/blog-2-2-1024x512-1.webp","datePublished":"2025-04-23T14:05:39+00:00","dateModified":"2026-03-11T15:09:25+00:00","author":{"@id":"https:\/\/www.codecon.sk\/en\/#\/schema\/person\/815e94ce93756757859939501e018711"},"breadcrumb":{"@id":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/#primaryimage","url":"https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/04\/blog-2-2-1024x512-1.webp","contentUrl":"https:\/\/www.codecon.sk\/wp-content\/uploads\/2025\/04\/blog-2-2-1024x512-1.webp","width":1024,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/www.codecon.sk\/en\/disaster-recovery-in-ceph-with-cephadm-ceph-csi-and-rbd-mirror-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Domovsk\u00e1 str\u00e1nka","item":"https:\/\/www.codecon.sk\/en\/"},{"@type":"ListItem","position":2,"name":"Disaster Recovery in Ceph with cephadm, Ceph- CSI, and RBD Mirror"}]},{"@type":"WebSite","@id":"https:\/\/www.codecon.sk\/en\/#website","url":"https:\/\/www.codecon.sk\/en\/","name":"CODECON","description":"Najv\u00e4\u010d\u0161ie komunitn\u00e9 stretnutie v\u00fdvoj\u00e1rov na Slovensku","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codecon.sk\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.codecon.sk\/en\/#\/schema\/person\/815e94ce93756757859939501e018711","name":"Eva Kalinov\u00e1"}]}},"_links":{"self":[{"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/posts\/9094","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/comments?post=9094"}],"version-history":[{"count":1,"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/posts\/9094\/revisions"}],"predecessor-version":[{"id":9095,"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/posts\/9094\/revisions\/9095"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/media\/9097"}],"wp:attachment":[{"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/media?parent=9094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/categories?post=9094"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codecon.sk\/en\/wp-json\/wp\/v2\/tags?post=9094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}