# Stockage Persistant

## Introduction <a href="#kubernetespersistentstorage-introduction" id="kubernetespersistentstorage-introduction"></a>

**cegedim.cloud** propose désormais une plateforme de stockage Ceph multi-locataires en tant que fournisseur de CSI avec les spécifications suivantes :

* Les données sont répliquées 4 fois et réparties uniformément (à l'aide de Ceph Crush Map) sur 2 centres de données afin de garantir que, dans les scénarios de catastrophe, 2 répliques de données sont toujours disponibles.
* Chaque cluster Kubernetes, en tant que client Ceph, dispose de son propre pool de données sur le serveur Ceph et consomme des services avec ses propres identifiants.
* Seul le RBD Ceph CSI est fourni pour le moment.

De plus amples informations sur le Ceph CSI sont disponibles via le lien ci-dessous [:](https://docs.ceph.com/)

{% embed url="<https://docs.ceph.com/>" %}

### Versions <a href="#kubernetespersistentstorage-versions" id="kubernetespersistentstorage-versions"></a>

<table><thead><tr><th width="177">Composant</th><th>Version</th></tr></thead><tbody><tr><td>Ceph Cluster</td><td>19.2.2</td></tr><tr><td>CSI Ceph</td><td>3.14</td></tr></tbody></table>

{% hint style="info" %}
**cegedim.cloud** effectue annuellement des RFC (Request for Change) pour maintenir à jour le serveur Ceph et le client (CSI) avec les dernières versions stables.
{% endhint %}

### Classe de stockage <a href="#kubernetespersistentstorage-storageclass" id="kubernetespersistentstorage-storageclass"></a>

<table><thead><tr><th width="176">Nom</th><th>Description</th></tr></thead><tbody><tr><td>cgdm-rwo</td><td>Utiliser <strong>CSI Ceph rbd</strong> pour provisioner des volumes persistants <code>ReadWriteOnce</code></td></tr></tbody></table>

### Haute disponibilité <a href="#kubernetespersistentstorage-highavailability" id="kubernetespersistentstorage-highavailability"></a>

<table><thead><tr><th width="380.3333333333333"></th><th width="143">EB</th><th>ET</th></tr></thead><tbody><tr><td>Réplication</td><td>x4</td><td>x4</td></tr><tr><td>Tolérance de panne : Une AZ indisponible</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Tolérance de panne : Un DC indisponible</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr></tbody></table>

### Caractéristiques du CSI <a href="#kubernetespersistentstorage-caracteristiquesdelisc" id="kubernetespersistentstorage-caracteristiquesdelisc"></a>

<table><thead><tr><th width="395.3333333333333"></th><th>CSI Ceph-rbd</th></tr></thead><tbody><tr><td>Approvisionnement de nouveaux PV</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Remonter le PV existant</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Compatible avec toutes les applications K8S</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Montage multiple (RWX)</td><td><span data-gb-custom-inline data-tag="emoji" data-code="274c">❌</span></td></tr><tr><td>Redimensionnable</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Aperçu</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Tolérance de panne : perte de 1 AZ</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Tolérance de panne : perte de 1 DC</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Compatible avec K8S 1.22+</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr><tr><td>Compatible avec K8S 1.22-</td><td><span data-gb-custom-inline data-tag="emoji" data-code="2705">✅</span></td></tr></tbody></table>

## Activation du stockage Ceph <a href="#kubernetespersistentstorage-activationdustokceph" id="kubernetespersistentstorage-activationdustokceph"></a>

{% hint style="warning" %}
Le stockage persistant CSI Ceph **n'est pas activé par défaut** sur les clusters Kubernetes. Pour activer cette fonctionnalité, veuillez soumettre un ticket de requête ITCare en spécifiant le nom du cluster et vos besoins en stockage.
{% endhint %}

## Recommandations d'utilisation <a href="#kubernetespersistentstorage-recommandationsdutilisation" id="kubernetespersistentstorage-recommandationsdutilisation"></a>

{% hint style="info" %}
**cegedim.cloud** recommande une réflexion approfondie lors de la planification de l'utilisation de CSI Ceph pour vos besoins de stockage :

* **Charges de travail de bases de données** : Pour les exigences de bases de données en production, nous recommandons d'utiliser les offres PaaS de bases de données gérées officielles de **cegedim.cloud** (PostgreSQL, MariaDB, Redis, etc.) au lieu de CSI Ceph. Ces services gérés sont spécifiquement optimisés, surveillés et pris en charge pour les charges de travail de bases de données.
* **Applications critiques** : Pour les données d'applications critiques, des tests approfondis dans des environnements de pré-production sont essentiels avant le déploiement en production avec le stockage CSI Ceph.
* **Meilleurs cas d'usage** : CSI Ceph est bien adapté pour :
  * Stockage de l'état des applications
  * Données de configuration et de cache
  * Stockage de fichiers pour les charges de travail non critiques
  * Environnements de développement et de test

Tester votre charge de travail spécifique avec CSI Ceph dans un environnement de non-production vous aidera à vous assurer qu'elle répond à vos exigences de performance et de fiabilité avant le déploiement en production.
{% endhint %}

## Snapshot et restauration de PVC dans Kubernetes <a href="#kubernetespersistentstorage-snapshotetrestaurationdepvcdanskubernetes" id="kubernetespersistentstorage-snapshotetrestaurationdepvcdanskubernetes"></a>

**cegedim.cloud** utilise External Snapshotter pour prendre des clichés et restaurer le PVC de vos clusters Kubernetes.

Toutes les informations relatives à cette application sont disponibles à l'adresse suivante :

{% embed url="<https://github.com/kubernetes-csi/external-snapshotter>" %}

### Comment savoir si j'ai un snapshotclass actif sur mon cluster ? <a href="#kubernetespersistentstorage-commentsavoirsijaiunsnapshotclassactifsurmoncluster" id="kubernetespersistentstorage-commentsavoirsijaiunsnapshotclassactifsurmoncluster"></a>

Il est recommandé de nommer la classe d'instantanés d'après la classe de stockage. Il suffit d'exécuter la commande ci-dessous pour vérifier :

{% code lineNumbers="true" fullWidth="true" %}

```bash
$ kubectl get sc
NAME                 PROVISIONER           RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
cgdm-rwo (default)   rbd.csi.ceph.com      Delete          Immediate           true                   57d
$ kubectl get  volumesnapshotclass
NAME       DRIVER                DELETIONPOLICY   AGE
cgdm-rwo   rbd.csi.ceph.com      Delete           36d
```

{% endcode %}

## Comment lister les CSI disponibles dans mon cluster ? <a href="#kubernetespersistentstorage-commentlisterlescsidisponiblesdansmoncluster" id="kubernetespersistentstorage-commentlisterlescsidisponiblesdansmoncluster"></a>

Pour répertorier tous les CSI disponibles dans un cluster Kubernetes, procédez comme suit :

{% code lineNumbers="true" fullWidth="true" %}

```bash
kubectl get sc
NAME               PROVISIONER      RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
cgdm-rwo (default) rbd.csi.ceph.com Delete        Immediate         true                 42d
```

{% endcode %}

Voici une correspondance entre la classe de stockage et le CSI :

<table><thead><tr><th width="234">Classes de stockage</th><th>CSI</th></tr></thead><tbody><tr><td>cgdm-rwo</td><td>Ceph RBD</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.cegedim.cloud/francais/calcul/conteneurs-k8s/k8s-architecture/stockage-persistant.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
