Implementando Linux fstrim no SSD com o software md-raid

14

Atualmente, estou construindo um novo servidor Ubuntu 13.04 com 2 SSDs de 256 GB em um espelho de raid para executar uma instância do MariaDB. Normalmente, colocamos o LVM em cima da criptografia dm-crypt em cima de uma matriz md raid 1 , mas não usamos SSDs nessa configuração anteriormente.

Minha pergunta é: como usaremos um kernel mais recente (3.8), ele deve permitir que o fstrim seja aplicado diretamente ao volume do raid, como eu o entendo. Agora, posso simplesmente confiar nisso para funcionar corretamente fstrim -v /através de um trabalho cron, exatamente como faria se o ataque não estivesse ocorrendo? Isso é verdade mesmo com o LVM no topo do volume de invasão? Planejamos usar a criptografia de hardware presente nas unidades, portanto não precisaremos do dm-crypt aqui.

NOTA: Estou ciente de que existem várias perguntas semelhantes envolvendo o backport de versões atualizadas do kernel e a implementação do descarte com o volume md - estou perguntando especificamente se fstrimfunciona contra o md-raid sem modificações adicionais nos kernels mais recentes.

UPDATE: Só queria acompanhar e postar que isso funcionou bem. Agora existe um trabalho no cron.daily que executa o fstrim /e /bootfunciona perfeitamente. Além disso, a criptografia de hardware nos SSDs (Samsung 840 Pros) parece exigir suporte ao TPM, o que não temos, portanto configuramos com a criptografia de software, conforme mostrado no link. Ao adicionar discardàs opções na /etc/crypttab( não para /etc/fstab) e issue_discards = 1para a secção de dispositivos de /etc/lvm/lvm.conf, obras fstrim finas mesmo através de camadas LVM, criptografia e RAID. Mais informações sobre a configuração para aparar / descartar em SSDs com LVM e criptografia estão disponíveis aqui.

nedm
fonte

Respostas:

11

Os patches para o suporte mdraid RAID 1 e 10 para TRIM foram lançados há cerca de um ano.

Você pode testar o suporte do seu kernel montando o sistema de arquivos com a discardopção (que habilita o TRIM automático). Se for suportado, você verá uma mensagem no syslog ou dmesgcomo o seguinte:

EXT4-fs (md1): re-mounted. Opts: discard,data=ordered

Caso contrário, você obteria isso:

EXT4-fs warning (device md1): ext4_issue_discard:2619: discard not supported, disabling

Você não precisa reiniciar para ver se está funcionando:

mount /dir -o remount
Michael Hampton
fonte
1
Então, se eu entendi direito, se montar com descarte funciona, então o fstrim também deve?
Nedm 16/05
1
Corrigir. Se for totalmente implementado até o fim, funcionará de qualquer maneira.
Michael Hampton
3
Lembre-se de alterar as opções de montagem posteriormente, se você não pretende fazer o TRIM automático. :)
Michael Hampton
2
Para registro, o suporte TRIM para RAID1 foi adicionado em 11 de outubro de 2012, veja aqui lkml.indiana.edu/hypermail/linux/kernel/1203.1/01772.html Portanto, o kernel 3.4 não o suporta, mas o 3.8 (não sabe about 3.5 / 3.6 / 3.7)
Joril
3
@MichaelHampton que infelizmente não é verdade. Por exemplo, ter o kernel 3.2, com ext4 no LVM no MD (macio) RAID1, (re) montar o ext4 com descarte não reportará erro, mas também não funcionará (como o MD RAID1 nos kernels do 3.2.x não suporta transmissão de comandos TRIM). Assim única maneira de saber ao certo se a testá-lo
Matija Nalis