la prueba es sencilla, dd:
dd if=/dev/zero of=ficher2.img conv=fdatasync bs=384k count=20k
el escenario: un servidor con dos discos, uno mecanico y el otro ssd. el sistema instalado en sda (el mecanico) sobre un lvm llamado sistema, en un vg llamado vg01, y sdb sin usar (el ssd)
haciendo copia de un fichero al disco, la velocidad es 52MB/s
para montar el LVM cache, hacemos un pool de lvms en el ssd, un lvm para cache y otro para metadatos (de un tamaƱo /1000 del de la cache). Si el VG original es data:
pvcreate /dev/sdb
vgextend vg01 /dev/sdb
lvcreate -n DataLVcache -L1200G vg01 /dev/sdb
lvcreate -n DataLVcacheMeta -L200M vg01 /dev/sdb
lvconvert --type cache-pool --cachemode writeback --poolmetadata vg01/DataLVcacheMeta vg01/DataLVcache
lvconvert --type cache --chunksize 512K --cachepool vg01/DataLVcache vg01/sistema
Para ver la situacion de la cache,
lvs -a0
Para eliminar la cache,
lvremove vg01/DataLVcache
…
En este escenario la velocidad es de 172MB/s, muy proxima a los 177 que teniamos con el SSD SOLO.
…
pero despues de un rato haciendo escrituras el sistema muestra una cierta inestabilidad, tiempos de espera elevados. (!)
…
update 20160425
otros problemas:
- errores en la bios. aleatorios.
- los discos que use el viernes han perdido el boot (!). El problema es que en el initrd no hay modulos relacionados con dmcache, y no es capaz de desplegar el root filesystem, ni aun con el /boot en una particiĆ³n separada y no cacheada. Es un error documentado desde hace un aƱo que parece ser que en 16.04 no se ha resuelto… Una guia para resolverlo:
al eliminar un disco, sigue apareciendo como pv. PAra eliminarlo:
vgreduce –removemissing –force vg01
pero necesitamos tener check_cache, que se encuentra en el paquete thin-provisioning-tools
…
los dos tutoriales sobre la incidencia de reinicio e initramfs no encuentra el lvmcache. Pendientes de probar…
…
en realidad no necesitamos que todo el disco este en cache, solo la jerarquia donde van a ir las imagenes de nova… solo /var/lib/nova/
luego el plan seria:
1 HD de 2TB, con boot (20MB), swap (8GB), /(20GB), y /var/lib/nova(el resto) en particiones separadas
1 SSD de 250GB como cache de /var/lib/nova (250Mb de metadata, y 249GB de data cache)
un lvm para /, con 20GB
un lvm para /var/lib/nova, con el resto del espacio disponible.
el cache ocupando toda la SSD, sobre el lvm de /var/lib/nova
….
warning despues de montado, sobre chunksize. Solucionado con:
lvcreate -H --chunksize 512K -L1.5T --name data vg/cpool