Настройка 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:

/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

Перезапускаем netatalk:

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) и скопируйте в него это содержимое:

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->

<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>

<name replace-wildcards="yes">%h</name>

<service>

<type>_afpovertcp._tcp</type>

<port>548</port>

</service>

<service>

<type>_device-info._tcp</type>

<port>0</port>

<txt-record>model=Xserve</txt-record>

</service>

</service-group>

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

Перезагружаем Avahi:

sudo service avahi-daemon restart

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

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

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

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

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

Time Machine: вся Ваша история (часть 1)
Time Machine: вся Ваша история (часть 2)

Вы можете оставить комментарий, или ссылку на Ваш сайт.

1 комментарий к записи “Настройка Time Machine сервера в Ubuntu”

  1. [...] что для чего и почему можно прочитать НАСТРОЙКА TIME MACHINE СЕРВЕРА В UBUNTU [...]

Всем советую игру как достать соседа! - http://dostatsoseda.ru - здесь все версии игры есть.

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

Вы должны быть авторизованы, чтобы разместить комментарий.