Seafile GC¶
Seafile использует технологию дедупликации хранилища для уменьшения использования хранилища. Базовые блоки данных не будут удалены сразу после удаления файла или библиотеки. В результате количество неиспользуемых блоков данных будет увеличиваться на сервере Seafile.
Чтобы освободить место для хранения, занятое неиспользуемыми блоками, вам нужно запустить программу «сборка мусора» для очистки неиспользуемых блоков на вашем сервере.
Программа GC очищает два типа неиспользуемых блоков:
- Блоки, на которые не ссылаются библиотеки, т. Е. Блоки принадлежат удаленным библиотекам;
- Если в некоторых библиотеках задан лимит длины истории, устаревшие блоки в этих библиотеках также будут удалены.
Перед запуском GC вы должны отключить программу Seafile на своем сервере, если используете сообщество. Для профессионального издания, начиная с версии 3.1.11, поддерживается онлайн-операция GC. Если вы используете Professional edition, вам не нужно отключать программу Seafile, если вы используете MySQL или PostgreSQL в качестве базы данных.
Это связано с тем, что новые блоки, записанные в Seafile во время работы GC, могут быть ошибочно удалены программой GC.
Это связано с тем, что новые блоки, записанные в Seafile во время работы GC, могут быть ошибочно удалены программой GC.
Версия сообщества - скрипт очистки GC
В нижней части страницы есть сценарий, который можно использовать для запуска очистки вручную или, например, один раз в неделю с помощью cronjob.
Чтобы узнать, сколько мусора можно собрать без фактического удаления мусора, используйте вариант сухого хода:
seaf-gc.sh --dry-run [repo-id1] [repo-id2] ...
Результат должен выглядеть так:
[03/19/15 19:41:49] seafserv-gc.c(115): GC version 1 repo My Library(ffa57d93)
[03/19/15 19:41:49] gc-core.c(394): GC started. Total block number is 265.
[03/19/15 19:41:49] gc-core.c(75): GC index size is 1024 Byte.
[03/19/15 19:41:49] gc-core.c(408): Populating index.
[03/19/15 19:41:49] gc-core.c(262): Populating index for repo ffa57d93.
[03/19/15 19:41:49] gc-core.c(308): Traversed 5 commits, 265 blocks.
[03/19/15 19:41:49] gc-core.c(440): Scanning unused blocks.
[03/19/15 19:41:49] gc-core.c(472): GC finished. 265 blocks total, about 265 reachable blocks, 0 blocks can be removed.
03/19/15 19:41:50] seafserv-gc.c(124): === Repos deleted by users ===
[03/19/15 19:41:50] seafserv-gc.c(145): === GC is finished ===
[03/19/15 19:41:50] Following repos have blocks to be removed:
repo-id1
repo-id2
repo-id3
Если вы укажете определенные идентификаторы библиотеки, будут проверены только те библиотеки; в противном случае все библиотеки будут проверяться.
Обратите внимание, что в конце вывода есть раздел «РЕПО, содержащий блоки, подлежащие удалению». Он содержит список librareis с блоками мусора. Позже, когда вы запускаете GC без опции -dry-run, вы можете использовать эти идентификаторы libraris в качестве входных аргументов для программы GC.
Удаление мусора¶
Чтобы фактически удалить блоки мусора, запустите без опции -dry-run:
seaf-gc.sh [repo-id1] [repo-id2] ...
Если указаны идентификаторы библиотек, для мусора будут проверяться только те библиотеки.
Как описано выше, существует два типа блоков мусора, которые необходимо удалить. Иногда достаточно просто удалить первый тип (принадлежащий удаленным библиотекам) неиспользуемых блоков. В этом случае программа GC не будет пытаться проверить библиотеки для устаревших исторических блоков. Опция «-r» реализует эту функцию:
seaf-gc.sh -r
В версии Seafile версии 4.1.1 и выше библиотеки, удаленные пользователями, сразу не удаляются из системы. Вместо этого они перемещаются в «корзину» на странице администрирования системы. Прежде чем они будут очищены от мусора, их блоки не будут собираться мусором.
Вы работаете в сфере IT?
ПРЕДЛАГАЮ СТАТЬ ПАРТНЕРОМ.
Зарабатывайте на рекомендациях Рассказывайте новым клиентам о сервисах и зарабатывайте от 10 до 50 % от их оплат в котором нуждается каждая организация.
Комментариев нет:
Отправить комментарий