Neste artigo, há uma boa receita de como usar um disco RAM como dispositivo de cache para um volume LVM clássico .
Supondo que você tenha um disco antigo, muita RAM e nenhum SSD, você pode aumentar o desempenho do disco para a taxa de transferência de RAM nativa usando essa técnica.
Então, fiz isso em um LVM que é usado para minha VM virtual executando o Windows 10. Voilà: A taxa de transferência do disco foi 4 vezes mais rápida na VM (taxa de transferência média, melhor usada durante a aplicação de patches no Windows).
Tudo estava bem - até que eu desliguei meu sistema linux (CentOS 7).
Perda de dados!
O desligamento não desmontará esse cache. O mesmo seria verdade em uma situação de falha de energia (sim - haverá perda de dados).
No entanto - tem que haver uma maneira de recuperar o que resta. Mas o LVM não permitirá que você opere em um VG com discos ausentes.
Então - existe uma receita para este caso lá fora?
Curti
- recuperar o disco de cache LVM ausente com um novo disco
- forçar estado limpo
- acessar o LV em cache novamente
Na última etapa, faria-se reparos no sistema de arquivos e recuperaria arquivos ausentes/corrompidos do backup (usando rsync).
Não, não exatamente. Quando o cache está cheio de gravações, a taxa de transferência de gravação diminui para o que o disco subjacente pode fazer. E as primeiras leituras do disco de apoio ainda são lentas. E/S para o cache, sim é mais rápido.
Esse método é muito arriscado porque não é um disco permanente. Eu sou cético em relação ao utilitário quando você pode obter um disco de estado sólido rápido ou cache de gravação de hardware, mas os modos de falha são divertidos de testar.
ISSO CAUSA PERDA DE DADOS. SÓ PROSSIGA SE TIVER UM BACKUP DOS SEUS DADOS.
Primeiro, sem cache.
Adicionar cache.
Quando volta, o LVM está muito insatisfeito, o volume está inacessível.
Você não pode nem forçar o desarme porque os metadados têm um erro de E/S.
Mas você pode forçar a perda de dados criando um novo PV com o mesmo UUID. Desconecte-o para remover o PV ramdisk que o LVM acha que ainda tem dados nele, mas foi perdido. Você pode adicionar novamente o novo cache com
lvconvert
, mas não vou depois dos resultados deste experimento.Finalmente, verifique se há algum dano no sistema de arquivos. A restauração do backup é necessária para que seus dados voltem a um bom estado.
Edit: adicionar um PV vazio com o mesmo UUID de volta parece super hacky. Afinal, o lvconvert se recusou a desfazer o cache. Se, em vez disso, você colocar o LV de metadados no disco permanente, ele poderá ser limpo um pouco mais fácil.
Ele pode ser forçado a desfazer o cache. Não deixe a saída "Flushing 0 blocks" tranquilizá-lo, as gravações em andamento já foram perdidas. O ramdisk ausente pode ser removido, tornando o VG consistente novamente.