- PVSM.RU - https://www.pvsm.ru -
Те, кто любит устройства от Synology и отличный сервис резервного копирования CrashPlan [1] уже много лет кувыркаются, пытаясь настроить его надежную и бесперебойную работу на хранилище. С приходом Docker на Synology появился свет в конце тоннеля.
Большие домашние хранилища от Synology [2] усыпляют бдительность. Они кажутся надежными и безотказными. Там есть RAID, который защищает от сбойных дисков. Там есть «Time Backup», который отлично сохраняет версии файлов и позволяет их легко восстанавливать. Однако, настоящие параноики, чтущие Нассима Талеба [3], всегда помнят о редких, но неприятных событиях, которые могут случится с вашими данными, да и самим хранилищем:
Исходя из этого, каждому здравомыслящему параноику понятно, что нужно прятать резервные копии всех важных данных (детские фотографии, например) подальше в облака. Разработчики это тоже понимают. В DSM есть пакет «Cloud Sync», который позволяет копировать ваши данные в удаленные облачные хранилища. К настоящему времени поддерживается много облачных сервисов:
Однако, по непонятной мне и многим пользователям причине, не поддерживается облачный сервис специально заточенный под резервное копирование — CrashPlan [1]. Он любим за свою надежность, безлимитность и недорогие тарифы [4]. Поэтому, долгое время сообщество прикручивает этот сервис к Synology скотчем и степлером. Так, Patrick Moore (мой герой!) с 2012 года поддерживал и постоянно допиливал свой пакет CrashPlan, работающий на хранилище. Но, похоже, в 2015 году он окончательно устал [5].
Пришлось поднять голову и оглядеться вокруг. К этому времени, на Synology появился Docker (не на всех версиях [6]) и теперь есть возможность запустить CrashPlan в Docker-контейнере, где он будет успешно жить и самостоятельно обновляться. Его установка и настройка не вполне очевидны. Надеюсь, что короткая инструкция ниже поможет вам набить чуть меньше шишек, чем мне. Она скорее для чайников, ибо профессиональные linux-админы уже у себя дома давно всё настроили.
Итак, следующая последовательность действий, позволит вам запустить и управлять своим клиентом CrashPlan в Docker-контейнере, который бежит на Synology:
1. Создаем на своем хранилище новую папку общего доступа. Например: «crashplan-symlink». Именно эту папку будет видеть CrashPlan из контейнера. Она одна должна содержать все данные, которые будет обрабатывать CrashPlan. Можно переложить все важные данные непосредственно в неё, но лучше создать там подпапки «music-symlink», «photo-symlink», «homes-symlink» и определить их как симлинки на реальные папки хранилища. Это тоже работает.
2. Создаем на хранилище новый файл /etc/rc.local и прописываем в него команды для монтирования симлинков с настоящих папок (фото, видео, и пр.) на вложенные папки в нашей новой папке общего доступа. Файл «rc.local» нужно использовать потому, что иначе симлинки не выживают при перезагрузке хранилища. Если есть затруднения, см. ниже «Удобное управление файлами на хранилище». Вот, что у меня сейчас в этом файле:
mount --bind /volume1/bittorrentsync /volume1/crashplan-symlink/bittorrentsync-symlink
mount --bind /volume1/homes /volume1/crashplan-symlink/homes-symlink
mount --bind /volume1/music /volume1/crashplan-symlink/music-symlink
mount --bind /volume1/photo /volume1/crashplan-symlink/photo-symlink
mount --bind /volume1/public /volume1/crashplan-symlink/public-symlink
3. Ставим на Synology пакет «Docker». Далее запускаем его после установки, ищем в реестре контейнер crashplan («jrcs/crashplan» — hub.docker.com/r/jrcs/crashplan [7]) и также устанавливаем его.
4. При начальном конфигурировании контейнера «jrcs/crashplan» важно запомнить предложенное соответствие портов (если выберем автонастройку) или вручную задать соответствие двух портов необходимых для работы и управления CrashPlan. Например, вот так: порт «4243» назначить на «32774», а «4242» на «32773». Открываем дополнительные настройки контейнера и там прикрепляем нашу созданную на первом шаге папку общего доступа «crashplan-symlink». Ставим ей в соответствие значение "/storage", так она будет доступна из докер-контейнера.
5. Перегружаем хранилище. Убеждаемся, что наши симлинки в папке «crashplan-symlink» выжили и работают. Запускаем в докере пакет «jrcs/crashplan». Если все правильно, то к данному моменту мы имеем запущенный и работающий докер-контейнер внутри которого уже успешно запущен и работает клиент CrashPlan. Однако, сам клиент ещё не настроен. Ему нужно сказать, что и откуда брать и куда копировать, а для этого нужно подключиться к клиенту, через специальное приложение CrashPlan (есть и для Win и для Linux). Однако, просто так подключиться к клиенту приложение не сможет, там все шибко безопасно, поэтому квест продолжается.
6. Для того, чтобы иметь возможность подключиться к клиенту CrashPlan, нужно вытащить из специального файла в докер-контейнере строку содержащую секретный ключ. Для этого, подключаемся к хранилищу через SSH (например, клиентом PuTTY). Находим файл ".ui_info". Он лежит где-то по этому пути "/var/packages/Docker/target/docker/volumes/464...../_data/id". В этом файле есть текстовая строка с секретом (сначала идёт адрес порта, потом нужный нам секрет, потом ip-адрес). Так в примере ниже, нам нужно взять строку: «05bv99x3-36f8-43e6-92c7-4b8776f2edb2».
4243,05bv99x3-36f8-43e6-92c7-4b8776f2edb2,0.0.0.0
7. На локальном компьютере ставим управляющее ПО от CrashPlan [8]. Затем ищем там файл ".ui_info" (для Windows он лежит в папке «C:ProgramDataCrashPlan») и редактируем его руководствуясь следующими правилами:
— На первой позиции в строке идёт порт, который в контейнере «jrcs/crashplan» поставлен в соответствие порту «4243». Так, если настройки были указаны как на шаге 4, то пишем «32774».
— Далее идет секретный ключ, который мы вытащили из контейнера на шаге 6.
— Последнее значение ip-адрес нашего хранилища, где запущен и работает клиент CrashPlan, т.е. которым мы хотим управлять. Если на Synology запущен QuickConnect, то в его настройках можно посмотреть внешний ip-адрес хранилища («Панель управления» — «Внешний доступ»).
В результате, строка в локальном файле ".ui_info" должна стать примерно такой:
32774,05bv99x3-36f8-43e6-92c7-4b8776f2edb2,192.168.1.100
8. Если всё сделано верно, то при запуске управляющего ПО от CrashPlan на локальном компьютере, он обращается по заданному ip-адресу на заданных порт хранилища (в нашем примере на 192.168.1.100 на порт 32774). Хранилище переадресует запросы на порт 4243 в контейнер «jrcs/crashplan», где бежит headless-клиент CrashPlan. Если секретный ключ совпадает, то всё ОК и подключение выполняется.
9. В приложении мы должны увидеть папку «storage» внутри которой будут созданные ранее подпапки-симлинки, а в них все наши данные. Вводим нашу лицензию, выбираем необходимые данные и начинаем их резервное копирование в облако CrashPlan. Кстати, у CrashPlan есть хорошие мобильные приложения, которые позволяют следить за этим процессом.
1. При первоначальной установке и при переустановке клиента CrashPlan на хранилище у него меняется GUID. Если у вас уже есть резервная копия данных на серверах CrashPlan, то для того, чтобы прикрепиться к уже существующему бекапу, нужно использовать функцию «ADOPT» [9] (такое предложение появится в клиентском приложении после успешного подключения). В противном случае, создание резервных копий начнётся заново и при больших объемах это занимает кучу времени.
2. Удобное управление файлами на хранилище. Проще всего управлять файлами на Synology через «Midnight Commander», его можно поставить на хранилище. Для этого необходимо:
— В «Центре пакетов» перейти в «Настройки» и добавить новый источник пакетов. Название: «synocommunity». Местоположение: «packages.synocommunity.com [10]».
— Перейти в «Центре пакетов» в категорию «Сообщество», найти там «Midnight Commander» и установить его.
— Скачать и установить PuTTY [11].
— Включить SSH на Synology («Панель управления» — «Терминал и SNMP» — «Включить службу SSH»).
— Получить IP-адрес своего хранилища. Если на Synology запущен QuickConnect, то в его настройках можно посмотреть внешний ip-адрес — хранилища («Панель управления» — «Внешний доступ»).
— Выполнить вход на хранилище через PuTTY указав логин 'admin' и текущий пароль. Если требуются права 'root' и расширенный доступ к файловой системе (наш случай), то нужно ввести в терминале команду 'sudo -i' и повторить пароль (инструкция от Synology [12]).
— Поскольку мы ранее установили пакет Midnight Commander, то команда 'mc' в терминале запустит его. В результате получаем доступ ко всем файлам на устройстве.
Полезные ссылки:
Автор: Crush
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/rezervnoe-kopirovanie/119384
Ссылки в тексте:
[1] CrashPlan: https://ru.wikipedia.org/wiki/CrashPlan
[2] хранилища от Synology: https://www.synology.com/ru-ru/products/
[3] чтущие Нассима Талеба: https://ru.wikipedia.org/wiki/%D0%A7%D1%91%D1%80%D0%BD%D1%8B%D0%B9_%D0%BB%D0%B5%D0%B1%D0%B5%D0%B4%D1%8C_(%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F)
[4] недорогие тарифы: https://store.code42.com/store/
[5] окончательно устал: https://pcloadletter.co.uk/2012/01/30/crashplan-syno-package/
[6] не на всех версиях: https://www.synology.com/ru-ru/dsm/app_packages/Docker
[7] hub.docker.com/r/jrcs/crashplan: https://hub.docker.com/r/jrcs/crashplan/
[8] управляющее ПО от CrashPlan: http://
[9] функцию «ADOPT»: http://support.code42.com/CrashPlan/4/Configuring/Replacing_Your_Device
[10] packages.synocommunity.com: http://packages.synocommunity.com/
[11] установить PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
[12] инструкция от Synology: https://www.synology.com/en-us/knowledgebase/DSM/tutorial/General/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet
[13] CrashPlan on a headless computer: http://support.code42.com/CrashPlan/4/Configuring/Using_CrashPlan_On_A_Headless_Computer#Step_1:_Copy_The_Authentication_Token
[14] Описание докер-контейнера docker-crashplan: https://github.com/JrCs/docker-crashplan/blob/master/README.md
[15] Источник: https://habrahabr.ru/post/282580/
Нажмите здесь для печати.