Aller au contenu principal
Version: 3.0.0-alpha (Diátaxis)

Comment attacher un disque supplémentaire

Séparer les données applicatives du disque système est une bonne pratique pour la fiabilité et la flexibilité de vos VMs. Ce guide explique comment créer un disque supplémentaire, l'attacher à une VMInstance existante, puis le formater et le monter dans le système d'exploitation.

Prérequis

  • kubectl configuré avec votre kubeconfig Hikube
  • Une VMInstance existante et fonctionnelle
  • Un accès SSH ou console à la VM

Étapes

1. Créer un VMDisk supplémentaire

Créez un disque vide de la taille souhaitée. Un disque vide utilise source: {} sans URL ni image :

data-disk.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: VMDisk
metadata:
name: vm-data-disk
spec:
source: {}
optical: false
storage: 50Gi
storageClass: replicated

Appliquez le manifeste :

kubectl apply -f data-disk.yaml

Vérifiez que le disque est prêt :

kubectl get vmdisk vm-data-disk -w

Résultat attendu :

NAME            STATUS   SIZE   STORAGECLASS   AGE
vm-data-disk Ready 50Gi replicated 30s

2. Référencer le disque dans la VMInstance

Ajoutez le nom du nouveau disque dans la liste spec.disks[] de votre VMInstance. Par exemple, si votre VM utilise déjà un disque système vm-system-disk :

vm-instance.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: VMInstance
metadata:
name: my-vm
spec:
runStrategy: Always
instanceType: u1.xlarge
instanceProfile: ubuntu
external: true
externalMethod: PortList
externalPorts:
- 22
disks:
- vm-system-disk
- vm-data-disk
sshKeys:
- ssh-ed25519 AAAA... user@host

3. Appliquer les changements

kubectl apply -f vm-instance.yaml
attention

La VM ne redémarre pas automatiquement après l'ajout d'un disque. Vous devez la redémarrer manuellement :

# Option 1 : via virtctl
virtctl restart my-vm

# Option 2 : via runStrategy
kubectl patch vminstance my-vm --type='merge' -p '{"spec":{"runStrategy":"Halted"}}'
kubectl patch vminstance my-vm --type='merge' -p '{"spec":{"runStrategy":"Always"}}'

Attendez que la VM soit de nouveau en état Running avant de continuer.

4. Formater et monter le disque dans la VM

Connectez-vous à la VM :

virtctl ssh -i ~/.ssh/id_ed25519 ubuntu@my-vm

Identifiez le nouveau disque avec lsblk :

lsblk

Résultat attendu :

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda 252:0 0 20G 0 disk
├─vda1 252:1 0 19.9G 0 part /
└─vda15 252:15 0 106M 0 part /boot/efi
vdb 252:16 0 50G 0 disk

Le nouveau disque apparait comme vdb (sans partition ni point de montage).

Formatez le disque en ext4 :

sudo mkfs.ext4 /dev/vdb

Créez le point de montage et montez le disque :

sudo mkdir -p /mnt/data
sudo mount /dev/vdb /mnt/data

Pour rendre le montage persistant au redémarrage, ajoutez une entrée dans /etc/fstab :

echo '/dev/vdb /mnt/data ext4 defaults 0 2' | sudo tee -a /etc/fstab

Vérification

Vérifiez que le disque est correctement monté et accessible :

df -h /mnt/data

Résultat attendu :

Filesystem      Size  Used Avail Use% Mounted on
/dev/vdb 49G 24K 47G 1% /mnt/data

Testez l'écriture :

sudo touch /mnt/data/test.txt && echo "OK"
Stockage répliqué

Utilisez toujours storageClass: replicated pour les disques de données en production. Cela garantit la réplication sur plusieurs datacenters.

Pour aller plus loin