Я не могу понять использование сырого пространства ceph.
У меня 14 жестких дисков (14 OSD) на 7 серверах, по 3 ТБ каждый жесткий диск ~ 42 ТБ общего пространства.
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
Я создал 4 блочных устройства по 5 ТБ каждый:
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 показывает, что всего используется 10,9 ТБ, ceph показывает, что используется 33702 ГБ. Если у меня есть 2 копии, это должно быть ~ 22 ТБ, но сейчас у меня 33,7 ТБ - пропущено 11 ТБ.
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
Блочные устройства и OSD FS - XFS
sudo apt-get install --install-recommends linux-generic-lts-vivid
), перезагрузил, переназначил и подключил мои тома rbd, запустилfstrim
каждый из них и восстановил 450 ГБ в небольшом кластере по 25 ТБ. После обновления убедитесь, что вы начали монтировать тома rbd с помощью этойdiscard
опции.Я не эксперт по ceph, но позвольте мне немного угадать.
Блочные устройства не устанавливаются без
discard
опции. Таким образом, любые данные, которые вы записываете и удаляете, не отображаются в файловой системе (/mnt/part1
), но, как только они были записаны и не обрезаны, они остаются в базовой файловой системе.Если вы посмотрите на
USED
свои пулы и сложите их вместе, вы получите 16777 ГБ, что соответствует показанным значениямceph -s
. И если вы умножите это на два (две копии), вы получите 33554 ГБ, что в значительной степени используется пространство.источник
discard
и «отделка» - это в основном разные слова для одного и того же механизма, который можно использовать для возврата неиспользуемых блоков на блочное устройство. Монтаж сdiscard
опцией должен иметь желаемый эффект. Некоторые люди предпочитают периодически запускаться,fstrim
чтобы избежать накладных расходов на непрерывные сбросы файловой системой. Обратите внимание, что для того, чтобы все это работало, ваш драйвер RBD должен поддерживать TRIM / Discard. Как я уже сказал, драйвер ядра RBD делает это начиная с Linux 3.18 - см. Tracker.ceph.com/issues/190 .