¿Cómo puedo usar un "LV pool de caché LV" para múltiples LV de origen?

7

Tengo una computadora nueva y brillante con una SSD no tan grande (120GB) y dos HD gigantescas de óxido giratorio (3TB cada una). Quiero particionarlo de la siguiente manera:

  • Intercambios (~ 128 GB), sistema operativo (~ 128 GB) y particiones de datos (todo lo demás) divididos en HD
  • pequeña partición de arranque en el SSD
  • todo el resto del espacio del SSD se usa para un grupo de caché
  • el grupo de caché debe compartirse entre todas las particiones HD, excepto tal vez no el intercambio

Traté de hacer esto con lvmcache y me encontré con los siguientes problemas:

  • Si solo crea un grupo de caché de la manera obvia (como se describe, por ejemplo, aquí ), solo puede asignarlo a un único LV de origen. Entonces podría tenerlo para el sistema operativo o para los datos, pero no para ambos.

  • Traté de evitarlo creando un "grupo delgado" que abarque todos los discos duros, pensando que podría almacenar en caché todo el grupo delgado, luego asignar SO y datos LV fuera de eso, pero me dijeron que no es posible almacenar en caché un piscina delgada (La página de lvmthinmanual no tiene mucho sentido, es posible que haya hecho mal esa parte).

Se me acabaron las ideas. ¿Alguien puede sugerir cómo hacer que esto funcione? Tenga en cuenta que no estoy casado con lvm, si bcache + plain MD (para el trazado de líneas) puede hacer esto, o alguna otra herramienta que no conozca, entonces eso también estaría bien.

zwol
fuente

Respuestas:

2

En un núcleo de línea principal, el uso de la misma caché para dispositivos de origen múltiple NO es compatible con dm-cache (que es lo que lvmcache usa debajo) debido a las razas que acceden a los metadatos. Ver Re: [dm-devel] dm-cache: ¿se puede usar la misma caché con múltiples dispositivos de origen? para un comentario de 2013 de un desarrollador.

Sin embargo, para completar, el desarrollador original de dm-cache tiene un repositorio de pruebas abandonado que admite "múltiples dispositivos de origen en el mismo dispositivo de caché" (consulte https://groups.google.com/forum/#!topic/dm-cache/q- lM1t438PU para más detalles) pero este código no está en los núcleos principales.

Luego
fuente
1

Puede crear un volumen almacenado en caché y convertirlo en una agrupación delgada.

grupo de caché (datos de caché + metadatos de caché) -> volumen en caché (grupo de caché + volumen lento grande original) -> grupo delgado en caché

En este ejemplo, vg0 es su grupo de volúmenes con volúmenes físicos / dev / small-fast-disk y / dev / big-slow-disk. Todos los volúmenes lógicos deben estar en el mismo grupo de volúmenes.

crear volumen de agrupación de caché (datos de caché y metadatos de caché en un comando)

lvcreate --type cache-pool --name cachepool --size 128G vg0 /dev/smal-fast-disk

crear volumen de caché

lvcreate --type cache --cachepool vg0/cachepool --size 3T --name thincachevol vg0 /dev/big-slow-disk

convertir volumen almacenado en caché a volumen delgado

lvconvert --thinpool vg0/thincachevol
Navrotskii romano
fuente
44
¿Cómo se hace esto? Proporcionar instrucciones detalladas.
Ramhound