注意:我们这里没有dell的md系列存储服务器测试,只是自建了一个iscsi的服务端,使用软件为windows下安装的一个iscsi的产品iStorage Server,自己百度一个就能使用,安装完默认会自己启动不会创建目标器,需手动新建一个目标器:硬盘->镜像文件->虚拟硬盘镜像(VHD),客户端连上后就可以分区、格式化、挂载操作,本次测试客户端为centos7系统,deibian会另外标注。

    关于多个客户端同时读写一个target,网上说不推荐,会导致文件系统出错,可以通过gfs2等rhcs套件集群文件系统来实现,实际测试也是格式化好后,两个客户端不同步。


1.安装iscsi-initiator-utils

#先查找软件名称
yum search iscsi-initiator
yum install iscsi-initiator-utils-devel.x86_64
#debian如下
apt-get install open-iscsi


2.iscsi服务自启动(debian不用)

systemctl enable iscsi.service
#检查是否enable成功
systemctl list-unit-files | grep iscsi


3.查找存储服务器对外提供的逻辑卷

iscsiadm -m discovery -t sendtargets -p 192.168.180.248:3260

target和initiator间使用CHAP验证。
CHAP验证有两种,一种是针对discovery的,即如果不符合验证的用户名和密码,则initiator端便无法通过"-m discovery"发现指定主机上的任何一个target。


在initiator端
配置/etc/iscsi/iscsid.conf,添加如下选项:
#以下三个是针对discovery的。
#discovery时启用CHAP验证
discovery.sendtargets.auth.authmethod = CHAP
#initiator的名字,也可以是别的字符串,只要和target端IncomingUse配置的名字一样就行
discovery.sendtargets.auth.username = test(dell md3800i,在iscsi配置中找到启动器用户标签)
#验证密码,要和target端相同
discovery.sendtargets.auth.password = 1234567890ab(CHAP密码,建议自己设置不要随机)


#以下三个是针对login的。
#login时启用CHAP验证
node.session.auth.authmethod = CHAP
#initiator的名字,也可以是别的字符串,只要和target端IncomingUse配置的名字一样就行
node.session.auth.username = iqn.1994-05.com.fedora:ba72af8aaf5(目标器全名)

#验证密码,要和target端相同
node.session.auth.password = 1234567890(CHAP密码,建议自己设置不随机)

然后重启initiator。
/etc/init.d/iscsid stop
/etc/init.d/iscsid start


4.映射逻辑卷到linux系统中

#-l为登陆,如果要取消映射改为-u即可
iscsiadm -m node -T iqn.2006-03.com.kernsafe:863-test-PC.ImageDisk0 -p 192.168.180.248:3260 -l


5.查看建立的映射会话

iscsiadm -m session


6.设置开机自动映射

iscsiadm -m node -T iqn.2006-03.com.kernsafe:863-test-PC.ImageDisk0 -p 192.168.180.248:3260 --op update -n node.startup -v automatic


7.对映射出来的磁盘进行分区、格式化
a.容量小于2T的参考

fdisk /dev/sdb#输入n(新建一个分区)、p(主分区)、中间各种提示直接回车默认、w(保存)
mkfs.ext4 /dev/sdb1#格式化分区,如果好几个分区建议fdisk -l查看具体名称

b.容量大于2T的参考(GPT分区)

parted /dev/sdb  #对/dev/sdb进行分区
print     #打印信息,从中可以看出这个磁盘大小和分区格式
mklabel gpt   
mkpart primary 0% 100%
print    #从中可以看出这个磁盘分区格式已经变了成GPT了


8.linux系统自动挂载分区

#_netdev为网络设备,如果写defaults系统会无法启动
vim /etc/fstab
/dev/sdb1       /opt                          ext4    _netdev         0 0