Настройка запуска процесса утилизации и очистки объектов после удаления

Эллес обеспечивает периодический запуск процесса утилизации и/или очистки объектов после логического удаления в базе данных службы каталогов.

Общие сведения

В Эллес физическое удаление объектов выполняется не в момент их логического удаления, а во время работы процесса сборки мусора (garbage collection). До запуска сборщика мусора (garbage collector) объект проходит промежуточные состояния, которые зависят от того, включена ли функциональность корзины (см. «Управление корзиной»).

Если корзина не включена, удаленный объект сразу переходит в состояние tombstone: он перемещается в контейнер Deleted Objects, сохраняет только минимальный набор атрибутов для репликации и хранится в этом состоянии в течение периода, заданного атрибутом tombstoneLifetime. Пока этот срок не истек, сборщик мусора его не удаляет. После завершения периода при очередном цикле очистки мусора объект физически удаляется из базы данных Эллес.

Если корзина включена, процесс двухэтапный. Сначала объект переводится в состояние удаленного с сохраненными атрибутами и связями и может быть полностью восстановлен в течение периода, заданного атрибутом msDS-deletedObjectLifetime (или tombstoneLifetime, если он не задан). По истечении этого срока объект автоматически утилизируется с очисткой большинства его атрибутов. Только после этого и после окончания периода tombstoneLifetime объект обрабатывается сборщиком мусора и окончательно удаляется.

В состав Эллес входит сервис mt, который управляет периодическим запуском сборщика мусора (garbage collector).

Настройка периодичности очистки

Периодичность запуска процесса очистки базы данных определяется значением конфигурационного параметра garbage collect:check_deleted_interval. По умолчанию интервал между запусками составляет 86400 секунд (1 сутки).

При необходимости изменения значения параметра явно задайте его в разделе [global] файла smb.conf (полный путь к файлу после установки — /app/inno-samba/etc/smb.conf).

Например:

[global]
    ...
    garbage collect:check_deleted_interval = 43200
    ...

Принудительная очистка

Для принудительного запуска процесса очистки базы данных вне расписания:

Чтобы запустить сервис mt принудительно, достаточно создать специальный атрибут runMTService в корне дерева данных каталога (объект rootDSE).

Для этого выполните следующие действия от имени учетной записи с правами на внесение изменений в БД LDAP домена:

  1. Сформируйте LDIF-файл для создания атрибута runMTService со значением, соответствующим задаче (2), в корне дерева.
    Например:

    cat /tmp/run_mt_service.ldif
    dn:
    changetype: modify
    add: runMTService
    runMTService: 2
  2. Внесите изменения, например, с помощью утилиты ldbmodify (полный путь к утилите после установки пакета inno-samba — /app/inno-samba/bin/ldbmodify):

    ldbmodify -H ldap://dc1 -U Administrator /tmp/run_mt_service.ldif
    Password for [ELLES\Administrator]:
    Modified 1 records successfully

После принудительного запуска расписание периодического запуска сервиса mt корректируется соответствующим образом: следующий запуск произойдет через заданный в конфигурации интервал относительно момента принудительного запуска.