Tengo un servidor con 2 HDD (2x 1 TB), que se ejecuta en RAID 1 (SW-RAID). Quiero mejorar el rendimiento de IO mediante el uso flashcache
. Hay máquinas virtuales KVM en él, usando LVM
.
Con respecto a esto, tengo las siguientes preguntas:
- ¿Funcionará esto?
flashcache
funciona para dispositivos de bloque, sin embargo, todas estas son máquinas virtuales con su propia configuración. - ¿Cuánto esperaría aumentar el rendimiento? La mayoría de las máquinas virtuales ejecutan sitios web y algunos juegos de host.
- ¿Qué tan grande debe ser el SSD? ¿Tener un SSD más grande aumentaría el rendimiento ya que es capaz de almacenar en caché más archivos?
- ¿Qué pasa si el SSD muere? ¿
flashcache
Recuperaría archivos del HDD tradicional y podría simplemente reemplazar el SSD? - ¿Cuánto más rápido sería
writeback
en comparación conwritethrough
ywritearound
?
Lamentablemente, no tengo acceso a un sistema de prueba, ¿podría instalarlo flashcache
en un servidor en vivo sin desmontar los discos? Encontré un gran tutorial aquí que estaría usando.
centos
kvm-virtualization
lvm
flashcache
Devator
fuente
fuente
Respuestas:
Flashcache, para aquellos que no lo han visto antes, es un método para extender el bloque de caché de Linux con una unidad SSD. Es más barato que ejecutar un servidor con media TB de RAM solo para el almacenamiento en caché.
Debería. El bloque de caché de Linux funciona almacenando en caché los bloques a los que se accede , no los archivos . Mientras no le esté dando a las máquinas KVM acceso directo a los dispositivos de bloque (no lo está), la Caché de bloques de Linux estará en juego. Sin embargo, si usted está dando a las máquinas KVM-bloquean el acceso directo dispositivo de la respuesta no es tan clara.
Si está utilizando discos virtuales respaldados por archivos, definitivamente funcionará.
Si está utilizando discos virtuales respaldados por LV, no lo sé.
Eso es algo que no podemos responder. Depende de una variedad de cosas. En resumen, obtendrá el mejor rendimiento para dimensionar su SSD para que sea más grande que el conjunto activo de bloques. Si obtiene un almacenamiento en caché perfecto, su rendimiento será similar al de ejecutar todo su sistema en SSD. Lo que efectivamente harás.
Encontrar el tamaño exacto que necesita es algo con lo que no podemos ayudar. Más es mejor, obviamente, pero encontrar la relación exacta entre el caché SSD y el almacenamiento primario no es una cuestión simple.
Para complicar esto, las escrituras se configuran para vaciar inmediatamente, como ciertas operaciones del sistema de archivos y algunas configuraciones de bases de datos. Esas escrituras solo se almacenarán en caché brevemente, y su rendimiento no se verá afectado de ninguna manera por la presencia o ausencia de flashcache.
Lo mismo sucede cuando le dice a Linux que deje caer los cachés pero con un giro. Con las memorias caché, cualquier escritura no vaciada que esté en la memoria caché de bloques se vaciará en el disco. Lo que sucede cuando desaparece la SSD depende del modo de almacenamiento en caché :
Escritura : todas las escrituras se escriben en el caché y el almacenamiento primario en paralelo, por lo que las posibilidades de que una pérdida repentina de SSD provoque errores en las máquinas virtuales son muy pequeñas.
Redacción : todas las escrituras se escriben en el almacenamiento primario y solo se almacenan en caché cuando se leen. No hay posibilidad de errores en las máquinas virtuales.
Reescritura : todas las escrituras van primero a la caché y se escriben en el almacenamiento primario en segundo plano. Es más probable que cause errores en sus máquinas virtuales en caso de que falle el SSD, y no usaría este modo en producción.
Depende de cuánto escribas. Si sus escrituras saturan periódicamente su almacenamiento primario, el aumento del rendimiento podría ser bastante significativo. Si lees principalmente con algo de escritura, es probable que no notes mejoras.
Además, la reescritura es una mala política para lo que está haciendo, así que no la use.
fuente
writeback
ya que podría corromper todo sin algo de BBU. No usaré el almacenamiento en caché SSD en absoluto, después de todo, sino solo un SSD normal. ¡Gracias de nuevo!Sí, funcionará bien siempre que use los dispositivos de bloqueo correctos. Y hay un truco.
Cuando LVM escanea en busca de PV, debería ver la partición a través del disco duro real, y también a través del dispositivo "virtual" flashcache.
Un síntoma obvio debería ser que las herramientas LVM se quejan de PV duplicados.
La solución, para evitar esas advertencias y, lo que es más importante, asegurarse de que el dispositivo flashcache sea utilizado por LVM2, es adaptar el filtro
/etc/lvm/lvm.conf
.La página de
LVM.CONF(5)
manual lo explicará mejor que yo, pero lo dejaré con un ejemplo, si todos los volúmenes físicos están respaldados por flashcache:fuente
También hay un nivel del creador de lessfs. Eso le permitirá crear dispositivos híbridos entre SSD y HDD. El rendimiento del nivel parece superar a Flashcache.
http://www.lessfs.com/wordpress/
http://www.lessfs.com/wordpress/?p=776
//Cristiano
fuente
Algunas aplicaciones abren archivos de forma no almacenada.
http://man7.org/linux/man-pages/man2/open.2.html
Por ejemplo, esto es muy común para las bases de datos. Por lo tanto, verifique si flashcache funciona con este conjunto de aplicaciones.
fuente