Стоит ли собирать мини-сервер или NAS своими руками или выбрать готовый? Сравнение Mini-ITX самосбора и I-Stor IS607. Обзор ключевых моментов при создании NAS Хранилище данных для дома своими руками

Это очередная статья о сборке очередного NAS для домашнего использования. Что побудило меня написать её? Начиная собирать себе NAS, я перечитал все нагугленные статьи, в которых люди рассказывали, как выбирали и собирали хранилища для себя. Благодаря этим статьям, я избежал некоторых ошибок при выборе железа и ПО. Собрал с первого раза конфигурацию, которая полностью меня устраивает по сей день. Поэтому уверен, кому-то моя статья может пригодиться.

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

В жизни каждого айтишника наступает момент, когда в корпусе кончается место под диски

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

  1. Хранение большого объёма данных. Это очевидно.
    Но был маленький нюанс в том, что я располагал некоторым количеством жёстких дисков. Скажем так, насисадминил. Именно их я и собирался использовать. Все диски разного объёма, производителей и временем отработки. В сумме давали вполне достаточный для меня объём в 2-3 терабайта.
  2. Торренты.
    На устройстве должен быть вменяемый клиент для этих целей.
  3. Гибкие настройки и дополнительные возможности.
    Такой расплывчатый критерий, как раз-таки на будущее, для возможности использования дополнительных сервисов, например, облачное хранение или медиасервер.
  4. Малое потребление электроэнергии.
  5. Низкий или отсутствующий уровень шума.
  6. Минимальная цена.

Готовые NAS

К тому времени я имел опыт общения на работе с Synology DiskStation DS411 и с D-Link DNS-320. В операционку Synology я был влюблён! Стабильно, удобно, понятно, свой репозиторий с приложениями, полезные обновления - это всё про неё. Само железо тоже радовало своим аптаймом и тишиной. Не радовала только цена (конец 2014 г.) Я не готов был отдать 20 000 руб. за то, чтобы просто хранить там фильмы с музыкой. Естественно были модели подешевле на два диска, но четыре диска для хранилища честь, а два и в стационарном компьютере есть.

На примере DNS-320 я увидел, что, если выбирать самое дешёвое, то и получу я более чем скромное устройство. Собственно, раздавать файлы в локалке - это единственное, что более-менее нормально умеет делать данная коробка.
На этом этапе стало понятно, что NAS придётся собирать из компьютерных комплектующих.

Вопрос с HDD
Исследуя цены на брендовые хранилища, я параллельно раздумывал о конфигурации дисков в системе. RAID? JBOD? Отдельными томами? С одной стороны, хранить на рэйде фильмы с музыкой - расточительно. В случае утраты, их можно скачать заново. С другой стороны, есть пара папок, которым надо бы обеспечить сохранность и желательно без разработки специальных сценариев бэкапа (за бэкапами надо следить и проверять). Кроме того, уже имеющиеся у меня диски - разного объёма. Соответственно после сборки любого RAID, я потеряю сотни гигабайт на «обрезке» дисков под самый маленький и целый диск под контрольные суммы (например).

Производительность объективно оценить не могу. С задачами NAS на Windows Server она справляется замечательно. Синтетические тесты не делал.


Корпус по оптимальным соотношениям цена/качество нашёлся быстро. Cooler Master Elite 120.

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

Четвёртый через докупаемый переходник в отсек для CD-ROM. (да да, переходник пришлось колхозить, другого в магазинах не было)

В комплекте с корпусом 2 вентилятора. Один на 120 мм для HDD и один на 80 для радиатора материнской платы (вы его уже заметили на предыдущих фото).

Приятной мелочью в комплекте оказались два переходника с 3,5" на 2,5" HDD. Особая приятность в том, что переходники подходят для любого другого корпуса. Отверстия под болты у них на стандартном месте, а высота конструкции с установленным диском не превышает высоту обычного HDD.

В процессе сборки никаких проблем не возникло. Длинны всех проводов достаточно, установка и последующий доступ к комплектующим удобен (за исключением очевидных вещей). В общем корпус для людей!

Всё остальное железо, а именно диски, БП и оперативная память (SO-DIMM) у меня имелись. В сумме я уложился в 5 085 рублей .

Отмечу, что двух гигабайт оперативки ощутимо мало. Я держу на серверах минимально возможный набор программ. У меня не висят всякие Апдейтеры от Гуглов и Адобов, каких-то приложений от драйверов и т.п. Минимальный набор, только самое нужное. При всём этом в спокойном состоянии занято 800 мегабайт памяти. Понятно, что при определённой активности пользователя, начинается активное использование файла подкачки со всеми вытекающими. В общем памяти берите больше.

Шум
Он есть. Рядом с кроватью не поставишь. Самый шумный из вентиляторов обдувает радиатор на материнской плате. Вентилятор в блоке питания и на корзине жёстких дисков не слышно за звуком самих дисков. Очень жаль, что корпусные вентиляторы из комплекта не поддерживают PWM. Тогда бы их скоростью управляла материнская плата:

И наверняка всегда держала бы на минимуме. Ещё склоняюсь к тому, что радиатору на процессоре не требуется дополнительное охлаждение, предусмотренное в корпусе. Как бы то ни было, вопрос с шумом отошёл на второй план. Я поставил системник там, где его шум совершенно не мешает и пока забыл об этом. Когда придёт время, либо вентиляторы будут заменены на поддерживающие PWM, либо приобретён контроллер для них. Ну, например:

Софт

Для работы с торрентами я поначалу установил классический μTorrent. У него в настройках есть замечательная фишка: можно указать папку, которую μTorrent будет постоянно мониторить на предмет наличия торрент-файла. Как только обнаруживается новый файлик, программа начинает закачку. И есть ещё одна галочка «Удалить торрент-файл когда началась закачка». Что получается. Я за своим компьютером, скачиваю торрент-файл и кладу в специальную папку на NAS. Через 5-10 секунд он пропадает. Это значит μTorrent «взял» его и начал закачку. Ещё одна галочка под названием что то вроде «Добавлять случайное расширение к файлу пока он не скачался полностью» позволяет видеть в папке с закачками, какие файлы ещё качаются, а какие уже скачаны. По такой схеме, для скачивания торентов мне вообще не был нужен интерфейс μTorrent.

Я пошёл ещё дальше и установил на мой сервер ЯндексДиск, указав в μTorrent искать торрент-файлы в папке ЯДиска. Теперь, сидя на работе и подбирая себе киноленту на вечер, я клал торрент-файл на ЯДиск и через 20-30 секунд он пропадал…

Очень пригодилась программа HWMonitor, отображающая на рабочем столе приятное окно с температурой датчиков и скоростью вентиляторов (кстати, о температуре в корпусе):

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

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

wake-on-lan

Такая схема проработала у меня не долго. Я задумался о том, что большую часть времени сервер просто стоит и тратит электричество. Он конечно раздаёт торренты, но те несчастные пара десятков моих любимых фильмов, которые я храню для себя, это даже не капля в море. В общем торрент-сеть совсем не обеднеет если я прекращу раздачу.

Итак, хочу, чтобы NAS работал только тогда, когда он мне нужен. А всё остальное время спал. И будить его по сети, а не кнопкой. Для этого есть технология Wake-on-LAN . Эту фичу должна поддерживать материнская плата и сетевой контроллер (если он внешний). Благо, на многих моделях эта функция есть, как и на моей. Пробуждается компьютер при помощи «волшебного пакета», отправленного в сеть с указанием МАС-адреса сетевой карты. Для этого есть специализированные бесплатные программы или, например, в моём роутере Asus есть такая функция. Но в процессе эксплуатации оказалось, что Windows сам шлёт это волшебство при обращении к сетевому ресурсу. И при обращении по RDP и при обращении к сетевой папке. Это и хорошо, и плохо. Хорошо тем, что не нужны дополнительные программы. А плохо вот чем, если расшаренную папку подключить на клиенте как сетевой диск, или добавить в избранное:

То при включении клиента, на сервер будет автоматически отправляться «волшебный пакет» и будить его. Это я выяснил, когда пытался понять почему мой NAS просыпается сам. В случае с сетевым диском поведение понятно - клиент пытается получить информацию о диске, чтобы отобразить его статус (объём, доступность). Но зачем Windows проверяет ссылки в избранном, мне не понятно. Хотя кому-то эта особенность может наоборот пригодиться - включил свою рабочую машину, вместе с ней автоматом стартовал NAS.

Беспокойно «спать» сервер может не только из-за windows-машин в сети. Бывало несколько дней подряд NAS засыпал и тут же просыпался. Грешу на роутер, но доказательств пока нет.

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

μTorrent был заменён на Free Download Manager. У него есть галочка «Закрыть программу по завершении закачки». Запускаю закачку, ставлю галку, отключаюсь от удалённого рабочего стола. Free Download Manager закрывается по завершении скачивания, NAS засыпает по таймеру бездействия.

ЯндексДиск естественно тоже пришлось убрать с сервера.

wi-fi

Когда думал, куда в квартире поставить NAS, решил попробовать Wi-Fi. Модно, удобно, современно. Был приобретён TP-LINK TL-WN881ND:

Подключалось всё через роутер Asus RT-N12. Всё было классно до того момента, пока я не сел смотреть фильм в хорошем качестве. Обычный.mkv 1080р размером ~20 Гб. В середине фильма картинка и звук начали прерываться. Media Player Classic показывал, что все его буферы пусты и еле-еле подтягивал очередной кусок видео. Так было со всеми «тяжёлыми» фильмами. На простом копировании большого объёма информации тоже заметил, что через некоторое время скорость значительно проседала. Поверхностный поиск информации по данной проблеме результатов не дал, а прокинуть витую пару до сервера мне было проще, чем дальше разбираться с Wi-Fi.

Ни в коем случае не хочу наговаривать на wi-fi и делать громкие заявления о его готовности к длительной и высокой нагрузке. Но если вы собираетесь подключать свой NAS через него, то имейте в виду, что могут быть проблемы.

Например, банальные бэкапы данных. Если по локалке, то тем же Cobian Backup по расписанию в специальную папку. Если по интернету, то BitTorrent Sync. В случае с Кобианом - не подключайте папку для бэкапов как сетевой диск. В случае с BitTorrent Sync, используйте на сервере теневые копии (что это и как настроить). Вирусы-шифровальщики станут уже не так страшны.

Мне частенько пригождается домашний сервер на работе, когда нужно проверить доступ к рабочим ресурсам с другого IP из интернета. Всякие VPN, OpenVPN и т.п.

Медиасервер. В тандеме со Smart TV все мультимедийные функции можно полностью переложить на них. Если на телевизоре есть нормальный браузер и поддержка клавиатуры с мышью, то даже закачкой контента можно заниматься через телевизор.

Сервер видеонаблюдения в дверной глазок. Или видео фиксация активности кота…

Часть вторая: программное обеспечение

Плюнь в глаза тому, кто скажет, что можно объять необъятное
Козьма Прутков

Кому и зачем

Ваш домашний NAS должен удовлетворять именно вас, это не production-система, которая обязана обеспечивать некие формализованные показатели. Трудностей при описании такой штуки две. Одна вынесена в эпиграф, а вторая связана с острым дефицитом телепатов. Но я все же попытаюсь высказать некоторые разумные предположения, и они будут проходить по разряду IMHO. Для экономии места «IMHO» далее опускаю. Считаем, что эта метка стоит у каждого предложения. Если же ваш конкретный случай прозреть не удалось - приношу извинения, возможно, вам подойдет другой текст.

Этот же адресован собирающему свой первый NAS, способному поставить Windows, но в глаза не видавшему FreeBSD Handbook или Oracle Solaris ZFS Administration Guide. NAS собирают и IT-продвинутые граждане, они обычно разворачивают полную версию выбранной операционной системы. Интересно, что часть новичков в тему втягивается и со временем делает так же.

Задачи

Во избежание недоразумений сразу же определим, зачем нам NAS.

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

Вторая - давать доступ к хранимым данным . Обязательна поддержка SMB/CIFS для Windows, очень желательна NFS (для медиаплееров), FTP (для загрузки больших объемов данных) и AFP (если дома есть Макинтош). Часто упоминается DLNA, об этом отдельно.

Третья - автономное скачивание документов из сети по различным протоколам.

Четвертая - автоматизировать бекап с компьютеров в локальной сети . Семейное фото, видео, созданные вами документы - уникальны и невосстановимы, но дома это все хранится хорошо если в полутора экземплярах: один - на диске ноутбука, половина - на каком-то USB-диске, куда фотки скидывали прошлой осенью. Если (точнее - когда) такие данные пропадут, а NAS позволит их восстановить - вы испытаете искреннее удовольствие от своей прозорливости. Или наоборот.

Требования

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

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

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

DLNA/UPnP

Понять, что именно вам нужно от DLNA-сервера, реально только методом тестирования. Большинство задач среднего пользователя, типа передачи медиа на планшет, решают практически все UPnP-серверы. А по поводу использования DLNA для вывода на телевизор процитирую разработчика HMS, одного из лучших программных UPnP/DLNA-медасерверов: «Для владельцев телевизоров большинства производителей использование данной технологии является временным этапом, который заканчивается или покупкой сетевого медиаплеера (думаю, предпочтительный вариант) или подключением телевизора в качестве монитора. Если время и нервы дороги, то, возможно, стоит пропустить данный этап» . Возможности встроенного в телевизор плеера и недорогого отдельного, вроде Дюны, Попкорна или WD, по всеядности, качеству картинки, удобству пользования и пр. обычно разнятся очень сильно. Правда, встроенные плееры быстро прогрессируют, поэтому определяться стоит по конкретному железу.

Дисковые массивы и файловые системы

Зачем нужен массив

Главный вопрос при построении NAS - организация дискового пространства. Как мы выяснили в 1-й части , дисков много, 4-6, иногда 10 и более. Их, конечно, можно использовать и по отдельности. Но объединение в массив удобно тем, что место доступно единым куском. В массиве без избыточности при смерти диска гибнут данные на нем и, часто, в зависимости от реализации, на всем массиве. Вы имеете право, пользуясь аргументом «ничего, перекачаю», экономить на избыточности. Те, кому время дороже, предпочитают массивы с избыточностью. Важно: никакой RAID не заменит бекап. RAID обеспечивает доступность данных в случае сбоя диска. Невосстановимые данные обязательно бекапить. К счастью, их обычно совсем немного.

Термин «массив с избыточностью» часто смешивают с термином RAID. Но доступны и более продвинутые технологии. Выбирая софт для NAS, вы можете использовать их или обойтись без этого. Чтобы понять, что́ больше подходит именно вам - давайте вспомним о проблемах RAID и файловых систем.

RAID 5 (6 и др.) подвержен серьезной проблеме. При записи в массив одновременно должны быть записаны данные и блоки четности. Но запись на несколько дисков не есть атомарная операция. Если в процессе записи возникнет проблема (отключение питания, сбой диска и т.п.), то возможна ситуация, когда данные и блоки четности не будут соответствовать друг другу. Если неправильно записаны данные, то они во многих случаях могут быть исправлены или хотя бы обнаружены при обслуживании файловой системы, расположенной поверх RAID (chkdsk, fsck…). А вот неверные блоки четности в худшем случае могут остаться незамеченными до момента, когда по ним будет восстанавливаться массив. И вместо данных будет восстановлен мусор. Мало того, мусор будет записан безо всяких о том предупреждений. Дополнительную информацию по проблеме можно получить .

Рис 1. Дыра по записи в RAID. Слева - данные и блоки четности синхронизированы, идет запись. В центре - сбой по питанию. Справа - данные и блоки четности не синхронизированы, но RAID об этом не знает.

Промышленные RAID-контроллеры решают проблему за счет использования BBU, «батарейки». После сбоя даже при отключенном питании контроллер помнит, какие данные должны были быть записаны. И при появлении возможности записывает эти данные в массив.

Сбой при реконструкции

Пусть у нас есть RAID 5 из пяти 3Т-дисков, в котором один из дисков отказал. Массив надо перестраивать, при этом придется прочитать 4 диска × 3T = 12Т =1,2·10 13 байт = 0,96·10 14 бит информации, причем независимо от степени заполнения массива - ведь на уровне RAID о файлах ничего неизвестно. Исправные диски пользовательского класса имеют законное право дать один сбой в среднем на 1·10 14 бит (см. напр. ). То есть с очень большой вероятностью мы получим сбой реконструкции просто по спецификации диска. Плюс какая-то вероятность того, что диск действительно сломается. Традиционный рецепт: использовать диски корпоративного класса (с вероятностью сбоя 10 −15), не увлекаться емкими дисками и использовать RAID 6. К сожалению, все три совета по цене не очень соответствуют домашним условиям.

Надежная файловая система

Перейдем на один уровень выше, к файловой системе. От нее ждут простой вещи - возможности записать файлы и потом прочитать то, что записано. Парадоксально, но бо́льшая часть ФС этого не гарантирует: они полагаются на идеальную работу оборудования - дискового контроллера, кабеля, самого диска. Аппаратный сбой приводит не просто к потере данных - он приводит к незамеченной пользователем потере данных . Копируете свой фотоархив - а на самом деле часть файлов уже протухла. Узнать об этом можно, сличив контрольные суммы, что мы делаем при перекачке прошивок и подобных не терпящих сбоя данных. А почему бы не сличать контрольные суммы средствами ФС?

Другое «детское» пожелание к ФС - чтобы она работала и не ломалась - тоже толком не выполняется. ФС без журналирования, например FAT или ext2, при сбое способна похоронить все свое содержимое. Журналируемые ФС, например NTFS или ext3, существенно надежнее, т.к. можно найти точку непротиворечивого состояния и воспроизвести журнал. А нельзя ли создать ФС, которая вообще не может попасть в противоречивое состояние? Можно - через Copy-on-Write. Данные пишем не поверх старых, а выделяем новый блок, пишем туда, и если все в порядке - заменяем указатель со старых данных на новые.

ZFS

ZFS объединяет функциональность ФС и поддержку RAID-подобных массивов. Распространяется по свободной лицензии (CDDL). Создана Sun Microsystems для Solaris. Портирована во FreeBSD начиная с версии 7.0. Совсем недавно проект ZOL (ZFS on Linux) достиг стадии релиза. Можно ожидать быстрого распространения ZOL, процесс уже пошел. Существует и проект под Mac OS X, ZEVO, см. .


Рис 2. ZFS автоматически сличает контрольные суммы, обнаруживает ошибки и восстанавливает данные, если они сохранены с избыточностью (рисунок с сайта eonnas.com).

Присмотритесь к ZFS, если вам интересна ФС с такими возможностями:

  • хранящая контрольные суммы и не позволяющая считать мусор вместо данных;
  • сохраняющая целостность до такой степени, что утилиты вроде chkdsk или fsck для нее просто нет;
  • снабженная инструментом проверки целостности холодных данных и их автоматической коррекции, если данные сохранены с избыточностью;
  • способная мгновенно создавать снимки своего состояния и хранить их хоть за каждую минуту месяца, монтировать любой набор снимков, откатываться к снимку.

Присмотритесь к ZFS, если вам интересен RAID:

  • программный, т.е. не требующий аппаратного контроллера;
  • аппаратно-независимый, были бы SATA-порты;
  • без Дыры по записи;
  • способный к реконструкции деградированного массива с частично нечитаемыми дисками с потерей только тех данных, для которых нет ни одной копии;
  • работающий при проверке целостности и реконструкции только с полезными данными, а не со всем массивом;
  • с поддержкой аналогов RAID1 (зеркало), RAID5 (избыточность в размере одного диска), RAID6 (двух) и даже «RAID7» (сохраняющий данные при выходе из строя любых трех дисков массива), а также более сложных вариантов, подобных RAID50 или RAID60.

У ZFS есть и недостатки, основные из которых:

  • Нарастить RAID-Z-массив на один диск нельзя. Можно заменить все терабайтные диски на тритеры - и увеличить объем. Можно собрать из 3 (и более) дисков еще один RAID-Z и добавить его к существующему, получив единый пул. Но превратить RAID-Z1 из 5 дисков в RAID-Z1 из 6 можно, только слив куда-то информацию, разрушив массив и создав новый.
  • Массив нельзя уменьшить. Можно только увеличивать - добавлять группы дисков, менять диски на бо́льшие.
  • Ресурсоемкость. ZFS постоянно считает контрольные суммы, что создает нагрузку на процессор и использует под кеши память. Дома у меня работало с Atom 330 и 2 ГБ памяти. Хотя при использовании ZFS этого Атома для полной утилизации гигабитной сети мне не хватало, но 40-50 МБ/с многих устроит.

Да, еще: если разрушить ZFS и создать из тех же дисков новый массив (то есть дать пару команд и/или понажимать кнопки в веб-интерфейсе, в обоих случаях игнорируя предупреждения), то данные с разрушенной ФС будут надежно похоронены - в отличие от, например, NTFS, данные с которой относительно просто восстановить и после пересоздания таблицы разделов. Считать ли это недостатком - зависит от точки зрения.

По мнению автора, плюшки, предоставляемые ZFS, настолько вкусные, что за них стоит заплатить дополнительными требованиями к железу. И строить NAS стоит только с ZFS. Но читатель имеет фундаментальное право на свободный выбор. Этот выбор будет определяющим при выборе софта для NAS, поэтому его стоит сделать осознанно.

ReFS + Storage Spaces

В Windows Server 2012 Microsoft предложила ФС ReFS и систему управления томами Storage Spaces . Связку ReFS и Storage Spaces можно считать до некоторой степени аналогом ZFS, причем со свойствами, не реализованными в последней. Интересны гибкость удаления-добавления дисков, thin provisioning и др. Недостатки тоже есть - это собственническая лицензия, доступна только в составе Windows Server 2012 и Windows 8.1.

Плохо, что, судя от отзывам тестировавших, производительность связки ReFS-Storage Spaces ощутимо, в разы, падает при использовании вариантов с четностью, то есть, грубо, аналога RAID5 или ZFS RAID-Z. Еще хуже, что появились первые сообщения о потере данных из-за сбоев ReFS, причем официальная поддержка не решила проблем. Так что интересному решению, похоже, стоит дозреть.

Btrfs + mdadm

Официально Btrfs для Linux пока не получила статуса релиза, хотя разрабатывается с 2007 г. Подобно подавляющему большинству ФС (и в отличие от ZFS), это именно файловая система, создаваемая поверх блочного устройства. Чтобы получить, грубо, аналог ZFS, нужно добавить, например, хорошо отлаженный mdadm, одна из возможностей которого - перестройка RAID при добавлении диска без потери данных.

Традиционные ФС

И, конечно, существование продвинутых ФС не заставляет вас выбрать одну из них. Возможно, вам для NAS больше подойдет NTFS, ext4 или UFS - родная ФС для выбранной вами оси. На относительно слабом железе этот выбор может оказаться единственным.

Варианты программного обеспечения


Рис 3. Примерный алгоритм выбора софта для домашнего NAS

Из чего и как выбирать

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

Как софт самосборного NAS можно использовать три группы программных продуктов.

Во-первых, можно поставить полную операционную систему. Это может быть Linux, UNIX или Windows в зависимости от личных потребностей и предпочтений. Windows представляется более знакомой, *nix дает больше NAS за те же деньги, но конфигурирование *nix с нуля - задача не для новичка.

Для такого новичка создан вариант номер два - преконфигурированные специально под NAS сборки. Они включают набор сервисов и веб-интерфейс, позволяющий новичку справиться с настройкой и использованием продукта без командной строки.

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

Windows

В профильной ветке проводился опрос об используемой форумчанами в самосборных NAS операционных системах, и Windows досталось третье место с результатом чуть ниже 20%. Конечно, голосовали и более продвинутые камрады, но их точно было не большинство.

Результат, способный удивить. Windows - наиболее знакомая большинству операционная система. На ее основе можно сделать NAS - в конце концов, 20% опрошенных это сделали. Причина скромной цифры в том, что у использования Windows в качестве оси NAS есть не только достоинства, но и недостатки:

  • Windows - платный софт, конкурирующий с во многом более функциональным для конкретных задач свободным.
  • Поддерживает существование вирусов, что требует постоянной загрузки антивирусных баз.
  • Требует постоянного применения апдейтов, а после них часто нужна перезагрузка. Нельзя сказать, что все *nix-системы могут работать без вмешательства и перезагрузки годами. Но многие - могут.
  • Windows - графическая система, для естественного ее функционирования нужен монитор, клавиатура и мышь. NAS обычно их лишен. Но конечно, существуют средства, решающие проблему.
  • Windows требователен к ресурсам.
  • Дисковые массивы и контрольные суммы на уровне файловой системы - не самое сильное место Windows, особенно в настольных вариантах.

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

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

  • Родная высокоскоростная реализация SMB.
  • Совместимость с железом. Драйвера для Windows пишут обязательно.
  • Широкий выбор софта. То есть для NAS обычно большого выбора и не нужно. Но чем более специфичны ваши требования, тем больше вероятность, что их удастся решить именно софтом под Windows.
  • Огромное множество инструкций и решений на все случаи жизни, на родном языке.

NAS на Windows вполне возможен. Но тема настройки Windows раскрыта во многих источниках, что позволит автору рискнуть воздержаться от ее обсуждения.

Готовые *nix-сборки для NAS

Наиболее популярны в профильной ветке три сборки - NAS4Free, OMV (=openmediavault) и FreeNAS 8.x. Все нацелены на средней продвинутости любителя и позволяют либо из коробки, либо путем загрузки плагинов удовлетворить типовые потребности.

С торговой маркой FreeNAS связана история, вызывающая путаницу. Продукт FreeNAS развивался долгие годы, а затем по ряду причин разделился. Широко известное название, являющееся торговой маркой, попало в собственность компании iXsystems, которая решила полностью переписать код, а исходную разработку закрыть. Так появился FreeNAS 8.x, основанный на FreeBSD 8.x. Однако оригинальный проект силами энтузиастов выжил, был перенесен на FreeBSD 9.x и успешно развивается под именем NAS4Free. Как результат, апгрейд с сохранением настроек с FreeNAS 0.7 поддерживается в NAS4Free, но не поддерживается во FreeNAS 8.

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

Официальные аппаратные требования для этих трех продуктов сведем в таблицу, тем более что они не так легко гуглятся.

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

NAS4Free

NAS4Free распространяется по свободной лицензии BSD. Проект имеет многолетнюю историю (происходит от m0n0wall, FreeNAS 0.7, 0.6 и ранее), старшая цифра текущей версии - 9. То есть сборка неплохо вылизана, но продолжает развиваться. Основана на последнем релизе FreeBSD 9.1.

NAS4Free скомпилирована в двух версиях, для 32- и 64-разрядных Intel x86-совместимых процессоров. Использовать NAS4Free можно тремя способами: LiveCD/LiveUSB, full и embedded. Режим «живого диска» традиционен для *nix-дистрибутивов и предназначен прежде всего для ознакомления. При реальном использовании обычно производят установку. Вариант full - традиционная установка, обычно на жесткий диск. Для установки используется небольшой раздел, размер которого задается при установке, и swap-раздел, а остальная часть диска доступна для данных. Поставить full на USB-флешку можно, но из-за интенсивной записи флешка за несколько месяцев износится.

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

Недостаток в том, что почти любые изменения, внесенные в систему иначе, чем через веб-интерфейс, теряются после перезагрузки. Частично разработчики решили проблему, предоставив в веб-интерфейсе возможность сохранения множества параметров. Частично проблему можно обойти за счет применения трюков вроде объединения через unionfs папки диска в памяти и папки на реальном носителе и использования автоматически запускаемых командных скриптов. Более продвинутые пользователи используют виртуализацию, чтобы ставить в jail или отдельные виртуальные машины все что угодно, хоть пару-тройку Windows. Расширение TheBrig серьезно облегчает настройку и использование jail для установки дополнительного софта. Но это все же требует знаний, сравнимых с необходимыми для развертывания полной системы. А новичку правильнее считать, что в NAS4Free есть только те сервисы, что включены изначально, всё настраивается через веб-интерфейс, и добавлять ничего нельзя.

Список того, что есть «из коробки»:

  • WebGUI (управление и настройка);
  • Диски и массивы: ZFS v28 (зеркало, RAID-Z 1, 2, 3…), софт-RAID 0, 1, 5 и смесь (1+0, 1+1 и т.п.), шифрование дисков (с использование аппаратного ускорения, если присутствует), файловые системы ZFS, UFS, ext2/3, FAT, NTFS, iSCSI-инициатор;
  • Сетевые протоколы и службы: SMB/CIFS (Samba) - для Windows-машин, AFP (Netatalk) - для Mac OS, NFS - для *nix, FTP (ProFTPD), TFTP (tftp-hpa), Rsync (client/server) - мощный инструмент, в том числе для бекапа, SCP (SSH), iSCSI-таргет;
  • Сервисы: UPnP server (FUPPES - надо признаться, средненький), Webserver (lighttpd), Network bandwitdh measure (Iperf), Bittorent client (Transmission);
  • Мониторинг: S.M.A.R.T (smartmontools), E-mail alert, SNMP, Syslog, UPS (NUT).

Можно видеть в списке практически все, что может понадобиться от домашнего NAS. Но наиболее важным достоинством является использование файловой системы ZFS. Относительно слабым местом NAS4Free является комплектный UPnP/DLNA-медиасервер. По личному опыту, он вполне рабочий и удовлетворит большинство потребностей, но если нужны специальные плюшки, приходится искать что-то другое.

Детальные, с картинками, инструкции по настройке я написал и . Описана как базовая настройка, так и ухищрения вроде установки homemediaserver в виртуальную Windows-машину или TorrentMonitor в jail для автоматической загрузки сериалов по мере выхода обновлений.

FreeNAS 8

FreeNAS 8 - сборка на базе FreeBSD 8.3, созданная и развиваемая компанией iXsystems. Компания разрабатывает также платную версию. Долгое время бесплатная FreeNAS была искусственно серьезно ограничена. Вышедшая в октябре 2012-го версия FreeNAS 8.3 существенно доработана и обеспечивает необходимую для домашнего NAS функциональность. У FreeNAS прекрасная англоязычная документация. Коммерческие корни продукта прослеживаются и в высоких аппаратных требованиях (6+ ГБ RAM), и фокусе на используемую в бизнесе функциональность. Типично домашние сервисы, такие как битторрент и UPnP/DLNA-медиасервер, реализуются как дополнительные модули, каждый в собственной клетке (jail). Работа с jail ведется через пользовательский интерфейс и, как и весь проект, прекрасно документирована.

UPD: FreeNAS 9. Совсем недавно, 5 августа 2013 г., выпущен релиз FreeNAS 9.1.0, а 27 августа - содержащий коррекции ошибок релиз 9.1.1 Новая версия использует FreeBSD 9-Stable и, по мнению разработчика, содержит значительные улучшения в области стабильности, расширяемости, простоты использования и производительности. Мы планируем протестировать производительность в 3-й части статьи. Аппаратные требования FreeNAS 9.x по сравнению с FreeNAS 8.x не изменились.

FreeNAS 8 устанавливается на флешку объемом не менее 2 ГБ и занимает ее целиком. Используется nanoBSD-образ, разворачиваемый в оперативную память, что предохраняет флешку от износа. Хотя существует и 32-разрядная версия, она скорее предназначена для ознакомления. Для реальной эксплуатации рекомендуется 64-разрядная версия, в частности из-за требований к объему памяти, несовместимых с 32-разрядной архитектурой.

Функциональность «из коробки» близка к функциональности NAS4Free. Отличие в доступности двух UPnP-серверов на выбор (FUPPES и miniDLNA) и отсутствии веб-сервера (разработчики обещают со временем добавить его).

Созданные в NAS4Free дисковые ZFS-пулы могут быть импортированы во FreeNAS и наоборот с сохранением данных. В профильной ветке пользователей FreeNAS 8 немного, и некоторые жалуются на проблемы (см. FAQ ветки). Впрочем, еще не создано программного продукта, на который бы хоть кто-то не жаловался.

OMV

OMV ( на форуме сайт) основан на Debian Linux, что обеспечивает богатейшую функциональность и расширяемость. Продукт создан и поддерживается Volker Theile, в прошлом одним из ведущих разработчиков FreeNAS. Распространяется по открытой лицензии GPL.

Поддержки ZFS в продукте нет, и она, по заявлению разработчика, не планируется, что и представляется его главным недостатком. В сети можно найти хак по установке zfsonlinux на OMV.

OMV устанавливается на жесткий диск или USB-флешку, при этом занимает носитель полностью. Такая инсталляция не выглядит оптимальной ни для диска, ни для флешки. Странно использовать весь жесткий диск под систему, которой нужен всего гигабайт. Боязно устанавливать на флешку продукт, интенсивно на нее пишущий. Однако для обеих проблем энтузиастами разработаны хаки, решающие эти проблемы: специальный скрипт выносит каталоги с интенсивной записью в память, а несложное редактирование дистрибутива позволяет создать на системном диске раздел для данных.

Описывать функциональность OMV особого смысла нет. Базовая функциональность, аналогичная NAS4Free и FreeNAS, за примечательным отсутствием ZFS, доступна из коробки или как набор дополнительных модулей. Но OMV - по сути своей Debian, вариант Linux, для которого существует неимоверное множество приложений. Их можно устанавливать стандартным для Linux способом.

Важным преимуществом OMV над упомянутыми выше сборками является возможность утилизации гигабитного канала на достаточно слабом железе, таком как Intel Atom с гигабайтом памяти (ср. сборку padavan в первой части статьи).

Другие варианты

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

Многие бесплатные сборки находятся на ранней стадии развития, не позволяющей использовать их любителем. Как потенциально интересный пример можно привести . Это Linux(CentOS)-проект с интеграцией zfsonlinux. Если (и когда) автор доведет продукт до релиза, он может стать интересной альтернативой.

Множество сборок для NAS растут корнями из корпоративного применения. Для дома это может быть минусом. Полбеды, что акцент делается на функциональности, дома малоинтересной. Хуже, что необходимая из коробки отсутствует, а добавить ее затруднительно. Чаще всего в таких сборках не хватает торрент-клиента и DLNA-сервера. Пример - , отличающийся еще и платностью документации.

Если вам, как и автору этих строк, наличие ZFS кажется обязательной функциональностью NAS, то рано или поздно внимание обращается к вариантам, растущим корнями из Solaris. На все Solaris-деривативы наложило печать удушение OpenSolaris со стороны Oracle после покупки Sun. Большинство пережили трудный этап, перейдя на кодовую базу Illumos, некоторые вымерли, но это другая тема. Вариантов здесь несколько, например . Плюсы - производительность при несколько меньших аппетитах к железу по сравнению с вариантами на FreeBSD и Linux. Минусы - более узкий список аппаратной и программной совместимости и относительно высокие требования к администратору. Настолько высокие, что обычно значительно проще развертывать систему на полной ОС.

Особняком стоит использование на стандартном железе модифицированного софта от покупных NAS. Автор не юрист, чтобы всесторонне оценить детали применения лицензий, поэтому на всякий случай обойдемся без ссылок. Но для не-юриста картина выглядит очень похожей на ситуацию с OpenWRT. Оригинальные прошивки написаны производителями NAS на базе открытого кода с лицензией GPL. По этой же лицензии результат опубликован в исходных кодах. Энтузиасты, снова по лицензии GPL, берут этот код, модифицируют его и публикуют результат. Этот результат представляет собой в целом рабочую сборку на основе Linux, которую можно установить на голое железо, виртуальную машину или подходящий NAS другого производителя. Последнее, кстати, практикуется уже много лет и до сих пор не прикрыто - вероятно, как раз из-за отсутствия юридических нарушений в такой практике. Достоинство у такого варианта ценовое, но есть и недостатки. Во-первых, помимо GPL-кода в составе покупного NAS используется и собственнический, в основном для связи с железом. Поэтому у таких сборок есть проблемы по переходу в спящий режим, экономии электроэнергии, регулированию шума вентиляторов и т.п. Во-вторых, покупной NAS ведущего производителя - это еще и интернет-сервисы, предназначенные, естественно, только для покупателей, а не для всех желающих. Так что ровно то же самое в результате установки такой сборки не получается, скорее это вариант пощупать, в том числе и в виртуалке.

Веб-интерфейс на полную ОС

Более-менее активно участники профильной ветки используют ZFSguru и napp-it. Несомненно, существуют и другие продукты, начиная с . Но они меньше подходят (или совсем не подходят) для обсуждаемых целей. Да и автор с ними не сталкивался, см. эпиграф.

ZFSguru

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

napp-it

Проект по уровню готовности выглядит редким исключением. Продукт позволяет буквально несколькими нажатиями кнопок превратить чистую установку Solaris-подобной операционной системы в NAS с ZFS. В текущей версии рекомендуется использование OmniOs или OpenIndiana, поддерживаются с некоторыми ограничениями Nexenta, Illumian и Oracle Solaris 11.1. Секрет, видимо, в том, что разработчики удачно коммерциализировали продукт. Базовая функциональность бесплатна, бесплатны и расширения для домашнего использования, прежде всего UPnP-сервер Mediatomb. Расширения сугубо корпоративного назначения - платные. По результатам непродолжительных испытаний автором на виртуалке впечатления остались положительные. Но солярка есть солярка. В репозитариях даже transmission весьма бородатый, а более-менее современный надо собирать, на что автору кривизны рук не хватило. Камрад padavan где-то на форуме описывал пассы с бубном, которые позволили ему решить проблему, но, как говорится, что позволено Юпитеру, то не дано быку. Так что хотя napp-it и здорово добавляет дружественности NAS на базе Solaris, без заметного UNIX-опыта в эту тележку лучше не впрягаться.

Полная *nix-система

Тут - коротко. Ученого учить - только портить. Серверный *nix-продукт с нуля дома поднимают либо люди с профессиональным опытом, либо продвинутые любители, хобби которых уже не умещается в песочницу готовой сборки (или коробки) с пришиванием к ней рюшечек. Судя по профильной ветке, работают с самым разнообразным софтом. Зачастую совмещая через виртуализацию сильные стороны и/или развитую функциональность продуктов под разными ОС.

Виртуализация в NAS

Использование виртуализации в NAS - практика для продвинутого пользователя естественная. Наверное, простейший вариант - установить на NAS VirtualBox с PHP-веб-интерфейсом и поднять несколько виртуальных машин, делающих то, что в основной оси делать трудно или нецелесообразно. Прежде всего, запустить более-менее экзотический софт. Для NAS4Free и OMV написаны специальные расширения, делающие виртуализацию посильной любителю. Разумеется, VirtualBox можно поставить и на практически любую полную ось. Задача управления виртуальной машиной через монитор, мышь и клавиатуру десктоп-компьютера решается еще проще, в том числе с использованием VNC-клиента. Недостатком VirtualBox является значительное падение производительности по сравнению с системами на голом железе.

Второй вариант - мягкая виртуализация через FreeBSD-клетки (jails). Владельцы систем на полных осях чаще используют клетки по прямому назначению, для изоляции потенциально опасных процессов, типа веб-сервера, доступного извне. В сборках механизм клеток используется для того, чтобы обойти ограничения на установку дополнительных программ. Во FreeNAS это коробочная функциональность, для NAS4Free написано расширение (TheBrig), интегрирующееся в веб-интерфейс.

Наконец, выходящий за рамки NAS вариант виртуализации, довольно популярный в профильной ветке, называется с подачи разработчиков « ». Кратко - на железо устанавливается ESXi, в нем поднимается виртуальная машина, единственной задачей которой является создание ZFS-хранилища. Для этого внутрь нее пробрасывается дисковый контроллер, а дисковое пространство экспортируется по файловым и блочным протоколам для других виртуальных и реальных машин. Если вам непонятно, зачем такие извращения - оно вам точно не нужно.

Итого

Если вы хотя бы по диагонали прочитали столько букв, то на 99,9% с созданием домашнего NAS вы справитесь. Было бы желание. Успеха, и если что - обращайтесь в профильную ветку.

Хотелось бы выразить благодарность всем участникам профильной ветки на forum.. Sh, TPAKTOP, iZEN и RU_Taurus за множество полезных комментариев.

Особая благодарность разработчикам свободного софта: Olivier Cochard-Labbé, Daisuke Aoyama, Michael Zoon, Volker Theile и многим другим. Они сделали возможным само существование темы «NAS своими руками».

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

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

Так вот, давайте зададим себе первый вопрос - зачем вам нужен NAS? И окажется, что подавляющему большинству NAS не нужен вовсе. Да, они его могут использовать - если, к примеру, брат, cын и т.п. настроит и подарит. Но они не купят себе новый (и будут его настраивать), даже если старый исчезнет. Потребности большинства людей по просмотру кино удовлетворяются телевизором, обычным компьютером, в самом продвинутом случае - стриминговыми сервисами, iTunes и Play. По бекапу, если делают - USB диском и облачными сервисами. Так что оставим в стороне тех, кому обсуждаемая железка не нужна ни в каком виде.

А в остатке имеем многократно меньшее меньшинство, способное рассказать, зачем именно им NAS понадобился. Этот список заслуживает отдельного поста (который напишу следом), но сейчас полезнее обдумать этот список самостоятельно. Скорее всего, список окажется без экзотики, как у всех. Качать торренты, смотреть кино и слушать музыку через медиаплеер, умный телевизор или HTPC. Бекапить домашние компьютеры и мобильные устройства. Хранить домашние фотки. Тогда вам подойдёт и покупной и самосборный NAS. Если же экзотика будет в наличии (яркие примеры - виртуализация, использование конкретного программного обеспечения, не включённого в поставку готовых NAS) - то это веский аргумент в сторону самосбора. Не так чтобы это совсем нельзя на готовых NAS. Но если вам нужна виртуализация (дома!), то проблемы собрать и настроить NAS самому для вас не существует. Точно также, вроде бы обычные потребности, но по-крупному (не пара терабайт, а десять-двадцать, транскодирование видео на разные устройства и тп) поднимают требования к готовому NAS от простых домашних устройств до продвинутых, а то и корпоративных. Поднимают вместе с ценой.

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

PS Как видим - в самом выборе места для холивара нет. Он есть в психологических моментах, которые мы тут обсуждать не будем. За одним исключением. Практически всегда на старте происходит подмена понятий. И вместо сравнения яблок с яблоками, а ананасов с ананасами идёт сравнение яблок с ананасами.

Ещё несколько лет назад по железу самосборный NAS означал x86 платформу, а базовый готовый - ARM. Конечно, ARM жрёт меньше, меньше греется и много слабее по производительности. Но в последние годы появилась возможность собирать и на ARM. Например, под новый год я купил на авито за 2500+300+300+200 = 3300руб + блок питания + корпус + SD карту, нашёл в загашнике USB коробку для HDD, оставшуюся от покупки внешнего диска по цене меньше внутреннего той же модели. Поставил в коробку старый полуторатерабайтный диск, ставший не нужным в медиаплеере при наличии NAS. Настроил nas4free (с zfs!), включая робота для автоматической загрузки новых эпизодов сериалов и для передачи туда и обратно фоток и прочего через горячие папки, т.е. способом, понятным для домохозяйки. И отвёз родственникам в другой город. Аптайм подходит к 5 месяцам.

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

По софту 99.99% готовых NAS - это сборки на основе Linux. А в самосборе можете выбрать хоть Win, от Windows 7 Embedded standard, вычищенного от всякого хлама до Win Server 2016 Tech Preview, хоть *nix во всём многообразии, от Linux до FreeBSD и Solaris. Но есть ли это сравнительное преимущество? IMHO почти наверняка - нет. Потому, что если для вашего случая не хватает софтового функционала покупного NAS - у вас, скорее, необычные требования.

PPS UPD про вопрос, который наверняка зададите - а в каком варианте больше функционала?
IMHO - одинаково, причём что практически, что теоретически.

Практически: вам не нужен весь функционал, а лишь тот, что используете. И всё, кроме экзотики во всех вариантах есть.

Теоретически: на достаточное мощном железе и в готовых и в самосборных NAS поддерживается гипервизор. Соответственно в виртуалку на самосборе можно поставить Xpenology. (Это легально, тк оная есть компиляция кодов, опубликованных по GNU лицензии. Обратного, кстати, не утверждает и Synology.) И поиметь весь функционал, который есть в DCM и отсутствует в хост системе. Точно также - наоборот, на готовый NAS в виртуалку ставим что угодно - и вперёд. Так что вопрос лишь в железе, читай - про деньги. такой подход не решает, конечно, вопрос с некими облачными сервисами производителей NAS. Но если(!) они вам нужны - вряд ли среди них есть что-то уникальное настолько, что не найдётся замена. Т.е. снова про деньги. И невеликие.

Canon PowerShot A200

Цифровая фотография ворвалась в мою жизнь в 2002 году с рождением дочки. Все не запомнить, да и со временем что-то забывается, а потому хотелось запечатлеть как можно больше моментов начала её жизни. Так что предполагалось, что делать фото буду много и часто, что тогда не позволяла плёночная фотография (стоимость плёнки + стоимость печати = дорого). И вот 21 августа 2002 года был куплен цифровой аппарат фирмы Creative PC-CAM совмещающий в себе веб-камеру на батарейках и возможностью делать цифровые фотографии 1Мп не больше 8 штук (больше не помещалось во внутреннюю память устройства и работать с картами памяти она не умел). Очень быстро поняв всю прелесть такой фотографии и ущербность встроенной маленькой памяти, через пару месяцев молодой папа поднапрягся в финансовом плане и купил настоящий цифровик Canon PowerShot A200 который умел еще и записывать видео!

Canon PowerShot A400

С этого момента сразу морально умерла вдогонку к пленочному фотоаппарату, еще и видеокамера Samsung Hi8. Качество фотоснимков нового фотоаппарата была настолько потрясающая, а данная линейка Canon настолько универсальна (многократное оптическое увеличение, стабилизация от «дрожащих» рук, большое кол-во фото от одной зарядки), что в последующие годы менялась только модель: А400, А430, SX100 IS (оптическая стабилизация!) и SX200 IS. Последний куплен тоже 21 августа (совпадение) но уже в 2009 году и используется до настоящего времени. Кроме того, в марте 2012 года был куплен фотоаппарат Sony NEX-C3K Kit с двумя сменными объективами в комплекте 18-55mm/F3.5-5.6 и объем фото и видео (уже в FullHD качестве) заметно вырос. Фотоаппарат Sony NEX еще чем хорош, что через копеечный китайских переходник я к нему подключил объектив Гелиос 44-М с отцовского профессионального в СССР фотоаппарата Зенит (ух сколько свадеб на него снималось!).

CANON PowerShot SX100 IS

Я это к чему. За примерно 17 лет у нас накопилось более 20 тысяч фотоснимков и многие-многие часы видео. Для меня это настоящее сокровище, потерять которое не хотелось ну вообще никак. Все это добро выгружалось из памяти фотоаппаратов и аккуратно хранилось сначало на жёстком диске ПК, потом из-за проблемы с вирусами в Windows, переехало на один внешний диск, а потом и на более ёмкий HDD Western Digital (WD) 1TB My Book. Плюс еще какой-то приличный объем стали занимать оцифрованные киноплёнки(!) моего отца и с моей видеокамеры Samsung Hi8.

Фотографии в старых фотоальбомах могли исчезнуть только если пожар, но это неприятное событие вы заметите сразу, или если повезет, то заранее и вызовите пожарных и всё успеете спасти. Особенность цыфры состоит в том, что весь ваш накопленный фото и видеоархив пропадает мгновенно, без предварительного запаха дыма, как говорить «по щелчку пальцами». Такое в последние годы случилось у двух моих знакомых с внешними USB-HDD.


Как вариант хранению на внешних HDD, рынок предлагает нам устройства NAS - сетевые хранилища информации. Но это не единственная их функция, у этих устройств достаточно широкий функционал: они могут работать как автономные торрент-качалки, а потом скачанное видео могут транслировать к примеру на телевизор, могут работать как медиаплееры напрямую на ТВ подключаясь по HDMI, как серверы вашего веб-сайта и т. д. Все ограничивается только вашими желаниями и репозиторием программ для конкретного NAS. Накопители же в NAS можно объединять в массивы от RAID0 до RAID10 в зависимости от количества слотов в модели NAS. RAID позволяет как свободно манипулировать общим дисковым пространством (к примеру, объединить два разных HDD в один общий диск с помощью RAID0), так и делать файловое хранилище более защищенным (к примеру используя RAID5). Подробнее о вариантах использования разных уровней RAID можно почитать в Интернете. А еще отличие от обычных ПК и большой плюс NAS - это энергоэффективность и тишина. Т.к. NAS не предполагается использовать под игры, то в них обычно ставят холодный процессор и большой малооборотистый вентилятор для охлаждения HDD. Большой же минус NAS - это стоимость, доходящая подчас на некоторые модели до 40 тыс.рублей и выше, и это без учета стоимости накопителей, на которые могут уйти еще тысяч пятнадцать (к примеру, 4 HDD по 1 Тб в ценах апреля 2019 года). Согласитесь, не каждый семейный бюджет может потянуть всю эту затею.

К счастью, есть еще один альтернативный и весьма бюджетный вариант. Им я и воспользовался. Это конечно не идеальный вариант, идеального ничего нет. Из плюсов - стоимость от 0 рублей, можно собрать NAS для дома из старого ПК и ненужных HDD. А из минусов - вы должны быть «с руками» или хотя-бы не бояться немного повозиться с железками и программным обеспечением. Я пошел по этому пути и вот моя история.

пример корпуса

Для начала был найден списанный 10-летний «офисный» ПК с БП на 300Вт, 2Гб оперативки DDR3, процессором Intel Pentium Dual-Core E5400 и все это «счастье» на материнской плате Gigabyte GA-G41MT-ES2L (2009 года выпуска) имеющий «на борту» для подключения жёстких дисков не только 4 разъёма SATA, но и пара старых IDE. Последним я очень обрадовался, т.к. у меня были пара старых IDE-дисков которые просто лежали уже много лет без надобности, на которых я собирался начать свои эксперименты с NAS. Еще что порадовало, на материнке кроме естественно PCI слотов был один современный PCI Express х1, который мне очень пригодился позже. Из минусов этой материнки - нет возможности загрузить операционную систему из встроенного кард-ридера, даже после обновления BIOS до последней версии. А жаль, у меня лежат ненужные пара 4Гб SD-карты, которые подошли бы для этого проекта, но увы. Зато есть возможность загрузки ОС с USB-флешки. Ладно, посмотрим, как это можно будет использовать в будущем. Еще на борту материнской платы есть сетевой порт на 1Гбит, что просто замечательно, т.к. скорость копирования по сети будет очень быстрая. Центр моей домашней локальной сети - это интернет-центр Zyxel Giga II порты которого тоже работают на скорости 1Гбит.

Продолжим. Итак, второй вопрос после системного блока, возник такой: а какую ОС использовать для NAS? В Интернете предлагается много вариантов как платных, так и абсолютно бесплатных: FreeNAS, EasyNAS, Rockstor, OpenMediaVault и подобные, советую прочитать статью (откроется в новом окне) «Лучшие дистрибутивы NAS ». После того, как я ещё несколько дней смотрел Youtube, а потом самостоятельно проверял и тестировал все эти ОС на своем виртуальном компьютере в VirtualBox, пришло решение остановиться на OpenMediaVault (короче OMV). Почему? Да потому что OMV полностью поддерживает русский язык, бесплатен и базируется на ОС Linux (Debian), а это значит стабильность и надежность которая не снилась ОС Windows. Чем замечательны решения на ОС Linux - это бесплатность, отсутствие угрозы заражения вирусами ОС, а значит нет необходимости покупать антивирус, системные требования к Linux в разы ниже чем у Windows, а это значит, что ОС будет прекрасно себя чувствовать даже на тех ПК, на которых Windows просто отказывается запускаться. Кроме того, устройства под управлением Linux не требуют много к себе внимания на обслуживание (к примеру, все SmartTV, роутеры и сотовые телефоны работают на той или иной сборке Linux. В общем, как ни крути, Linux в данном случае, это мой вариант. В общем с ОС определился.

Описывать установку OpenMediaVault я тут наверное не буду. Все достаточно просто, проблем никаких нет, да и подобных описаний полно в Интернете, дам для примера ссылку на статью (откроется в новом окне) «Openmediavault, или Как сделать NAS самому? «. Сами почитаете. Только напишу, что у меня сейчас работает:

    Т оррент-качалка с веб-интерфейсом. Очень удобно.

    М едиа-сервер miniDLNA позволяет смотреть фильмы на телевизоре. Указал несколько папок где лежат мои фильмы, а так-же папку куда скачивает торрент-к ачалка .

    Включены уведомления на электронную почту. Теперь на работе (да в любом месте!) я сразу узнаю о всех происшествиях если они произойдут.

    Включен монитор жёстких дисков по S.M.A.R.T. Если какому диску вдруг станет «плохо», уведомление об этом я получу на электронную почту к примеру, на своем смартфоне и смогу вовремя, до того как диск полностью сломается, сохранить с него информацию на другой диск.

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

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

    Включён антивирус Clave для проверок по расписанию общей папки. Дело в том, что в домашней сети есть один ПК с Windows, и хоть на нем стоит антивирус, но это-же Windows и мы же с вами понимаем, что антивирус в этом случае не всегда спасает. Так что на самом деле, антивирус в Linux нужен на тот случай, если файлы в общей папке заразятся от Wiondows-компьютера. В самом-же Linux вирусов нет просто как класса.

пример IDE HDD

В OMV есть плагин который надо поставить, если ОС работает на USB-флешке. Честно говоря руки так чесались, что я поторопился и не стал разбираться с этим плагином, а потому и не поставил ОС на USB-флешку, и чтобы не занимать загрузочным диском ценный SATA порт на матери, решил поставить OMV на IDE-диск. А что? Скорость тут не так важна, особенность Linux-а в том, что он работает в памяти ПК и не терроризирует записью-чтением жёсткий диск компьютера как Windows. В общем ОС занимает около 2,5Гб места и разместилась на 80Гб жёстком диске, а на второй IDE винт после окончания всех настроек OMV я сделал бэкап, на случай, если первый IDE-диск выйдет из строя. Вот так получилось бюджетнинько и думаю надёжно.

Временно, на опыты, друзья подкинули пару 3,5“ HDD по 500Гб. Включил их в RAID0 и на выходе получил один диск ёмкостью 1Тб. Пока не забрали назад, будет работать так. Используется для работы торрента и общей папки пользователей. Еще были прикуплены пара 2,5“ Seagate Barracuda 1Тб. Вот так все 4 SATA порта на материнской плате стали заняты. На фото справа видно, сверху вниз: 2 IDE с системой OMV, далее идут пара SATA 500Gb которые «связаны» в RAID0, и в самом низу два — это 1Тб винты ноутбучного формата 2`5 дюйма. Кстати, картинки дальше все кликабельны, нажимайте на них для увеличения.


Aerocool Motion 12

Т.к. дисков получилось что называется «внабой» да и лето впереди, решил сделать для них дополнительное охлаждение. Купил в ДНС вентилятор «Aerocool Motion 12» за 270 руб. и установил его внутрь напротив стойки с HDD в штатное место. Работает тихо, 1200 оборотов всего, но продувает замечательно за счет увеличенного количества лопастей, их тут 9 штук.

Интересно, а что делать, когда мне понадобиться добавить, хотя бы еще один жёсткий диск? Сейчас нет свободного SATA-порта на материнке, да и в корпусе ПК в штатных местах крепления HDD места так-же нет.

Oimaster He-2006

Слоняясь по Интернету, однажды обнаружил в китайском магазине интересное решение. В корпус ПК в место DVD-привода вставляется стойка под шесть 2`5 HDD на выдвижных шасси, с замком от случайного отключения дисков, с индикацией работы HDD и принудительным охлаждением внутренностей. Мне конечно не надо было прямо на 6 HDD, да и внутри ограниченного пространства они слишком плотно находились бы, а это проблема тепловыведения, диски же греются, особенно в круглосуточном режиме. Но в общем идея мне понравилась. Я стал искать решение на 4 HDD и надо было как-то решить проблему отсутствия свободных SATA-портов. И перефразируя пословицу про Рим на современный лад: в Китае - всё есть. Нашел плату SSU SA3014 PCI-E добавляющую 4 порта SATA 3.0 за примерно 1350 руб на Алишке .

Но скажу честно, мне в тот момент подфартило и я купил её в другом месте: как раз открылся новый интернет-магазин Bringly.ru — совместный проект Яндекса и Сбербанка. Там были скидки, да еще и на первую покупку раздавали баллы, которыми можно расплатиться за товар как деньгами. В общем, вместе со всем, с доставкой, эта плата мне стоила 565 рублей. Получилось очень бюджетно, в стиле моего проекта. Потом, пересмотрев кучу вариантов стоек для HDD в 5`25 отсек, я пришел к выводу, что самая нормальная фирма - это Oimaster. Куча положительных озывов, и судя по фото устройства- все довольно качественно и надежно, хотя и дороговато.
Но ведь и он должен бережно заботиться о моих дисках, что-бы данные хранимые на них никуда не пропали, например из-за некачественной пайки какой нибудь схемы внутри стойки или элементарного перегрева. Минимальная цена на него в районе 1898 руб. Пара месяцев я искал варианты подешевле, ждал, может где скидки будут? Скидок на последней распродаже даже на АлиЭкспрессе на него не было, так что пришлось покупать, что называется по полной стоимости. Хорошо, что пользуюсь службой возврата денег (кэшбэк) Letyshops (нажмите на баннер вверху этой страницы), и часть оплаченных денег всегда возвращается мне назад, так что можно считать, что товар достается всегда дешевле. Когда все пришло - установил все в корпус. Все работает - отлично!

В OMV есть встроенная система статистики. Ведется учет того, на сколько сильна нагрузка на процессор, сколько оперативной памяти используется, а сколько осталось свободной, можно посмотреть динамику заполнения жёстких дисков и прочее. Напомню, в моей системе стоит процессор Intel Pentium Dual-Core E5400 мощности которого оказалось больше чем достаточно, средняя нагрузка не превышает 8-10%. Оперативной памяти 2Гб тоже более чем, 0,6Гб занята системой, остальная часть выделена под буферизацию данных.

В завершение. Могу сказать, что NAS получился копеечным, по сути из обязательных трат — это 270 руб. для дополнительного вентилятора для обязательного охлаждения массива HDD. Так что не спешите выкидывать старые ПК — они еще могут долго вам служить, но уже в иной роли. Если есть старые HDD — тогда тоже никаких затрат. Все остальные мои траты на дополнительную плату и стойку на 4 диска — в общем-то были не обязательны. Возможностей OMV хватит с головой не только на домашнее применение, но и для офиса, и для большой корпоративной сети — так как все это базируется на ОС Linux (Debian) с регулярными обновлениями системы. А мой NAS радует семью новыми фильмами, мгновенной доступностью сразу всей массы домашнего видео и фото, и наконец уверенным спокойствием за сохранность всех накопленных годами данных.

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

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

Я очень надеюсь, что вы найдете для себя несколько полезных идей и все-таки научитесь на чужих ошибках. Помните: система стоит не столько, сколько вы заплатили за железо, а сколько вы вложите потом времени и сил в тестирование и эксплуатацию.
Если не хотите читать - посмотрите ссылки и выводы в конце; может, и передумаете.

DISCLAIMER

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

Благодарности

Респект Андрею Александровичу Бахметьеву, инженеру и изобретателю. Я горд, что Андрей Александрович преподавал для меня в институте! Желаю ему всяческих успехов в его проектах!

Задача

Итак, есть малый бизнес-стартап, генерирующий порядка 50Гб файлов в неделю, с необходимостью их архивного хранения в течение нескольких лет. Файлы крупные (порядка 10-20 Мб каждый), обычными алгоритмами не сжимаемые. Начальный объем данных порядка 2Тб. Совсем старые данные можно хранить в оффлайне, подключая по требованию.
Нужно уложиться в весьма скромный начальный бюджет решения 500 евро (в ценах лета 2013) и двухнедельный срок на сборку и тестирование .

За эти деньги нужно построить систему, которая позволит работать с файлами небольшой группе в одной локальной сети с разных платформ (Windows, Mac OS). Требуется длительная работа без сисадмина на площадке, защита от отказов и базовые функции управления правами доступа.

Традиционные пути

Безусловно, можно купить сетевое хранилище: их делают NetApp , QNAP , Synology и другие игроки, и притом делают неплохо даже для малого бизнеса. Но наши 500 евро – это только начало разговора для пустой коробки, без самих дисков. Если у вас есть 1000-2000 евро, лучше купите готовое изделие, а мы попробуем максимально заплатить знаниями и минимально - временем и деньгами.

UPD (спойлер ред. 2 от 2014-03-08):

Если собираете из нового железа, а не из хлама

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

  1. Если двойного размера самой ёмкой из доступных моделей диска не хватает для хранимых данных, прекращаем читать спойлер (пример: модель 4Тб, требуется хранить 7Тб данных, тогда продолжаем; если требуется хранить 10Тб, тогда прекращаем)
  2. Выбираем изделие из линейки MicroServer известного производителя серверов Харлампий-Панкрат; например, n36l, n40l, n54l, с четырьмя отсеками для дисков (главное, чтобы была поддержка ECC-памяти)
  3. Обязательно комплектуем наш сервер памятью с контролем четности (ECC) из расчета 1Гб на каждый 1Тб хранимых данных, но не менее 8Гб (по рекомендации FreeNAS для дисков до 4Тб получается как раз всего 8Гб)
  4. Если у нас нет ECC-памяти, немедленно прекращаем читать этот спойлер , читаем пост до конца
  5. Выбираем производителя дисков, используя актуальный обзор отказов; например, вот этот: http://habrahabr.ru/post/209894
  6. Выбираем недорогую линейку SATA дисков с обязательным наличием ERC , а зачем, читаем здесь: http://habrahabr.ru/post/92701
  7. Выбираем ёмкость дисков (2Тб, 3Тб или 4Тб) из расчета, что их будет четыре, и что доступной для данных будет только половина (вторая половина на избыточность RAID)
  8. Перед закупкой еще раз внимательно и досконально проверяем совместимость железа между собой, количества слотов, отсеков, планок и прочего, но для FreeNAS самое главное - поддержка всего железа актуальным ядром FreeBSD
  9. Выбираем хорошую загрузочную флэшку, прочитав продолжение данного поста (часть 2: хорошие воспоминания)
  10. Закупаем, вдыхаем ароматы нового железа, собираем, подключаем, запускаем; для ZFS обязательно выключаем все аппаратные RAID"ы
  11. Создаем том RAIDZ2 из четырех дисков, обязательно с двойной избыточностью (на размерах тома около 12Тб есть риск повстречать злобного URE, читайте о нем в этом посте; если мы не боимся URE и все-таки собираем RAIDZ на четырех дисках, проверяем размер физического сектора - на современных дисках он 4Кб, и в этом случае получится совершенно нелепый страйп 43Кб, который еще и просадит нам скорость массива: forums.servethehome.com/hard-drives-solid-state-drives/30-4k-green-5200-7200-questions.html)
  12. Соль, сахар, перец, jail"ы, шары, скрипты и тому подобную сметану добавляем по вкусу

А как же облачное хранение , спросите вы? На момент написания этой статьи популярные облачные хранилища для наших объемов выглядят дороже, чем хотелось бы. Например, стоимость хранения неограниченного объема данных 36 месяцев на известном сервисе Брось Бокс обойдется в пару тысяч долларов с лишним, хотя и выплачивать их можно постепенно. Конечно, есть сервисы вроде Amazon Glacier (благодарю А.М. за подсказку) или Ажурных Окон, но, во-первых, они тарифицируют не только хранение, но и обращение (как его априорно подсчитать?), а во-вторых не будем забывать, что бизнес сидит на Интернет-аплинке 10Мбит, и маневры терабайтами потребуют не только определенных усилий по управлению процессами, но и будут весьма утомительными для пользователей.

Обычно в таких случаях берут старый компьютер, докупают большие диски, ставят Linux (не обязательно, кто-то ухитряется и Windows 7), делают массив RAID5. Отлично. Всё работает хорошо примерно полгода-год, но одним солнечным утром сервер вдруг пропадает из сети без всякого предупреждения. Конечно, сисадмин уже давно работает в другой фирме (текучка кадров), резервной копии нет (объемы слишком велики), а новый сисадмин починить систему не может (при этом на чем свет стоит ругает старого сисадмина и диалект Linux YYY, ведь надо было использовать Linux ZZZ, тогда проблем бы точно не было). Все эти истории повторяются давно и одинаково, меняются только версии ОС и растут объемы данных.

Отраслевые мифы

Миф о RAID5
Самый распространенный миф, в который я и сам верил до недавнего времени – это то, что второго подряд отказа в массиве на практике не может быть по теории вероятности. А вот и может, да еще как! Смоделируем реальную ситуацию: сервер проработал пару лет, после чего в массиве отказывает диск. Пока ничего страшного, ставим новый диск, и что происходит? Ага, реконструкция массива, т.е. длительная максимальная нагрузка на уже порядком изношенные диски. В такой ситуации отказы очень даже возможны и происходят.
Но это не все. Есть еще заложенная производителем методическая вероятность ошибки чтения, которая при определенных обстоятельствах сейчас уже практически гарантирует, что RAID5 после отказа диска обратно не соберется.
Миф о терабайте
Можно, конечно, считать всех производителей дисков начинающими программистами, но один отраслевой килобайт у них принят 1000 байт, строго по системе СИ (тот, другой килобайт, на самом деле с 1998г зовут кибибайт и обозначают KiB). Однако это не всё. Дело в том, что все выпускаемые шпиндельные диски имеют уже обнаруженные на фабрике дефекты, количество которых случайно, и потому фактический доступный размер «гуляет». У бюджетных моделей он гуляет даже в пределах одной партии одинаковых изделий, причем как в большую, так и в меньшую сторону. У меня в наборе из четырех одинаковых дисков номиналом 2Тб два оказались примерно на 2Гб меньше, а другие два – примерно на 400Мб больше номинального объема. Т.е. килобайт, подобно синусу в военное время, колеблется от 999 байт 6 бит до честных 1000 байтов даже с полубитом на конце. Либо изделия поставляют к нам на рынок на протекающих подводных лодках, либо наводнение виновато, но биты куда-то деваются.

Не стоит недооценивать данный фактор: если замена отказавшего диска в массиве окажется хоть на один блок короче номинального объема, то деградировавший RAID-массив теоретически может и не собраться до оптимального состояния, и мы получим головную боль, которую можно было легко избежать вначале. Исходя из этого, больше - не значит лучше, главное - постоянство.
Я предполагаю, что производители серверного оборудования решают эту проблему, всегда делая технологический запас и одновременно искусственно занижая объем доступного пространства в прошивке диска, поэтому по определенному коду изделия у них всегда (в пределах поддержки) можно получить диск, который имеет одну и ту же ёмкость. Наверное, это одна из причин, почему диск Seagate под известной серверной торговой маркой Харлампий-Панкрат и его «родной брат» без нее – не совсем одно и то же изделие. Но это только мое предположение. Возможно, у лидеров рынка хранения данных есть в рукаве и более технологичные козыри.

Риски проекта

В любом проекте важно понять риски, ведь в конечном итоге мы строим не ради забавы, но ради успеха бизнеса. Чтобы достичь гармонии Крепсондо (простите, непрерывности бизнеса), для начала мы построим упрощенную модель рисков, которая должна учитывать вероятные сбои и их последствия.
Аппаратные
По бюджету мы не имеем доступа к серверному оборудованию, поэтому и диски, и контроллеры можем использовать только дешевые, а это территория спонтанных отказов на ровном месте. К аппаратным рискам относим: механический износ (шпиндельные диски, вентиляторы), электрический износ (особенно касается флэш-памяти), ошибки в прошивках диска или контроллера, некачественный блок питания, некачественные диски, рассыпание аппаратного RAID-массива. Риском можно считать и отсутствие комплектующих запасного имущества прибора (ЗИП) в продаже вследствие устаревания.
Программные
К программным сбоям отнесем проблемы стандартных операционных систем, которые обладают склонностью к саморазрушению и не самой лучшей способностью к самовосстановлению после отказов питания, требуя регулярного администрирования. Добавим сюда ошибки реконструкции программного RAID-массива, ошибки в драйверах контроллеров, действия пользователей (намеренные и ненамеренные), действия вредоносного кода.

Имеющееся железо

Под рукой оказался мой старый компьютер примерно 2004г. выпуска на материнской плате Socket 478 GA-8IPE1000MK , с ЦП Pentium 4 @3ГГц и 1Гб ОЗУ. На корпусе написано ZEUS, он имеет целых шесть внутренних отсеков 3.5” (по тогдашним меркам это много), один 3.5” под архаичный FDD, четыре 5.25”, два места под вентиляторы охлаждения и блок питания на 250Вт. Видеокарта ATI RADEON 8500 в свое время рендерила такие хиты, как Soldiers of Anarchy, но ее вентилятор на масляном подшипнике уже давно воет, как собака Баскервилей (конечно, когда у него вообще получается вращение). Охлаждение ЦП было решено Zalman CNPS5700D-Cu , который затягивал нагретый воздух от радиатора и через эксцентричный воздуховод выдувал его внутрь корпуса, откуда его вновь приходилось выдувать наружу вторым вентилятором.

В один из дней мне настолько надоел весь этот аэродром, что я решил выпилить его в буквальном смысле: взял электропилу и вырезал круглое отверстие в корпусе (по решетке вентилятора), нарастив воздуховод куском пластиковой бутылки из-под минеральной воды Карма Дома. Убрал второй вентилятор и понизил первому (на ЦП) обороты реостатом.

В таком слегка панковском виде вся эта материальная часть и грустила на полке до наших дней.

Дополняла мою кунсткамеру дыра на задней панели корпуса из-за вольного трактования производителем корпуса стандартов ATX: вогнать туда панель-заглушку без напильника оказалось никак невозможно, и я оставил эти попытки.

Материнская плата имела контроллер ОЗУ, который не позволял менять планки в режиме STANDBY (это когда компьютер выключен кнопкой, но блок питания включен). Там даже светодиодный индикатор специальный выведен RAM_LED, задачей которого было предупреждать сисадмина о наличии напряжения в контуре:

When RAM_LED is ON, do not install / remove DIMM from socket

Конечно, в итоге контроллер накрылся; и если не пошевелить память в разъеме определенным шаманским образом, материнка ее не видела и начинала противно пищать. В справочнике писков данный сигнал мог означать как проблему ОЗУ, так и проблему блока питания, что окончательно сбивало с толку. Для довершения картины BIOS создавал какую-то особенно кривую среду при загрузке с флэшек, из-за чего у меня категорически не загружались все производные SYSLINUX (для справки: это почти безальтернативный загрузчик CD/флэшек для огромного количества вариантов Linux).
Так к чему я это всё?

Выводы:

  1. Такой компьютер для серверной задачи совершенно непригоден.
  2. Молодым сисадминам категорически противопоказан секс со старым железом.

Идеи

Замена железа
Конечно, глючная мать, изношенная механика и старый блок питания совершенно не укладываются в философию Крепсондо (ой, снова простите, непрерывность бизнеса), и потому подлежат замене в первую очередь и без лишних обсуждений. Гармония Крепсондо для нас важнее, поэтому попрощаемся со старым железом, оно свою историческую миссию выполнило.
Выбор замены для Socket 478 оказался невелик: ASRoсk P4i65G . Вроде бы неплохая мать с бортовой графикой, тремя PCI, двумя SATA и шестью USB на борту. Аппаратный мониторинг сделан на базе Winbond W83627 (поддерживается в пакете lm-sensors ; это оказалось потом полезным при калибровке реостата вентилятора по температуре ЦП работающей системы).

Теперь ничего не пищит, загрузка с флэшек работает нормально, что уже радует. Бортовых ста мегабит для сети NAS маловато, поэтому один слот PCI сразу же занимаем бюджетным D-Link DGE-530T , еще два PCI оставляем на дисковые контроллеры. Обычно они имеют до четырех портов, что вместе с двумя бортовыми даст нам возможность подключить десять дисков.
Про новый блок питания я расскажу позже, пока лишь отмечу, что для моей системы на базе Socket 478 вполне хватало 250Вт. Поэтому, прикинув в уме запас мощности 200Вт на раскрутку шпиндельных дисков, я с ходу согласился на предложенный мне в магазине бюджетный источник FSP Group ATX-450PNR номиналом 450Вт. Поверхностно мне понравился большой низкооборотный 120мм вентилятор – значит, шуму будет меньше (UPD: забегая вперёд, ATX-450PNR, несмотря на все ухищрения, с поставленной задачей не справился, и я не рекомендую его использовать ; см. habrahabr.ru/post/218387).

Заодно я прихватил пару вентиляторов Zalman ZM-F1-FDB на модном гидродинамическом подшипнике: первый пойдет на кулер ЦП, второй – на обдув первой группы дисков.
Собственно, осталось выбрать самое важное.

Дискововая подсистема

Для сетевого хранилища важнейшей задачей является выбор режима массива (RAID). Поскольку бюджет решения не позволяет нам воспользоваться серверным оборудованием, вздыхаем и сразу откладываем аппаратные RAID-контроллеры, SAS и прочие Fiber Channel в сторону. Туда же откладываем и твердотельные диски. Раз у нас на кухне NAS (простите за каламбур), то тернистый путь пройдет через волшебный мир программных решений RAID на базе дешевых шпиндельных дисков SATA . Так гораздо занимательнее, но да помогут нам практики Крепсондо.
Диски
На мой субъективный взгляд, у продуктов SATA (по сравнению с SAS/FC) с выбором всё еще более запутано и сильнее перемешано с маркетингом. У шпиндельных дисков Seagate я увидел два условных ценовых диапазона, которые отличаются примерно на 40%. Верхний принято считать решением для среднего бизнеса, а нижний – для домашних пользователей и малого бизнеса. Чем же грозит использование самых дешевых дисков? По субъективным оценкам некоторых экспертов (ссылка), дешевые диски отказывают ощутимо чаще дорогих в первую же неделю эксплуатации, и по результатам года тенденция сохраняется. Осторожно приведя здесь эту таблицу, повторю, что это очень приближенная субъективная оценка одного из пользователей Интернета, без указания конкретных изделий:

По наблюдению того же пользователя, примерно один-два из дюжины годовалых дисков SATA отказывают на втором году жизни. Само собой, все SATA ощутимо ведут себя хуже, чем SAS или Fiber Channel, с этим вряд ли можно спорить. Как, впрочем, и с выделенным бюджетом, который почти не оставляет нам выбора.

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

UPD:
Поскольку описанные события происходили летом 2013г, то я не прочитал вот этот замечательный пост: http://habrahabr.ru/post/209894/ . Из него следует, что Seagate не самый лучший выбор, но читатель, безусловно, теперь предупрежден и вооружен. Благодарю, хаброкомьюнити, вы лучшие!

Бегло анализируя предложения в магазинах, я отметил, что цена бюджетных дисков крупного объема 4Тб почти на 90% выше предложений на 2Тб, т.е. удельная стоимость хранения гигабайта росла почти линейно от объема. Почему это так важно? Дело в том, что мне не удалось найти контроллер для шины PCI с гарантированной поддержкой накопителей 4Тб, а экспериментировать не было возможности. Это поставило перед непростым выбором: либо ограничить диски 2Тб, либо отказаться от старого железа и переходить на шину PCI Express (с покупкой нового компьютера). К счастью, почти линейная зависимость цены от ёмкости избавила от трудных решений, но читателю рекомендую всегда считать совокупную стоимость дисковой подсистемы, ибо в NAS она определяющая, и выгода от ёмких дисков может перевесить всё остальное.

Приглянулась своей ценой модель ST2000DM001 . Это был самый бюджетный вариант в линейке Seagate на 2Тб, использует новый размер сектора 4Кб и требует правильной инициализации (форматирования) файловой системы. Интересно, что представители ST2000DM001 попадаются как с двумя, так и с тремя пластинами (на картинке - вариант с двумя).

Похоже, новые владельцы проекта FreeNAS не пожалели сил на глубокий рефакторинг кода, который, вероятно, дался ценой отказа от некоторых «устаревших» функций (например, RAID5). Во всяком случае, FreeNAS выглядит сильным драйвером развития для FreeBSD, и заметен явный интерес к развитию ZFS во «фришном» ядре. Что ж, пожелаем удачи коллегам.

Если сравнивать FreeNAS и его предка-бранч NAS4free, то для меня субъективно FreeNAS выглядит сильнее, несмотря на отсутствие RAID5. Есть некое ощущение, которое непросто объяснить словами: сквозь графический интерфейс NAS4free так и веет запахом кода, требующего глубокого рефакторинга («кода с душком»). Так что же это за рефакторинг такой? Вот вам простой пример: в отличие от NAS4free, даже при работе с флэшки FreeNAS может применять изменения в конфигурации без полной перезагрузки системы. И это при том, что корневая система смонтирована в режиме read-only. Для меня это был сильный аргумент. К тому же FreeNAS перешел на хранение конфигурации в РСУБД SQlite , а NAS4free до сих пор использует простой, но не самый надежный формат XML.

RAID5 или не RAID5
Хотя UFS и софтверные RAID-массивы GEOM и не дотягивают по технологичности до ZFS с RAIDZ (на первый взгляд вообще кажется, что это соревнование набора шпал против вантового моста), но популярные режимы RAID0/1/5 в GEOM есть. Однако современный FreeNAS при этом не позволяет создавать тома RAID5, а для совместимости оставлены только простейшие режимы RAID0 (stripe) и RAID1 (зеркало).

Почему так?

На это, наверное, есть две причины, назовем их упрощенно: механическая и математическая (хотя в шпиндельных дисках они переплетены подобно корпускулярно-волновому дуализму).

Представим себе отказ/замену одного диска в массиве 10Тб спустя два года эксплуатации: процесс реконструкции в течение недели (!) будет мучить уже и так изношенные шпиндели (см. выше Миф о RAID5 ). Но при таком стрессе старые диски могут не протянуть и трех дней, повалив массив окончательно, вот тогда стресс начнется уже у нас, да еще какой.

Вы спросите: как же так, почему неделя на реконструкцию? Обратим взор на представителей двух поколений Seagate Barracuda (используем материалы http://www.storagereview.com):

Если ёмкости выросли примерно в 8 раз, то скорости лишь троекратно. Ирония, правда, в том, что априорно мы можем представить тут скорость реконструкции RAID1, и даже такой быстрый вариант на нашем винтажном PCI-контроллере будет не ахти. В массивах же RAID5 скорость вообще определяется математическими способностями процессора, и по разным оценкам составляет порядка суток на каждый Тб данных (увы, ссылок дать не могу, простите).

Но и это еще не все, дорогой читатель. Диски имеют параметр, именуемый Unrecoverable Read Error Rate, который на современных бюджетных моделях SATA составляет 1 сектор на каждые сто триллионов битов. Т.е. примерно из каждых записанных 12Тб диск один раз скажет «прости, хозяин, но выдать обратно нужный сектор совершенно никак невозможно; ошибка чтения». Это методическая ошибка, заложенная производителем и потому теоретически гарантирующая невозможность реконструкции массива RAID5 емкостью более 12Тб на дешевых дисках (справедливости ради отметим, что URE на дисках SAS, как минимум, на порядок меньше, а критический объем, соответственно, больше). Эпитафию RAID5 написал Robin Harris в своей статье Why RAID 5 stops working in 2009 .

По итогам выбора железа максимальная совокупная ёмкость наших дисков составляет 20Тб (18TiB), поэтому в очередной раз напомним себе о пути к непрерывности бизнеса через философские практики Крепсондо, вздохнем и дружно помянем RAID5.

Окончательный выбор: разборный массив
Итак, я отказываюсь и от аппаратных RAID (дорого), и от ZFS (дорого) и от софтверного RAID5 (медленно и ненадежно). Выбираю FreeNAS с томами UFS на базе технологий GEOM: просто, надежно и при необходимости ремонтируется, как автомат Калашникова. То, что надо.
Добавим USB флэшку для загрузки системы – шпиндельные диски целиком отведем для данных. Мы не хотим, чтобы торчащую снаружи загрузочную флэшку кто-то случайно выдернул, поэтому выбираем бюджетную флэшку с наименьшими габаритами (как потом выяснилось, это было роковое и необдуманное решение: http://habrahabr.ru/post/214803/).

Из вариантов Stripe и Mirror я выбираю, понятное дело, Mirror (т.е. RAID1). Итоговая дисковая система выглядит как набор из нескольких независимых томов-зеркал. Каждое зеркало собрано из пары дисков 2Тб (ограничение контроллера), инициализируется и монтируется независимо. Максимальный объем онлайн хранимых данных на десяти дисках составит около 10Тб в пяти независимых томах (точнее, 9TiB).

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

Добавим сюда один маленький штрих: поскольку используются дешевые потребительские диски, придется при создании томов искусственно занижать объем, чтобы не иметь потом проблем с заменой отказавших дисков новыми (с плавающей около 2Тб емкостью). Оставим в конце технологические «хвосты» для лучшего сна.

О пропускной способности вагона, груженого стриммерными кассетами
С точки зрения архивного хранения не стоит вообще расстраиваться по поводу ёмкости: массив-то у нас разборный. Исчерпав доступный объем хранимых данных на сервере онлайн в томах №№1-5, мы можем вручную отключить самый старый том №1, извлечь его диски, установить два новых диска по 2Тб и инициализировать новый том №6. Старые диски затем можно обуть в USB-конструктив и подключать по требованию бизнеса к тому же серверу FreeNAS, не разбирая при этом весь корпус. Можно их монтировать read-only. При большом желании можно подключить это и к Windows, и к Mac. В любом случае, помните: старый шпиндельный диск лучше по пустякам не трясти, а то от возраста посыплется магнитный песок из гермоблока.

Есть еще интересный сценарий с unionfs : заполненные тома переводить в режим для чтения и подкладывать «вниз» под файловую систему «верхнего» тома, тогда будет иллюзия непрерывности дискового пространства. Правда, unionfs - штука заумная и потому опасная, а вариант с read-only, наверное, единственный более-менее обкатанный.

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

Корпусная инженерия

Подумаем немного о первичном охлаждении, ибо диски наши на 7200rpm будут тепленькими. Находим в корпусе место для обдува отсеков 3.5” и с почти хирургическим трудом приспосабливаем туда наш вентилятор Zalman ZM-F1-FDB на антивибрационных резинках, которые приходится тянуть пальцами через тонкие щели корпуса. Черт бы побрал эти потребительские корпуса с их проходами и щелями…

Вспомнил старую комедию.

Солдата спрашивают: «Почему так плохо видишь?». Тот отвечает: «Ну, есть одна глазная операция, но ее делают через задний проход, а я туда ни одного мужика не подпущу»…

Эксцентрично-зеленый пластик бутылки из-под минеральной воды Карма Дома, торчащий сзади корпуса, уже порядком намозолил глаза. Поэтому разбираем кулер CNPS5700D-Cu, берем с собой воздуховод и идем в продуктовый магазин за покупками. Примерив по очереди бутылки с минеральной водой разных марок, убеждаемся в идеальном совпадении диаметров двухлитровой бутылки Звон Аква с круглой частью воздуховода CNPS5700D-Cu (на одном заводе их отливали что ли?).

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

Ставим в кулер новый вентилятор ZM-F1-FDB 80мм, его гидродинамические подшипники обладают сопоставимым ресурсом, но потише звонких шариковых. В последний момент, само собой, выясняется, что отверстие на корпусе находится на полсантиметра выше, чем надо, поэтому добавляем лепестковую юбку из клейкой ленты, идею которой подсказали авиаконструкторы истребителей с изменямым вектором тяги.

Наше изделие действительно чем-то смахивает на отклоняемое сопло, но выглядит уже не так по-панковски.

Наконец, пришло время разобраться с тем самым местом, где мне десять лет назад не удалось разгадать Великий Китайский Инженерный Замысел. Напомню, речь о задней панельке на разъемы ATX, идущей в комплекте с материнской платой, точнее, о невозможности ее установить вот в это гнездо:

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

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

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

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

Питание
Про блок питания FSP Group ATX-450PNR отзываются скорее положительно, но недостатком считают (ссылка1 , ссылка2) КПД кипятильника и архаичный дизайн в жанре минимализма (отсутствие корректора мощности). Преимущество – надежность (UPD: через полгода к надежности возникли вопросы) и относительно тихий низкооборотный 120мм вентилятор.
Пусковая мощность четырех шпинделей ST2000DM001 ожидается порядка 2.5А x 4 x 12В = 120Вт, что в сочетании с холодной архитектурой Pentium 4 без графики должно с запасом влезть в 250Вт.

Примечательно, что на тайваньском сайте FSP Group мне не удалось найти данный блок питания среди продуктов, но магазины в РФ ими явно не бедствовали. Возникло подозрение, что это специально удешевленный OEM-вариант для рынка СНГ, в котором оторвано всё, что только можно за счет низкого КПД. У нас ведь в стране долгие зимы и избыток электроэнергии, которую мы с удовольствием превращаем неэффективными приборами в уютное тепло домов и офисов.
Короче говоря, несмотря на КПД кипятильника, наш блок выдает пока примерно на 200Вт больше, чем требуется, что не может не радовать. Но есть нюанс, о котором мы напишем в следующих частях нашей истории…

Выводы

  1. Непропорциональный рост ёмкостей накопителей практически похоронил проверенные временем вещи типа RAID5.
  2. В борьбе за время реконструкции массива побеждают новые, высокотехнологичные файловые системы, но они реализуемы только на дорогом железе (из-за ECC памяти).
  3. Построение сервера на хламе было и остается риском; в такой ситуации побеждает рациональная простота, граничащая с примитивом (наподобие разборного массива зеркал).
  4. Архаичному железу - винтажные технологии, но в новой «промдизайнерской» упаковке.

Продолжение следует

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

UPD:
Все части истории про Ещё один NAS своими руками :
часть 1: из того, что было