iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)是由IBM 下属的两大研发机构一一加利福尼亚AImaden和以色列Haifa研究中心共同开发的,是一个供硬件设备使用的、可在IP协议上层运行的SCSI指令集,是一种开放的基于IP协议的工业技术标准。该协议可以用TCP/IP对SCSI指令进行封装,使得这些指令能够通过基于IP网络进行传输,从而实现SCSI 和TCP/IP协议的连接。对于局域网环境中的用户来说,采用该标准只需要不多的投资就可以方便、快捷地对信息和数据进行交互式传输及管理。
iscsi属于存储区域网络SAN
server端:
配置 serverX 提供一个 ISCSI 服务磁盘名为 iqn.2014-09.com.example:serverX
1.服务端口为 3260
2. 使用 iscsi_store 作其后端卷 其大小为 3G
此服务职能被 desktopX.example.com 访问
[root@server0 ~]# yum install targetcli -y
[root@server0 ~]# fdisk /dev/vdb
#划分一个 3G 的分区,过程略
[root@server0 ~]# partprobe
[root@server0 ~]# targetcli
/> /backstores/block create iscsi_store /dev/vdb1
/> iscsi/ create iqn.2014-09.com.example:server0
/> iscsi/iqn.2014-09.com.example:server0/tpg1/acls create iqn.2014-
09.com.example:desktop0
/> iscsi/iqn.2014-09.com.example:server0/tpg1/luns create
/backstores/block/iscsi_store
/> iscsi/iqn.2014-09.com.example:server0/tpg1/portals create
172.25.0.11
#检查一下:
/> ls
o- / ...................................................................................... [...]
o- backstores ........................................................................... [...]
| o- block ............................................................... [Storage Objects: 1]
| | o- iscsi_store .................................. [/dev/vdb1 (3.0GiB) write-thru activated]
| o- fileio .............................................................. [Storage Objects: 0]
| o- pscsi ............................................................... [Storage Objects: 0]
| o- ramdisk ............................................................. [Storage Objects: 0]
o- iscsi ......................................................................... [Targets: 1]
| o- iqn.2014-09.com.example:server0 ................................................ [TPGs: 1]
| o- tpg1 ............................................................ [no-gen-acls, no-auth]
| o- acls ....................................................................... [ACLs: 1]
| | o- iqn.2014-09.com.example:desktop0 .................................. [Mapped LUNs: 1]
| | o- mapped_lun0 ........................................ [lun0 block/iscsi_store (rw)]
| o- luns ....................................................................... [LUNs: 1]
| | o- lun0 ............................................... [block/iscsi_store (/dev/vdb1)]
| o- portals ................................................................. [Portals: 1]
| o- 172.25.0.11:3260 .............................................................. [OK]
o- loopback ...................................................................... [Targets: 0]
/>
#报存配置
/> exit
[root@server0 ~]# systemctl start target ; systemctl enable target
[root@server0 ~]# firewall-cmd --add-rich-rule "rule family="ipv4"
source address="172.25.0.10" port port="3260" protocol="tcp" accept"
[root@server0 ~]# firewall-cmd --add-rich-rule "rule family="ipv4"
source address="172.25.0.10" port port="3260" protocol="tcp" accept" --per
client端:发现并登录iscsi
[root@desktop0 ~]# yum install iscsi-initiator-utils.i686 -y
[root@desktop0 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-09.com.example:desktop0 #添加iqn
[root@desktop0 ~]# iscsiadm --mode discoverydb --type sendtargets
--portal 172.25.0.11 --discover 发现
172.25.0.11:3260,1 iqn.2014-09.com.example:server0
[root@desktop0 ~]# iscsiadm --mode node --targetname iqn.2014-
09.com.example:server0 --portal 172.25.0.11:3260 –login 登录
#检查是否存在sda
[root@desktop0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 3G 0 disk
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
#在 sda 上创建大小为 2100M 的分区略
[root@desktop0 ~]# partprobe
[root@desktop0 ~]# mkfs.ext4 /dev/sda1
[root@desktop0 ~]# mkdir /mnt/data
[root@desktop0 ~]# echo "/dev/sda1 /mnt/data ext4 _netdev 0 0" >>
/etc/fstab
[root@desktop0 ~]# mount -a
注意事项:在client端发现和登录server iscsi时,一定要按照顺序。
server和client都安装服务
(一)在/etc/iscsi/initiatorname.iscsi中添加正确的iqn
(二)iscsiadm --mode discoverydb --type sendtargets
--portal 172.25.0.11 --discover 发现
(三)iscsiadm --mode node --targetname iqn.2014-
09.com.example:server0 --portal 172.25.0.11:3260 –login 登录
如果iqn一开始忘加,后来补加,可能会出现能发现但无法登录的情况,
此时重启一下客户端的iscsid重新加载程序可以解决这个问题
这些发现和登录的命令无需记忆,man iscsiadm 找到相应的example对应修改即可
EXAMPLES
Discover targets at a given IP address:
iscsiadm --mode discoverydb --type sendtargets --portal 192.168.1.10 --discover
Login, must use a node record id found by the discovery:
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --login
Logout:
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --logout
List node records:
iscsiadm --mode node
Display all data for a given node record:
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260