最近停止使用 FreeNas,其中我设置了一个具有 3 个范围的 zfspool,这些范围通过 iscsi 共享。
我现在在 RHEL 7.2 服务器中使用这些磁盘,并想使用 iscsi 重新共享现有的 zfspool(就像我对 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]
/>
我怎样才能完成我需要做的事情?
答案1
您已经创建了 iSCSI 目标和供其监听的门户,这是必要的第一步。
您需要在 /backstores/block 或 /backstores/fileio 中定义备用存储。无论您使用哪个,这些都应该是文件块设备的路径。
它们可以像这样创建:
/backstores/block create name=<name> dev=<path/to/block/device>
对所有相关的预创建后备存储执行此操作后,您需要将它们作为 LUN 映射到您在目标内定义的 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 启动方案),则手动映射目标内每个 ACL 的有限范围的 LUN 变得有用。为此,您必须首先禁用自动映射。
> set global auto_add_mapped_luns=false
/iscsi/<targetname>/tpg1/acls/<initiator IQN>/ create <mapped_lun> <tpg lun or explicit backstore>
在该命令中,mapped_lun 指的是您将在 ACL 中看到的 LUN ID。通常每个 ACL 都从零开始。您也可以直接定义后端存储(通过/backstores/block/<name>
),而不是预先映射的 LUN,luns/
以避免必须手动创建这些映射(并跳过一个步骤)。