Для репликации данных между серверами FreeNAS существует 2 механизма:
1. Необходимо на целевом хосте запустить службу sshd, для этого перейти во вкладку интерфейса "Службы" и активировать службу SSH
В настройках службы
разрешаем пользователю root подключение по паролю
Может потребоваться перезагрузка сервера.
На сервере источнике под пользователем root генерируем комплект ключей пользователя
Проверяем результат:
Выбираем реплицируемый набор данных и настраиваем остальные параметры.
Во вкладке снимки, можем наблюдать созданные снимки.
Далее идем во вкладку "Задания репликации" и жмем добавить репликацию
Настраиваем создаваемое задание:
Копируем токен из всплывающего окна
Вставляем в поле 5 на форме создания задания на хосте-источнике.
Задание создано и через время начнет выполняться.
Следует иметь ввиду, что на целевом хосте набор данных-реплика имеет режим "readonly" разрешить изменение датасета можно коммандой
в открывшемся окне исправляем путь с названием снимка на желаемый
Наблюдаем среди томов вновь созданный.
С полученным датасетом можно полноценно работать, но помним что это клон, для того, чтоб сделать его основной веткой надо выполнить для него Promote
В итоге мы произведем восстановление датасета из снимка и можем полноценно ее использовать.
P.S.
Мною опробован вариант клонирования файловой системы из последнего снимка в саму себя, что так же привело к получению рабочей, доступной для записи файловой системы.
- Механизм ZFS снэпшотов(снимки файловой системы)
- Rsync, имеющий 2 режима использования, в рамках статьи рассмотрю только один из них.
Немного теории:
Для подробностей рекомендую раздел "репликация" книги
"Мастерство FreeBSD:ZFS для профессионалов" авторы Michael W Lucas
and Allan Jude.(ZFS отлично документирован и у Oracle, но следует иметь ввиду, что версия
ZFS во FreeBSD и других портах ZFS отличаются по доступному
функционалу).
О понятиях:
Из коммандной строки снимок датасета создается коммандой:О понятиях:
- Dataset(набор данных) - элемент логической организации данных в пределах тома ZFS. При наличии точки монтирования, с точки зрения пользователя выглядит как каталог, создается с помощью zfs create....,(mkdir - не создает датасета).
- Snapshot(снимок набора данных), хранит в себе данные, которые были изменены после создания снимка, в момент создания snapshot=dataset и его размер = 0, по мере роста изменений размер снимка растет(надо понимать, что в момент создания снимка не создается никаких копий данных, а происходит фиксация состояния файловой системы, дальнейшая модификация происходит в свободные области дискового пространства. Нельзя сделать снимок папки созданной при помощи mkdir.
- Клон - датасет, созданный из снимка. Содержит в себе изменения, которые в нем произошли относительно исходного снимка, может быть сделан основной веткой файловой системы с помошью комманды ZFS "promote" (при этом основной датасет становится клоном).
- Уничтожение датасета влечет уничтожение всех снимков и клонов, родителем которых он является.
zfs snapshot mypool/mydataset@snapshot_Id
После чего снимок может быть отправлен в файл следующей коммандой:
zfs send mypool/mydataset@snapshot_Id > backup_file
Будучи перенесенным на целевую систему снимок может быть восстановлен из файла
коммандой:
zfs receive mypool/copy_dataset < backup_file
Для успешного проведения вышеуказанных манипуляций, пользователь, под которым
они осуществляются, должен обладать правами ZFS snapshot, send на датасет -
источник, а так же правами ZFS compression, create, mount, mountpoint и
receive на целевом наборе данных. Права на набор данных устанавливаются
коммандой:
zfs allow -u myuser permission1,permission2,permissionN mypool/mydataset
Это вся информация по коммандной строке, которая необходима в рамках данной
темы. Для настройки собственно репликации между серверами она не нужна, но в
случае необходимости отреплицировать большой набор данных по не очень быстрому
соединению лучше первый снимок передать с помощью перемещения backup файла,
как описано выше.Настройка репликации через UI FreeNAS
исходные данные:1. Необходимо на целевом хосте запустить службу sshd, для этого перейти во вкладку интерфейса "Службы" и активировать службу SSH
В настройках службы
разрешаем пользователю root подключение по паролю
Может потребоваться перезагрузка сервера.
На сервере источнике под пользователем root генерируем комплект ключей пользователя
ssh-keygen
копируем публичный ключ на целевой хост:
ssh-copy-id -i .ssh/id_rsa.pub remote_ip
вводим пароль рута удаленного хоста.Проверяем результат:
ssh remote_ip
В итоге мы должны без пароля подключиться к целевому хосту.
Настройка заданий создания снимков(snapshots)
На хосте-источнике идем в меню "хранилище", вкладка "задания создания снимков", кнопка "добавить задание создания снимков"Выбираем реплицируемый набор данных и настраиваем остальные параметры.
Во вкладке снимки, можем наблюдать созданные снимки.
Далее идем во вкладку "Задания репликации" и жмем добавить репликацию
Настраиваем создаваемое задание:
- Выбираем реплицируемый набор данных(можно выбрать только набор, для которого есть задание создания снимков)
- Указываем удаленный набор - будет корневым для реплицируемого, должен существовать на целевом хосте.
- Выбираем режим создания задания(настоятельно советую полуавтомат, ручной режим описываться не будет)
- IP/DNS-имя целевого хоста
- Временный токен удаленного хоста(только в полуавтоматическом режиме).
Копируем токен из всплывающего окна
Вставляем в поле 5 на форме создания задания на хосте-источнике.
Задание создано и через время начнет выполняться.
Следует иметь ввиду, что на целевом хосте набор данных-реплика имеет режим "readonly" разрешить изменение датасета можно коммандой
zfs set readonly=off volume/backup
Но если мы его изменим, он не сможет принимать новые реплики. Лучше
отклонировать желаемый снимок с указанием создаваемой из снимка системы. Для
чего идем в снимки, и напротив желаемого снимка жмем кнопкув открывшемся окне исправляем путь с названием снимка на желаемый
Наблюдаем среди томов вновь созданный.
С полученным датасетом можно полноценно работать, но помним что это клон, для того, чтоб сделать его основной веткой надо выполнить для него Promote
В итоге мы произведем восстановление датасета из снимка и можем полноценно ее использовать.
P.S.
Мною опробован вариант клонирования файловой системы из последнего снимка в саму себя, что так же привело к получению рабочей, доступной для записи файловой системы.
Комментариев нет:
Отправить комментарий