介绍
本系列描述了如何在不同版本的Linux环境下安装配置iSCSI initiator,按照iSCSI要求对主机重命名,以及如何进行target和LUN的相关操作,discovery,log in等。作为系列中的第一篇,阐述了CentOS,Ubuntu,RHEL, SLES版本Linux如何安装iSCSI initiator。
安装Linux iSCSI initiator:
执行iSCSI target和LUN操作前,用户必须安装Open iSCSI initiator工具。获取Open iSCSI initiator的更多信息,参考www.open-iscsi.org的README文档。
CentOS Linux:
在CentOS Linux环境下安装iSCSI initiator工具使用以下操作步骤:
- 在Linux命令行,输入以下命令安装iscsi-initiator-utils包的最新版本:
yum install iscsi-initiator-utils
- 安装完成后,输入以下命令显示已安装包:
rpm -q
输出类似以下结果:
iscsi-initiator-utils-6.2.0.871-0.10.el5
- 输入以下命令启动iSCSI 服务:
service iscsi start
- 输入以下命令验证iSCSI 服务正在运行:
service iscsi status
如果service已运行,输出类似以下结果:
iscsid (pid 2412) is running…
- 使用chkconfig配置自动启动iSCSI服务:
chkconfig iscsi on
- 使用chkconfig命令检查iSCSI服务是否配置成随机启动:
chkconfig –list iscsi
看到级别2 3 5状态为on表示成功:
iscsi 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Ubuntu Linux:
在Ubuntu Linux环境下安装iSCSI initiator工具使用以下操作步骤:
- 在Linux命令行,输入以下命令安装iscsi-initiator-utils包的最新版本:
yes | apt-get install `apt-cache search iscsi | awk ‘{print $1}’
- 输入以下命令启动iSCSI服务:
/etc/init.d/open-iscsi start
RHEL Linux:
- 在Linux命令行,输入以下命令安装iscsi-initiator-utils包的最新版本:
yum install iscsi-initiator-utils
- 通过编辑/etc/iscsi文件配置iSCSI initiator后台进程。
/etc/iscsi/iscsid.conf:所有刚发起的iSCSI session默认都将使用这个文件中的参数设定。
/etc/iscsi/initiatorname.iscsi:iSCSI initiator的intiator名称配置文件。
#cd /etc/iscsi/
#ls
initiatorname.iscsi iscsid.conf
- 输入以下命令启动iSCSI 服务:
service iscsid start
- 输入以下命令验证iSCSI 服务正在运行:
service iscsid status
- 使用chkconfig配置自动启动iSCSI服务:
chkconfig iscsid on
- 使用chkconfig命令检查iSCSI服务是否配置成随机启动:
chkconfig –list iscsid
看到级别2 3 5状态为on表示成功:
iscsid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
SLES Linux:
- 通过编辑/etc/iscsi文件配置iSCSI initiator后台进程:
#cd /etc/iscsi/
#ls
initiatorname.iscsi iscsid.conf
- 使用chkconfig命令启动iSCSI服务,SLES系统的服务名叫“open-iscsi”:
/etc/init.d/open-iscsi start
chkconfig open-iscsi on
iSCSI initiator的默认设置在以下文件中:
/etc/iscsi/iscsid.conf
为Linux主机设置InitiatorName:
编辑/etc/iscsi/initiatorname.iscsi文件以指定IQN(iSCSI qualified name)名。
举例1:
InitiatorName= iqn.2005-03.com.redhat: 01.e7839d513f
InitiatorName 这个单词必须区分大小写。iqn规范定义的initiator name为:iqn.domaindate.reverse.domainname:optionalname。
修改过initiator名后,需再次启动iSCSI服务。
CentOS用service iscsi start命令启动(Ubuntu和SLES用/etc/init.d/open-iscsi start, REHL用service iscsid status),用service iscsi status命令查看iscsi服务的运行状态。如果服务正在运行,显示类似如下输出:
iscsid (pid 2412) is running…
探测target:
Open-iSCSI是通过以下数据库文件通过永久配置的:
Discovery(/var/lib/iscsi/send_targets):在/var/lib/iscsi/send_targets目录下包含iSCSI portals的配置信息,每个portal对应一个文件,文件名为“iSCSI portal IP,端口号”。例如“192.168.1.5,3260”。
Node(/var/lib/iscsi/nodes):在/var/lib/iscsi/nodes目录下,生成一个或多个以iSCSI存储服务器上的target名命名的文件夹,在该文件夹下有一个文件名为”iSCSI portal IP,端口号”的配置参数文件, 例如“192.168.1.5,3260”。该文件中是initiator登录target时使用的参数,这些参数的设置是从/etc/iscsi/iscsi.conf中的参数设置继承来的。
iscsiadm是用来管理iSCSI配置数据库文件的命令行工具,用户能够通过它对iSCSI nodes, sessions, connections和discovery records进行一系列操作。
iSCSI定义了三种探测类型:send targets, SLP, iSNS。此处介绍send targets方法。
输入以下探测命令:
iscsiadm –mode discovery –type sendtargets –portal <IP_ADDRESS>
这里IP_ADDRESS指target端iSCSI业务IP地址,默认端口是3260。–mode指可用-m代替,–type可用-t代替,–portal可用-p代替。此命令返回iqn和target portal。
举例2:
iscsiadm -m discovery -t sendtargets -p 10.13.32.171
执行以后看到如下内容:
10.13.32.171:3260,1 iqn.2001-07.com.isilon:iscsi-beta:target1
也就是找到了target和它的iqn。
执行以下命令查看之前探测到的所有targets:
iscsiadm -m node
登录target:
找到target的iqn之后,就可以登入了。输入以下命令:
iscsiadm –mode node -T <IQN> –portal <node> –login
这里<IQN>指target的iqn名,node指target端iSCSI业务IP地址,默认端口是3260。–mode指可用-m代替, –portal可用-p代替,–login可用-l代替。
举例3:
iscsiadm -m node -T iqn.2001-07.com.isilon:iscsi-beta:target1 -p 10.13.32.171:3260 –l
要通过指定节点,登入指定target,输入:
iscsiadm -m node -T <IQN> -p <node> -l
举例4:
iscsiadm -m node -T iqn.2001-07.com.isilon:iscsi-beta:target1 –p 10.13.32.171:3260 -l
登出Target:
输入以下命令登出所有targets:
iscsiadm -m node –logoutall=all
输入以下命令登出指定节点的所有targets:
iscsiadm -m node -p <node> -u
举例5:
iscsiadm -m node -p 10.13.32.171:3260 –u
输入以下命令在指定节点登出指定target:
iscsiadm -m node -T <IQN> -p <node> -u
举例6:
iscsiadm -m node -T iqn.2001-07.com.isilon:iscsi-beta:target1 -p 10.13.32.171:3260 -u