20 votos

¿Posible conseguir SSD TRIM (descarte) trabajando en ext4 + LVM y RAID por software en Linux?

Usamos RAID 1+0 con md en Linux (actualmente 2.6.37) para crear un dispositivo md, a continuación, utilizar LVM para proporcionar administración de volumen en la parte superior del dispositivo y, a continuación, utilizar ext4 como nuestro sistema de ficheros en los grupos de volumen LVM.

Con Ssd como las unidades, nos gustaría ver los comandos TRIM propagar a través de las capas (ext4 -> LVM -> md -> SSD) para los dispositivos.

Parece que los últimos 2.6.3 x kernels han tenido un montón de nuevos SSD relacionados con el soporte TRIM agregado, incluyendo mucha más cobertura del Mapeador de Dispositivos escenarios, pero aún así nos parece que no puede llegar a la cascada abajo correctamente.

Es esto posible? Si es así, ¿cómo? Si no, es cualquier progreso realizado?

14voto

sysadmin1138 Puntos 86362

Como de 2.6.37, debe estar presente (fuente). El kernel no hacerlo en el fondo, el bloque de descarte proceso está diseñado para ser ejecutado en la demanda (script cron!). Dm-crypt apoyo no existe todavía.

El 13 de enero de 2011 un parche se fusionó en dm-raid1.c en la que se lee:

dm raid1: support discard

Enable discard support in the DM mirror target.
Also change an existing use of 'bvec' to 'addr' in the union.

No estoy al 100%, pero creo que es la combinación de la ventana para 2.6.38.

EXT4 añadido soporte hace un tiempo, como lo hizo LVM. RAID es una de las claves que no tienen apoyo. Como de 1/13/2011, parece que se ha añadido la compatibilidad. Busca en 2.6.38 o tal vez 2.6.39.


El tiempo ha pasado y el soporte TRIM es definitivamente incluido en el kernel 3.7. El commit para RAID10 lee:

Esto hace md raid 10 soporte TRIM. Si un disco soporta descarte y otra no, o uno de ellos ha discard_zero_data y otro no, no puede ser inconsistente entre los datos de este tipo de discos. Pero esto no debe importar, se descartan los datos es inútil. Esto agregará copia adicional en la reconstrucción de aunque.

8voto

poige Puntos 5395

No es posible, causa RAID Soft Linux no soporta esta (todavía?).

UPD.: Gracias a Wodin por dejarme saber - según lkml.org/lkml/2012/3/11/261 este funcional ha sido añadidopropuesto recientemente. propuesta ! = aceptó, sin embargo.

1voto

ERos Puntos 11

Mdtrim puede necesitar más trabajar:

Cyberax-mdtrim-0a40e8d# ./mdtrim.py -m /dev/md4 -s /home
Scratch directory is /home, trimmer file size is 0 GB 790 MB
Found slave sdc2 on /dev/sdc with MD offset 0 and partition offset 249856
Creating trimmer file
252,2: device not found in /dev
Traceback (most recent call last):
  File "./mdtrim.py", line 120, in <module>
    if lines[2].find("assuming %d byte sectors" % sector_size) == -1:
IndexError: list index out of range

0voto

Cyberax Puntos 166

Puede utilizar mi script MDTRIM ( https://github.com/Cyberax/mdtrim/ ) para ajuste de espacio vacío ext4/3 nivel 1 incursiones. Lo empezamos periódicamente desde cron y obras grandes para nosotros.

Agregar soporte para otros niveles RAID es posible, pero no tengo tiempo (o necesita) para eso.

0voto

sebastianwagner Puntos 176

Como sugiere aquí puede utilizar

lsblk -D

para comprobar si sus blockdevices pasar a través de los comandos de descarte.

También tenga en cuenta que la sección dispositivos de lvm.conf contiene una opción issue_discards. Ver

man 5 lvm.conf

para obtener más información.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: