Cordon and Uncordon Pools

Explore this Page

Overview

The Cordon Pools feature in DataCore Puls8 lets you maintain application availability and data integrity during maintenance or troubleshooting by temporarily preventing new workloads from being scheduled on a specific storage pool.

By cordoning a pool, you can stop the creation of new replicas, snapshots, restores, or imports on that pool while existing data and services continue to operate normally. This controlled isolation helps avoid unexpected replica placement on pools that are under investigation, nearing capacity, or scheduled for hardware upgrades.

This document explains how to cordon and uncordon a Replicated PV Mayastor pool using the kubectl-puls8 plugin, including the available command options, recommended use cases, and key operational considerations.

Requirements

Before you cordon or uncordon pools, ensure the following requirements are met:

  • DataCore Puls8 Installation with Replicated PV Mayastor Enabled: You must have DataCore Puls8 installed on your Kubernetes cluster with Replicated PV Mayastor enabled. Refer Installing DataCore Puls8 Documentation for more information.
  • kubectl puls8 Plugin Installed: Ensure that the kubectl-puls8 plugin is installed and configured with the appropriate access to your DataCore Puls8 cluster.

Cordon a Pool

When you cordon a pool, you prevent new resources of the specified types from being scheduled on that pool. This allows you to safely isolate the pool while performing maintenance, troubleshooting, or preparing it for decommissioning. Existing data on the pool remains fully available and continues to serve workloads.

Cordon a pool to block new replicas and imports using kubectl-puls8. For Example: kubectl-puls8 mayastor

Copy
Cordon a Pool to Block New Replicas
kubectl-puls8 mayastor cordon pool <pool-name> --replicas
Copy
Cordon a Pool to Block New Replicas and Imports
kubectl-puls8 mayastor cordon pool <pool-name> --replicas --imports

Flags

  • --replicas - Prevent new replicas from being created on the pool
  • --snapshots - Prevent new snapshots from being scheduled
  • --restores - Prevent new restore operations on the pool
  • --imports - Prevent pool import operations.

Uncordon a Pool

When you uncordon a pool, you remove the scheduling restrictions and allow new resources to be created again. Use this when maintenance is complete or when you want the pool to resume normal operations.

Copy
Uncordon a Pool to Re-enable Replica and Import Scheduling
kubectl-puls8 mayastor uncordon pool <pool-name> --replicas --imports

Flags

  • The same flags apply as with cordon, letting you selectively enable scheduling for replicas, snapshots, restores, and imports.
  • By default, running uncordon pool without flags will remove all existing cordons, restoring full scheduling for the pool.

Typical Use Cases

  • Planned Maintenance: Isolate a pool before firmware upgrades or hardware replacement.
  • Capacity Management: Prevent new replicas on a pool nearing its operational threshold.
  • Controlled Decommissioning: Cordon, migrate replicas, and then retire the pool.

Best Practices

  • Cordoning does not move existing replicas. It only blocks new scheduling.
  • Verify sufficient uncordoned pools are available to maintain redundancy.
  • Document each cordon action in your change-management system and uncordon promptly after maintenance.

Benefits of Pool Cordon

  • Controlled Maintenance: Temporarily prevent new workloads on a pool during upgrades or troubleshooting.
  • Improved Reliability: Avoid placing new replicas on pools with capacity or performance issues.
  • Safe Decommissioning: Isolate a pool while migrating or scaling replicas to other pools.
  • Operational Flexibility: Choose which resource types replicas, snapshots, restores, imports are affected.
  • Business Continuity: Keep applications running smoothly during maintenance or investigations.

Learn More