Quiero saber si hay alguien que haya intentado instalar y ejecutar su kernel construido con flashcache o bcache para el almacenamiento en caché SSD.
¿Cómo lo lograste?
Quiero saber si hay alguien que haya intentado instalar y ejecutar su kernel construido con flashcache o bcache para el almacenamiento en caché SSD.
¿Cómo lo lograste?
Respuestas:
Bueno, obtuvimos una respuesta bcache pero no una respuesta flashcache. Elegí flashcache porque ya tenía una instalación existente, por lo que bcache estaba fuera de discusión. Para mí, también parecía más fácil de configurar. Elegí el método DKMS para no quedarme atascado reconstruyendo el módulo / las herramientas cada vez que obtenía una actualización del kernel.
Estos pasos se describen en README-DKMS en Github.
Construyendo el Módulo
Lo primero que debe hacer es instalar los requisitos previos del edificio:
sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
Luego enganche la fuente:
git clone git://github.com/facebook/flashcache; cd flashcache
Construye e instala los módulos:
make -f Makefile.dkms
Crear un dispositivo flashcache
(En este ejemplo, uso el almacenamiento en caché de reescritura, el valor predeterminado, pero flashcache también puede hacer reescritura y escritura)
Almacenamiento en caché de un dispositivo no root (no montado en /)
sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX
Donde fcache es el dispositivo creado (/ dev / mapper / fcache), / dev / sdaX es la partición SSD (o el disco completo) y / dev / sdbX es la partición HDD.
Almacenamiento en caché de su dispositivo raíz
Hay algunos pasos más si está almacenando en caché su dispositivo raíz. Necesitará un Ubuntu LiveCD / USB para esta sección.
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
Edite /boot/grub/grub.cnf y / etc / fstab para arrancar desde / dev / mapper / fcache (no creo que este paso sea realmente necesario, pero dice que sí). Asegúrese de anotar el UUID de su dispositivo raíz original.
Reinicie con el LiveCD / LiveUSB.
Monte su dispositivo raíz: mount /dev/sda4 /mnt
(/ dev / sda4 es mi partición raíz de Linux)
cd /mnt/path/to/flashcache/source
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make; sudo make install
No es necesario hacer toda la configuración de DKMS en el entorno en vivo
Desmontar el dispositivo raíz sudo umount /mnt
sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID]
Donde fcache es el dispositivo creado (debe ser el mismo que puso en / etc / fstab y /boot/grub/grub.cnf, en mi caso fue fcache), / dev / sdbX es la partición SSD (o el disco completo ) y [UUID] es el UUID de su partición raíz.
¡Reiniciar!
Advertencias al usar el dispositivo raíz
Una molestia menor cuando se usa flashcache para el dispositivo raíz es que grub-probe no puede detectar el dispositivo raíz y puede estropear el menú de arranque para que tenga dos entradas de Ubuntu. Pero, no debería importar cuál use en toda la realidad ya que el make -f Makefile.dkms boot_conf
paso anterior instala algunos scripts en su initrd que detectarán y usarán el dispositivo flashcache.
linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodeset
a linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset
(es decir, cambiar la raíz = parámetro)
Hay una herramienta de conversión para habilitar bcache en un dispositivo existente (divulgación: lo escribí). También es el camino a seguir para realizar nuevas instalaciones, ya que los instaladores de distribución actuales no saben cómo crear dispositivos bcache (en cuyo caso: comience por instalar en el HDD).
Consulte la conversión de su sistema de archivos raíz a bcache en el archivoblocks
README para obtener instrucciones.
bcache requiere Linux 3.10 o más reciente, que es descarado, y se puede instalar manualmente desde
http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D (busque la versión etiquetada más nueva , actualmente v3.11.5-saucy
, e instale las debs que coincidan con su arquitectura).
bcache-tools
y blocks
se puede instalar desde mi ppa de almacenamiento .
/
, /home
, /usr/
, ...) mientras el sistema está en funcionamiento (como maintboot se rompe). Como alternativa, puede usar una memoria USB en vivo, instalarla blocks
allí y usarla para convertir sus discos. Sin embargo, tenga en cuenta que esta herramienta solo funciona en las tablas de partición MBR y GPT primarias y requiere 1MiB de espacio adicional antes de cada partición.
Advertencia previa: bcache no se puede usar para su instalación actual de Ubuntu. Si necesita almacenamiento en caché SSD para su sistema operativo, debe esperar una versión futura o especial del instalador de Ubuntu que pueda configurar su caché SSD. Vea esta respuesta de Oli aquí: ¿bcache requiere una instalación nueva?
Para todos los demás que desean una unidad bcache para datos que no sean del sistema operativo:
Lo primero que debe hacer es actualizar su kernel si está usando 13.04 o anterior usando el PPA de la línea principal del kernel. Las instrucciones para usar esto se pueden encontrar aquí:
https://wiki.ubuntu.com/Kernel/MainlineBuilds
Asegúrese de seleccionar el kernel 3.9 o superior al arrancar o no funcionará y su unidad desaparecerá.
Instale bcache-tools, en este momento tendrá que instalar desde el repositorio de git:
git clone http://evilpiepirate.org/git/bcache-tools.git
Si logras empacar bcache-tools
para Debian, avísanos y esta pregunta se actualizará por ti. ( bcache-tools
Las dependencias de compilación son uuid-dev
y libblkid-dev
. Deben estar instaladas para compilar bcache-tools
).
Una vez que tenga todas las herramientas en su lugar, está listo para probar y seguir la guía aquí:
http://atlas.evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt
Esta guía muestra cómo formatear las unidades (SSD Y disco duro) y luego unirlas para crear un nuevo bloque de dispositivo usando bcache. Publique un comentario si encuentra las instrucciones confusas y actualizaré esta respuesta con simplificaciones.
Pensé en venir aquí y comentar lo que se me ocurrió cuando instalé un nuevo núcleo. Estaba usando flashcache solo para mi partición / home / carpeta. Instalé un nuevo kernel, lo inicié y se detuvo durante el arranque y dijo que no podía encontrar / dev / mapper / home_cached, hay 3 opciones que tiene cuando recibe este mensaje y elijo la opción de iniciar sesión como root y Intenta arreglarlo. Primero intenté cargar el módulo flashcache y me dijo que no podía encontrarlo. Así que pensé que tendría que compilarlo e instalarlo para este nuevo núcleo que acabo de instalar. Todavía tenía la carpeta / flashcache / ubicada dentro de / root /, así que hice un CD y corrí
make -f Makefile.dkms boot_conf
entonces corrí
make install
luego cargué el módulo flashcache con
modprobe flashcache
entonces solo tuve que cargar mi dispositivo flashcache existente que era
flashcache_load /dev/sdb1
entonces solo monte mi partición de casa con
mount /home
luego salga del inicio de sesión como root con exit en la línea de comando y debería continuar arrancando normalmente. ¡todo listo!