Version 11 (modified by root, at 2015-04-17T10:02:29Z) (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 -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 mkswap -L swap /dev/md22
допишу строчку про swap в /etc/fstab:
LABEL=swap swap swap defaults 1 3
и выполню swapon -a, чтобы swap подцепился.
во время установки grub был записан в загрузчик только первого диска. мы все умираем и этот диск когда-то тоже умрёт, поэтому grub нужно записать в загрузчики остальных дисков, чтобы сервер мог загрузиться с любого диска. для этого в /boot/grub/device.map я напишу:
(hd0) /dev/sda (hd1) /dev/sdb (hd2) /dev/sdc (hd3) /dev/sdd
и выполню:
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
for i in a b c d; do sgdisk -n 3:46649344:5859649343 /dev/sd${i} done
scst
от выбора iscsi target под linux может закружиться голова, но за меня их уже сравнили, поэтому я этого делать не буду, а поверю на слово и сразу выберу scst.
ядро
полезные ссылки:
Attachments (2)
- grub.png (66.8 KB) - added by root at 2015-04-17T07:53:41Z.
- anaconda-disk-layout.png (69.0 KB) - added by root at 2015-04-17T09:19:02Z.
Download all attachments as: .zip