Не нашел нормальной статьи как из говна и палок собрать СХД для ESXI от вмвари, так что распишу сам как же это делается.
Для начала нужно СХД.
Подготовка iSCSI-хранилища
Назовем это сервер-хранилище, чтобы не путать с серверами вмвари.
Это может быть любой комп, желательно сервер, желательно с рейдом. Я поставил на него Debian, потому что я люблю дебиан.
Сразу хинт: в рабочей обстановке на сервере скорее всего не будет интернета, поэтому для установки софта лучше развернуть отдельный дебиан на сервере (виртуалке) с доступом и в инет и в локалку, поставить на него apt-cacher-ng, а на нашей разворачиваемой хранилке создать файл «/etc/apt/apt.conf.d/66proxy» с содержимым
- Acquire::http { Proxy "http://IP:3142"; }
Тогда конкретно apt будет качать все через этот «прокси» и не придется настраивать настоящую проксю, которая скорее всего не нужна а может и противоречить безопасности.
Однако про iSCSI. Ставим единственный необходимый пакет:
apt update && apt install tgt
После этого добавляем конфиг
- <target iqn.2019-10.server1.domain.local:lun1>
- scsi_id IET 00010001
- controller_tid 1
- lun 1
- backing-store /dev/mapper/server1-storage
- </target>
Что тут почем:
iqn.2019-10.server1.domain.local:lun1 — тут iqn.2019-10 — это стандартное начало с указанием даты создания луна например; storage1.server1.local — адрес нашего сервера; lun1 — первый (и единственный) лун. Фактически во всей этой строке можно писать значения от балды, они несут скорее идентификационное значение для нас.
«scsi_id IET 00010001» , «controller_tid 1» и «lun 1» — айдишник луна, айдишник контроллера луна и номер луна, все идут в связке и имеют важное значение, если в планах подключение нескольких импровизированных серверов-хранилищ к серверу с вмварью. Чтобы вмварь не подумала что ваши два (три, пять, двадцать два) сервера-хранилища содержат один и тот же лун, все эти номера должны быть уникальны. Если у вас по одному луну на хранилище — просто нумеруйте их последовательно: 00010001, 1, 1 — для первого сервера-хранилища; 00020001, 2, 2 — для второго; 00030001, 3, 3 — для третьего и т.д.
backing-store — неотформатированное блочное устройство, в моем случае том LVM. Имя должно быть уникально, разумеется, в пределах сервера-хранилища.
В моем случае я настраиваю два хранилища, так что вот конфиг второго
- <target iqn.2019-10.server2.domain.local:lun1>
- scsi_id IET 00020001
- controller_tid 2
- lun 2
- backing-store /dev/mapper/server2-storage
- </target>
Собственно, всё. Стоит только уточнить — сервер-хранилище и esxi-сервер должны быть в одной подсети, по крайней мере если у вас ESXI не одной из последних версий, которые научились в машрутизируемый iSCSI. Я буду использовать старенький уже ESXI 5, так что для моего случая это замечание справедливо.
Настройка сервера ESXI
Итак, у меня отдельно стоящий сервер ESXI без — это важно — железного iSCSI-адаптера. Если у вас они есть и вмварь их видит (как на картинке ниже) — стоит использовать их, если нет — нажимайте синюю ссылку Add над списком:
После нажатия, вам должны предложить добавить софтварный iSCSI-адаптер
Окей, добавили
Заходим в свойства и добавляем интерфейс из виртуального свича. Замечу, что эта штука не поддерживает аггрегированные физические интерфейсы и откажется добавлять виртуальный, если у него в конфиге прописано более одного физического.
Дальше переходим на вкладку Dynamic Discovery и добавляем айпишники серверов-хранилищ (порт по умолчанию)
Закрываем окна, соглашаемся обновить список лунов и вуаля — видим по два имени на одно однолунное хранилище (имя луна имя контроллера). Обратите внимание — айдишники луна и контроллера входят в имя (к id контроллера дописывается «0000»), а номер луна — показывается в графе LUN.
Теперь остается через Storage — Add storage превратить луны в хранилища VMware