Обзор NAS Synology DS212

Каждый программист знает насколько тяжело заставить себя перед исполнением какой-либо работы сделать полный бекап. Каждый системный администратор обещает себе, что завтра настроит бекап всех до одного программных продуктов. Также, каждый серьезный консультант в сфере ай-ти понимает насколько сложно организовать верный процесс создания резервных копий. Сегодня речь пойдет про устройство, которое позволяет домашним пользователям, а также небольшим бизнес -группам разворачивать систему для резервного копирования данных. К статье также приложен простой и проверенный PHP-скрипт, который позволит вам создать систему архивирования файлов вашего веб-сайта.

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

NAS запущен

NAS запущен

Конечно, самое главное, — делать регулярные копии важных данных. Это непременное правило работы фрилансера — всегда делать копии, причем всегда перед началом работы. Тогда и клиенты будут счастливы, даже если вы случайно удалите какой-то файл, вы ведь тут же сможете его восстановить. Не случайно, при консультации  коммерческих организаций, по поводу того, как им организовывать ИТ-подразделение, и вообще ИТ-работу, стоит начинать работу с обеспечения ежедневного резервирования данных. Ведь восстановление данных — кропотливая, занимающая много времени и крайне неприятная в плане организации нормального рабочего процесса, процедура.

Однако, всякий раз когда вы начинаете работать над проектом, просто нет времени ждать пока будет сделана копия. Поэтому приходиться сохранять версии изменяемых файлов, немного рискуя забыть сделать копию, и удалить нужные данные. Равно также и администратор компьютерной сети как небольшой фирмы, так и большой корпорации, постоянно занят, и у него просто нет времени для выполнения этой глобальной задачи. Ведь построение нормальной и грамотной системы сохранения данных предполагает тонкое знание всех аспектов функционирования всех программных продуктов. Более того, такая процедура предусматривает создание интерфейсов для доступа к данным. Обеспечения их резервирования, обеспечение удаленного управления.

В том случае, если вы столкнулись с такой задачей, и вам крайне важно сохранять резервные копии, — причем необходимо выполнить построение такой системы немедленно, — стоит обратить внимание на специализированные программно-аппаратные комплексы.

В настоящее время для управления данными существует достаточно много технических решения, наиболее известны сейчас устройства Synology и QNAP. Их великое множество, однако сегодня речь пойдет про Synology DS212.

Вкратце, это устройство, выполняет целый ряд функций. Перечислю их в порядке важности, для меня лично:

  • UNIX-компьютер, позволяющий выполнять собственные задачи;
  • Linux+PHP+MySQL сервер, позволяющий держать небольшой веб-сайт;
  • FTP-сервер, позволяющий получать файлы, и осуществлять управление с помощью веб-интерфейса;
  • Торент-качалка, с веб-интерфейсом, позволяющая также скачивать с ftp.
  • Видео-сервер, позволяющий подключать несколько ай-пи видео камер. Максимально можно подключить 5-ть камер. В том случае, если вы будете подключать только одну камеру. — лицензия будет бесплатна. За последующие камеры, придется заплатить где-то по $60 (!) за каждую последующую подключенную камеру;

Кроме того устройство позвоялет выполнять ряд других фун<

  • Создавать мультимедиа-сервер, для раздачи данных по протоколу DLNA, а также несколькоим другим;
  • Просматривать веб-фото альбом
  • Автоматически проверять файлы антивирусом
  • многие другие функции

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

Synology DS212 коробка

Synology DS212 коробка

В комплекте вы получаете, документы, особенно радует глаз зеленая брошюрка с английской надписью, в переводе означающей: «Приветствуем! Прочитайте это, сначала!».

Synology DS212 диск и документы

Synology DS212 диск и документы

Ничего там страшного или нового вы не увидите, кроме как совершенно здравых рекомендаций по установке в NAS дополнительных устройств. Брошюрка имеет также и русскоязычную вкладочку. Конечно, перед установкой стоит ее изучить внимательно, чтобы не было, как в том анекдоте, когда сантехник забыл открутить фиксирующий винт от стиральной машинки:

Synology DS212 предупреждение

Synology DS212 предупреждение

Повторюсь, брошюрка очень правильная, гласящая про то, что перед покупкой винчестеров к данному устройству следует убедиться, что они совместимы. Возможность проверки таких устройств, равно как и несовместимых, доступна на сайте производителя, для данной модели совместимые устройства собраны на этой страничке. Кстати, если вы когда либо запланируете подключать данный NAS к какому-либо устройству, советую посетить страницу, которая содержит весь список протестированного на совместимость оборудования, вот здесь.

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

Предварительная проверка винчестеров на совместимость

Предварительная проверка винчестеров на совместимость

В картонной коробке, идет также само устройство, два пакета с винтами крепления, также двух метровый сетевой кабель RJ45 а также блок внешний питания со своим кабелем.

Весь комплект

Весь комплект

Вот так собственно выглядит все подключение устройства, питание и сетевой кабель подключенный в коммутатор вашей компьютерной сети.  Сзади также есть два разъема для подключения USB-устройств. Например пары принтеров.

Подключение

Подключение

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

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

Устройство имеет быстросъемную переднюю панель, которая крепиться всего лишь на резиновых направляющих, очевидно для снижения шума.

Пара винчестеров в обоймах

Пара винчестеров в обоймах

Винчестера необходимо прикрепить к направляющим, с помощью винтов, которые идут в комплекте с устройством. Причем это могут быть как 2.5 так и 3.5 дюймовые модели.

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

Внчестер прикручивается четырьмя винтами

Внчестер прикручивается четырьмя винтами

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

Винчестеры установлены

Винчестеры установлены

Включение и первоначальная установка Synology DS212

Установка устройства происходит в сетевом режиме. То есть — вы включаете ваш NAS во внутреннюю сеть, к которой имеет доступ ваш компьютер. То есть, вам надо иметь какой-то компьютер, чтобы установить ПО на этот NAS, то есть — просто купить его в комплекте к телевизору можно, но настраивать все-равно придется с какого-то компьютера.

Вместе с устройством поставляется диск, который содержит нужное для установки станции ПО. Поскольку на моем рабочем месте автозапуск для данного диска попросту «сваливался» с ошибкой, пришлось искать ПО по диску вручную. Инсталляционный файл для Windows  находиться в каталоге Windows/DSAssistant/SynologyAssistantSetup-3.2-1920.exe. Программа для запуска под Mac и для Linux находятся в одноименных папках.

После инсталляции «ассистента» вы увидите следующее окно:

Главное окно "Синолоджи Ассистента"

Главное окно "Синолоджи Ассистента"

Отсюда можно переустановить ПО, перейти к веб-панели управления, подключить принтер, настроить WOL (автозапуск при сетевом доступе). Собственно, при первоначальной установке воспользуйтесь пунктом Search & установите операционную систему на это устройство. Последняя находиться в виде бинарных файлов на том же компакт диске, в каталоге DSM (так называется версия UNIX, разработанная Synology). Поскольку буквально пару недель назад была выпущена новая 4-я версия DSM, ее также можно скачать с официального  сайта, вот здесь

Процесс установки ПО по обычной 100-то мегабитной сети занимает около 10-ти минут. После чего устройство стает доступно для управления по вебу, с помощью внутреннего сайта. По-умолчанию веб-панель управления доступна на порту 5000 и по ай-пи адресу устройства. Вы также можете вызывать эту панельс помощью «ассистента», но проще сделать ссылку быстрого доступа в вашем браузере.

Веб-панель.

Панель управления NAS Synology DS212 начинается с окна логина, где необходимо ввести логин/пароль, которые вы задавали при установке ПО. После чего, вы попадаете в некое подобие операционной системы, доступной из окна браузера. Правда все состояние окон храниться только в открытом окне, то есть , нет псевдо-терминальности. Вот так выглядит англоязычный интерфейс системы (по-умолчанию, он, кстати русский):

Стартовое окно

Стартовое окно

Здесь вы можете управлять всеми функциями системы с помощью  «Контрольной Панели» (Control Panel). При ее запуске открывается окно с массой приложений, которые позволяют настроить всю функциональность «коробочки»:

Контрольная панель

Контрольная панель

 

Также, обратите внимание, что в верхнем левом углу веб-интерфейса постоянно доступна кнопка «быстрого доступа», после ее нажатия выпадает меню с иконкам, для быстрого доступа к функциями модулей системы.

Панель быстрого вызова

Панель быстрого вызова

С помощью кнопки «Package Center» этой панели, например, можно добавить модули. Например, запустить MySQL, или облачное хранилище. Список дополнительных расширений занимает целых две страницы этого «Центра Пакетов», вот первая:

Страница 1 центра пакетов

Страница 1 центра пакетов

а вот вторая страница:

Вторая страница менеджера пакетов

Вторая страница менеджера пакетов

Собственно пакеты делятся на установленные и не установленные. Понятно, установленные можно еще и запустить.

Как вы видите — пакетов тьма тьмущая, подробно останавливаться на них нет никакого смысла. Стоит только отметить, что все функции DS212 тесто связаны с ситемой пользовательских прав. Вы можете создать множестве пользователей, с помощью Control Panel (контрольной панели), разделить их по группам, и использовать, например, при определении доступа к FTP серверу.

Особенности версии UNIX, примененной  в Synology (DSM 4.0)

Для начала, следует запомнить, что данное устройство имеет свою, «заточенную» под свои цели тоесть, версию UNIX. То есть, если вы хотите, например, сохранить некие изменения в crontab, делать это надо путем ручного редактирования

vi /etc/crontab

Обратите внимание, что разделитель полей здесь TAB. Если вы вставите пробелы, то при перезапуске станции ваш crontab будет заменен «стандартным». То есть либо пустым, либо созданным на основе настроек станции.

Кстати, после изменения crontab’a надо вручную перезапустить демон планировщика, с помощью пары команд:

/usr/syno/etc.defaults/rc.d/S04crond.sh stop
/usr/syno/etc.defaults/rc.d/S04crond.sh star

Запуск скриптов PHP из кронтаба

Собственно, основное, что я хотел получить от данной станции — это удобный, маломощный и малошумящий механизм для создания резервных копий с разнообразных ФТП-серверов. Собственно мне это удалось сделать, с помощью своего скрипта, который я разработал ранее, и который работал на моем домашнем медиа-сервере, но включался редко, так как последний — был очень шумным.

Собственно, приведу его текст полностью:

wget.php

#!/usr/bin/php -q
< ?

set_time_limit( 10*3600 ); //10 hrs daily

chdir($startdir = dirname(__FILE__));

file_put_contents( "backup.log", date( "Y-m-d H:i:s" ) . " Starting Backup.\n", FILE_APPEND );
$ts_start = time();

file_put_contents( "backup.log", date( "Y-m-d H:i:s" ) . " Clearing folder\n", FILE_APPEND );
clear_folder( "./backups/",false ); // start from files clearing

// ---- load all files
$l=0;
foreach ( file( "./sites.txt" ) as $site )
{

    $l++;
    //comment or spaces
    if  ( preg_match( "~^\s*\#~msi", $site )  || !trim($site) )
        continue;

    // start backup an1 site backup
    if(  $c=count($arr = array_map("trim",explode("|",$site))) < 5 )
    {
      file_put_contents( "backup.log", date( "Y-m-d H:i:s" ) . " Line: #$l is incorrect. Ignoring this config line.\n", FILE_APPEND );
      continue;
    }

    //print_r( $arr );    exit;

  list( $ftp_host, $ftp_user, $ftp_password, $ftp_folder, $ftp_prefix ) = $arr;
  file_put_contents( "backup.log", date( "Y-m-d H:i:s" ) . " Processing ftp:[$ftp_host] folder:[$ftp_folder] prefix:[$ftp_prefix]\n", FILE_APPEND );

/*-----------------------------------------------------------------
*  ==[ Date: 09.04.2012]== Programmer: Sofm@
*  ==[ Note: Check if here was already backups of this $ftp_prefix today
*------------------------------------------------------------------*/
  $r=0;
  foreach( glob( $fm="./files/{$ftp_prefix}-".date("Ymd")."-*.zip") as $f )
     $r++;
  if ( $r )
  {
    file_put_contents( "backup.log", date( "Y-m-d H:i:s" ) . " Processing of [$ftp_prefix] stopped. There are already [$r] backup(s) of this ftp prefix done today\n", FILE_APPEND );
    continue;
  }

  //goto/make folder, to make this backup
  $folder_name =
    "./backups/".($folder_name_2l = "$ftp_prefix/" .
    preg_replace( "~[^a-z]~msi","-",strtolower(  parse_url($ftp_host,PHP_URL_HOST) ) ) .
    "_" .
    date("Ymd-his",$ts_start)) ;

    //echo $folder_name;exit;    

  if ( !is_dir( $folder_name) )
    mkdir( $folder_name, 0777, true );

  // run here backup command in folder, Then go back
  chdir ($folder_name);
  $wget_cmd = "/usr/syno/bin/wget -nv --recursive --user $ftp_user --password $ftp_password $ftp_host/{$ftp_folder}/*";
  exec( $wget_cmd );
  chdir( $startdir );

  file_put_contents( "backup.log", date( "Y-m-d H:i:s" ) . " Starting Zip\n", FILE_APPEND );

  //name of zip archive
  $zip_name = "$ftp_prefix-" . date( "Ymd-his" ) . ".zip";

  //here. Make zip archive of folder, we download.

  //where it was downloaded?
  $folder_w_files =  "{$folder_name}/" . parse_url($ftp_host,PHP_URL_HOST) . "/$ftp_folder/";
  chdir ( $folder_w_files );

  echo "\n";
  $zip_cmd = "/usr/syno/bin/zip -r {$zip_name} *";
  echo "!!!ZIP: " . $zip_cmd;
  echo "\n";
  exec( $zip_cmd );

  rename ( $zip_name, $startdir . "/files/" . basename($zip_name) );
  chdir( $startdir );

  //clear all files ... todo this.
  file_put_contents( "backup.log", date( "Y-m-d H:i:s" ) . " Clearing folder\n", FILE_APPEND );
  clear_folder( "./backups/", false );
}
file_put_contents( "backup.log", date( "Y-m-d H:i:s" ) . " Backup Ended.\n", FILE_APPEND );

/*-----------------------------------------------------------------
*  ==[ Date: 10.03.2012]== Programmer: Sofm@
*  ==[ Note: Functions
*------------------------------------------------------------------*/
  //function clear_folder( $path ){}
function clear_folder($dir, $deleteRootToo)
{
    if(!$dh = @opendir($dir))
    {
        return;
    }
    while (false !== ($obj = readdir($dh)))
    {
        if($obj == '.' || $obj == '..')
        {
            continue;
        }

        if (!@unlink($dir . '/' . $obj))
        {
            clear_folder($dir.'/'.$obj, true);
        }
    }

    closedir($dh);

    if ($deleteRootToo)
    {
        @rmdir($dir);
    }

    return;
}
?>

Я разместил данный скрипт в каталоге

/volume1/web/backupper/wget.php, также необходимо создать пару директорий files & backups в этом же каталоге, дать на них права 0777. Кроме того необходимо задать конфигурационный файл под названием sites.txt, следующего типа:

#ftp|user|password|ftpfolder|zip_prefix
#Site1
ftp.site.com|user|password|www.site.com/web/content/|Site-pseudoname

В каталоге скрипта надо создать также backup.log с правами для записи, для «всех».

Запуск всего этого производиться через /etc/crontab, выше указано, что следует обязательно разделять поля TAB, чтобы все работало после перезапуска. Для запуска бекапа используется следующая строка:

12      4       *       *       *       root    /usr/bin/php -q /volume1/web/backupper/wget.php

В завершение.
Хочется просто сказать большое спасибо Synology за данное устройство. Конечно, можно пойти по пути создания собственного мини-сервера, убить на это много времени, добиться результатов. Но, поверьте, — быстрей в сотни раз запустить данный NAS. который позволяет кроме всего прочего централизовано хранить фильмы, раздавать файлы, выполнять извещения о операциях по СМС и е-майлу, держать независимый syslog сервер, быть видео-сервером. И так далее и тому подобное.

Пару слов о ценах, в Украине данное устройство стоит недешево, в комплекте с 2-мя указанными винчестерами стоимость составляет около $700. Это недешево. Но если вы цените свое время и безопасность данных, и помните простую русскую пословицу, о скупом, который платит дважды, не следует игнорировать факт существования данного полезнейшего устройства.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Обзор NAS Synology DS212: Один комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *