Недавно перестал использовать FreeNas, где я настроил zfspool с 3 экстентами, которые были разделены через iscsi.
Теперь я использую эти диски на сервере RHEL 7.2 и хочу повторно поделиться существующим zfspool с помощью iscsi (как я делал с FreeNas)
Я установил и настроил zfs, который взял существующий пул:
[root@sycamore ~]# zpool status
pool: STORAGE
state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(5) for details.
scan: none requested
config:
NAME STATE READ WRITE CKSUM
STORAGE ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ata-ST2000DL003-9VT166_5YD2PYT4 ONLINE 0 0 0
ata-WDC_WD20EFRX-68AX9N0_WD-WMC300200707 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
ata-ST2000DL003-9VT166_6YD1FVPV ONLINE 0 0 0
ata-ST32000542AS_6XW1YDN4 ONLINE 0 0 0
errors: No known data errors
[root@sycamore ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel_sycamore-root00 215G 4.0G 211G 2% /
devtmpfs 24G 0 24G 0% /dev
tmpfs 24G 1.3M 24G 1% /dev/shm
tmpfs 24G 9.5M 24G 1% /run
tmpfs 24G 0 24G 0% /sys/fs/cgroup
/dev/sde1 247M 208M 39M 85% /boot
/dev/mapper/rhel_sycamore00-home 699G 193M 699G 1% /home
tmpfs 4.8G 16K 4.8G 1% /run/user/1000
STORAGE 3.6T 1.6T 2.0T 44% /STORAGE
STORAGE/.samba4 2.0T 128K 2.0T 1% /STORAGE/.samba4
Я также настроил цель и портал iscsi, но не уверен, как связать существующие экстенты с целью:
[root@sycamore STORAGE]# ls -l
total 1636815334
-rw-r--r--. 1 root root 1650878054400 Oct 18 17:56 extent
-rw-r--r--. 1 root root 1100585369600 Oct 18 19:31 extent2
-rw-r--r--. 1 root root 1100585369600 Oct 18 17:56 extent3
[root@sycamore STORAGE]# pwd
/STORAGE
[root@sycamore ~]# targetcli
targetcli shell version 2.1.fb41
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/> ls
o- / ...........................................................,.......[...]
o- backstores ....................................................... [...]
| o- block ........................................... [Storage Objects: 0]
| o- fileio .......................................... [Storage Objects: 0]
| o- pscsi ........................................... [Storage Objects: 0]
| o- ramdisk ......................................... [Storage Objects: 0]
o- iscsi ..................................................... [Targets: 1]
| o- iqn.2003-01.org.linux-iscsi.sycamore.x8664:sn.253bc772ce44 . [TPGs: 1]
| o- tpg1 ........................................ [no-gen-acls, no-auth]
| o- acls ................................................... [ACLs: 0]
| o- luns ................................................... [LUNs: 0]
| o- portals ............................................. [Portals: 1]
| o- 192.168.2.10:3260 ......................................... [OK]
o- loopback .................................................. [Targets: 0]
/>
Как я могу выполнить то, что мне нужно?
Вы уже создали цель iSCSI и портал для ее прослушивания, что является необходимым первым шагом.
Вам необходимо определить резервные хранилища в / backstores / block или / backstores / fileio. Это должны быть пути к вашим блочным устройствам для файлов, в зависимости от того, что вы используете.
Их можно создать так:
/backstores/block create name=<name> dev=<path/to/block/device>
После этого для всех соответствующих предварительно созданных резервных хранилищ вам необходимо сопоставить их как LUNS с ACL, который вы определяете в целевом объекте. Первым шагом здесь является создание LUN в целевой группе портала.
/iscsi/<targetname>/tpg1/luns/ create /backstores/block/<name of backstore>
После того, как вы сделаете это для всех соответствующих LUN для этой цели, вам нужно будет создать ACL для того, чтобы ваши инициаторы могли подключаться к вашей цели. Это делается путем указания IQN инициатора в качестве ACL. Это позволит обнаружить и войти в систему.
/iscsi/<targetname>/tpg1/acls/ create <initiator IQN>
После этого сопоставьте LUN-ы с соответствующими ACL-списками. Это делается автоматически по умолчанию и подходит в большинстве сценариев. Используя автоматическое сопоставление, вы должны указать цель для каждого выделенного хранилища и добавить ACL к этой цели, чтобы обеспечить совместное использование LUN в кластере или аналогичном. Если это то, что вы хотите, то все готово. Вы должны иметь возможность подключиться к своим целям.
Однако в необщей среде, где все инициаторы используют одно и то же имя цели (например, сценарий массового развертывания iSCSI с фиксированными настройками микропрограмм), тогда становится полезным вручную сопоставление ограниченных диапазонов LUN для каждого ACL внутри цели. Для этого вам сначала нужно отключить автоматическое сопоставление.
> set global auto_add_mapped_luns=false
/iscsi/<targetname>/tpg1/acls/<initiator IQN>/ create <mapped_lun> <tpg lun or explicit backstore>
В этой команде mapped_lun относится к идентификатору LUN, который вы будете видеть в ACL. Обычно для каждого ACL начинается с нуля. Вы также можете определить резервные хранилища напрямую (через /backstores/block/<name>
) вместо lun, предварительно отображенных в luns/
чтобы не создавать вручную эти сопоставления самостоятельно (и пропустить шаг).