如何在CentOS 8/Rhel 8上配置iSCSI目标和发起者
介绍
如何在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