一、ISCSI Storage端配置
1.安装所需要的软件包targetcli
#yum install targetcli
2.iscsi提供的程序主要工作在tcp3260号端口,先设开机自启,并配置好防火墙
#systemctl enable target
#systemctl start target
#firewall-cmd --permanent --add-port=3260/tcp
#firewall-cmd --reload
3.targetcli这个程序有两种配置模式,一种为交互式模式,即直接进入到targetcli命令行,这里可以直接输入,可以使用ls,cd,pwd之类的命令
另外一种模式为命令行模式,可以直接在命令行中输入,比如创建一个portals,则可以使用:
#targetcli /iscsi/iqn.2015-10.com.example:server/tpg1/portals create 192.168.0.100
显然交互式命令更加直观,所以用第一种会好一些。
4.我这里已经准备好了一块磁盘分区/dev/sdb2,后端存储分为四种类型:
block:块设备,b,可以是磁盘驱动器,分区,逻辑卷,多路径设备,只要是类型为b的均可
fileio:文件,根据一个事先准备的文件,提供存储功能
pscsi:physical scsi,物理scsi设备,老旧设备,现在已经很少使用了
Ramdisk:内存存储,利用内存当做存储,优点速度快,缺点是成本高,掉电后数据无法保存
进入到targetcli交互式模式
#targetcli
/> cd /backstores/block/
/backstores/block> create server1 /dev/sdb3 ##将/dev/sdb3创建为后端存储
/backstores/fileio> create file1 /root/disk1_file 100M ##提供一个100M的文件作为存储资源
/backstores/block> cd /iscsi/
/iscsi> create iqn.2015-10.com.example:server1 #创建一个提供服务的名称
这时,在名称下会自动生成tpg1目录
/iscsi> cd iqn.2015-10.com.example:server/tpg1/acls/
/iscsi/iqn.20...ver/tpg1/acls> create iqn.2015-10.com.example:desktop
/iscsi/iqn.20...ver/tpg1/acls> cd ../luns/
/iscsi/iqn.20...ver/tpg1/luns> create /backstores/block/server1 #将块设备server1加入到luns
/iscsi/iqn.20...ver/tpg1/luns> create /backstores/fileio/file1 #将文件设备file1加入到luns
/iscsi/iqn.20.../tpg1/portals> create 192.168.0.105 #配置本地监听的IP和端口,默认为3260
cd /
/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
输入exit退出
#systemctl restart target #重启target服务
二、客户端配置
1.安装所需要的软件包,配置文件为/etc/iscsi/iscsid.conf,连接到服务器端后,在本地自动生成的iscsi相关配置信息文件在/var/lib/iscsi/nodes和/var/lib/iscsi/send_targets目录中
#yum install iscsi-initiator-utils
2.编辑本地的iscsi名称文件,修改为服务器定义的名称
#vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2015-10.com.example:desktop
#systemctl restart iscsi
3.先发现iscsi设备,然后再进入登陆
Iscsiadm iscsi的管理程序
-m --mode指定模式,发现为discovery,登陆为node节点模式,session
-l --login登陆
-t --type 一般为sendtarget,简写为st
-o --op=op 指定选项,new delete update show nonpersistent
可以用-o delete 对已存在的node进行删除
-p --portal 指定入口 可以为IP地址或者域名
-P n 指定输出详细信息,[0|1|2|3],有四种格式可选
-u --logout 登出
-T --targetname=targetanme 指定要使用的服务器端的target名称,有时候服务器端创建了多个target,iqn.2015-10.com.example:….
#iscsiadm -m discovery -t st -p 192.168.0.100
192.168.0.100:3260,-1 iqn.2015-10.com.example:server1
[root@demo iscsi]# iscsiadm -m node -T iqn.2015-10.com.example:server1 -l
Logging in to [iface: default, target: iqn.2015-10.com.example:server1, portal: 192.168.0.100,3260] (multiple)
Login to [iface: default, target: iqn.2015-10.com.example:server1, portal: 192.168.0.100,3260] successful.
#fdisk -l
Disk /dev/sdb: 524 MB, 524288000 bytes, 1024000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes
Disk /dev/sdc: 104 MB, 104857600 bytes, 204800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes
可以看到新增了两个磁盘,但使用blkid无法查看/dev/sdc,应该是没有文件系统造成的
再次输入blkid,可以看到已经发现了新设备
4.接下来新建磁盘目录,即可对新得到的分区进行挂载了,同理,对于/dev/sdb也是同样的处理办法
#mkdir /iscsi
#vim /etc/fstab
UUID=448ee927-52ea-498b-bf7c-ad2e8b43de69 /iscsi ext4 defaults,_netdev 0 0
#mount -a
#df -h
可见新的设备已经正常挂载,现在可以对该目录进行正常读写操作了。_netdev选项是让此挂载点在网络正常启动后再进行挂载