Storage2.piece-scan-on-startup

@Alexey, я понимаю что это штатная функция и ранее она для чего-то была нужна. Сейчас её можно отключить. Где можно подробнее почитать, что именно filewalker делал, и какие могут быть последствия, если его отключить?

1 Like

eta funktsija proverjaet realnyi objom noda, tak kak inogda v protsesse raboty proihodjat oshibki, i eta funktsija predotvrashaet perepolnenije nody putjom polnoi proverki.

Ничего она не предотвращает, она просто пробегает по всей директории в поисках кусков не имея при этом ни малейшего представления о том какие куски должны быть а какие нет. Так же она не проверяет повреждены они или нет.
Реальный обьем свободного места выдает операционная система по запросу в фс

А в чем тогда вообще был её смысл, ну кроме увеличения нагрузки на дисковую подсистему?

Сам задаюсь этим вопросом примерно три года.

node ne proverjaet kolichestvo svobodnogo mesta na diske, on raschityvaet skolko on zanimaet mesta izhodja iz kusochkov i ih objoma. i dannaja funktsija pereproverjaet etu matematiku.

Предположим у меня узел крашится по электричеству 3 раза в год. Предположим, что каждый раз возникает разночтение между тем, что есть и тем, что должно быть. Разница эта будет составлять килобайты, по идее. Если несколько серверов на одном железе, то мегабайты. Этот механизм вообще никак не оправдывает той нагрузки, которую создает

1 Like

более того, ноды обновляются иногда два раза в месяц.
предполагается использовать только свободные ресурсы которые и так не тратят электричество. Но постойте, я не могу посмотреть фильм с моего NAS когда он залипает на эту пробежку иногда на сутки

Как правильно заметили уже неоднократно - filewalker до сих пор используемая функция и она позволяет узлу иметь представление о том, сколько места занято данными узла (свободное место на диске не то же самое как свободное место в разрешённом размере). Без этой информации узел будет считать, что его данных нет вообще и будет показывать неверную информацию на dashboard и предоставлять неверную информацию о свободном месте спутникам.

Чтобы не вызывать du на каждый запрос от dashboard или спутников, узел кеширует эту информацию в БД и обновляет периодически (параметр --storage2.cache-sync-interval duration how often the space used cache is synced to persistent storage (default 1h0m0s)).

Возможность её отключить добавил один из Операторов через pull request.
Это не значит, что её нужно отключать всем подряд.

1 Like

Т.е. я правильно понял, что можно:

  1. Запустить без этого параметра, закэшировать все.
  2. Удалить докер, запустить с параметром (будет использоваться и обновляться кэшированная версия)?
    Далее, если есть подозрения на то, что данные между реальностью и как мы думаем расходятся, то запускать заново без этого параметра?

Я не разбирал код, так что не уверен, что кэш будет обновляться если вы его выключите, но в целом - да.