Uso do espaço bruto do CEPH

8

Não consigo entender o uso do espaço bruto ceph.

Eu tenho 14 HDD (14 OSDs) em 7 servidores, 3TB cada HDD ~ 42 TB de espaço bruto no total.

ceph -s 
     osdmap e4055: 14 osds: 14 up, 14 in
      pgmap v8073416: 1920 pgs, 6 pools, 16777 GB data, 4196 kobjects
            33702 GB used, 5371 GB / 39074 GB avail

Criei 4 dispositivos de bloco, 5 TB cada:

df -h
 /dev/rbd1       5.0T  2.7T  2.4T  54% /mnt/part1
/dev/rbd2       5.0T  2.7T  2.4T  53% /mnt/part2
/dev/rbd3       5.0T  2.6T  2.5T  52% /mnt/part3
/dev/rbd4       5.0T  2.9T  2.2T  57% /mnt/part4

df mostra que 10,9 TB é usado no total, ceph mostra que 33702 GB é usado. Se eu tiver 2 cópias, deve ser ~ 22 TB, mas agora tenho 33,7 TB usados ​​- 11 TB foram perdidos.

ceph osd pool get archyvas size
size: 2


ceph df
GLOBAL:
    SIZE       AVAIL     RAW USED     %RAW USED
    39074G     5326G       33747G         86.37
POOLS:
    NAME          ID     USED      %USED     MAX AVAIL     OBJECTS
    data          0          0         0         1840G           0
    metadata      1          0         0         1840G           0
    archyvas      3      4158G     10.64         1840G     1065104
    archyvas2     4      4205G     10.76         1840G     1077119
    archyvas3     5      3931G     10.06         1840G     1006920
    archyvas4     6      4483G     11.47         1840G     1148291

Bloquear dispositivos e OSD FS - XFS

virgismo
fonte

Respostas:

6

Uma possível fonte de confusão é GB vs. GiB / TB vs. TiB (base 10 / base 2), mas isso não pode explicar toda a diferença aqui.

O Ceph / RBD tentará "preguiçosamente" alocar espaço para seus volumes. É por isso que, embora você tenha criado quatro volumes de 5 TB, ele relata 16 TB usados, e não 20. Mas 16 TB é mais do que a soma do conteúdo "ativo" dos seus sistemas de arquivos suportados por RBD, que é de apenas 11 TB, como você diz. Várias coisas a serem observadas:

Quando você exclui arquivos em seus sistemas de arquivos apoiados por RBD, os sistemas de arquivos marcam internamente os blocos como livres, mas geralmente não tentam "devolvê-los" ao dispositivo de bloco subjacente (RBD). Se a sua versão RBD do kernel for recente o suficiente (3.18 ou mais recente), você poderá usar fstrimpara retornar blocos liberados ao RBD. Eu suspeito que você criou e excluiu outros arquivos nesses sistemas de arquivos, certo?

Há também alguma sobrecarga do sistema de arquivos além do uso de dados da rede mostrado por df. Além de "superblocos" e outras estruturas de dados internas do sistema de arquivos, é de se esperar alguma sobrecarga da granularidade na qual o RBD aloca dados. Eu acho que o RBD sempre aloca pedaços de 4 MB, mesmo quando apenas uma parte disso é usada.

sleinen
fonte
E eu concordo com o Simon. Acho que as duas respostas juntas formam uma completa. btw. maldito. Pergunta de 20 horas e você me venceu em responder por 35 segundos? : D
Fox
Agradeço a ambos por respostas. Agora eu entendo onde está o meu problema e como resolvê-lo.
Virgism 20/04
Opções possíveis: 1. atualize para o kernel Linux> 3.18 e monte com a opção descarte; (Eu testei com o kernel 3.19.0-1.el6.elrepo.x86_64, mas tinha conflitos todos os dias); 2. Recrie dispositivos de bloco com tamanho <5 TB (não é possível reduzir o XFS) 3. Adicione um HD e crie OSDs adicionais.
VirgismApr
1
Pode confirmar que isso funciona bem. Atualizei o kernel da minha máquina cliente Ceph para 3.19 no último final de semana no Ubuntu LTS 14.04.3 ( sudo apt-get install --install-recommends linux-generic-lts-vivid), reiniciei, mapeou e re-mapeou e montou meus volumes rbd, executou um fstrimem cada um deles e recuperou coletivamente 450 GB em um pequeno cluster de 25 TB. Depois de atualizar, certifique-se de começar a montar seus volumes rbd com a discardopção
Brian Cline
5

Não sou especialista em ceph, mas deixe-me adivinhar um pouco.

Os dispositivos de bloco não são montados sem discardopção. Portanto, todos os dados que você escreve e exclui não aparecem no sistema de arquivos ( /mnt/part1), mas, como foram gravados e não aparados, permanecem no sistema de arquivos subjacente.

Se você procurar USEDsuas piscinas e adicioná-las, você obtém 16777 GB, o que é igual ao que é ceph -smostrado. E se você multiplicar por duas (duas cópias), obtém 33554 GB, que é praticamente o espaço usado.

Raposa
fonte
1
Concordo com a resposta da Fox (que foi escrita ao mesmo tempo que a minha abaixo :-). discarde "aparar" são basicamente palavras diferentes para o mesmo mecanismo que pode ser usado para retornar blocos não utilizados a um dispositivo de bloco. A montagem com a discardopção deve ter o efeito desejado. Algumas pessoas preferem executar periodicamente fstrimpara evitar a sobrecarga de descartes contínuos pelo sistema de arquivos. Observe que, para que tudo isso funcione, o driver RBD precisa suportar TRIM / descartar. Como eu disse, o driver do kernel RBD faz isso desde o Linux 3.18 - consulte tracker.ceph.com/issues/190 .
sleinen