设备理论的IO值
IDE: 133MB/s
SATA2: 300MB/s
SATA3:600MB/s
SCSI: 320MB/s
USB2:60MB/s
USB3:600MB/s
Iscsi +giga NIC : 125MB/s
Fibre Channel : 531MB/s
一、iSCSI块存储概念
Internet Small Computer System Interface (iSCSI) 是基于TCP/IP协议,仿真高性能的本地存储总线,通过IP网络读写和管理远程存储设备。作为一种SAN协议,iSCSI可以给LAN,WAN提供块存储服务。
目前以太网的最高传输速度已经高达10-40G/s,完全可以媲美FC连接的SAN。将来的以太网连接速度更可高达100G/s
概念:
initiator
iSCSI客户端,连接和使用iSCSI远程块存储的设备,必须分配一个唯一名字(IQN)
target
iSCSI服务端上的iSCSI存储资源,必须有一个唯一的名字。一个target可以提供一个或者多个块设备,这些设备被称作LUN。一个iSCSI服务端可以同时提供多个target
ACL
访问target的控制列表,可以通过IP或者密码进行验证限制
discovery
由initiator发起用于列出iSCSI服务端的target资源列表。
IQN
iSCSI的规范命名,可以对target或initiator进行设置
iqn.YYYY-MM.com.xxx.domain[:optional_string]
login
initiator登录发现过被授权访问的target,登录之后,远程target被识别为本地的块设备,一般是sd*
LUN
逻辑单元号码,就是给target里的块设备进行编号,以便区别块设备
node
节点。可以是一个initiator或者target
portal
在initiator或者target节点上,由IP和端口组合而成,用于让initiator和target之间建立连接.可以理解成访问某target的IP和端口入口
TPG
Target Portal Group 。 某个target监听所用的IP地址和端口集合。通常可以把某个target设定TPG,实现target的portal配置
二、配置iSCSI Targets提供块共享存储
在server0上完成
1.安装iSCSI服务端软件并设定开机启动
# yum -y install targetcli
# systemctl enable target; systemctl start target2.防火墙放行相关连接
# firewall-cmd --permanent --add-port=3260/tcp
# firewall-cmd --reload3.准备本地块设备
# fdisk /dev/vdb
# pvcreate /dev/vdb1
# vgcreate iSCSI_vg /dev/vdb1
# vgdisplay iSCSI_vg# lvcreate -n disk1_lv -L 100m iSCSI_vg
# lvdisplay iSCSI_vg/disk1_lv4.创建target
# targetcli /iscsi create iqn.2018-06.com.example:server0为该target创建一个tpg
# targetcli /iscsi/iqn.2018-06.com.example:server0/tpg1/portals create 172.25.0.11 3260为该target指定本地块设备
# targetcli /backstores/block/ create name=server0.disk1 dev=/dev/iSCSI_vg/disk1_lv为该target指定LUN(逻辑单元号)
# targetcli /iscsi/iqn.2018-06.com.example:server0/tpg1/luns create /backstores/block/server0.disk1为该target设定acl,只允许iqn为iqn.2018-06.com.example:desktop0的节点访问
# targetcli /iscsi/iqn.2018-06.com.example:server0/tpg1/acls/ create iqn.2018-06.com.example:desktop0关闭该target的tpg入口的密码验证
# targetcli /iscsi/iqn.2018-06.com.example:server0/tpg1 set attribute authentication=0关闭tpg级别的acl节点限制(也就是可以针对tpg/alc/下的initiator节点设定具体的acl,而不是针对整个tpg)
# targetcli /iscsi/iqn.2018-06.com.example:server0/tpg1 set attribute generate_node_acls=0
[root@server0 ~]# targetcli ls
o- / ............................................................. [...]
o- backstores .................................................. [...]
| o- block ...................................... [Storage Objects: 1]
| | o- iSCSI_vg.disk1 .....
.....[/dev/iSCSI_vg/disk1_lv (100.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-06.com.example:server0 ....................... [TPGs: 1]
| o- tpg1 ................................... [no-gen-acls, no-auth]
| o- acls .............................................. [ACLs: 1]
| | o- iqn.2018-06.com.example:desktop0 ......... [Mapped LUNs: 1]
| | | o- mapped_lun0 ............ [lun1 block/iSCSI_vg.disk1 (rw)]
| o- luns .............................................. [LUNs: 1]
| | o- lun0 ...... [block/iSCSI_vg.disk1 (/dev/iSCSI_vg/disk1_lv)]
| o- portals ........................................ [Portals: 1]
| o- 172.25.0.11:3260 ..................................... [OK]
o- loopback ............................................. [Targets: 0]# targetcli saveconfig三、访问iSCSI块共享存储
在desktop0上完成
1.安装iSCSI客户端软件
# yum install -y iscsi-initiator-utils
# vi /etc/iscsi/initiatorname.iscsiInitiatorName=iqn.2018-06.com.example:desktop0必须设定指定名字,因为该名字在server0上的iSCSI被作为acl使用,只允许该名字访问server0的target
# systemctl restart iscsid
# systemctl enable iscsi; systemctl start iscsi2.发现和登录
# iscsiadm -m discovery -t st -p 172.25.0.11
# iscsiadm -m node -T iqn.2018-06.com.example:server0 -p 172.25.0.11 -l
# lsblk查看登录会话
# iscsiadm -m session -P 33.取消登录
# iscsiadm -m node -T iqn.2018-06.com.example:server0.disk1 -p 172.25.0.11 -u重启服务会自动登录
# systemctl restart iscsi4、设开机持久化挂载
# fdisk /dev/sda
# mkfs.xfs /dev/sda1
# blkid /dev/sda1
# vim /etc/fstab
......UUID="eaa4ef16-b44a-4c72-8345-e911e2298dbb" /mnt/iscsi xfs defaults,_netdev 0 0
增加一个挂载定义,注意必须添加 _netdev# mkdir /mnt/iscsi
# mount -a5.取消登录并彻底删除记录
target记录不会在iscsi服务重启的时候自动再登录了
# iscsiadm -m node -T iqn.2018-06.com.example:server0.disk1 -p 172.25.0.11 -u
# iscsiadm -m node -T iqn.2018-06.com.example:server0.disk1 -p 172.25.0.11 -o delete
# lsblk# systemctl restart iscsinetstat -tunlp | grep 3260 :查看端口是否监听
dd if=/dev/zero of=文件的绝对路径 bs= 次数 count=大小-带单位块的搬运