设备共享iSCSI

iSCSI概念

  • iSCSI:Internet 小型计算机系统接口 (iSCSI:Internet Small Computer System Interface)。

起源

iSCSI技术是一种由IBM公司研究开发的,iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。

  • 共享文件实际为共享存储设备的使用权,但是会影响数据传输
  • 所以iSCSI直接共享设备磁盘的使用权就非常的节省系统资源

iscsI概念

SCSI(Internet SCSI)支持从客户端(发起端)通过IP向远程服务器上的iSCSI存储设备(目标)发送SCSI命令。iSCSI限定名称用于确定发起端和目标,并采用iqn.yyyy-mm.{reverse domain}:label的格式 默认情况下,网络通信是至iSCSI目标上的端口3260/tcp的明文端口

iSCSI是一种基于 TCP/IP的协议,用来建立和管理 IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。 SCSI 结构基于客户/服务器模式,其通常应用环境是:设备互相靠近,并且这些设备由 SCSI 总线连接。iSCSI 的主要功能是在 TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。此外,iSCSI 提供了在 IP 网络封装 SCSI 命令,且运行在 TCP 上

iSCSI名称设定

iSCSI发起端:需要访问原始SAN存储的客户端。
iSCSI目标:从iSCSI服务器提供的远程硬盘磁盘,或“目标门户“。
iSCSI目标门户:通过网络向发起端提供目标的服务器。
IQN:“iSCSI限定名称“。每个发起端和目标需要唯一确定名称进行标识最好的做法是时用一个在Internet上可能独一无二的名称。


iSCSI的配置

还是正常的下载,开启,设定开即自启
yum install targetcli -y
 systemctl start target
 systemctl enable target

首先创建一个新的分区,这个分区就是要共享的设备

fdisk /dev/vdb  //去创建vdb1

命令targetcli ,直接进入配置iSCSI

/> /backstores/block create westos:storage1 /dev/vdb1
//westos 是本机共享的内部名字,storage是对外的名字
/> /iscsi create --help    //获取命令帮助
WWN not valid as: iqn, naa, eui
/> /iscsi create iqn.2017-08.com.example:storage1  //注意反写!
/> /iscsi/iqn.2017-08.com.example:storage1/tpg1/luns create 
/> /iscsi/iqn.2017-08.com.example:storage1/tpg1/acls create iqn.2017-08.com.example:storage1key   //生成加密

ls 查看时
 o- mapped_lun0 ................... [lun0 block/westos:storage1 (rw)]
//实际上用的就是westos:storage1,进而用的实际是109的/dev/vdb1这块磁盘

/> /iscsi/iqn.2017-08.com.example:storage1/tpg1/portals create 172.25.254.109
//这里的109指的是谁的存储设备,server是109,所以写109,不是客户端

其中每个文件的说明可以man targetcli


iSCSI存储

client(客户端)

[root@iscsi-client ~]# yum install iscsi-initiator-utils.x86_64
//安装客户端工具'

需要配置文件 /etc/iscsi/initiatorname.iscsi  //用来设定认证
[root@iscsi-client ~]# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.2017-08.com.example:storage1key

iscsiadm -m discovery -t st -p 172.25.254.109

iscsiadm -m node -T  iqn.2017-08.com.example:storage1 -p 172.25.254.109 -l   

重启服务 :
systemctl  restart  iscsid.service //管理的是iscsi服务'
systemctl restart iscsi   //管的是认证 ,如果重启失败,那么先执行上面的在执行这一条
  • fdisk -l 发现多了一块分区sda

fdisk /dev/sda
//创建一块sda1

格式化,挂载


//成功

需要永久挂载 : 编辑/etc/fstab
UUID=”” /mnt xfs defaults,_netdev 0 0
保存退出执行命令 mount -a

删除:

client端 :


umount /mnt   //先卸载
vim  /etc/fstab   //将配置文件中的设定删除

[root@iscsi-server ~]# iscsiadm -m node -T iqn.2017-08.com.example:storage1 -o delete
//删除这个共享,永久
[root@iscsi-server ~]# iscsiadm -m node -T iqn.2017-08.com.example:storage1 -u
///登出,这样可以实现临时删除,如果重启iscsi那么分区就重新出来了

server端:

/> clearconfig confirm=true
//targetcli中的内容全部删除了


实现设备以LVM逻辑卷方式共享

用LVM逻辑卷来操作的话,可以实现对共享设备的扩展与压缩

server端:

  • 创建逻辑卷vdb1:

  • 创建pv ,vg ,lv


  • 添加大小为511M的lv:

  • 正常添加target

client端:

设定认证:
vim /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.2017-08.com.example:storage1key

登陆上去,发现有了sda

而且有了LVM的功能,在server端扩展逻辑卷的大小
在client端重新登出登陆,发现sda的容量已经变大
(这里其实如果有相关插件的话,不用登出也是可以直接同步的,但是此时的环境没有,我们选择登陆登出来刷新)

server端

  • 创建一块新的500M的分区出来
  • 创建新的pv,并且加入vg


client端:

如果没有相应的插件,就需要登出再登陆,相当于实现刷新,有插件的话就可以直接时时同步

  • 查看现在的分区,发现sda的大小已经改变

发布了55 篇原创文章 · 获赞 38 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/mon_star/article/details/77435599