RHCE(七)——提供iSCSI远程块存储服务

设备理论的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 target

2.防火墙放行相关连接

# firewall-cmd --permanent --add-port=3260/tcp

# firewall-cmd --reload

3.准备本地块设备

# 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_lv

4.创建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.iscsi
InitiatorName=iqn.2018-06.com.example:desktop0

必须设定指定名字,因为该名字在server0上的iSCSI被作为acl使用,只允许该名字访问server0的target

# systemctl restart iscsid

# systemctl enable iscsi; systemctl start iscsi

2.发现和登录

# 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 3

3.取消登录

# iscsiadm -m node -T iqn.2018-06.com.example:server0.disk1 -p 172.25.0.11 -u

重启服务会自动登录

# systemctl restart iscsi

4、设开机持久化挂载

# 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 -a

5.取消登录并彻底删除记录

       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 iscsi
netstat -tunlp  |  grep  3260 :查看端口是否监听

dd if=/dev/zero  of=文件的绝对路径   bs= 次数  count=大小-带单位

块的搬运


版权声明:本文为qq_40980391原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。