Домашний NAS
2017-01-10 13:57:45    176    0    0
murphy

Привет! Как обычно давно не писал, а писать то особо и не о чем было ;( Все жисть, работа...все такое...
Вообчем хватит приамбулы, итак:

Амбула:

Заметил я, что мне стало не хватать скорости дисковой подсистемы в моем сервере (у меня ESX5.1 на 9240i железке с 4 двух теровыми earx). Тормозит копирование файлов, как по сети, так и внутри виртуалок. Думал я (сначало) купить более дорогую плату рейда, но цена страшно кусалась (по моим запросам). Хотел купить внешнюю хранилку, но там свои проблемы (да и моща тоже денег стоит не маленьких). Поэтому было (мною) решено делать все самому.

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

  1. Корпус: CFI-A7879.
  2. Материнка: ASUS P8H77-I, не нашел ничего формата mini-itx с 6ю разъемами SATA, где хотя бы 2 - sata3
  3. Процессор: Intel Core i5-2390T, наверное (конечно) лишку процессорной мощности, зато TDP=35 Вт
  4. Кулер процессора: Scythe Kozuti, тонкий и тихий
  5. Память: 2 * DIMM DDR3 8192MB, т.к. у меня 4 винты, то ZFS потребует 8 гигов ОЗУ на свою работу (про ZFS далее)
  6. Кэш: 2.5" SATA-3 128Gb OCZ Vertex 4. Опять же, хочу кеш на SSD :)
  7. HDD под систему: 2.5" HITACHI 320Гб, на кэшевый диск жалко ставить систему, а винты для хранения (я думаю) должны быть не связаны с системой.
  8. HDD: Уже купленные WD2000EARX, увы винты щас дороги, так что меня не будут (к тому же они тихие)

Где-то конечно избыток, где-то недостаток, буду шлифовать в процессе.

Операционка:

Выбор мой останавливался на нескольких вариантах:

  • Windows и в ней как ПО старвинд
  • FreeBSD в разных вариантах
  • Что-то сoлярное
  • Специальный дистрибутив для сторажей (FreeNas, nas4free)
  • Линуха

Первый вариант не катит по любому, не люблю я windows. 2 и 3 вариант сильно специфичен, отметается (ну не знаю я настолько сильно солярис или фрю, чтобы медиатомб собрать).Специальные дистрибутивы конечно хороши, но вдруг мне захочется странного? Решил остановиться на последнем варианте, опять же - я же линуксоид (ну пускай только в мечтах, но все таки).

Дистрибутив я выбрал свою любимый - гента ;) Про установки ос и zfs рассказывать не буду, эта процедура 100 раз описана в тырнете, так что проблем никаких с установкой небыло.

Тестирование:

Прочитав массу статей и перебрав интернет я понял, что супер результатов мне не получить. Самая большая проблема будет в винтах. Но ставить что-то более быстрое не хочу ибо они уже есть, а покупать сейчас hdd (без необходимости) не рентабельно.

Тестировал конечно по статье http://habrahabr.ru/post/154235/.
При тесте выявил следующие возможности ускоряюшие доступ:

  • Включаем MTU9000 на сетевухе - процессор (при большом вале) грузится ощутимо меньше
  • zpool с опцией ashift=12 добавляет еще больше скорости
  • zfs logbias latency еще пару мегабайт в секунду
  • zfs atime off - выключим не нужное время доступа
  • zfs sync disabled - самая замечательная опция, скорость подскачила в 1.5 раза, нагрузка на процессор упала раза в 3. Я конечно понимаю, что отключение ZIL (ZFS Intent Log) не очень хорошая идея, но дома в самый раз.

Выводы:

В конечном итоге мне удалось добиться (по шаре nfs) следующих длительных результатов:

  • read 2129 iops, 7505 usec = 7ms
  • write 628 iops, 23400 usec = 23ms
  • Скорость копирования или записи (одним потоком) = 120 мегабайт (причем, что чтения, что запись). Скорее всего это ограничение гигабитного ethernet.

Я думаю это вполне не плохие результаты :)

Почему ZFS ??

Отвечу: давно я хотел этого зверька пощупать, сравнить с нативным lvm. И так, отличия:

  1. Все-таки ZFS это файловая система, поэтому и монтируется все от одного корня, где-то это удобно, где-то нет
  2. Используется все место на пуле для любого тома, что конечно удобно (учитывая возможность ограничить размер тома)
  3. Как и том, легко можно сделать устройство, на котором держать ЛЮБУЮ файловую систему
  4. Про снапшоты вообче молчу, вещь. Особенно в таком использовании:
    • Создаем том для виртуальных машин (ну например по nfs там у нас хранятся vmdk)
    • Создаем снап на какое-то число
    • Имеет полную копию ВСЕХ виртуальных машин на это число!!!!
  5. Встроенное кэширование и настройка параметров лету, тут вообще нет слов (на надо ничего дополнительно делать)
  6. Нативное использование SSD дисков для кэша
  7. RADZ1 (аналог raid5) создается мгновенно и не требует длительной синхронизации
  8. Компилится под любые последние ядра!

Перечислял я все плюсы, теперь минусы:

 

  1. Самый страшный, если упадет - как восстанавливать? Поэтому бекапы, бекапы, бекапы...
  2. Большое использование памяти (на 1Т дискового пространства = 1Г памяти)
  3. Возможно что-то еще? Всегда есть страх столкнуться с неведомым..

Теперь фото:

Pre: Анек в тему

Next: No Post

176
Sign in to leave a comment.
No Leanote account? Sign up now.
0 comments
Table of content