Обьем HDD

Как можно это исправить! Реальный обьем HDD=1TB
2020-05-26T03:00:02.269Z WARN piecestore:monitor Disk space is less than requested. Allocating space {“bytes”: 983304478208}

Здесь нечего исправлять. После форматирования диска на нём становится меньше места, чем заявлено производителем.
Storagenode использует доступный объём из указанного.
Я рекомендую вам его изменить и поставить 900GB вместо 1TB, лучше иметь 10% резерва.
Storagenode может перестать работать, если будет использовано всё доступное место. Размер самих баз данных не учитывается, и если места на диске не останется - узел не сможет записать ни одной записи в них, в том числе - заказы скачивания и они не будут оплачиваться и будут пропадать.

1 Like

Проблема в разнице маркировки HDD производителями и том, как память считает система.
Производители пишут емкость исходя 1 TB = 1000 GB, 1 GB = 1000 MB и т.д. Система же считает, что 1 TB это 1024 GB.
Проведя несложные математические манипуляции, получаем 931.32257 “чистыми”. Если это Linux, то он еще отъел 10% под рутовые операции. Можно это убрать командой tune2fs -m 0 /dev/<ваш диск> или уменьшить этот процент, выставив его вместо 0. От полученного объема отнимаешь 10% на базу и прочее, остаток заявляешь как емкость ноды.

Прошу прощения, но ваши ответы противоречат друг другу и запутывают меня.
Объясните пожалуйста, в чём всё таки измеряется объем ноды (что мы пишем в скрипте запуска под параметром STORAGE )?. Согласно рекомендациям МЭК (которым придерживаются производители HDD) где 1GB = 10^9 байт, либо исторически сложившимся 1GB = 2^30 байт (заменено на GiB).
Так же непонятно, входят ли рутовские 5% резерва в рекомендуемый резерв 10% от объема HDD или же это дополнительные потери объема.

Здравствуйте @Bruks,
Добро пожаловать на форум!

Объём ноды измеряется в тех единицах, которые вы использовали в конфигурации. По умолчанию используется система СИ, то есть десятичные единицы измерения.
Однако вы можете указывать объём в GiB, TiB, … и это тоже будет корректно работать.
10% рекомендуется резервировать от свободного пространства на диске после создания файловой системы.
Учитывайте, что размер баз данных storagenode традиционно не учитывает. А они бывают иногда довольно объёмными. Резерв обычно нужен под базы данных и на случай если мы выпустим версию с багом и узел начнёт использовать больше места, чем ему разрешено. Сейчас такого быть не должно, однако лучше перестраховаться, чем потом сожалеть: если у БД не будет места для добавления записи о выписанном заказе на использование, а срок действия этого заказа может в конце концов истечь то вы можете не получить оплату по этому заказу.
И место может освободиться, только если клиенты удалят часть своих данных с узла, а этого может никогда не произойти

Алексей, спасибо! Очень полезная информация!

1 Like