DollyPapper
@DollyPapper

Как подсчитать размер фс включая место для самой фс?

Всем привет. Суть проблемы следующая. Мы передаем на хост файл с kv бд (.sst, rocks db). Сам файл это сделанный предварительно fallocat'ом пустой файл, куда накатывается ФС, после чего уже внутри этого файла создает .sst и в .sst пишутся данные. Проблема в изначальном определении какого размера создавать файл. Сейчас мы считаем так 50mb + (nr_changed_blocks*changed_blocks_count) +5%. Но иногда этого места не хватает. Проблема тут как раз в этих 50mb. Это заложено под саму фс. Иногда фс по факту имеет больший размер и на запись nr_changed_blocks*changed_blocks_count не остается места. Как посчитать размер необходимый для самой фс? Есть формула может? Фс ext4.
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
@xibir
Ext4 создаёт таблицу inode'ов, эта таблица занимает несколько процентов от самого диска. Сколько конкретно сказать сложно, mkfs.ext4 вычисляет этот размер по какому-то своему алгоритму. Но этот размер можно зафиксировать через параметр -N для mkfs.ext4. Идиотские 5% можно тоже отключить через параметр -m (или после создания фс утилитой tune2fs). Например:
truncate -s1g /tmp/disk
mkfs.ext4 -Fm0 -N10000 /tmp/disk

в файловой системе можно будет создать всего 10000 файлов

А можно использовать xfs там проще и нету идиотских пяти процентов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы