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:
/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.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?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.
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.
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:
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
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
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!
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
.
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
Après quelques essais et erreurs, je suis arrivé à la solution suivante pour un installation propre:
/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.)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.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.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.