Прикладная демонология, практические рецепты

Дискретная репликация ZFS

Идеи лежащая в основе репликации просты:

Предлагаемый скрипт использует эти особенности и работает следующим образом:

  1. стартует на slave сервере
  2. делает detach (выполняясь в background)
  3. обращается к master по rsh или ssh и создает новый snapshot с именем сформированным из текущего timestamp
  4. запрашивает у master бинарную разницу между свежеизготовленным snapshot и последним имеющимся у slave
  5. применяет эту разницу к своему последнему snapshot, создавая новый snapshot
  6. делает операцию клонирования файловой системы по состоянию последнего snapshot
  7. форсированно переставляет symlink с заданным именем на клонированное состояние
  8. пытается удалить старые snapshots и clones (сохраняя N последних)
  9. "засыпает" на указанное количество секунд
  10. повторяет выполнение с шага 3

Примечания:

Указанный подход успешно применялся в production на проектах компаний Rambler, Lamoda и ряда других.