Un disque rattaché à un VPS apparaît comme un périphérique, et rien de plus. Tant qu'il n'est ni formaté ni monté, il ne contient rien et aucun répertoire ne pointe dessus : voilà pourquoi un volume fraîchement rattaché donne l'impression de n'avoir pas fonctionné.
Voir ce qui est rattaché
lsblk -f
Le nouveau périphérique n'a ni FSTYPE ni MOUNTPOINT. C'est ainsi qu'on le distingue du disque système, qui porte déjà un système de fichiers.
Le formater
sudo mkfs.ext4 -L data /dev/sdb
Un système de fichiers sur tout le périphérique, sans table de partitions, est normal pour un volume cloud et facilite l'agrandissement ultérieur. Ne partitionnez que si autre chose attend une partition.
Le monter
sudo mkdir -p /srv/data
sudo mount /dev/sdb /srv/data
df -h /srv/data
L'étape que l'on oublie
Un montage fait à la main disparaît au redémarrage suivant, et le répertoire redevient un dossier vide sur le disque système — qui se remplit alors pendant que le volume reste inutilisé. Inscrivez-le dans fstab par UUID, car les noms de périphériques peuvent changer d'ordre d'un démarrage à l'autre.
sudo blkid /dev/sdb
# UUID="0a1b2c3d-..." TYPE="ext4"
echo 'UUID=0a1b2c3d-... /srv/data ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
sudo mount -a
Y déplacer les données
- Arrêtez ce qui écrit là — la base de données ou le serveur web, pour que rien ne change en cours de copie.
- Copiez en conservant les droits —
sudo rsync -aHAX /var/lib/mysql/ /srv/data/mysql/ - Pointez le service vers le nouveau chemin — puis relancez-le.
- Gardez l'ancienne copie jusqu'à la preuve — renommez-la plutôt que de la supprimer, et effacez-la une semaine plus tard.