Раннее я писал о том, как настроить LIO iSCSI таргет в CentOS 7. Как вам известно, таргет используется для предоставления хранилища инициатору. Поэтому сегодня хотел бы написать о том, как настроить хранилище на основе программного RAID массива и LVM перед тем как предоставить его инициатору. Софтовый рейд является более дешёвой, но отнюдь не худшей альтернативой привычному рейду, собранного на специальном контроллере. Этот вид рейда обеспечивает точно такую же отказоустойчивость, как и рейд на плате.
Давайте разберёмся, зачем городить такой огород из RAID, LVM, iSCSI, почему попросту не натолкать все диски из хранилища в сервер и не использовать прямо в нём всё это хозяйство?
RAID позволяет избежать потери данных при выходе из строя диска, находящегося в хранилище. При неисправности диска его надо просто вытащить, вставить вместо него новый диск и добавить этот новый диск в рейд. При этом никакие данные никуда не денутся, в худшем случае пока будет отсутствовать диск чуть-чуть пострадает быстродействие.
LVM необходим для упрощения манипуляций с разделами. Эта прослойка позволяет одной командой совершенно безопасно расширить уже существующий раздел. При этом необходимо, чтобы на рейде, поверх которого создан LVM, было свободное место и не важно, где это место находится физически рядом с существующим LVM или между свободным местом и LVM’ом ещё несколько разделов.
iSCSI позволяет держать хранилище отдельно от сервера, а для доступа к хранилищу использовать стандартный Ethernet протокол. Хранилище тот же самый сервер, но на нём устанавливается минимум софта. Преимущества доступа к хранилищу по сети в том, что легко можно использовать хранилище на разных серверах одновременно или в случае необходимости переноса данных на новый сервер, произвести перенос с минимальными затратами времени и энергии.
Для создания софтового рейда на Linux используется программа mdadm. Она создаёт RAID массив, который виден операционной системой как один диск. Для установки mdadm в CentOS необходимо использовать стандартный синтаксис
yum install mdadm -y |
Далее использование mdadm. Создание RAID массива из 5 дисков:
mdadm --create /dev/md0 --level=6 --raid-devices=5 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 |
Как видно, параметры указывают имя (путь) устройства /dev/md0, уровень рейда 6, количество дисков в рейде 5 и перечислены разделы из которых создается RAID. Для создания программного рейда рекомендуется использовать именно разделы на дисках, а не сами диски. Кроме того, разделы желательно делать на 100 МБ меньше размера диска. Этот запас в 100 МБ необходим на случай, если вдруг при замене вышедшего из строя диска, у нового размер будет определяться на несколько МБ меньше, чем у его предшественника и всех остальных дисков, такое может случиться даже с дисками одного производителя и естественно одного объема.
Добавить новый диск в рейд:
mdadm --manage /dev/md0 --add /dev/sdg1 mdadm --manage /dev/md0 --grow --raid-devices=6 |
Сохранить конфигурацию:
mdadm -D -s > /etc/mdadm .conf |
Если необходимо больше, то в интернете предостаточно информации на тему работы с этой программой mdadm
Поверх программного рейда размещается LVM. Сам по себе LVM состоит из трёх «слоёв»:
- Физический том.
- Группа физических томов.
- Логический том.
Вообще, подразумевалось, что один физический том – это один диск, из которого необходимо собрать группу томов, однако, если используется RAID то логичнее использовать весь этот рейд в качестве физического тома LVM, соответственно в группе будет только один том. А уж поверх группы создаются логические тома, которые затем будут предоставлены iSCSI таргетом инициатору в виде LUN. Инициатор после подключения будет видеть их как отдельные диски.
Чтобы установить LVM, выполнить:
yum install lvm2 -y |
Создать физический том, группу томов и логические тома.
pvcreate /dev/md0 vgcreate vg01 /dev/md0 lvcreate -n lv01 -L 250Gt vg01 lvcreate -n lv02 -L 2Tp vg01 |
Чтобы посмотреть результат:
pvdisplay vgdisplay lvdisplay |
Чтобы получить список всех доступных программ управления LVM, необходимо выполнить:
rpm -ql lvm2 | grep /sbin |
После того, как созданы логические тома, можно перейти к организации iSCSI таргета программой targetcli. Ссылка на инструкцию с описанием этого процесса можно найти в самом начале статьи.