Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
Aplica-se a SUSE Enterprise Storage 6

15 Melhorando o desempenho com o cache LVM

Atenção
Atenção: Technology Preview

Atualmente, o cache LVM é uma versão Technology Preview.

O cache LVM é um mecanismo de cache usado para melhorar o desempenho de um volume lógico (LV, logical volume). Normalmente, um dispositivo menor e mais rápido é usado para melhorar o desempenho de E/S de um volume lógico maior e mais lento. Consulte a respectiva página de manual (man 7 lvmcache) para encontrar mais detalhes sobre o cache LVM.

No SUSE Enterprise Storage, o cache LVM pode melhorar o desempenho dos OSDs. O suporte ao cache LVM é fornecido por meio de um plug-in ceph-volume. Você pode encontrar informações detalhadas sobre o uso do cache executando o comando ceph-volume lvmcache.

15.1 Pré-requisitos

Para usar os recursos de cache LVM para melhorar o desempenho de um cluster do Ceph, você precisa ter:

  • Um cluster do Ceph com estado estável em execução (“HEALTH_OK”).

  • OSDs implantados com BlueStore e LVM, que é o padrão se os OSDs foram implantados usando o SUSE Enterprise Storage 6 ou posterior.

  • Discos ou partições vazios que serão usados para armazenamento em cache.

15.2 Pontos a serem considerados

Considere os seguintes pontos antes de configurar os OSDs para usar o cache LVM:

  • Verifique se o cache LVM é adequado ao seu caso de uso. Se você tem poucas unidades rápidas disponíveis que não são usadas para OSDs, a recomendação geral é usá-las como dispositivos WAL/BD para os OSDs. Nesse caso, as operações de WAL e BD (operações pequenas e raras) são aplicadas à unidade rápida, enquanto as operações de dados são aplicadas à unidade OSD.

    Dica
    Dica

    Se a latência for mais importante para sua implantação do que o IOPS ou o throughput, você poderá usar as unidades rápidas como cache LVM em vez das partições de WAL/BD.

  • Se você planeja usar uma unidade rápida como cache LVM para vários OSDs, saiba que todas as operações de OSD (incluindo a replicação) passarão pelo dispositivo de cache. Todas as leituras serão consultadas por meio do dispositivo de cache e apenas serão processadas pelo dispositivo lento em caso de perda de cache. As gravações são sempre aplicadas ao dispositivo de cache primeiro e descarregadas para o dispositivo lento em um momento posterior (“writeback” é o modo de cache padrão).

    Ao decidir se você deve utilizar um cache LVM, verifique se a unidade rápida pode servir como interface para vários OSDs e ainda fornecer uma quantidade aceitável de IOPS. Você pode testá-lo medindo a quantidade máxima de IOPS que o dispositivo rápido pode processar e, em seguida, dividindo o resultado pelo número de OSDs por trás do dispositivo rápido. Se o resultado for menor ou próximo ao valor máximo de IOPS que o OSD pode fornecer sem o cache, o cache LVM provavelmente não será adequado para esta configuração.

  • A interação do dispositivo de cache LVM com os OSDs é importante. As gravações são periodicamente descarregadas do dispositivo de cache para o dispositivo lento. Se o tráfego de entrada é constante e significativo, o dispositivo de cache se empenhará para acompanhar as solicitações recebidas e também o processo de descarregamento, resultando na queda do desempenho. A menos que o dispositivo rápido possa fornecer muito mais IOPS com melhor latência do que o dispositivo lento, não use o cache LVM com uma carga de trabalho de alto volume constante. O tráfego em um padrão burst é mais adequado ao cache LVM porque concede ao cache tempo para descarregar os dados modificados sem interferir no tráfego do cliente. Para uma carga de trabalho de pouco tráfego constante, é difícil prever se o uso do cache LVM melhorará o desempenho. O melhor teste é realizar o benchmark e comparar a configuração do cache LVM com a configuração do WAL/BD. Além disso, como as pequenas gravações sobrecarregam a partição WAL, a sugestão é usar o dispositivo rápido para o BD e/ou WAL, em vez de um cache LVM.

  • Se você não tem certeza se deve usar o cache LVM, use o dispositivo rápido como um dispositivo WAL e/ou BD.

15.3 Preparação

Você precisa dividir o dispositivo rápido em várias partições. Cada OSD precisa de duas partições para o cache: uma para os dados e outra para os metadados do cache. O tamanho mínimo de qualquer partição é de 2 GB. Você pode usar um único dispositivo rápido para armazenar vários OSDs. Ele apenas precisa ser particionado de acordo.

15.4 Configurando o cache LVM

Você pode encontrar informações detalhadas sobre como adicionar, remover e configurar o cache LVM executando o comando ceph-volume lvmcache.

15.4.1 Adicionando o cache LVM

Para adicionar o cache LVM a um OSD existente, use o seguinte comando:

cephadm@osd > ceph-volume lvmcache add
 --cachemetadata METADATA-PARTITION
 --cachedata DATA-PARTITION
 --osd-id OSD-ID

O --data, --db ou --wal opcional especifica qual partição armazenar em cache. O padrão é --data.

Dica
Dica: Especifique o Volume Lógico (LV)

Você também pode usar a opção --origin no lugar da --osd-id para especificar o volume lógico que será armazenado em cache:

[...]
--origin VOLUME-GROUP/LOGICAL-VOLUME

15.4.2 Removendo o cache LVM

Para remover o cache LVM existente de um OSD, use o seguinte comando:

cephadm@osd > ceph-volume lvmcache rm --osd-id OSD-ID

15.4.3 Definindo o modo de cache LVM

Para especificar o modo de cache, use o seguinte comando:

cephadm@osd > ceph-volume lvmcache mode --set CACHING-MODE --osd-id OSD-ID

CACHING-MODE é “writeback” (padrão) ou “writethrough”

15.5 Lidando com falhas

Se o dispositivo de cache falhar, todos os OSDs por trás dele precisarão ser removidos do cluster (consulte a Seção 2.6, “Removendo um OSD”), purgados e reimplantados. Se a unidade OSD falhar, o volume lógico tanto do OSD quanto do cache estará ativo, mas não funcionará. Use pvremove PARTITION para purgar as partições (volumes físicos) usadas para os dados do cache do OSD e as partições de metadados. É possível usar pvs para listar todos os volumes físicos.

15.6 Perguntas frequentes (FAQ)

P: 1. O que acontece se um OSD for removido?

Ao remover o volume lógico do OSD usando lvremove, os volumes lógicos do cache também serão removidos. No entanto, você ainda precisará chamar pvremove nas partições para se certificar de que todos os rótulos foram limpos.

P: 2. O que acontece se o OSD for limpo usando ceph-volume zap?

A mesma resposta vale para a pergunta O que acontece se um OSD for removido?

P: 3. O que acontece se a unidade de origem falhar?

Os volumes lógicos do cache ainda existem e as informações do cache ainda os mostram como disponíveis. Não será possível cancelar o cache porque a LVM não poderá descarregá-lo, já que o dispositivo do volume lógico de origem não existe mais. A situação agora é que o volume lógico de origem existe, mas o dispositivo de suporte dele não. Para corrigir isso, use o comando pvs e localize os dispositivos associados ao volume lógico de origem. Em seguida, você poderá removê-los usando

cephadm@osd > sudo pvremove /dev/DEVICE or PARTITION

É possível fazer o mesmo com as partições de cache. Este procedimento fará com que o volume lógico de origem e os volumes lógicos do cache desapareçam. Você também pode usar

cephadm@osd > sudo dd if=/dev/zero of=/dev/DEVICE or PARTITION

para limpá-los antes de usar o comando pvremove.

Imprimir esta página