使用来自旧 Freenas 的现有卷在 RHEL 7 上进行 iSCSI 配置

使用来自旧 Freenas 的现有卷在 RHEL 7 上进行 iSCSI 配置

最近停止使用 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/以避免必须手动创建这些映射(并跳过一个步骤)。

相关内容