Миграция корзины
Сервисы Haron и Orpheus используют для каталогов корзины (old, orphan, missed, corrupted, manual) плоскую модель хранения файлов (все файлы в одном каталоге). Для ускорения работы сервисов, унификации модели хранения и снижения нагрузки на файловую систему в дополнение к изменениям в самих сервисах используется утилита storage_recycle_migrator, которая выполняет преобразование каталогов корзины из вида /old/DATETIME_AABBCCDD в вид /old/AA/BB/DATETIME_AABBCCDD.
Параметры запуска storage_recycle_migrator:
-
path— путь к корневому каталогу хранилища, по умолчанию/storage. -
mode— доступные значения:сheck(по умолчанию) илиmigrate. -
delay— значение задержки (например:1ms,10µsили100ns), по умолчанию:0(то есть без задержки между двумя последовательными переименованиями файлов).
Порядок миграции:
-
Перед запуском утилиты проверьте, под каким пользователем или группой созданы подкаталоги в
/storage(по умолчанию nobody:nobody). -
Установите на файл
storage_recycle_migratorнужные права доступа:$ ash storage "sudo chown nobody:nobody /usr/bin/storage_recycle_migrator"$ ash storage "sudo chmod +s /usr/bin/storage_recycle_migrator" -
Выполните последовательно на каждом Storage-сервере:
-
Отключите службы проверки целостности и восстановления Orpheus и Haron:
$ ash storage01 "sudo systemctl stop haron && sudo systemctl stop orpheus" -
Запустите проверку каталогов (после завершения проверки отобразятся файлы для миграции):
$ ash storage01 "/usr/bin/storage_recycle_migrator" -
Запустите миграцию:
$ ash storage01 "/usr/bin/storage_recycle_migrator -mode=migrate"В случае значительного уменьшения пропускной способности хранилища можно передать параметр
delay(подбирается эмпирическим путем), например:$ ash storage01 "/usr/bin/storage_recycle_migrator -mode=migrate -delay=1000ns"
-
-
Измените необходимые параметры в конфигурационном файле и перезапустите сервисы:
$ sed -i "s/storage_daemons_recycle_subfolders: false/storage_daemons_recycle_subfolders: true/" /deploy/installer/group_vars/all/main.yml$ sudo -E ./01_deploy_helper.sh ansible-playbook -i inventory.yml -e @ansible-vault.yml -e @vault-transit -e @vault vk.s3.storage_daemons --tags install_task