Linux time machine server

Настройка Time Machine сервера в Ubuntu

Продолжая тему домашнего сервера на базе Ubuntu, в этой статье мы рассмотрим как настроить бекап сервер Time Machine. Статья будет интересна главным образом пользователям компьютеров Apple, поскольку Time Machine сервер это исключительно Мак-ориентированный сервис. Time Machine – это система резервного копирования данных, которая встроена в операционную систему Mac OS X. Она очень проста в настройке и использовании; принцип действия заключается в том, что каждый час на внешний накопитель дописываются изменения произошедшие в файловой структуре. В случае поломки системного диска компьютера, или случайного удаления файлов, можно вернуть из резервной копии либо пропавшие файлы либо систему целиком. Клиент, то есть программа, которая выполняет резервное копирование есть в Mac OS X. Сервером же может выступать Time Capsule, Air Port Extreme с подключенным жестким диском, либо компьютер-сервер с операционной системой Mac OS X Server, например Mac mini. Также, при отсутствии сервера, для бекапа можно использовать локально подключенный USB диск. Однако, с помощью некоторых ухищрений, можно превратить в Time Machine сервер любой компьютер под управлением ОС семейства Linux. Так как я выбрал Ubuntu в качестве ОС своего домашнего сервера, то и рассматривать настройки будем на примере нее.

Для работы Time Machine сервера необходимо наличие протокола работы с файлами AFP. И так как мы будем устанавливать AFP на Ubuntu, то автоматически этот сервер также становится обычным файловым сервером для Мак-окружения. Макинтош-компьютеры смогут использовать его для централизованного хранения файлов.

В первую очередь, необходимо создать набор папок на сервере, которые будут использоваться для хранения разного типа информации. Следует учесть, что так как бекап Time Machine имеет тенденцию к бесконечному росту, то крайне желательно специально для бекапа выделять не папку на диске сервера, а сделать логический раздел. Таким образом, бекап не вырастет больше объема этого раздела, и клиент Time Machine будет автоматически удалять старые резервные копии, когда место будет заканчиваться.

Например, на моем домашнем сервере информация организована так:

/media/TM – том для Time Machine
/media/Data/AxisCaptured
/media/Data/AtomStore

Где media – это точка монтирования, TM и Data – это логические разделы, на которые разбит диск, AxisCaptured и AtomStore – папки в логическом разделе Data.

После создания папок надо убедиться, что у них выставлены правильные владельцы, что необходимо для успешной работы некоторых сервисов.

Например, я делаю так:

sudo chown andrey:root /media/TM
sudo chown motion:admin /media/Data/AxisCaptured
sudo chown andrey:admin /media/Data/AtomStore

andrey:root для тома TM гарантирует, что кроме меня больше никто не получит доступ к бекапному разделу (root не в счет).
motion:admin для папки AxisCaptured гарантирует, что программа motion сможет беспрепятственно писать в эту папку свои файлы, а члены группы admin будут иметь к ней доступ.

Теперь, когда структура для хранения будущей информации создана, можно приступить к установке необходимого ПО. Нам понадобится файловый протокол AFP и протокол автоматического обнаружения сервисов Bonjour (он же Zeroconf). Отметим, что AFP и Bonjour это зарегистрированные марки Apple, а в мире свободного ПО эти же технологии называются соответственно Netatalk и Avahi.

Устанавливаем Netatalk стандартным образом:

sudo apt-get install netatalk

Открываем конфигурационный файл Netatalk:

sudo pico /etc/netatalk/AppleVolumes.default

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

/media/TM «Time Machine» allow:andrey options:usedots,upriv,tm

Для всех остальных файл-шар (не для Time Machine бекапа) можно опустить опцию tm:

/media/Data/AtomStore «Data» allow:andrey options:usedots,upriv

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

Читайте также:  Не удается переустановить windows с флешки

/media/Data/AxisCaptured «Data» allow:andrey options:usedots,upriv,ro

У меня конфиг такой:

Параметры, которые использовались:

allow – позволяет перечислить через запятую имена пользователей и групп, которым разрешено использовать ресурс. Имена групп должны начинаться с @.
usedots – когда установлена эта опция, некоторые имена файлов становятся недопустимыми. Например, .Parent и все что начинается с .Apple.
upriv – заставляет использовать AFP3-Unix права доступа. Разработчики рекомендуют ознакомиться с «новыми Unix-правами» которые используются в Mac OS X прежде чем использовать эту опцию
tm – включает поддержку Time Machine для этого тома
ro – read only

Подробнее о конфигурационном файле Netatalk можно почитать на странице разработчика проекта: http://netatalk.sourceforge.net/2.0/htmldocs/AppleVolumes.default.5.html

sudo /etc/init.d/netatalk restart

Можно проверить сканером портов, и убедиться что открылся 548-й порт, используемый Netatalk/AFP.

Теперь нас интересует Bonjour, простите, Avahi. Avahi уже должен быть установлен если используется хотя бы Ubuntu 10.04. Поэтому устанавливать его не нужно, нужно только настроить.

sudo pico /etc/nsswitch.conf

И добавляем mdns в конце строки «hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4» чтобы выглядело так:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns

Потом нужно создать и отредактировать конфигурационный XML файл, чтобы Ubuntu правильно объявляла о наличии AFP сервиса всем имеющимся в сети Макам, чтобы они могли его использовать. После этого, любой Мак в сети не только увидит общий сервер в панели ресурсов Finder, но также Time Machine увидит доступный для бекапа сетевой диск (да, это будет именно тот раздел, для которого в конфигах AFP прописан параметр tm).

Перейдите в каталог /etc/avahi/services/ и создайте там новый файл с именем afpd.service (для этого удобно использовать команду touch). Используя свой любимый текстовый редактор (консольный nano, либо графический gedit) откройте созданный файл (/etc/avahi/services/afpd.service) и скопируйте в него это содержимое:

model=Xserve – это тот самый параметр, который указывает, какую иконку использовать для ресурса. В данном случае сервер в сети будет выглядеть как Xserve RAID.

sudo service avahi-daemon restart

Можно вообще перезагрузить сервер. Теперь, прежде чем подключить том Time Machine, нужно залогиниться на сервер через боковое меню Finder:

потом открыть настройки TM, и нажать «Выбрать диск»:

Time Machine увидит сетевой том, которому мы поставили опцию ТМ:

Выбираем этот том, Тime Мachine попросит ввести пароль к нему:

И потом можно отключиться от сервера – Тime Мachine сама будет периодически монтировать свой сетевой том для бекапа, независимо от того подключен пользователь к серверу или нет. Подробнее о механизме работы Time Machine в Mac OS X можно почитать в статьях:

1 Trackback / Pingback

Оставить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Организация сервера резервных копий Time Machine для клиентских систем macOS с централизованным хранилищем на системах macOS, Linux Debian 10 Buster или Windows Server 2012 R2

На предприятии с большим количеством компьютеров на базе ОС Apple macOS может возникнуть необходимость развёртывания централизованного сервера для хранения резервных копий на базе пакета Time Machine с интеграцией в механизмы доменной авторизации на базе каталога Active Directory (AD). В данной заметке мы рассмотрим три варианта организации сетевого ресурса (SMB) под задачу резервного копирования компьютеров macOS, а также поговорим о разных вариантах настройки клиентов macOS для подключения к такому ресурсу.

Сразу стоит отметить, что по причине появления Apple File System (APFS) протокол Apple Filling Protocol (AFP) стал считаться устаревшим, поэтому рассматривать AFP в контексте данной заметки мы не будем.

Организация сетевого ресурса для Time Machine на macOS

С тех пор, как Apple отказались развивать «серверные» продукты в пакете Server.app оставив только Profile manager, многие стали задаваться вопросом, а как же сейчас организовывать Time Machine Server?

На мой взгляд, Apple сделали лучше, чем было ранее, потому что перенесли возможность организации сетевого хранения резервных копий macOS в базовые настройки ОС, и поэтому теперь не требуется ничего устанавливать дополнительно.

Читайте также:  Windows mail не установлен

Рассмотрим пример создания сетевого каталога для Time Machine на macOS Mojave.

1. Откроем настройки и перейдём в общий доступ;

2. Добавим каталог, который будет использоваться для Time Machine;

3. Вызываем контекстное меню на каталоге и откроем «дополнительные параметры…»

Разрешим использовать каталог для резервного копирования Time Machine.

Если macOS введён в домен, то на каталог можно применить необходимую группу безопасности AD для ограничения доступа к резервным копиям.

Общие ресурсы для Time Machine не поддерживаются на разделах APFS.

Организация сетевого ресурса для Time Machine на Linux Debian 10

Поддержка Apple Time Machine появилась в Samba 4.8, но в репозитории Debian 9 имеется только версия 4.5, поэтому необходимо либо собирать Samba в ручную, либо установить пред-релизную сборку Debian 10 Buster, в репозитория которого Samba 4.9.5.

В нашем примере на базе хоста виртуализации с Windows Server 2012 R2 разворачивается виртуальная машина Hyper-V Gen2 c гостевой ОС Debian 10 Buster. Описанная далее процедура базовой настройки Debian 10 не имеет прямого отношения к нашей задаче резервного копирования и добавлена для полноты описания. Поэтому знатоки Debian могут переместиться в конец этого раздела, где идёт речь о создании сетевого ресурса на базе Samba.

Итак, выполним вход под супер-пользователем и начнём настраивать систему.

Первым делом необходимо настроить сеть:

Если в сети не используется IPv6, то отключим его:

Если для доступа в Интернет используется прокси-сервер, настроим его, чтобы была возможность устанавливать и обновлять пакеты:

Настоим репозитории Debian 10:

Установим обновления пакетов:

Установим пакеты, необходимые в рамках нашей задачи:

Настроим sudo, разрешив всем пользователям повышающим привилегии, использовать ранее заданные переменные с настройками прокси:

Разрешим пользователю user1 выполнять повышение привилегий. Добавим пользователя user1 в группу sudo

Теперь можно завершить сеанс пользователя root и в дальнейшем пользоваться учётной записью user1.

Так как система будет добавлена в домен, необходимо, чтобы на нашем сервере с Debian 10 было правильное время. Настроим NTP-клиент на получение времени с контроллеров домена:

Добавляем в файл записи о NTP-серверах:

Настраиваем поддержку Kerberos под свой домен AD:

Настраиваем конфигурацию SSSD под свой домен AD:

Установим права на конфигурационный файл

Система ещё не в домене, поэтому работа службы sssd невозможна, отключим и остановим её, а так же выполним очистку кэша:

Отключаем и останавливаем nmbd:

Выполняем настройку Samba:

Проверяем корректность настроек

Система выдаст предупреждение о лимите открытых файлов который в Linux и Windows отличается

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

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

Разрешим выполнение скрипта:

Попробуем получить билет Kerberos пользователя, учётные данные которого будут использоваться для ввода сервера в домен:

Проверим билет Kerberos:

Присоединим сервер к домену, используя ранее полученный билет Kerberos :

Получим и проверим билет Kerberos для учётной записи сервера:

Если ввод в домен осуществлялся не с правами учётной записи администратора домена, то для учётной записи сервера необходимо отдельно зарегистрировать запись SPN, которая требуется для работы протокола Kerberos. Сделать это можно на любой Windows-системе, присоединённой к домену следующей командой:

Включаем и запускаем SSSD:

Теперь настроим Linux для работы с доменными пользователями, чтобы в дальнейшем использовать свои административные учётные записи Active Directory для администрирования сервера.

Автоматическое создание домашнего каталога для доменных пользователей:

Настройка PAM для ограниченного входа в систему группам пользователей:

Установим права на файл:

Опишем в PAM использование нашего файла с перечнем разрешённых логинов/групп:

Настройка sudo для группы доменных пользователей:

Настройка PAM для SSH-подключений:

Настроим конфигурацию SSH-сервера:

Изменим следующие строки:

Перезапустим службу SSH-сервера:

Напоследок подключим диск, на котором будут хранится резервные копии.

Посмотрим, какой диск виртуальной машины доступен

В нашем примере будет использоваться диск /dev/sdb . Выполним на этом диске разметку:

n — создаём новый раздел

p — проверяем результат

w — записываем изменения

Форматируем созданный раздел в файловую систему ext4:

Читайте также:  Настройки почты яндекс imap mac os

Создаём точку монтирования:

Узнаём необходимый для монтированная идентификатор UUID диска:

Настраиваем авто-монтирование диска при каждой загрузке сервера:

Применяем изменения в fstab

Установим доменную группу на каталог резервных копий:

Перезапустим службу Samba:

Организация сетевого ресурса для Time Machine на Windows Server

По умолчанию, Time Machine не поддерживает SMB ресурсы организованные на Windows Server, так как Windows Server не имеет расширения F_FULLSYNC. Поэтому мы вручную создадим, так называемый (в терминологии локализованной версии macOS), «рассеянный» (sparsebundle) пакетный образ диска и разместим его на этом сетевом ресурсе.

Подключим сетевой ресурс и создадим на нём рассеянный пакетный образ диска с помощью Disk Utility.app

  • Имя файла: имя хоста
  • Имя раздела: Резервные копии Time Machine
  • Размер устанавливаем в зависимости от потребностей
  • Файловая система: Mac OS Extended (Чувствительный к регистру символов, журналируемый)
  • Шифрование: устанавливаем если мы хотим иметь зашифрованную резервную копию
  • Раздел: Одиночный раздел — Схема разделов GUID
  • Формат: Рассеянный пакетный образ диска

Создать образ sparsebundle можно и с помощью Terminal.app:

Отдельное внимание можно уделить ключу » -imagekey sparse-band-size= «, который по умолчанию имеет значение 16384 . С помощью него можно регулировать размер части диска, с учётом 512 байт на сектор. То есть по умолчанию размер части равен 8 Мб, а в примере 512 Мб.

После создания образа дисковой утилитой, он автоматически подключится в систему. Теперь необходимо включить на этом образе параметр enableOwnership, для того, чтобы Time Machine мог управлять разрешениями.

Откроем Terminal.app и узнаем каким устройством подключен образ:

Включим управление владением

Проверить состояние параметра можно как в терминале, так и в дисковой утилите

В Disk Utility.app информация об этом параметре «Владельцы включены» обновится только после переподключения образа. Однако, необходимо иметь ввиду, что данный параметр хранится на той системе, где он был включен и находится в файле /var/db/volinfo.database . Это можно проверить, но сперва узнаем идентификатор тома:

Затем прочтём файл

Для того, чтобы метод работал, необходимо заранее монтировать образ в систему при входе пользователя, создадим приложение на Apple Script:

Экспортируем его как «Программа», затем добавляем в автозагрузку при входе пользователя.

Для подобного метода резервного копирования на sparsebundle-диск можно использовать и другие и другие сетевые ресурсы, например NFS.

Подключение сетевого ресурса к Time Machine

При относительно небольшом количестве клиентов подключения можно выполнить вручную, используя утилиту терминала tmutil.

Если подключаемся к сетевому расположению, то пример команды будет выглядеть так:

Несмотря на то, что клиентская машина с macOS в домене и у нас имеется сквозная аутентификация, здесь необходимо будет явным образом указать имя пользователя и пароль.

Если подключаемся к смонтированному HOSTNAME.sparsebundle на сетевом ресурсе:

Посмотреть информацию о существующих расположениях Time Machine:

Если в компании много компьютеров на базе macOS, то настраивать каждый из них вручную будет не совсем интересно. В таком случае для массовой настройки можно воспользоваться Profile Manager.

В группе macOS, секции Login Items, настроим аутентификацию пользователя на сетевом ресурсе.

В секции Time Machine укажем путь до сетевого каталога и параметры резервного копирования.

Для вступления параметров в силу необходим релогин. После применения параметров, пользователь сможет управлять только исключениями каталогов из резервного копирования.

Проверка восстановления из резервной копии

После того, как создана хотя бы одна резервная копия, мы можем проверить восстановление файлов.

Перейдём в каталог, в котором хотим выполнить восстановление, вызовем spotlight сочетанием клавиш ⌘+пробел и откроем Time Machine. Остаётся выбрать файлы или каталоги, которые необходимо восстановить.

Подобным образом можно восстанавливать удалённые письма в приложении Mail.app.

Для восстановления операционной системы после критических сбоев, замены HDD/SSD или переноса конфигурации на новый Mac, необходимо воспользоваться macOS Recovery. После загрузки macOS Recovery переходим в Time Machine, выполняем подключение к «Другой сервер», прописываем сетевой путь до каталога с резервными копиями:

При необходимости, система запросит учетные данные для подключения к сетевому ресурсу и ключ для зашифрованной резервной копии.

Источник

Оцените статью