Перейти к основному содержанию Перейти к навигации Перейти к нижнему колонтитулу

Репозитории

Создание, управление и работа с LUKS-зашифрованными репозиториями на удаленных машинах.

Репозитории

Репозиторий, это LUKS-зашифрованный образ диска на удаленном сервере. При монтировании он предоставляет:

  • Изолированную файловую систему для данных вашего приложения
  • Выделенный Docker-демон (отдельный от Docker хоста)
  • Уникальные loopback IP-адреса для каждого сервиса в подсети /26

Создание репозитория

rdc repo create --name my-app -m server-1 --size 10G
ОпцияОбязательноОписание
-m, --machine <name>ДаЦелевая машина, на которой будет создан репозиторий
--size <size>ДаРазмер зашифрованного образа диска (например, 5G, 10G, 50G)
--skip-router-restartNoSkip restarting the route server after the operation

В выводе будут показаны три автоматически сгенерированных значения:

  • GUID репозитория, UUID, идентифицирующий зашифрованный образ диска на сервере.
  • Учетные данные, случайная парольная фраза, используемая для шифрования/дешифрования тома LUKS.
  • Идентификатор сети, целое число (начинается с 2816, увеличивается на 64), определяющее IP-подсеть для сервисов данного репозитория.

Сохраните учетные данные в надежном месте. Это ключ шифрования вашего репозитория. При утере данные не могут быть восстановлены. Учетные данные хранятся в вашем локальном config.json, но не хранятся на сервере.

Монтирование и размонтирование

Монтирование расшифровывает репозиторий и делает его файловую систему доступной. Размонтирование закрывает зашифрованный том.

rdc repo mount --name my-app -m server-1  # Расшифровать и смонтировать
rdc repo unmount --name my-app -m server-1  # Размонтировать и зашифровать
ОпцияОписание
--checkpointСоздать контрольную точку CRIU перед монтированием/размонтированием (для контейнеров с меткой rediacc.checkpoint=true)
--skip-router-restartSkip restarting the route server after the operation

Проверка статуса

rdc repo status --name my-app -m server-1

Список репозиториев

rdc repo list -m server-1

Изменение размера

Установите точный размер репозитория или увеличьте на заданную величину:

rdc repo resize --name my-app -m server-1 --size 20G  # Установить точный размер
rdc repo expand --name my-app -m server-1 --size 5G  # Добавить 5G к текущему размеру

Перед изменением размера репозиторий должен быть размонтирован.

Форк

Создайте копию существующего репозитория в его текущем состоянии:

rdc repo fork --parent my-app --tag staging -m server-1

Форки используют модель name:tag: результирующий форк называется my-app:staging. Эта команда создает новую зашифрованную копию с собственным GUID и идентификатором сети, разделяя имя родительского репозитория. Форк использует те же учетные данные LUKS, что и родительский репозиторий.

Проверка целостности

Проверьте целостность файловой системы репозитория:

rdc repo validate --name my-app -m server-1

Владение файлами

Установите владение файлами внутри репозитория на универсального пользователя (UID 7111). Обычно это необходимо после загрузки файлов с рабочей станции, которые приходят с вашим локальным UID.

rdc repo ownership --name my-app -m server-1

Команда автоматически обнаруживает директории данных Docker-контейнеров (записываемые bind-маунты) и исключает их. Это предотвращает поломку контейнеров, которые управляют файлами с собственными UID (например, MariaDB=999, www-data=33).

ОпцияОписание
--uid <uid>Установить пользовательский UID вместо 7111
--skip-router-restartSkip restarting the route server after the operation

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

rdc repo ownership --name my-app -m server-1

Подробное руководство по использованию ownership при миграции проектов см. в Руководстве по миграции.

Шаблон

Примените шаблон для инициализации репозитория файлами:

rdc repo template apply --name my-template -m server-1 -r my-app --file ./my-template.tar.gz

Удаление

Безвозвратно уничтожьте репозиторий и все данные внутри него:

rdc repo delete --name my-app -m server-1

Эта операция безвозвратно уничтожает зашифрованный образ диска. Действие не может быть отменено.