如何在CentOS 8/Rhel 8上配置iSCSI目标和发起者

时间:2020-02-23 14:30:17  来源:igfitidea点击:

介绍

如何在CentOS 8/Rhel 8上设置iSCSI目标?
在REACH中有CentOS 8,是时候最大限度地利用它在组织或者实验室中运行珍贵和重要的服务。
其中我们将在CentOS 8/Rhel 8 Linux服务器上安装和配置iSCSI目标和启动器。
设置为单个服务器,作为目标,另一个服务器作为下图所示的另一个服务器。
让我们开始

第1步:更新CentOS/RHEL服务器

确保我们在更新的CentOS/RHEL服务器上执行此设置。

$sudo dnf update
 CentOS-8 - AppStream                                                                                                       588 kB/s | 6.3 MB     00:10    
 CentOS-8 - Base                                                                                                            578 kB/s | 7.9 MB     00:13    
 CentOS-8 - Extras                                                                                                          511  B/s | 2.1 kB     00:04    
 Dependencies resolved.
 =========================================================================================================================================================== Package                                       Arch                      Version                                           Repository                 Size 
 ===========================================================================================================================================================Installing:
  kernel                                        x86_64                    4.18.0-80.11.2.el8_0                              BaseOS                    424 k 
  kernel-core                                   x86_64                    4.18.0-80.11.2.el8_0                              BaseOS                     24 M 
  kernel-modules                                x86_64                    4.18.0-80.11.2.el8_0                              BaseOS                     20 M

第2步:确保SELinux在实施模式下:

确认selinux状态

$getenforce
Enforcing

由于此设置介绍了SELinux的配置,请将其保持在实施模式下运行。

第3步:在CentOS 8/Rhel 8上安装TargetCli包

iSCSI目标的包可作为CentOS 8/Rhel 8默认Appstream存储库上的TargetCli提供。
通过运行命令来安装它:

sudo dnf -y install targetcli

第4步:检查系统上的可用空间

这是为了确保有足够的磁盘空间或者可用于分配的块。
建议为此设置不同的分区,以便在不干扰核心CentOS文件和系统的情况下更容易管理。

$df -hT
 Filesystem          Type      Size  Used Avail Use% Mounted on
 devtmpfs            devtmpfs  365M     0  365M   0% /dev
 tmpfs               tmpfs     380M     0  380M   0% /dev/shm
 tmpfs               tmpfs     380M   10M  370M   3% /run
 tmpfs               tmpfs     380M     0  380M   0% /sys/fs/cgroup
 /dev/mapper/cl-root xfs        27G  1.6G   26G   6% /
 /dev/sda1           ext4      976M  159M  751M  18% /boot
 tmpfs               tmpfs      76M     0   76M   0% /run/user/1000

如果我们在服务器上有辅助磁盘,我建议我们使用它。

第5步:在CentOS 8/Rhel 8上配置iSCSI目标

在已配置的磁盘中创建一个文件夹,例如辅助磁盘的/var /或者挂载点或者raid设备。

sudo mkdir /var/targetdisk01

现在让我们进入TargetCli管理控制台以创建我们的目标

$sudo su 
# targetcli
targetcli shell version 2.1.fb49
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

执行LS检查其内容

 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: 0]
   o- loopback …………………………………………………………………………………………… [Targets: 0]

一切都是空的。
除此之外,我们会注意到内容中的第一件事是背洞。
Hisstores此处有助于提供不同的方式,以便在本地保留数据,以后将稍后导出或者可用于诸如发起者的外部系统。
BackStores的可用选项是块,fileio,pscsi和ramdisk。

可以轻松猜测的块BackStore是一个Linux块设备,如硬盘驱动器,如/dev/sda。
如果目标中有磁盘,则可以使用此选项。
另一方面,Fileio BackStore是使用预定义大小创建的文件系统上的普通文件。
W应在我们的设置中使用此选项。
通常,块后退比单个文件更好。

让我们创建一个Fileio BackStore为5GB:

在TargetCli控制台上导航到BackStores/FileIO并创建BackStore。

 cd backstores/fileio
/backstores/fileio> create targetdisk1 /var/targetdisk01/targetdisk1.img 5G                                                                                
Created fileio targetdisk1 with size 5368709120

发布ls命令以检查它是否已创建

/backstores/fileio> ls
 o- fileio ……………………………………………………………………………………….. [Storage Objects: 1]
   o- targetdisk1 …………………… [/var/targetdisk01/targetdisk1.img (5.0GiB) write-back deactivated]
     o- alua …………………………………………………………………………………………. [ALUA Groups: 1]
       o- default_tg_pt_gp ……………………………………………………. [ALUA state: Active/optimized]

创建iSCSI目标

为了创建iSCSI目标,我们必须进入我们服务器中的iSCSI路径。

/backstores/fileio> cd /iscsi
/iscsi>

在iSCSI路径内,现在可以使用名称创建iSCSI目标。
命名约定是标准的,它如下所示:

[ iqn.(year)-(month).(reverse of domain name):(any name you prefer) ].

我们的域名是onIrad.com,所以反向是com.onitoad。
对你的同样做。
让我们继续命名我们的目标。

iqn.2019-11.theitroad.com:GeeksTarget1

创建目标

/iscsi> create iqn.2019-11.theitroad.com:GeeksTarget1
 Created target iqn.2019-11.theitroad.com:geekstarget1.
 Created TPG 1.
 Global pref auto_add_default_portal=true
 Created default portal listening on all IPs (0.0.0.0), port 3260.

发出ls命令以确认所做的更改

/iscsi> ls
 o- iscsi ……………………………………………………………………………………………….. [Targets: 1]
 o- iqn.2019-11.theitroad.com:geekstarget1 ………………………. [TPGs: 1]
 o- tpg1 ……………………………………………………………………………………. [no-gen-acls, no-auth]
 o- acls ……………………………………………………………………………………………… [ACLs: 0]
 o- luns ……………………………………………………………………………………………… [LUNs: 1]
 | o- lun0 …………………. [fileio/targetdisk1 (/var/targetdisk01/targetdisk1.img) (default_tg_pt_gp)]
  o- portals ………………………………………………………………………………………… [Portals: 1]
  o- 0.0.0.0:3260 …………………………………………………………………………………………. [OK]

创建一个LUN.

iSCSI LUN是一个逻辑存储单元。
目标可以向iSCSI客户端提供一个或者多个LUN,WHOSIES与iSCSI服务器启动连接。
导航到在上一个命令中创建的目标门户组(TPG)。
注意"创建TPG 1"从上面。

/iscsi> cd iqn.2019-11.theitroad.com:geekstarget1/tpg1/luns 
/iscsi/iqn.20…et1/tpg1/luns>

然后从我们之前创建的TargetDisk1创建LUN。
在这一步中使用你的。

/iscsi/iqn.20…et1/tpg1/luns> create /backstores/fileio/targetdisk1 
Created LUN 0.

发布ls命令要检查

/iscsi/iqn.20…et1/tpg1/luns> ls
o- luns …………………………………………………………………………………………………… [LUNs: 1]
  o- lun0 ………………………………………. [fileio/targetdisk1 (/var/targetdisk01/targetdisk1.img) (default_tg_pt_gp)]

配置访问控制列表(ACL)

访问控制列表将确保只有已知的启动器将连接到我们的目标。
为此,Client/Initiator上的此/etc/iscsi/initiatiatorname.iscsi文件具有如下所示的一行。
我们将在我们的ACL中使用它。
可以编辑名称以适合环境。

## This is file in your initiator
$sudo vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2019-11.com.theitroad:initiator1

虽然仍然在与上面的路径上导航到ACL。

/iscsi/iqn.20…starget1/tpg1> cd acls
/iscsi/iqn.20…et1/tpg1/acls>

然后使用ACL路径中启动器的IQN运行以下内容

/iscsi/iqn.20…et1/tpg1/acls> create iqn.2019-11.com.theitroad:initiator1
Created Node ACL for iqn.2019-11.com.theitroad:initiator1
Created mapped LUN 0.

设置userid和密码

导航到ACL中创建的新IQN,然后在其向目标发送请求时设置用户名和密码以验证发起者。

/iscsi/iqn.20…et1/tpg1/acls> cd iqn.2019-11.com.theitroad:initiator1
/iscsi/iqn.20…ks:initiator1>
/iscsi/iqn.20…ks:initiator1> set auth userid=initiator1
 Parameter userid is now 'initiator1'.
/iscsi/iqn.20…ks:initiator1> set auth password=gai0daeNgu ##Use strong password here
 Parameter password is now 'gai0daeNgu'.
/iscsi/iqn.20…ks:initiator1>

让我们导航到/iSCSI并确认我们的所有设置是否完全完好,然后通过退出保存

/iscsi/iqn.20…ks:initiator1> cd /iscsi/
 /iscsi> ls
 o- iscsi ……………………………………………………………………………………………….. [Targets: 1]
 o- iqn.2019-11.theitroad.com:geekstarget1 ………………………………………………. [TPGs: 1]
 o- tpg1 ……………………………………………………………………………………. [no-gen-acls, no-auth]
 o- acls ……………………………………………………………………………………………… [ACLs: 1]
 | o- iqn.2019-11.com.theitroad:initiator1 ………………………………………………….. [Mapped LUNs: 1]
 | o- mapped_lun0 …………………………………………………………………. [lun0 fileio/targetdisk1 (rw)]
  o- luns ……………………………………………………………………………………………… [LUNs: 1]
 | o- lun0 …………………………………. [fileio/targetdisk1 (/var/targetdisk01/targetdisk1.img) (default_tg_pt_gp)]
 o- portals ………………………………………………………………………………………… [Portals: 1]
 o- 0.0.0.0:3260 …………………………………………………………………………………………. [OK]

尽可能证明,一切都很好。
通过退出保存

/iscsi> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json

如果运行防火墙,请启用目标并设置防火墙规则。

$sudo systemctl enable target
Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /usr/lib/systemd/system/target.service.
## Set the firewall rules as below
$sudo firewall-cmd --add-service=iscsi-target --permanent
success
$sudo firewall-cmd --reload
success

第6步:配置iSCSI启动器

剩下的步骤是配置我们的发起者并使用这些资源。
查看相关教程

如何在CentOS 8/Rhel 8上配置iSCSI Initiator 8