Скромный NAS для дома. Собираем из старого сервера домашний NAS с медиаплеером на XPEnology Создание сетевого хранилища дома

Речь в этой заметке пойдет о сетевых накопителях NAS . Создать свое сетевое хранилище NAS не так уж и сложно. Было бы немного желания. И так, желание есть, комплектующие для сборки NAS тоже есть. Приступаем…

Имеющиеся в наличии комплектующие:

  • Материнская плата Gigabyte GA-945GZM-S2
  • Процессор Intel Celeron 420
  • ОЗУ DDR 512 MB
  • Корпус MidiTower ATX Classix Avrora 400W
  • Жесткий диск WD200
  • IDE шлейф
  • SATA шлейф

Кроме того имеется CD привод для установки операционной системы, который будет подключен временно и впоследствии отключен и не войдет в состав NAS .

Хотелось бы обратить внимание, что HDD WD200 будет использован только под систему, но не для хранения информации. Жесткие диски для хранения информации будут установлены в самый последний момент.

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

На втором этапе настраиваем BIOS:

В BIOS (AWARD BIOS) нас интересует настройка, находящаяся в разделе Power Management Setup: AC BAck Function - выбираем из предлагаемого списка Memory

Эта настройка определяет:

  • Должен ли компьютер автоматически загружаться после восстановления напряжения в электросети, если оно пропадало (Full-On)
  • Оставаться в выключенном состоянии (Soft-Off)
  • или вернуться к состоянию, имевшемуся в момент пропадания напряжения в электросети (Memory)

Еще одна настройка на которую обратим внимание, находится в разделе Integrated Peripherals: On-Chip SATA Mode - Выбираем Enhanced (делаем мы это для того, чтобы в случае подключения дополнительных Жестких дисков у нас не возникло никаких непредвиденных проблем с неожиданной сменой канала дисками).

Опция On-Chip SATA Mode конфигурирует современный IDE/SATA-контроллер чипсета:

  • Enhanced - переводит контроллер в расширенный режим, позволяя использовать все имеющиеся каналы SATA и IDE.
  • Combined - задействует два канала SATA и один IDE (в сумме до четырех устройств)
  • Non-Combined - задействует только каналы SATA (максимум те же четыре устройства). Оба последних значения переводят контроллер в совместимый режим.
  • Auto автоматически установит нужный режим, основываясь на типе интерфейса и количестве подключенных накопителей.
  • Disabled вообще отключает стандартный IDE/SATA-контрллера чипсета.

Третий этап: Пришло время установить операционную систему. Для NAS неплохим выбором будет операционная система FreeNAS . Скачать ее можно на официальном сайте http://freenas.org

Использовать будем версию FreeNAS 0.7.2

Скачиваем, записываем на болванку, загружаемся (не забываем выставить в BIOS загрузку с CD , предварительно подключив привод).

Итак перед нами открылось меню Console setup , состоящее из 9 пунктов:

  1. Assign interfaces
  2. Set LAN IP address
  3. Reset WebGUI password
  4. Reset to factory defaults
  5. Ping host
  6. Shell
  7. Reboot system
  8. Shutdown system
  9. Install/Upgrade to hard drive/flash device? etc.


Мы выбираем 9-ый пункт, появляется меню Install & Upgrade .

  • Я выбрал 3-ий пункт Install ‘full’ OS on HDD + DATA + SWAP partition .
  • Далее выскакивает сообщение о том что представляет из себя full инсталяция. Жмем ok,
  • выбираем источник с которого будет производится установка, ok,
  • Выбираем куда будет производиться установка, ok,
  • далее нам предлагается ввести размер раздела под операционную систему, я выбрал 4000,
  • Далее размер SWAP раздела, я выбрал 1000

Установка происходит очень быстро, нам предлагают нажать Enter для продолжения, нажимаем и возвращаемся в меню Install & Upgrade из которого выходим с помощью Exit и попадаем в Console setup , Здесь выбираем 8-ой пункт - Shutdown system . NAS выключается, отключаем привод. Включаем NAS, в BIOS высталяем загрузку с HDD, ибо все равно привод отсутствует.

Загружаемся. По окончании загрузки перед нами появляется меню Console setup . Собственно нам осталось выставить IP адрес нашего сетевого накопителя , выбираем 2-ой пункт меню Set LAN IP address .

Система нам задает еще несколько вопросов. В моем случае ответы были такими:

  • Do you want to use DHCP for this interface - No
  • Enter new LAN IPv4 address - 192.168.1.100 (этот адрес будем вводить в веб-интерфейсе)
  • Enter new LAN subnet mask. …. - 24 (по умолчанию)
  • Enter IPv4 default gateway - ничего не вводил (подключение NAS к сети Интернет не планировалось)
  • Enter DNS IPv4 address - ничего не вводил (подключение NAS к сети Интернет не планировалось)
  • Do you want to configuration IPv6 for this interface? - No

Enter для продолжения и переходим к четвертому этапу настройки NAS.

На четвертом этапе нам надо подключиться к нашему сетевому накопителю через WEB интерфейс. садимся за рабочий компьютер и вводим в браузере IP адрес NAS.

Открывается страничка на которой надо ввести имя пользователя (username) и пароль (password)

По умолчанию в ОС FreeNAS

имя пользователя (username): admin

пароль (password): freenas

Первым делом меняем язык интерфейса на русский, для этого заходим в System -> General и изменяем Language на Russian , не забываем нажать кнопку сохранения Save .

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

Диски -> Управление , Жмем плюсик в веб интерфейсе чтобы добавить новый HDD.

У меня второй диск определился как

  • Имеющаяся файловая система: Unformated

Добавить

применить изменения .

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

  • SATA0: ad4
  • SATA1: ad5
  • SATA2: ad6
  • SATA3: ad7

Внимание: UFS - родная файловая система FreeBSD (основы FreeNAS). Попытки использования файловых систем прочих форматов, таких как FAT, FAT32, EXT2, EXT3 или NTFS могут привести к непредсказуемому поведению, повреждению файлов и потерям данных.

  • Диск: ad4: 1907730MB (WDC WD20EARS-00MVWB0/51.0AB51)
  • Файловая система: UFS(GPT and Soft Updates)

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

Жмем плюсик в веб интерфейсе чтобы добавить новую точку монтирования.

  • Тип: Диск
  • Диск: ad4: 1907730MB (WDC WD20EARS-00MVWB0/51.0AB51)
  • Номер раздела: 1
  • Файловая система: UFS
  • Имя точки монтирования: HDD1 (вы можете называть иначе)

Остальные пункты оставил без изменения, кнопка Добавить

вернулись на предыдущую страницу, жмем применить изменения .

Жесткий диск подключили, теперь осталось организовать доступ к этому диску из сети.

Доступ будем организовывать по стандартному протоколу Windows сетей.

Службы -> CIFS/SMB , галочка Включить

Для простоты доступа я выставил следующие настройки:

  • Аутентификация: Anonymous
  • Кодовая страница DOS: CP866
  • Сервер времени: Нет

Остальные пункты оставил без изменения, кнопка Сохранить и перезапустить

теперь NAS доступен в сети под именем freenas(если конечно вы не изменили это имя), но жесткий диск пока еще не доступен, Для включения доступа переключаемся на закладку Доступные ресурсы , Жмем плюсик в веб интерфейсе чтобы добавить новый ресурс. Я поступил просто и добавил полностью жесткий диск.

Это очередная статья о сборке очередного 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, используйте на сервере теневые копии (

В среднем, очередной пост про 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: лучше еще и серийный номер диска разместить, напечатав его на ленточном термопринтере, а при отсутствии оного просто на полоске бумаги под прозрачной клейкой лентой. Когда дисков больше двух, это бывает очень полезным при спешных и аварийных работах.

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

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

Требования к старому ПК

  • SATA разъемы на материнской плате, так как HDD c этим интерфейсом обладают наилучшим соотношением цена/производите-льность и имеют гораздо больший объем, в отличии от IDE винчес-теров.
  • Количество разъемов для подклю-чения жестких дисков на мате-ринской плате и свободных слотов в корпусе (возможность установить HDD в 5,25-дюймовые отсеки (специальные боксы)) Для сборки HTPC я использую такие боксы с 2-мя слотами под 2.5″ HDD.
  • При недостаточном количестве SATA-штекеров на блоке питания можно воспользоваться специальными переходниками IDE-SATA.

Процедура установки HDD в корпус

Чтобы установить 3,5-дюймовые жесткие диски в 5,25-дюймовые отсеки для оптических приводов поместите их в специальный бокс (см. рис).

Такие корпуса также могут быть выполнены в виде направляющих, которые крепятся с обеих сторон к HDD.

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

Установка программного обеспечения

Для реализации серверного решения будем использовать ПО FreeNAS . Скачайте ISO-образ по ссылке для 32-битной или 64-битной системы и запишите на минимальной скорости на диск CD-R\RW. Если нет болванки можно установить на флешку, как сделать загрузочную флешку написано в . Временно подключите к ПК дисковод (который сняли ранее или воспользуйтесь USB приводом). Зайдите в BIOS и установите в разделе Boot загрузку с дисковода. После установки программного обеспечения и перезапуска ПК запомните его IP-адрес, который будет указан на экране.

Настройка NAS сервера

Подключите NAS-сервер к своей сети. Откройте браузер вашего рабочего компьютера в этой сети и введите в адресной строке: http://»IP-адрес вашего NAS». В появившемся окне введите имя пользователя — admin и пароль — freenas. Перейдите в меню «Storage | Volumes | Create Volume» и выберите жесткие диски, которые будут образовывать RAID-массив. Далее активируйте файловую систему ZFS.

Можно использовать:

  • RAID 0 — дисковый массив повышенной производительности, без отказоустойчивости.
  • RAID 1 — зеркальный дисковый массив, имеет высокую надежность

Будем использовать RAID 1, как более надежный. Теперь нажмите «Add Volume» для форматирования ваших дисков в массив.

Доступ к NAS серверу в локальной сети

Чтобы открыть доступ к серверу перейдите в меню «Services | Control Services», задействуйте службы CIFS и настроить доступ в разделе «Sharing | Windows Shares» . Как и к любому сетевому носителю локальной сети доступ осуществляется с помощью Проводника Windows (например, \\NAS для доступа к корню или \\NAS\Photos для доступа к определенной расшаренной папке). Также можно сделать ярлыки, нажав на кнопку «Подключить сетевой диск» в окне Компьютер (Windows 7) под строкой проводника.

P.S. Вы всегда сможете сделать дополнительный массив, добавив жесткие диски, а также можно настроить доступ для удаленного использования вашего NAS сервера.

Немного информации об опасности использования RAID

RAID — это избыточный массив независимых жестких дисков. RAID — это не система хранения резервных копий, он лишь помогает повысить комфорт доступа к данным. RАID-система представляет собой набор HDD, объединенных в один массив. Если ваш жесткий диск вышел из строя его можно заменить, а после восстановить RAID и ваши данные будут с вами, исключая массив RAID 0.

Недостатки RAID 0

Данный режим дает лишь скорость доступа к данным. В Striping Mode (режим чередования) данные разбиваются на блоки и записываются одновременно на несколько жестких дисков. При поломке одного жесткого диска все данные будут потеряны.

Недостатки RAID 1

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

Недостатки RAID 1 и RAID 5

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

Также неисправный RАID-контроллер может привести к выходу из строя HDD. В RAID-массивах изменения применяются к файлам и при случайном удалении или изменении данных, действия необратимы.

Практически в любой локальной компьютерной сети оказывается востребован файл-сервер . Хранилище данных необходимо и в "самопальной" сети - масштаба дома, деревни, школы, дачного посёлка. Это просто удобно, когда есть отдельное хранилище для "тяжелого" контента - HD-видеофильмов, музыки, ПО и т.д. Но фирменный файл-сервер - удовольствие не из дешевых. Изрядно сэкономить можно, превратив старый ПК в домашний файл-сервер. Для этого потребуется лишь установить специальный софт и настроить его.

Фактически, мы сделаем своими руками NAS (Network Attached Storage) - сетевую систему хранения данных, сетевое хранилище . То есть, компьютер с некоторым дисковым массивом, подключенный к локальной сети и поддерживающий работу по принятым в ней протоколам.

В нашем примере для организации NAS мы используем дистрибутив FreeNAS . FreeNAS - это свободная операционная система для сетевого хранилища . FreeNAS основан на FreeBSD с использованием Samba и PHP, поддерживает software RAID. К нему можно получить доступ по протоколам CIFS (SMB), Apple Mac AFP, FTP, SSH, iSCSI и NFS. Для работы FreeNAS необходим компьютер с процессором i386 или x86-64, с минимум 128 Mб оперативной памяти и 500 Mб дискового пространства. Также требуется возможность загрузки с привода оптических дисков.

Мы рассмотрим установку и настройку 7-й ветки FreeNAS. Поскольку FreeNAS базируется на FreeBSD, список поддерживаемого оборудования для них совпадает. Как показывает практика, для нормальной работы системы требуется хотя бы 512 Мб RAM. Для домашнего NAS 1-2 Гб памяти будет более чем достаточно.

Главный компонент домашнего NAS - жёсткие диски . Понятно, что при возможности стоит выбирать ёмкие HDD с большим буфером и частотой вращения 5400-5900 RPM - они не будут сильно шуметь и нагреваться при работе. Но преимущество описываемой системы как раз в том, что её можно собрать из кучи разнообразных старых винчестеров, объединив их в дисковый массив . При этом для SATA-дисков стоит выставить в BIOS режим совместимости с IDE.

FreeNAS не требует мощной системы - хватит и старого Pentium или Athlon. Если NAS-система собирается "с нуля", достаточно будет платы с чипом Intel Atom и пассивным охлаждением - такая платформа будет тихой, негреющейся и энергоэкономичной. Видеопамять также имеет смысл снизить до минимума. На время установки нам также понадобится CD-привод - потом его можно будет отключить.

Собрав систему, устанавливаем FreeNAS. Качаем ISO-образ системы, пишем его на CD, указываем в BIOS загрузку с оптического привода и перегружаемся. Загрузчик предлагает несколько вариантов запуска системы. Загружаясь в режиме по умолчанию, FreeNAS выводит основное меню.

Выбираем полный (Full) вариант установки и указываем диск, на который будем инсталлировать ОС. Для раздела с ОС желательно выделить примерно 500 Мб дискового пространства. Установка занимает всего пару минут, после чего нужно перезагрузиться . Оптический привод уже можно отключить.

Первым делом следует изменить настройки сетевого интерфейса. Выбираем в меню пункт номер два - в случае, если локальная сеть имеет адресацию, отличную от 192.168.1.0/24. Лучше всего для файл-сервера задать статический IP-адрес - не забудьте только указать адрес основного шлюза и DNS-сервера.

После того, как эти настройки будут применены, монитор и клавиатуру также можно отключить. Далее вся настройка пойдёт только через веб-интерфейс по адресу http://ip-адрес-NAS/ (его мы задали ранее). По умолчанию логин - admin, пароль - freenas.

Войдя под ними, отправляемся в раздел System > General Setup. Там меняем язык интерфейса , выставляем часы, и при необходимости - включаем синхронизацию с NTP-сервером. Сохраняемся и обновляем управляющую страницу. Не забываем поменять пароль для входа в веб-интерфейс, снова сохраняемся, выходим и логинимся заново.

Теперь нужно подключить swap-раздел. Отправляемся в секцию "Диагностика" > "Информация" > "Разделы" и смотрим там информацию о разбивке диска. Наш диск разбит на три раздела разного объёма - для ОС, данных и подкачки. Определяем путь до раздела подкачки. Имя диска в нашем примере - /dev/ad0 (оно видно сверху), по размеру (256 Мб) понятно, что для swap используется третий раздел. Путь к нему будет выглядеть как /dev/ad0s3. Во время установки нам этот путь был показан сразу после форматирования диска . Переходим по пути "Система" > "Дополнительно" > "Файл подкачки ", выбираем тип устройства и указываем путь. Сохраняемся.

Теперь следует добавить в систему диски. Проходим путем "Диски" > "Управление" и кликаем на список. Выбираем в списке требуемый диск. Включаем поддержку SMART. Если используется только один диск (на который и установлена ОС), выбираем UFS with Soft Updates. При добавлении другого, уже отформатированного диска с данными, следует указать соответствующий тип файловой системы . Нажимаем "Добавить".

Если система собрана с использованием ещё не отформатированных дисков, то переходим в раздел "Диски" > "Форматирование", выбираем нужный диск и форматируем его. Специалисты рекомендуют использовать UFS, хотя это и не обязательно.

Далее монтируем все использованные нами HDD. Для этого проходим путем "Диски" > "Точка монтирования", нажимаем плюсик, выбираем в качестве типа "диск", потом собственно накопитель, указываем номер раздела и тип файловой системы, а также вводим имя точки монтирования. Замечу, что для каждого диска они должно быть уникальным. Нажимаем кнопки "Добавить" и "Применить изменения". Базовая установка FreeNAS завершена.

Теперь откроем доступ к NAS по сети. Для этого потребуется включить службу CIFS/SMB (NetBIOS). В настройках меняем имя рабочей группы, имя NAS в сети, выставляем кодировки, включаем сервер времени и разрешаем AIO. Прочие параметры оставляем по умолчанию, после чего жмем "Сохранить и перезапустить". Далее следует добавить как минимум один сетевой ресурс: указываем имя и комментарий, а также путь до него.

Изначально все точки монтирования находятся в каталоге /mnt. Соответственно, путь до корня накопителя выглядит так: /mnt/точка_монтирования/ (в нашем случае - /mnt/data/). При настройке рекомендуется создать в корне диска несколько папок и уже их добавлять в сетевые ресурсы. Если NAS содержит несколько дисков, всех их следует "расшарить" аналогичным образом.

Теперь в сетевом окружении Windows виден созданный файл-сервер с полным доступом. Чтобы управлять файлами и папками прямиком из веб-интерфейса, применяем файл-менеджер из раздела "Дополнительно". Логин и пароль для него аналогичны таковым у пользователей FreeNAS.

SMB-ресурсы используются в локальной сети; для внешнего доступа следует включить FTP-сервер . Соответственно, на роутере нужно открыть 21-й TCP-порт, а также включить DDNS-службу (присутствует в составе FreeNAS). В параметрах службы FTP разрешаем вход только авторизованных пользователей. Сохраняем настройки.

Управление пользователями - через раздел "Доступ" > "Пользователи". Для доступа пользователя к FTP-серверу указываем в качестве основной группы ftp.

В случае с NAS для домовой сети (как в нашем случае) также стоит включить встроенный во FreeNAS Bittorrent-клиент Transmission. В его настройках указываем папку, куда будут складываться закачиваемые файлы. Затем выбираем каталог для отслеживания torrent-файлов - как только в него будет закинут torrent, Transmission автоматически добавит закачку. Ссылка на веб-интерфейс Bittorrent-клиента по умолчанию выглядит как http://ip-адрес-NAS:9091/.

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

Когда всё настроено, Windows легко определяет NAS как сетевое медиаустройство и позволяет напрямую слушать с него музыку, просматривать видео и картинки .

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

Виктор ДЕМИДОВ