RHEL 7上的iSCSI目标和启动器配置

时间:2020-03-21 11:45:53  来源:igfitidea点击:

通过RHEL 7上的targetcli配置iSCSI目标。

准备工作

我们有3个VM,分别名为ipa,srv1和srv2.
我们之前设置的ipa服务器将配置为iSCSI目标,而srv1和srv2将是iSCSI客户端。

  • iSCSI目标提供了远程块存储,称为服务器,
  • iSCSI启动器使用该存储,称为客户端。

iSCSI目标安装

在将用作iSCSI目标的IPA服务器上,创建具有100MB逻辑卷的卷组以用于iSCSI:

# vgcreate vg_san /dev/sdb
# lvcreate --name lv_block1 --size 100M vg_san

安装targetcli软件包并启用目标服务以在启动时启动:

# yum install -y targetcli
# systemctl enable target

配置firewalld以允许TCP端口3260上的传入iSCSI通信:

# firewall-cmd --add-port=3260/tcp --permanent
# firewall-cmd --reload

配置iSCSI目标

运行targetcli以配置iSCSI目标:

# targetcli

我们配置目标的计划如下:

  • backstore->块,
  • backstore-> fileio,
  • iscsi(IQN名称),
  • iscsi-> tpg1->门户,
  • iscsi-> tpg1-> luns,
  • iscsi-> tpg1-> acls。

创建两个backstore,block和fileio,并禁用本地文件系统缓存,以降低数据丢失的风险:

 backstores/block create block1 /dev/vg_san/lv_block1 write_back=false
 backstores/fileio create file1 /root/file1.img size=100M sparse=true write_back=false

创建一个IQN(Iscsi合格名称)。

 iscsi/create iqn.2003-01.local.rhce.ipa:target
Created target iqn.2003-01.local.rhce.ipa:target.
Created TPG 1.

在RHEL 7.0上,我们需要创建一个门户,但是,门户配置是在RHEL 7.2上自动创建的。

 iscsi/iqn.2003-01.local.rhce.ipa:target/tpg1/portals create 0.0.0.0 ip_port=3260

为fileio后台存储创建lun:

 iscsi/iqn.2003-01.local.rhce.ipa:target/tpg1/luns create /backstores/fileio/file1

为我们的iSCSI客户端创建两个ACL(srv1和srv2),但不要将先前映射的lun添加到srv1,而lun应该仅对srv2可用:

 iscsi/iqn.2003-01.local.rhce.ipa:target/tpg1/acls create iqn.1994-05.com.redhat:srv1 add_mapped_luns=false
 iscsi/iqn.2003-01.local.rhce.ipa:target/tpg1/acls create iqn.1994-05.com.redhat:srv2

为块后台存储创建一个lun,该lun将可用于两个服务器:

 iscsi/iqn.2003-01.local.rhce.ipa:target/tpg1/luns create /backstores/block/block1

禁用身份验证(无论如何仍应默认禁用):

 iscsi/iqn.2003-01.local.rhce.ipa:target/tpg1 set attribute authentication=0

(可选)设置用户标识和密码。
导航到我们目标的某个ACL:

 iscsi/iqn.2003-01.local.rhce.ipa:target/tpg1/acls/iqn.1994-05.com.redhat:srv1/set auth userid=client password=client

保存配置并退出。

 saveconfig

列出配置:

 ls
o-/....................................................................................... [...]
  o- backstores ............................................................................ [...]
  | o- block ................................................................ [Storage Objects: 1]
  | | o- block1 .......................... [/dev/vg_san/lv_block1 (100.0MiB) write-thru activated]
  | o- fileio ............................................................... [Storage Objects: 1]
  | | o- file1 ................................. [/root/file1.img (100.0MiB) write-thru activated]
  | o- pscsi ................................................................ [Storage Objects: 0]
  | o- ramdisk .............................................................. [Storage Objects: 0]
  o- iscsi .......................................................................... [Targets: 1]
  | o- iqn.2003-01.local.rhce.ipa:target ............................................... [TPGs: 1]
  |   o- tpg1 ............................................................. [no-gen-acls, no-auth]
  |     o- acls ........................................................................ [ACLs: 2]
  |     | o- iqn.1994-05.com.redhat:srv1 ........................................ [Mapped LUNs: 1]
  |     | | o- mapped_lun0 .............................................. [lun1 block/block1 (rw)]
  |     | o- iqn.1994-05.com.redhat:srv2 ........................................ [Mapped LUNs: 2]
  |     |   o- mapped_lun0 .............................................. [lun0 fileio/file1 (rw)]
  |     |   o- mapped_lun1 .............................................. [lun1 block/block1 (rw)]
  |     o- luns ........................................................................ [LUNs: 2]
  |     | o- lun0 ............................................... [fileio/file1 (/root/file1.img)]
  |     | o- lun1 ......................................... [block/block1 (/dev/vg_san/lv_block1)]
  |     o- portals .................................................................. [Portals: 1]
  |

o- 0.0.0.0:3260 ................................................................... [OK]
  o- loopback ....................................................................... [Targets: 0]

重新启动目标并检查其状态:

# systemctl restart target
# systemctl status target

配置iSCSI客户端(启动器)

iSCSI启动器的配置需要安装iscsi-initiator-utils软件包,该软件包包括iscsi和iscsid服务以及“ /etc/iscsi/iscsid.conf”和“ /etc/iscsi/initiatorname.iscsi”配置文件。

在iSCSI客户端srv1和srv2上,安装软件包:

# yum install -y iscsi-initiator-utils

请注意,在iSCSI启动器上,这两项服务都是必需的。
iscsid服务是访问所有涉及的配置文件的主要服务。
iscsi服务是建立iSCSI连接的服务。

# systemctl enable iscsi iscsid

我们配置客户端的计划如下:

  • 配置iSCSI启动器名称,
  • 发现目标
  • 登录目标。

打开文件“ /etc/iscsi/initiatorname.iscsi”进行编辑,然后启动器的名称为iqn.1994-05.com.redhat:srv1.

如果配置了用户名和密码,请将其放入'/etc/iscsi/iscsid.conf'中:

node.session.auth.authmethod = CHAP
node.session.auth.username = client
node.session.auth.password = client

请注意,CHAP身份验证不使用强加密来传递凭据。
如果需要iSCSI数据的安全性,则控制协议的网络侧是保证它的更好方法。
例如,从安全的角度来看,使用隔离的vlan传递iSCSI通信将是更好的实现。

发现目标(ipa服务器在10.8.8.70上):

# iscsiadm -m discovery -t sendtargets -p 10.8.8.70:3260
10.8.8.70:3260,1 iqn.2003-01.local.rhce.ipa:target
# iscsiadm -m discovery -P1
SENDTARGETS:
DiscoveryAddress: 10.8.8.70,3260
Target: iqn.2003-01.local.rhce.ipa:target

Portal: 10.8.8.70:3260,1

Iface Name: default
iSNS:
No targets found.
STATIC:
No targets found.
FIRMWARE:
No targets found.

登录发现的目标:

# iscsiadm -m node -T iqn.2003-01.local.rhce.ipa:target -p 10.8.8.70:3260 --login

检查会话:

# iscsiadm -m session -P3 | less

此时,iSCSI磁盘应该可用。
请注意,由于服务器srv2都映射到服务器,因此它将同时看到iSCSI块磁盘block1和fileio file1.
对于服务器srv1,情况并非如此。

[srv1]# lsblk --scsi|grep LIO
sdb  3:0:0:0    disk LIO-ORG  block1   4.0  iscsi

创建一个文件系统:

[srv1]# mkfs.ext4 -m0 /dev/sdb

创建一个安装点并获取UUID:

[srv1]# mkdir /mnt/block1
[srv1]# blkid | grep sdb
/dev/sdb: UUID="6a1c44d0-3e2f-49fc-85ba-ced3e44bb5b0" TYPE="ext4"

将以下内容添加到'/etc/fstab'中:

UUID=6a1c44d0-3e2f-49fc-85ba-ced3e44bb5b0 /mnt/block1 ext4 _netdev 0 0

挂载iSCSI驱动器:

[srv1]# mount /mnt/block1

我们可以通过以下方式注销或者删除会话:

# iscsiadm -m node -T iqn.2003-01.local.rhce.ipa:target -p 10.8.8.70:3260 --logout
# iscsiadm -m node -T iqn.2003-01.local.rhce.ipa:target -p 10.8.8.70:3260 -o delete

如果出现问题,我们可以停止iscsi.service并删除“/var/lib/iscsi/nodes”下的所有文件以清理所有当前配置。
之后,我们需要重新启动iscsi.service并开始发现并再次登录。