É possível obter o SSD TRIM (descartar) trabalhando em RAID de software ext4 + LVM + no Linux?

18

Usamos RAID1 + 0 com md no Linux (atualmente 2.6.37) para criar um dispositivo md, depois usamos o LVM para fornecer gerenciamento de volume na parte superior do dispositivo e usamos o ext4 como nosso sistema de arquivos nos grupos de volumes LVM.

Com SSDs como drives, gostaríamos de ver os comandos TRIM se propagarem através das camadas (ext4 - > LVM - > md - > SSD) para os dispositivos.

Parece que os recentes núcleos 2.6.3x tiveram muito suporte a TRIM novo relacionado ao SSD, incluindo muito mais cobertura de cenários do Device Mapper, mas ainda não conseguimos fazer com que ele caia em cascata corretamente.

Isso é possível ainda? Se sim, como? Se não, algum progresso está sendo feito?

    
por Don MacAskill 28.01.2011 / 03:20

5 respostas

7

Não é possível, porque o Linux Soft RAID não suporta isso (ainda?).

UPD. : Obrigado ao Wodin por me avisar - de acordo com lkml.org / lkml / 2012/3/11/261 este funcional foi adicionado proposto recentemente. proposto ! = aceito , embora.

    
por 01.02.2011 / 06:53
14

A partir de 2.6.37, ele deve estar presente ( source ) . O kernel não faz isso em segundo plano, o processo de descarte de blocos está atualmente projetado para ser executado sob demanda (script cron!). O suporte a crypt-D não existe ainda.

Em 13 de janeiro de 2011, um patch foi mesclado em dm-raid1.c que diz:

dm raid1: support discard

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

Eu não sou 100%, mas acho que é a janela de mesclagem do 2.6.38.

EXT4 adicionou suporte há pouco tempo, assim como o LVM. O RAID é a única chave que não tem suporte. A partir de 13/01/2011, parece que o suporte foi adicionado. Procure em 2.6.38 ou talvez em 2.6.39.

O tempo passou e o suporte a TRIM é definitivamente incluído no kernel 3.7 . A confirmação para as leituras RAID10 :

This makes md raid 10 support TRIM. If one disk supports discard and another not, or one has discard_zero_data and another not, there could be inconsistent between data from such disks. But this should not matter, discarded data is useless. This will add extra copy in rebuild though.

    
por 30.01.2011 / 06:23
1

Mdtrim pode precisar de mais trabalho:

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
    
por 30.08.2012 / 21:55
0

Você pode usar o meu script MDTRIM ( link ) para TRIM espaço vazio em RAIDs ext4 / 3 nível-1. Nós começamos periodicamente a partir do cron e funciona muito bem para nós.

É possível adicionar suporte para outros níveis de RAID, mas não tenho tempo (ou necessidade) para isso.

    
por 21.10.2011 / 04:31
0

Como sugerido aqui Você pode usar

lsblk -D

para verificar se seus dispositivos de bloqueio passam pelos comandos de descarte.

Observe também que a seção devices em lvm.conf contém uma opção issue_discards. Veja

man 5 lvm.conf

para mais informações.

    
por 18.04.2013 / 11:49