[Ubuntu 18.04] Créer une partition sur un HDD avec un cache SSD

bcache juil. 08, 2019

L’idée est de créer une partition sur un disque dur mécanique, en le melant à un disque SSD comme cache.

L’installation va se dérouler comme suit :

  • Installation des outils
  • Remise à zéro des disques durs concernés
  • Création de la partition et formatage
  • Montage, tests et finalisation

Dans cet article, j’utiliserai deux disques : « /dev/sda » pour le disque dur mécanique, « /dev/sdb » pour le disque SSD.


Pour générer la configuration, il faut auparavant installer le paquet « bcache-tools » – rien de plus simple :

sudo apt install bcache-tools

Les disques durs concernés devront être remis à zéro grâce à la commande « wipefs« , pas forcément quant aux partitions, mais plutôt sur la « signature » du disque (entendez par là les antécédents de RAID et autres configurations du genre).

sudo wipefs -a /dev/sdb
sudo wipefs -a /dev/sdc

La génération du disque avec son cache est maintenant possible via cette commande :

sudo make-bcache -B /dev/sdb -C /dev/sdc
# -B (disque mécanique) -C (disque SSD cache)

La commande ci-dessus génère en fait une sorte de disque dur virtuel. Nous pouvons donc créer une partition sur ce « nouveau » disque puis le monter pour tester. J’ai choisi l’EXT4 et non pas le BTRFS par soucis de compatibilité et simplicité.

sudo mkfs.ext4 /dev/bcache0
sudo mkdir /data
sudo mount -o rw /dev/bcache0 /data
sudo chown user:user /data

J’ai créé un dossier « /data » pour y monter le disque avec son cache ; libre à vous de changer/choisir un autre emplacement.
Avec la commande « mount », vous aurez accès pleinement à votre nouveau disque. Essayez de créer des dossiers/fichiers à l’intérieur pour être sûr. A cet instant, la partition est exploitable. L’outil « bcache » s’occupe tout seul quant à la mise en cache des données. Par défaut, le mode de cache sera en writethrough, permettant d’écrire/lire dans le cache en premier puis en synchronisant les données vers le disque dur mécanique une fois les inputs fermés. Deux autres modes sont disponibles (writeback – les données sont écrites dans le cache et seront ré-écrites dans le stockage mécanique une fois l’I/O complètement terminée ; et writearound – les données sont écrites directement sur le stockage mécanique avant d’être lues sur le SSD)

Pour contrôler l’état du cache et le mode que vous avez sélectionné, voici les deux commandes :

# Voir le mode de cache mis en place
cat /sys/block/bcache0/bcache/cache_mode

# Connaître l'état du cache (état bon ou mauvais)
cat /sys/block/bcache0/bcache/state

Au redémarrage du PC, le montage précédemment effectué ne sera plus là. Il faut modifier le fichier fstab pour monter définitivement le disque. Effectuez une sauvegarde du fichier auparavant.

cp /etc/fstab /etc/fstab.backup
sudo nano /etc/fstab

--- partition HDD2Tb+SSD128G(cache)
UUID=f3631f8d-fcbb-49a3-900b-a9e8f92feff7    /data   ext4    defaults    0 1

L’UUID du disque « bcache0 » se récupère via la commande « sudo blkid » – recherchez alors la ligne avec « /dev/bcache0 » et récupérez l’UUID. Remplacez « /data » par votre configuration.

Julien

Passionné par l'informatique depuis tout petit, je transforme ma passion en expertise. Utilisateur au quotidien des systèmes Microsoft, les OS GNU/Linux sont toujours sous mon coude ! Hire me !