第17章 配置iSCSI服务端

  • 内容
  • 评论
  • 相关

iSCSI技术在工作形式上分为服务端(target)与客户端(initiator)。iSCSI服务端即用于存放硬盘存储资源的服务器,它作为前面创建的RAID磁盘阵列的存储端,能够为用户提供可用的存储资源。iSCSI客户端则是用户使用的软件,用于访问远程服务端的存储资源。

配置好Yum软件仓库后安装iSCSI服务端程序以及配置命令工具。通过在yum命令的后面添加-y参数,在安装过程中就不需要再进行手动确认了:

[root@rhel7 ~]# yum -y install targetd targetcli

安装完成后启动iSCSI的服务端程序targetd,然后把这个服务程序加入到开机启动项中,以便下次在服务器重启后依然能够为用户提供iSCSI共享存储资源服务:

[root@rhel7 ~]# systemctl start targetd

[root@rhel7 ~]# systemctl enable targetd

配置iSCSI服务端共享资源。targetcli是用于管理iSCSI服务端存储资源的专用配置命令,它能够提供类似于fdisk命令的交互式配置功能,将iSCSI共享资源的配置内容抽象成”目录”的形式,我们只需将各类配置信息填入到相应的”目录”中即可。这里的难点主要在于认识每个”参数目录”的作用。当把配置参数正确地填写到”目录”中后,iSCSI服务端也可以提供共享资源服务了。

在执行targetcli命令后就能看到交互式的配置界面了。在该界面中可以使用很多Linux命令,比如利用ls查看目录参数的结构,使用cd切换到不同的目录中。/backstores/block是iSCSI服务端配置共享设备的位置。我们需要把刚刚创建的RAID 5磁盘阵列md0文件加入到配置共享设备的”资源池”中,并将该文件重新命名为disk0,这样用户就不会知道是由服务器中的哪块硬盘来提供共享存储资源,而只会看到一个名为disk0的存储设备。

[root@rhel7 ~]# targetcli

/> ls

/> cd /backstores/block

/backstores/block> create disk0 /dev/md0

/backstores/block> cd /

/> ls

创建iSCSI target名称及配置共享资源。iSCSI target名称是由系统自动生成的,这是一串用于描述共享资源的唯一字符串。稍后用户在扫描iSCSI服务端时即可看到这个字符串,因此我们不需要记住它。系统在生成这个target名称后,还会在/iscsi参数目录中创建一个与其字符串同名的新”目录”用来存放共享资源。我们需要把前面加入到iSCSI共享资源池中的硬盘设备添加到这个新目录中,这样用户在登录iSCSI服务端后,即可默认使用这硬盘设备提供的共享存储资源了。

/> cd iscsi

/iscsi> create

/iscsi> cd iqn.2003-01.org.linux-iscsi.rhel7.x8664:sn.a70a7d2675c7/

/iscsi/iqn.20….a70a7d2675c7> ls

/iscsi/iqn.20….a70a7d2675c7> cd tpg1/luns

/iscsi/iqn.20…5c7/tpg1/luns> create /backstores/block/disk0

设置访问控制列表(ACL)。iSCSI协议是通过客户端名称进行验证的,也就是说,用户在访问存储共享资源时不需要输入密码,只要iSCSI客户端的名称与服务端中设置的访问控制列表中某一名称条目一致即可,因此需要在iSCSI服务端的配置文件中写入一串能够验证用户信息的名称。acls参数目录用于存放能够访问iSCSI服务端共享存储资源的客户端名称。建议在刚刚系统生成的iSCSI target后面追加上类似于:client的参数,这样既能保证客户端的名称具有唯一性,又非常便于管理和阅读:

设置iSCSI服务端的监听IP地址和端口号。位于生产环境中的服务器上可能有多块网卡,那么到底是由哪个网卡或IP地址对外提供共享存储资源呢?这就需要我们在配置文件中手动定义iSCSI服务端的信息,即在portals参数目录中写上服务器的IP地址。接下来将由系统自动开启服务器192.168.38.10的3260端口将向外提供iSCSI共享存储资源服务:

配置妥当后检查配置信息,重启iSCSI服务端程序并配置防火墙策略。在参数文件配置妥当后,可以浏览刚刚配置的信息,确保与下面的信息基本一致。在确认信息无误后输入exit命令来退出配置。注意,千万不要习惯性地按Ctrl + C组合键结束进程,这样不会保存配置文件,我们的工作也就白费了。最后重启iSCSI服务端程序,再设置firewalld防火墙策略,使其放行3260/tcp端口号的流量。

/iscsi/iqn.20…/tpg1/portals> ls /


/iscsi/iqn.20…/tpg1/portals> exit

[root@rhel7 ~]# systemctl restart targetd

[root@rhel7 ~]# firewall-cmd –permanent –add-port=3260/tcp

[root@rhel7 ~]# firewall-cmd –reload