= хранилище iscsi zfs для нищебродов == синопсис по результатам посещения магазинов имеется четыре [http://market.yandex.ru/product/10718570 жёстких диска], одна [http://market.yandex.ru/product/10949785 нормальная ssd], две ssd [http://google.com/search?q=SSD2SC120G709A104-43227894 ниочень], [http://ebay.com/itm/261448063080 сервер] с резервным [http://ebay.com/itm/110971415802 блоком питания], [http://ebay.com/itm/121137400203 батарейкой для контроллера] и [http://ebay.com/itm/351127460049 корзинами для дисков]. к великому сожалению, устанавливать на сервер FreeBSD лишено смысла, т.к. под неё нет управления контроллером. в случае выхода из строя жёсткого диска для его замены весь nas придётся перегружать, чтобы добавить новый диск. кроме того, после нескольких попыток установить FreeBSD выяснилось, что грузится она с этого контроллера только с zfs зеркала. если делать raidz2 или stripe из mirror, то zfsloader по какой-то причине не видит дисков. поскольку из всех линуксов наибольший опыт работы у меня с CentOS, то я решил остановиться на нём, а именно на версии 6.6, как последней версии без systemd, который ещё предстоит изучать. == установка перед установкой необходимо дать возможность операционной системе получить доступ до дисков. hp smartarray p410 не умеет jbod, а в рамках использования zfs возможности контроллера по работа с дисковыми массивами мне неинтересны. придётся обойтись костылём: сделать из каждого диска отдельный массив raid0. внятного описания как грузить линукс с zfs мне найти не удалось, поэтому грузиться я буду с ext4. первые два диска я подготовил вот так:[[br]][[br]] [[Image(anaconda-disk-layout.png​)]] [[br]][[br]] когда спросят про то, куда писать загрузчик, то нужно выбирать вот такую схему:[[br]][[br]] [[Image(grub.png)]] [[br]] если выбрать что-то другое, то ничего не загрузится: после инициализации рейда будет просто чёрный экран с одним мигающим курсором. хотя на виртуальной машине с обычными sas дисками работает, даже если загрузчик записать на `md10`. видимо, особенность контроллера hp smartarray p410 - не такой он уж и smart. == конфигурирование === система после установки сразу стоит сделать `yum update -y`, поскольку пакет zfs on linux предназначен для последней версии ядра и на старьё не установится. zfs занимает весь объём оперативной памяти для кэша (arc) и в некоторых случаях может не успеть освободить часть памяти, необходимую для работы софта. в этом случае ядро начнёт геноцид приложений и служб, а чтобы этого не произошло в систему нужно добавить swap. помимо этого на оставшиеся два диска я добавлю ещё зеркала для раздела /boot, кашу маслом не испортишь: {{{ #!bash yum install -y gdisk for i in c d; do sgdisk -g \ -n 1:2048:1138687 /dev/sd${i} \ -t 1:fd00 /dev/sd${i} \ -n 2:1138688:46649343 /dev/sd${i} \ -t 2:fd00 /dev/sd${i} \ done mdadm --grow /dev/md10 \ --raid-devices=4 \ --add /dev/sdc1 \ --add /dev/sdd1 mdadm --create /dev/md22 \ --level=1 --raid-devices=2 \ /dev/sdс2 \ /dev/sdd2 }}} во время установки grub был записан в загрузчик только первого диска. мы все умираем и этот диск когда-то тоже умрёт, поэтому grub нужно записать в загрузчики остальных дисков, чтобы сервер мог загрузиться. для этого в /boot/grub/device.map я напишу: {{{ #!text (hd0) /dev/sda (hd1) /dev/sdb (hd2) /dev/sdc (hd3) /dev/sdd }}} и выполню: {{{ #!bash for i in a b c d; do grub-install --root-directory=/ /dev/sd${i} grub-install --root-directory=/ /dev/sd${i}1 done }}} === zfs {{{ #!bash for i in a b c d; do sgdisk -n 3:46649344:5859649343 /dev/sd${i} done }}} === scst от выбора iscsi target под linux может закружиться голова, но за меня их уже [#link1 сравнили], поэтому я этого делать не буду, а поверю на слово и сразу выберу scst. === ядро полезные ссылки: 1. [=#link1 http://habrahabr.ru/post/200466/]; 1. http://habrahabr.ru/post/209460/; 1. http://habrahabr.ru/post/209666/.