¿Cuáles son las ventajas / desventajas de las diferentes opciones de almacenamiento en caché de SSD a HDD (dm-cache, flashcashe ...)?

23

Parece que hay varias tecnologías diferentes disponibles para usar un SSD para actuar como caché para HHD. Los que conozco:

  • dm-cache (por Redhat - en el Kernel 3.9, por lo que debería estar en ubuntu 13.10)
  • Flashcache (desarrollado y utilizado por Facebook)
  • Bcache (desarrollado y utilizado por Google)
  • EnhanceIO (por STEC; basado en Flashcache)

¿Hay diferencias notables en las diversas implementaciones? ¿Cuál es el mejor para el uso habitual de PC de escritorio, para aumentar el rendimiento de los programas habituales, como los navegadores web o los juegos?

Uli
fuente
Para aumentar el rendimiento, descubrí que la instalación de Ubuntu de 64 bits funcionó muy bien, ¡mi máquina se volvió aún más rápida que antes! Además, sobre el caché, debe usar caché comprimido ram con este paquete zram-configque tendrá prioridad en el uso de intercambio. Y, guarde el juego en el SDD y pruébelo. ¡Algunos juegos no funcionarán mucho más rápido, otros funcionarán muy bien! Prefiero no usar SDD como caché debido a su límite de escritura, pero los SDD se están volviendo más baratos, por lo que ya no hay tanta preocupación :)
Aquarius Power

Respuestas:

14

Realmente no sé por dónde empezar, ya que todo esto es excelente información. Comenzaré con información sobre los SSD, luego una descripción de todos los diferentes métodos de almacenamiento en caché, y continuaré desde allí. espero que tú

Ventajas desventajas

  • Precio: los SSD son de alguna manera caros
  • Capacidad máxima y común: los SSD de alta capacidad son muy raros y caros
  • Velocidad: aquí es donde los SSD obtienen ventaja
  • Durabilidad: un SSD no tiene partes móviles

Lo mejor es tener un sistema híbrido, tener lo mejor de ambos mundos (capacidad, confiabilidad, velocidad, etc.)

El núcleo Linux 3.9 (disponible el 28 de abril de 2013) introduce el almacenamiento en caché SSD. El mapeador de dispositivos del núcleo ahora incluye un objetivo de caché llamado dm-cache que permite que las SSD u otro dispositivo de almacenamiento se utilicen como caché para un disco duro. Básicamente, acelera la escritura y lectura de datos, ya que permite que el SSD más rápido primero almacene datos en caché y luego los transfiera al disco duro más lento.

Fuente: Iwn

Flashcache es un módulo originalmente escrito y lanzado por Facebook (Mohan Srinivasan, Paul Saab y Vadim Tkachenko) en abril de 2010. Es un módulo del núcleo que permite el almacenamiento en caché de escritura de una unidad en otra unidad. Esto se usa con mayor frecuencia para almacenar en caché una unidad giratoria en una unidad de estado sólido más pequeña por razones de rendimiento. Esto le brinda la velocidad de un SSD y el tamaño de una unidad rotativa estándar para archivos almacenados en caché recientemente. FlashCache es un caché de bloque de reescritura de propósito general para Linux.

Fuente: ArchLinux

Bcache es un caché de capa de bloque de kernel de Linux. Permite que una o más unidades de disco rápidas, como las unidades de estado sólido (SSD) basadas en flash, actúen como caché para una o más unidades de disco duro más lentas.

Los discos duros son baratos y grandes, los SSD son rápidos pero pequeños y caros. ¿No sería bueno si pudieras obtener las ventajas de ambos de manera transparente? Con Bcache, puedes tener tu pastel y comértelo también.

Los parches Bcache para el kernel de Linux permiten utilizar SSD para almacenar en caché otros dispositivos de bloque. Es análogo a L2Arc para ZFS, pero Bcache también realiza el almacenamiento en caché de reescritura (además de solo escribir a través del almacenamiento en caché), y es independiente del sistema de archivos. Está diseñado para encenderse con un mínimo de esfuerzo y para funcionar bien sin configuración en ninguna configuración. De forma predeterminada, no almacenará en caché las E / S secuenciales, solo las lecturas y escrituras aleatorias en las que los SSD se destacan. Está destinado a ser adecuado para equipos de escritorio, servidores, matrices de almacenamiento de alta gama y quizás incluso integrado.

El objetivo del diseño es ser tan rápido como el SSD y el dispositivo almacenado en caché (dependiendo de la memoria caché frente a la falla y las escrituras escritas frente a reescritura) dentro del margen de error. Todavía no está allí, principalmente para lecturas secuenciales. Pero las pruebas han demostrado que es enfáticamente posible, e incluso en algunos casos hacerlo mejor, principalmente escrituras aleatorias.

Fuente: Bcache

Bcache tiene una gran desventaja, y le quita memoria al sistema para implementar el caché.

EnhanceIO es una solución que se ejecuta por debajo de la capa de aplicación, permitiendo que las aplicaciones utilicen los beneficios de rendimiento de los SSD sin cambios importantes en la infraestructura de TI. Un caché SSD puede proporcionar la mayoría de los beneficios de cambiar de HDD a SSD a una fracción del costo de un sistema totalmente SSD. Un sistema en caché generalmente funciona con menos energía que un sistema basado en HDD de rendimiento similar, y eso crea un beneficio adicional al reducir los requisitos de enfriamiento.

Un caché SSD también puede extender la vida útil de un sistema existente al mejorar el rendimiento para satisfacer las crecientes demandas a través de una inversión incremental, en lugar de a través de una actualización / reemplazo total del sistema existente.

El almacenamiento en caché también permite un acceso más rápido a los datos sin la sobrecarga administrativa adicional de almacenamiento para adquirir e instalar nuevos estantes de disco, configurar nuevos LUN y migrar datos a los nuevos LUN. El almacenamiento en caché es casi transparente y requiere poco o ningún tiempo de inactividad. EnhanceIO se basa en Flashcache.

Fuente: Stec-Inc

bcache es el más inútil de todos porque requiere una partición de datos especialmente preparada (formateada). Esto hace que sea difícil (si es posible) adjuntar caché a la partición existente con datos, ya que uno necesitaría un 200% de capacidad y realizar un movimiento de datos largo para activar / desactivar el almacenamiento en caché.

La brillantez de EnhanceIO es que no necesita ningún dispositivo intermedio y se puede conectar a cualquier dispositivo de bloque sobre la marcha, incluso cuando el dispositivo ya está montado. Otra cosa súper genial es que puede adjuntar la memoria caché EnhanceIO no solo a la partición sino a un dispositivo de bloque particionado para almacenar en caché todas sus particiones a la vez. Al igual que los módulos flashchache enchanceio están construidos con DKMS y pueden usarse con núcleos más antiguos.

Fuente: Debian

Ventajas de DM Cache

Las memorias caché DM utilizan una arquitectura simplificada, que las hace adaptables y fáciles de personalizar. Los usuarios pueden ajustar el tamaño del bloque y la capacidad de caché en función de la cantidad de datos que tendrá que manejar o del valor de los datos. Si una aplicación en particular necesita almacenar una gran cantidad de datos en secuencia, los usuarios pueden configurar el caché para ese propósito. Si un usuario desea registrar información en una base de datos simultáneamente con el caché, eso no interferirá con las operaciones del caché.

Desventajas de la caché DM

Una desventaja de usar un caché DM es que el sistema operativo Linux tiene espacio limitado para almacenar metadatos. Si el caché es grande e incluye muchos bloques pequeños, eso suma muchos metadatos para la información almacenada. Para resolver este problema, el usuario debe aumentar el tamaño del bloque. Otro posible problema es que, después de un bloqueo del servidor, es posible que los metadatos de la memoria caché ya no coincidan con el contenido de la memoria caché, aunque eventualmente es posible restaurar la configuración correcta.

Fuente: Complementos de Fraser Sherman

Entonces, a partir de la información anterior, está claro que EnhanceIO es el camino a seguir, pero en mi opinión, ya que está basado en Flashcache, iría con caché flash. Pero definitivamente los probaré a ambos antes de tomar una decisión final.

Mitch
fuente
EnhanceIO: un controlador basado en el software de almacenamiento en caché EhanceIO SSD derivado del proyecto de código abierto Flashcache de Facebook que es útil para usar SSD como dispositivos de caché para discos duros tradicionales. webupd8.org/2013/05/get-better-linux-desktop-performance.html
Qasim
¡Gracias por la respuesta! Esperemos que EnhanceIO aterrice en el kernel 3.10 y esté disponible en la próxima versión de Ubuntu.
Uli
1
Buena redacción, pero debo resaltar que la memoria caché DM es totalmente segura, si experimenta un bloqueo, no está perdiendo ningún dato, por supuesto. En la práctica, el caché podría ser menos eficiente durante algún tiempo hasta que se regeneren los metadatos.
lzap
3
El comentario sobre el uso de la memoria bcache es incorrecto, también lo es (citado) sobre la conversión.
Gabriel
@Gabriel no dude en modificar, pero incluya la fuente. :)
Mitch
1

Comentarios: Instalé los paquetes deb estándar de flashcache en Ubuntu hace aproximadamente un año en modo de reescritura en caché / inicio (2TB) en un segmento de 50 GB en un SSD. Se ha desempeñado maravillosamente sin problemas. He tenido algunos "bloqueos" relacionados con X (es decir, no atribuibles a flashcache) y he usado "Ctrl-Alt-PrtScr REISUB" varias veces para recuperarme sin problemas ni problemas de corrupción. Usé flashcache porque a) había debs disponibles yb) no requería una copia de seguridad y restauración de / home.

Kairuri
fuente