wiki:linux/cheap-nas

Version 9 (modified by root, at 2015-04-17T09:16:44Z) (diff)

--

хранилище iscsi zfs для нищебродов

синопсис

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

кроме того, после нескольких попыток установить FreeBSD выяснилось, что грузится она с этого контроллера только с zfs зеркала. если делать raidz2 или stripe из mirror, то zfsloader по какой-то причине не видит дисков.

поскольку из всех линуксов наибольший опыт работы у меня с CentOS, то я решил остановиться на нём, а именно на версии 6.6, как последней версии без systemd, который ещё предстоит изучать.

установка

перед установкой необходимо дать возможность операционной системе получить доступ до дисков. hp smartarray p410 не умеет jbod, а в рамках использования zfs возможности контроллера по работа с дисковыми массивами мне неинтересны. поэтому придётся обойтись костылём: сделать из каждого диска отдельный массив raid0.

внятного описания как грузить линукс с zfs мне найти не удалось, поэтому грузиться я буду с ext4. первые два диска я подготовил вот так:



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


если выбрать что-то другое, то ничего не загрузится: после инициализации рейда будет просто чёрный экран с одним мигающим курсором. хотя на виртуальной машине с обычными sas дисками работает, даже если загрузчик записать на md10. видимо, особенность контроллера hp smartarray p410 - не такой он уж и smart.

конфигурирование

система

после установки сразу стоит сделать yum update -y, поскольку пакет zfs on linux предназначен для последней версии ядра и на старьё не установится.

zfs занимает весь объём оперативной памяти для кэша (arc) и в некоторых случая может не успеть освободить часть памяти, необходимую для работы софта. чтобы ядро в этом случае не начало геноцид приложений или служб, в систему нужно добавить swap а так же ещё два зеркала для раздела /boot (кашу маслом не испортишь):

yum install -y gdisk
for i in c d; do
 sgdisk \
  -n 1:2048:1050623 /dev/sd${i} \
  -t 1:fd00 /dev/sd${i} \
  -n 2:1050624:65990656 /dev/sd${i} \
  -t 2:fd00 /dev/sd${i}
done
mdadm --create /dev/md22 --level=1 --raid-devices=2 /dev/sdс2 /dev/sdd2

:

mdadm --create /dev/md22 --level=1 --raid-devices=2 /dev/sd[cd]2
grub-install --root-directory=/ /dev/sdc

for i in a b c d; do
 grub-install --root-directory=/ /dev/sd${i}1
done


zfs

scst

от выбора iscsi target под linux может закружиться голова, но за меня их уже сравнили, поэтому я этого делать не буду, а поверю на слово и сразу выберу scst.

ядро

полезные ссылки:

  1. http://habrahabr.ru/post/200466/;
  2. http://habrahabr.ru/post/209460/;
  3. http://habrahabr.ru/post/209666/.

Attachments (2)

Download all attachments as: .zip