¿Cómo configurar bcache?

11

Intenté configurar bcache en Ubuntu 14.04 con una instalación nueva y una /homepartición vacía ( /dev/sdb2) como dispositivo de respaldo. Tengo un sistema en ejecución en mi SSD y me gustaría usar su /dev/sda2partición para almacenar en caché mi /home . Siempre me las arreglé para ordenar mis problemas de ubuntu de los foros, pero me cuesta entender los conceptos básicos aquí y necesito ayuda:

  1. ¿Qué cuenta necesito para iniciar sesión cuando configuro bcache en primer lugar? Obviamente, el usuario creado durante la instalación /dev/sdb2tiene que cerrar la sesión para /homepoder desmontarlo, así que configuré una cuenta de usuario temporal en una partición separada para hacerlo. Esto ya parece demasiado torpe.
  2. make-bcache -By -Cambos me dicen que hay superbloques no bcache en el dispositivo, así que lo hice sudo wipefs -aen ambos dispositivos. Las particiones aparecen entonces sin formato sin un UUID en GParted. ¿Esto es normal?
  3. Si es así, ¿qué pasa con fstab y /homeen el arranque? ¿Debo usar el UUID de bcache en fstab? Lo hice pero el sistema no encontró la /homepartición en el próximo arranque.

  4. Ambos echo /dev/sdb2 > /sys/fs/bcache/registery echo /dev/sda2 > /sys/fs/bcache/registerdevuelven mensajes de "Permiso denegado"; según tengo entendido /sys, no se puede escribir en él.

    Entonces echo /dev/sdb2 | sudo tee /sys/fs/bcache/registerparece haber funcionado.

¿Alguien puede verificar que esta es la forma correcta de hacerlo en Ubuntu?

Parece que he logrado crear, registrar y adjuntar la unidad de respaldo, pero de acuerdo con esto tail /sys/block/bcache0/bcache/stats_total/*solo he omitido los datos. Toda mi configuración es un desastre ahora, por lo que cualquier aclaración sería muy apreciada.

Laszlo Almasi
fuente
¿Lo has probado? Parece que sabes el "cómo hacerlo", ¿qué necesitas saber?
Braiam
Lo probé como se indica arriba y obtengo aciertos, errores y omisiones de caché. El problema es que mi dispositivo de respaldo, que se supone que es mi partición de inicio, no está montado como inicio en el inicio, sino como una unidad separada. Por lo tanto, mi / home es una carpeta en / en este momento y estoy probando bcache copiando archivos en el dispositivo de respaldo y accediendo a ellos. Estaba jugando con fstab, lo que probablemente fue un error y ahora no tengo un UUID válido para mi partición / home si eso tiene sentido ... Lo que necesito es un recorrido a prueba de idiotas específicamente para ubuntu.
Laszlo Almasi
OK, estropeé fstab y / home tenía el UUID incorrecto. Parece que funciona ahora. Todavía me interesaría cómo se debe configurar exactamente bcache: ¿desde una cuenta de usuario temporal, CD / USB en vivo u otro?
Laszlo Almasi

Respuestas:

7

Con Ubuntu 15.10, la respuesta de alex ya no es correcta. La initramfsimagen está bloqueada en el instalador y no se volverá a generar automáticamente cuando se instale el sistema. Por lo tanto, uno tendrá una bcacheinstalación, pero no podrá arrancar. He escrito una descripción más detallada del siguiente proceso en otro lugar ; Sin embargo, aquí están los conceptos básicos:

1. Particionamiento

Inicie en Ubuntu live-cd y cree el siguiente esquema de partición con fdisko gparted. Asumiendo que /dev/sdaes su SSD y /dev/sdbes su HDD:

/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. Crear el dispositivo bcache

Abra el terminal, limpie los sistemas de archivos en el dispositivo de respaldo y almacenamiento en caché:

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

Instala bcache-toolsy crea el bcachedispositivo:

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. Instalar Ubuntu

Instale el sistema operativo utilizando el particionador personalizado de la siguiente manera:

/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

¡NO REINICIE una vez que se complete el instalador!

4. Instale bcache en la nueva instalación

Usando una chrootinstalamos bcache-toolsen la nueva instalación. Configurar el entorno y habilitar la resolución 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

Entra chrooty haz la instalación

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

Durante la instalación, debe notar que initramfsse vuelve a generar e instalar en la partición ( chroot-ed) /boot.

5. Limpieza

Desmonta limpiamente el sistema de archivos y reinicia.

exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt
sudo reboot
bkloppenborg
fuente
2

Después de algunas pruebas y errores, llegué a la siguiente solución para una instalación limpia:

  • Particione el HDD de la manera que desee (suponiendo que /dev/sdb2sea ​​el espacio que desea para su /home).
  • # apt-get install bcache-tools
  • # make-bcache -B /dev/sdb2 -C /dev/sda2 (Esto crea /dev/bcache0, pero el instalador de la interfaz de usuario aún no puede usarlo).
  • # mkfs.ext4 /dev/bcache0 (Esto hace que el instalador vea una "partición / dev / bcache0" en "dispositivo / dev / bcache0" y le permite usarlo como "/ home" durante la instalación).
  • Ejecute el instalador como de costumbre, asegúrese de seleccionar opciones avanzadas de partición de disco.
  • El instalador crea una initrdimagen con el bcachemódulo del núcleo incluido y cargado debido a que lo hemos instalado bcache-toolsanteriormente, por lo que después de reiniciar simplemente funciona.
  • Después de iniciar el sistema instalado, instálelo bcache-toolsuna vez más, para que las actualizaciones posteriores no obstaculicen el proceso de inicio al omitir el módulo del núcleo bcache necesario de la imagen initrd.
alex
fuente
Al final me quedé sin bcache porque necesitaba el almacenamiento en caché para Ubuntu y Windows en una configuración de arranque doble y también tengo acceso a mis unidades desde otro sistema. Así que decidí que el almacenamiento en caché simplemente no es adecuado para esta PC. Gracias por tu ayuda de todos modos.
Laszlo Almasi
0

También lo intenté y fallé muchas veces hasta que encontré estas instrucciones: http://www.wdong.org/wordpress/blog/2014/05/28/installing-ubuntu-14-04-to-bcache/

Suenan algo peludos, pero esta es probablemente la única forma factible de poner en marcha bcache, al menos hasta que bcache se convierta en parte del instalador de ubuntu.

La única omisión curiosa en las instrucciones es la última etapa.

Después de haber hecho todo, busque el UUID del conjunto de caché en / sys / fs / bcache y haga esto:

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

Si desea habilitar el modo de reescritura (que recomiendo encarecidamente):

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

La captura de varios archivos /sys/block/bcache0/bcache/le dirá todo sobre cómo se está ejecutando el caché. Configuré mi sistema usando estas instrucciones el 26 de julio de este año y todo funciona perfectamente desde entonces. cat /sys/block/bcache0/bcache/stats_total/cache_hit_ratiomuestra un 88 por ciento altamente satisfactorio y subjetivamente, la máquina se siente como una configuración totalmente SSD.

Vivek
fuente