系统环境
# 操作系统
不做具体限制,实验环境是CentOS Linux release 7.4.1708 (Core)发行版。
但是,任何一个系统都可以,这是在细节或者某些文件的位置上存在差异。
安装软件包
#!/bin/sh ################################################################################ # CentOS ################################################################################ yum install -y iscsi-initiator-utils.x86_64 ################################################################################ # Debain ################################################################################ apt-get update apt-get install open-iscsi
发现目标
执行如下命令,来发现主机上的目标:
#!/bin/sh # 单纯的发现目标 iscsiadm --mode discovery --type sendtargets --op nonpersistent --portal 10.10.50.11 # 不建议:将全部目标写入数据库(iSCSI自带的数据库) # 该命令同时会: # 在Debian中,在/etc/iscsi/nodes/下生成配置文件; # 在CentOS中,在/var/lib/iscsi/nodes/下生成配置文件; # 每个「LUN」都有对应的配置文件。 # !!!每次执行这个命令,原有配置就会被覆盖。 iscsiadm --mode discovery --type sendtargets --op update --portal 10.10.50.11 # 将特定的LUN写入数据库 # 该命令将创建特定的数据库文件 # 这是要登录的LUN,如果不写入后面无法登录。 iscsiadm --mode node --op new -T iqn.2002-10.com.infortrend:eonnas.eonnas:pro:510.dfwsnas.test-mysql-master-02.e1000g0 \ --portal 10.10.50.11
修改配置
修改配置文件,比如自动登录、认证等等信息:
################################################################################ # 配置自动挂载 ################################################################################ node.startup = automatic ################################################################################ # 认证方式一:单向认证 ################################################################################ # Enable CHAP Authentication node.session.auth.authmethod = CHAP # 连接Target所使用的密码 node.session.auth.username = tecmint-iscsi-user node.session.auth.password = password ################################################################################ # 认证方式二:双向认证 ################################################################################ # Enable CHAP Authentication node.session.auth.authmethod = CHAP # 连接Target所使用的密码 node.session.auth.username = tecmint-iscsi-user node.session.auth.password = password # 为Target准备的密码 node.session.auth.username_in = debian-iscsi-target node.session.auth.password_in = secretpass
正常将应该通过命令操作。下面是一个简单的示例:
#!/bin/sh iscsiadm --mode node -T iqn.2002-10.com.infortrend:eonnas.eonnas:pro:510.dfwsnas.test-mysql-master-02.e1000g0 \ --op update -n node.startup -v automatic iscsiadm --mode node -T iqn.2002-10.com.infortrend:eonnas.eonnas:pro:510.dfwsnas.test-mysql-master-02.e1000g0 \ --op update -n node.session.auth.authmethod -v CHAP iscsiadm --mode node -T iqn.2002-10.com.infortrend:eonnas.eonnas:pro:510.dfwsnas.test-mysql-master-02.e1000g0 \ --op update -n node.session.auth.username -v tecmint-iscsi-user iscsiadm --mode node -T iqn.2002-10.com.infortrend:eonnas.eonnas:pro:510.dfwsnas.test-mysql-master-02.e1000g0 \ --op update -n node.session.auth.password -v password
挂载目标
修改配置后,需要重新启动服务以加载新的配置:
#!/bin/sh # 实际上由两种方式:服务;命令; # 命令:直接挂载; # 服务:自动登录,为系统的管理上提供了便利; # 命令 iscsiadm -m node -T <target-iqn> -l # 服务 systemctl restart iscsid.service # 重启服务应该没有关系:我把iSCSI相关的服务都停掉了,但是依旧能访问(格式化)挂载的块设备
检查连接
# 在Initiator端
两种方法检查设备的挂载情况:
#!/bin/sh lsblk iscsiadm -m session -P 3
# 在Target端
在Target端,可以使用如下命令检查连接信息:
#!/bin/sh tgtadm --mode conn --op show --tid 1
附加说明
如果设备中包含了重要的文件系统,那在/etc/fstab中需要指定_netdev参数。
常用命令
#!/bin/sh # 退出所有的会话 iscsiadm --mode node --logoutall=all # 删除所有的NODE iscsiadm --mode node --op delete # 如果不指定Target(-T)就是更新所有
参考文献
How to Setup iSCSI Server (Target) and Client (Initiator) on Debian 9
Configuring manual or automatic node login with iSCSI
How to configure iSCSI Initiator (client) in CentOS / RHEL 7
Linux (openSuSe) iSCSI Initiator: How to pass a CHAP user name and password?