iSCSI(Internet Small Computer System Interface),Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。
iSCSI利用了TCP/IP的port 860 和 3260 作为沟通的渠道。透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机可以透过高速的局域网集线来把SAN模拟成为本地的储存装置。
iSCSI使用 TCP/IP 协议(一般使用TCP端口860和3260)。 本质上,iSCSI 让两个主机通过 IP 网络相互协商然后交换SCSI命 令。这样一来,iSCSI 就是用广域网仿真了一个常用的高性能本地存储总线,从而创建了一个存储局域网(SAN)。不像某些 SAN 协议,iSCSI 不需要专用的电缆;它可以在已有的交换和 IP 基础架构上运行。然而,如果不使用专用的网络或者子网( LAN 或者 VLAN ),iSCSI SAN 的部署性能可能会严重下降。于是,iSCSI 常常被认为是光纤通道(Fiber Channel)的一个低成本替代方法,而光纤通道是需要专用的基础架构的。但是,基于以太网的光纤通道(FCoE)则不需要专用的基础架构。
虽然 iSCSI 可以与任意类型的 SCSI 设备进行通信,系统管理员几乎总是使用它来连接服务器计算机 (例如,数据库服务器) 和磁盘卷上存储阵列。
通俗来讲,iscsi可以理解为硬盘共享
一、配置:
服务端:
1.yum install targetcli -y
2.为了方便实验,创建一个逻辑卷,满足可伸缩性
fdisk /dev/vdb
pvcreate /dev/vdb1
vgcreate vg0 /dev/vdb1
lvcreate -l 255 -n lv0 vg0 -l表示取多少个最小物理单元pe -L表示取多大的内存
lvs可以查看逻辑卷
3.[root@shareserver westos]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb34
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 0]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 0]
o- loopback ..................................................... [Targets: 0]
/> backstores/block create westos:storage1 /dev/vg0/lv0 创建一个别名
Created block storage object westos:storage1 using /dev/vg0/lv0.
/> iscsi/ create iqn.2018-11.com.westos:storage1 创建一个共享名称
Created target iqn.2018-11.com.westos:storage1.
Created TPG 1.
/> iscsi/iqn.2018-11.com.westos:storage1/tpg1/luns create /backstores/block/westos:storage1 共享名称与共享设备关联
Created LUN 0.
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 1]
| | o- westos:storage1 ....... [/dev/vg0/lv0 (1020.0MiB) write-thru activated]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2018-11.com.westos:storage1 ............................... [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 0]
| o- luns ...................................................... [LUNs: 1]
| | o- lun0 ....................... [block/westos:storage1 (/dev/vg0/lv0)]
| o- portals ................................................ [Portals: 0]
/> /iscsi/iqn.2018-11.com.westos:storage1/tpg1/acls create iqn.2018-11.com.westos:westoskey 制作一个KEY
Created Node ACL for iqn.2018-11.com.westos:westoskey
Created mapped LUN 0.
/> iscsi/iqn.2018-11.com.westos:storage1/tpg1/
iscsi/iqn.2018-11.com.westos:storage1/tpg1/*
iscsi/iqn.2018-11.com.westos:storage1/tpg1/acls/
iscsi/iqn.2018-11.com.westos:storage1/tpg1/luns/
iscsi/iqn.2018-11.com.westos:storage1/tpg1/portals/
...path
/> iscsi/iqn.2018-11.com.westos:storage1/tpg1/portals create 172.25.254.116 在网络上共享出来
Using default IP port 3260
Created network portal 172.25.254.116:3260.
客户端:
1.yum install iscsi-initiator-utils.i686 -y
2.iscsiadm -m discovery -t st -p 192.168.1.120 发现设备.注意:如果没有发现,那么可能是共享端的火墙没有关闭
3.iscsiadm -m node -T iqn.2018-11.com.westos:storage1 -p 192.168.1.120 连接错误,是因为没有把加密字符给客户端
4.vim /etc/iscsi/initiatorname.iscsi 将加密字符给此文件
InitiatorName=iqn.2018-11.com.westos:westoskey
5.重启服务:systemctl restart iscsid.service
6.iscsiadm -m node -T iqn.2018-11.com.westos:storage1 -p 192.168.1.120 -l连接成功
测试:
在服务端:
扩展逻辑卷
fdsik /dev/vdb 创建一个新的逻辑卷
partprobe
pvcreat /dev/vdb2
vgextend vg0 /dev/vdb2
lvextend -l 504 /dev/vg0/lv0
客户端:
iscsiadm -m node -T iqn.2018-11.com.westos:storage1 -p 172.25.254.116 -u 退出设备
iscsiadm -m node -T iqn.2018-11.com.westos:storage1 -p 172.25.254.116 -l 连接设备
fdsik -l查看是否扩展,此时,共享设备(服务端逻辑卷)在客户端的显示为/dev/sda
fdisk /dev/sda 创建一个sda1
mkfs.xfs /dev/sda1 格式化sda1,服务端不用格式化,因为iscsi只是共享了硬盘,并非文件系统。
mount /dev/sda1 /mnt
cd /mnt
touch file 表示共享设备可以被客户端所写。
二、开机自动挂载设备:
vim /etc/fstab
错误格式:
/dev/sda1 /mnt xfs defaults 0 0 如果这样写的话,客户端重启之后会起不来,是因为当客户端重启时,网络服务还没有打开,而共享网络设备恰恰需要先开启网络,服务端才能共享设备,因此,客户端会起不来
正确格式:
/dev/sda1 /mnt xfs defaults,_netdev 0 0
三、取消设备共享:
客户端:
可以安装tree软件包来辅助查看是否删除连接 yum install tree -y
tree /var/lib/iscsi
1.iscsiadm -m node -T iqn.2018-11.com.westos:storage1 -p 172.25.254.116 -u 退出连接
2.iscsiadm -m node -T iqn.2018-11.com.westos:storage1 -p 172.25.254.116 -o delete 删除连接
3.systemctl restart iscsi
4.fdisk -l 查看sda是否还存在
服务端:
targetcli
/> clearconfig confirm=True
/> ls 已经不存在了