uso de espaço bruto do CEPH

7

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

Eu tenho 14 HDD (14 OSD's) 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

Eu criei 4 dispositivos de bloco, cada um com 5 TB:

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 são usados no total, ceph mostra que 33702 GB são usados. Se eu tiver 2 cópias, deve ser ~ 22 TB, mas agora tenho 33,7 TB usados - 11 TB 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

Dispositivos de bloqueio e OSD FS-XFS

    
por virgism 17.04.2015 / 18:40

2 respostas

5

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

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

Quando você apaga arquivos em seus sistemas de arquivos suportados por RBD, os sistemas de arquivos irão marcar internamente os blocos como livres, mas geralmente não tentam "retorná-los" para o dispositivo de bloco subjacente (RBD). Se a versão do kernel do RBD for recente o suficiente (3.18 ou mais recente), você poderá usar fstrim para retornar blocos liberados para o RBD. Eu suspeito que você tenha criado e excluído outros arquivos nesses sistemas de arquivos, certo?

Existe também alguma sobrecarga no 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, é esperado que haja alguma sobrecarga da granularidade na qual o RBD aloca dados. Eu acho que o RBD irá sempre alocar pedaços de 4MB, mesmo quando apenas uma parte dele é usada.

    
por 18.04.2015 / 14:43
5

Eu não sou especialista em ceph mas deixe-me adivinhar um pouco.

Os dispositivos de bloco não são montados sem a opção discard . Portanto, todos os dados que você escreve e exclui não aparecem no sistema de arquivos ( /mnt/part1 ), mas como foi escrito e não aparado, ele permanece no sistema de arquivos subjacente.

Se você olhar USED para seus pools e adicioná-los juntos, receberá 16777 GB, o que é igual ao que ceph -s mostra. E se você multiplicar isso por duas (duas cópias), você obtém 33554 GB, que é praticamente o espaço usado.

    
por 18.04.2015 / 14:44

Tags