cephx
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
.
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.
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.
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.
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.
Você pode encontrar informações detalhadas sobre como adicionar, remover e configurar o cache LVM executando o comando ceph-volume lvmcache
.
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
.
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
Para remover o cache LVM existente de um OSD, use o seguinte comando:
cephadm@osd >
ceph-volume lvmcache rm --osd-id OSD-ID
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”
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.
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.
ceph-volume zap
?
A mesma resposta vale para a pergunta O que acontece se um OSD for removido?
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
.