web-dev-qa-db-fra.com

Comment configurer bcache?

J'ai essayé de configurer bcache dans Ubuntu 14.04 avec une nouvelle installation et une partition /home vide (/dev/sdb2) en tant que périphérique de sauvegarde. J'ai un système en cours d'exécution sur mon SSD et j'aimerais utiliser sa partition /dev/sda2 pour mettre en cache mon /home. J'ai toujours réussi à résoudre mes problèmes d'ubuntu à partir de forums, mais j'ai du mal à comprendre les bases ici et j'ai besoin d'aide:

  1. De quel compte dois-je être connecté pour configurer bcache? Il est évident que l'utilisateur créé lors de l'installation sur /dev/sdb2 doit être déconnecté pour que /home soit démonté. J'ai donc configuré un compte d'utilisateur temporaire sur une partition distincte. Cela semble déjà trop maladroit.
  2. make-bcache -B et -C me disent tous les deux qu'il existe des superblocs non bcache sur le périphérique. J'ai donc Sudo wipefs -a sur les deux périphériques. Les partitions apparaissent alors comme non formatées sans UUID dans GParted. Est-ce normal?
  3. Si oui, qu'advient-il de fstab et de /home au démarrage? Dois-je utiliser l'UUID de bcache dans fstab? Je l'ai fait mais le système n'a pas trouvé la partition /home lors du prochain démarrage.

  4. echo /dev/sdb2 > /sys/fs/bcache/register et echo /dev/sda2 > /sys/fs/bcache/register renvoient les messages 'autorisation refusée'; Si j'ai bien compris, /sys ne peut pas être écrit.

    Donc, echo /dev/sdb2 | Sudo tee /sys/fs/bcache/register semble avoir fonctionné.

Est-ce que quelqu'un peut vérifier que c'est la bonne façon de le faire dans Ubuntu?

Je semble avoir réussi à créer, enregistrer et attacher le lecteur de sauvegarde, mais selon le tail /sys/block/bcache0/bcache/stats_total/* je n'ai que des données ignorées. Toute ma configuration est un désastre maintenant, donc toute clarification serait grandement appréciée.

9
Laszlo Almasi

Avec Ubuntu 15.10, la réponse d’Alex n’est plus correcte. L'image initramfs est verrouillée dans le programme d'installation et ne sera pas automatiquement régénérée lors de l'installation du système. Ainsi, on aura une installation bcache, mais il ne pourra pas démarrer. J'ai écrit un plus description détaillée du processus suivant ailleurs ; Cependant, voici les bases:

1. Partitionnement

Démarrez dans le live-cd Ubuntu et créez le schéma de partition suivant avec fdisk ou gparted. En supposant que /dev/sda soit votre disque SSD et /dev/sdb votre disque dur:

/dev/sda1 - 1024 MB, EXT4, used for /boot (grub/grub2 doesn't support bcache)
/dev/sda2 - any format, for cache
/dev/sdb1 - EFI partition (if your machine needs it)
/dev/sdb2 - swap
/dev/sdb3 - any format, backing partition

2. Créez le périphérique bcache

Ouvrez le terminal, nettoyez les systèmes de fichiers sur le périphérique de sauvegarde et de mise en cache:

Sudo wipefs -a /dev/sda2
Sudo wifefs -a /dev/sdb3

Installez bcache-tools et créez le périphérique bcache:

Sudo apt-get update
Sudo apt-get install bcache-tools
Sudo make-bcache -B /dev/sdb3 -C /dev/sda2
Sudo mkfs.ext4 /dev/bcache0

3. Installer Ubuntu

Installez le système d'exploitation à l'aide du partitionneur personnalisé comme suit:

/dev/bcache0 - format EXT4, use as /
/dev/sda1    - format EXT4, use as /boot
/dev/sdb1    - EFI partition (if your machine needs it)
/dev/sdb2    - swap

NE PAS REDÉMARRER après la fin du programme d'installation!

4. Installez bcache sur la nouvelle installation

En utilisant chroot, nous installons bcache-tools sur la nouvelle installation. Configurer l'environnement et activer la résolution DNS

Sudo mount /dev/bcache0 /mnt
Sudo mount /dev/sda1 /mnt/boot
Sudo mount --bind /dev /mnt/dev
Sudo mount --bind /proc /mnt/proc
Sudo mount --bind /sys /mnt/sys
Sudo cp /etc/resolv.conf /mnt/etc/resolv.conf

Entrez dans le chroot et effectuez l'installation

Sudo chroot /mnt
Sudo apt-get update
Sudo apt-get install bcache-tools

Pendant l'installation, notez que la variable initramfs est régénérée et installée sur la partition (chroot- ed) /boot.

5. nettoyage

Démontez proprement le système de fichiers et redémarrez.

exit
Sudo umount /mnt/sys
Sudo umount /mnt/proc
Sudo umount /mnt/dev
Sudo umount /mnt/boot
Sudo umount /mnt
Sudo reboot
5
bkloppenborg

Après quelques essais et erreurs, je suis arrivé à la solution suivante pour un installation propre:

  • Partitionnez le disque dur comme vous le souhaitez (en supposant que /dev/sdb2 est l’espace souhaité pour votre /home).
  • # apt-get install bcache-tools
  • # make-bcache -B /dev/sdb2 -C /dev/sda2 (Ceci crée /dev/bcache0, mais le programme d'installation de l'interface utilisateur ne peut pas encore l'utiliser.)
  • # mkfs.ext4 /dev/bcache0 (Le programme d'installation voit apparaître une "partition/dev/bcache0" sous "device/dev/bcache0" et vous permet de l'utiliser comme "/ home" lors de l'installation.)
  • Exécutez le programme d'installation comme d'habitude, veillez à sélectionner les options avancées de partition de disque.
  • Le programme d’installation crée initrd image avec le module de noyau bcache inclus et chargé du fait que nous avons déjà installé bcache-tools, afin qu’il ne fonctionne plus après le redémarrage.
  • Après avoir démarré le système installé, installez une nouvelle fois bcache-tools, afin que les mises à jour ultérieures ne gênent pas le processus de démarrage en omettant le module de noyau bcache nécessaire de l'image initrd.
2
alex

J'ai aussi essayé et échoué plusieurs fois jusqu'à ce que je trouve ces instructions: http://www.wdong.org/wordpress/blog/2014/05/28/installing-ubuntu-14-04-to-bcache/

Ils ont l’air un peu poilu mais c’est probablement le seul moyen possible de lancer bcache, du moins jusqu’à ce que bcache devienne une partie de l’installateur Ubuntu.

La seule omission curieuse dans les instructions est la toute dernière étape.

Une fois que vous avez tout fait, recherchez l'UUID du cache défini dans/sys/fs/bcache et procédez comme suit:

echo <UUID> > /sys/block/bcache0/bcache/attach

Si vous souhaitez activer le mode d'écriture différée (ce que je recommande fortement):

echo writeback > /sys/block/bcache0/bcache/cache_mode

catting divers fichiers dans /sys/block/bcache0/bcache/ vous dira tout sur le fonctionnement du cache. J'ai installé mon système en utilisant ces instructions le 26 juillet de cette année et tout fonctionne parfaitement depuis. cat /sys/block/bcache0/bcache/stats_total/cache_hit_ratio affiche un résultat hautement satisfaisant de 88% et, subjectivement, la machine ressemble à une configuration 100% SSD.

0
Vivek