Comment configurer bcache?

11

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

  1. De quel compte ai-je besoin pour être connecté lorsque j'ai configuré bcache en premier lieu? Évidemment, l'utilisateur créé lors de l'installation /dev/sdb2doit être déconnecté pour /homeêtre démonté, j'ai donc configuré un compte utilisateur temporaire sur une partition distincte pour le faire. Cela semble déjà trop maladroit.
  2. make-bcache -Bet les -Cdeux me disent qu'il y a des superblocs non bcache sur l'appareil, donc je l'ai fait sudo wipefs -asur les deux appareils. Les partitions apparaissent alors comme non formatées sans UUID dans GParted. Est-ce normal?
  3. Si oui, qu'arrive-t-il à fstab et /homeau démarrage? Dois-je utiliser l'UUID de bcache dans fstab? Je l'ai fait mais le système n'a pas trouvé la /homepartition au prochain démarrage.

  4. Les deux echo /dev/sdb2 > /sys/fs/bcache/registeret echo /dev/sda2 > /sys/fs/bcache/registerrenvoient des messages «Autorisation refusée»; si je comprends /sysbien ne peut pas être écrit.

    Donc , echo /dev/sdb2 | sudo tee /sys/fs/bcache/registersemble avoir fonctionné.

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

Il me semble avoir réussi à créer, enregistrer et attacher le disque de support, mais selon le tail /sys/block/bcache0/bcache/stats_total/*je n'ai que des données contournées. Toute ma configuration est un vrai gâchis maintenant, donc toute clarification serait grandement appréciée.

Laszlo Almasi
la source
L'avez-vous testé? Semble que vous connaissez le "comment faire", ce que vous devez savoir?
Braiam
Je l'ai testé comme ci-dessus et j'obtiens des hits de cache, des ratés et des contournements. Le problème est que mon périphérique de support qui est censé être ma partition domestique n'est pas monté comme home au démarrage, mais comme un lecteur séparé. Donc, mon / home est un dossier sur / en ce moment et je teste bcache en copiant des fichiers sur le support et en y accédant. Je jouais avec fstab, ce qui était probablement une erreur et je n'ai pas d'UUID valide pour ma partition / home maintenant si cela a du sens .. Ce dont j'ai besoin est une procédure pas à pas idiot spécifiquement pour ubuntu.
Laszlo Almasi
OK, j'ai foiré fstab et / home avait le mauvais UUID. Ça semble fonctionner maintenant. Je serais toujours intéressé par la façon dont bcache doit être configuré: à partir d'un compte utilisateur temporaire, d'un CD / USB en direct ou autre?
Laszlo Almasi

Réponses:

7

Avec Ubuntu 15.10, la réponse d'Alex n'est plus correcte. L' initramfsimage est verrouillée dans le programme d'installation et ne sera pas automatiquement recréée lors de l'installation du système. Ainsi, on aura une bcacheinstallation, mais il ne pourra pas démarrer. J'ai écrit une description plus 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 partitionnement suivant avec fdiskou gparted. En supposant que /dev/sdavotre SSD et /dev/sdbvotre disque dur sont les suivants:

/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, effacez 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-toolset créez l' bcacheappareil:

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. Installez 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 REDÉMARREZ PAS une fois l'installation terminée!

4. Installez bcache sur la nouvelle installation

En utilisant un chrootnous installons bcache-toolssur 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 chrootet faites l'installation

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

Pendant l'installation, vous devriez remarquer que le fichier initramfsest re-généré et installé 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
bkloppenborg
la source
2

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

  • Partitionnez le disque dur comme vous le souhaitez (en supposant que /dev/sdb2c'est l'espace que vous voulez pour votre /home).
  • # apt-get install bcache-tools
  • # make-bcache -B /dev/sdb2 -C /dev/sda2 (Cela crée /dev/bcache0, mais le programme d'installation de l'interface utilisateur ne peut pas encore l'utiliser.)
  • # mkfs.ext4 /dev/bcache0 (Cela fait que le programme d'installation voit une "partition / dev / bcache0" sous "device / dev / bcache0" et vous permet de l'utiliser comme "/ home" pendant l'installation.)
  • Exécutez le programme d'installation comme d'habitude, assurez-vous de sélectionner les options avancées de partition de disque.
  • Le programme d'installation crée une initrdimage avec le bcachemodule du noyau inclus et chargé en raison de ce que nous avons installé bcache-toolsplus tôt, donc après le redémarrage, cela fonctionne.
  • Après avoir démarré le système installé, réinstallez-le bcache-tools, afin que les mises à jour ultérieures ne paralysent pas le processus de démarrage en omettant le module de noyau bcache nécessaire dans l'image initrd.
alex
la source
Je suis finalement allé sans bcache parce que j'avais besoin d'un cache pour Ubuntu et Windows dans une configuration à double démarrage et j'accède également à mes disques à partir d'un autre système. J'ai donc décidé que le cache n'était tout simplement pas adapté à ce PC. Merci pour votre aide de toute façon.
Laszlo Almasi
0

J'ai moi 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 semblent un peu velus, mais c'est probablement le seul moyen possible de lancer bcache, au moins jusqu'à ce que bcache fasse partie de l'installateur ubuntu.

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

Après avoir tout fait, recherchez l'UUID de l'ensemble de cache 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

la mise en cache de divers fichiers /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_ratiomontre un taux très satisfaisant de 88% et subjectivement, la machine ressemble à une configuration entièrement SSD.

Vivek
la source