Linux的iSCSI共享存储服务搭建

来源:互联网 发布:笔记本风扇调节软件 编辑:程序博客网 时间:2024/05/17 08:49

一、简介

1.iSCSI     全称: Internet Small Computer System Interface,它是通过 TCP/IP 网络传 输 SCSI 指令的协议。 iSCSI 协议参照 SAM-3( SCSI Architecture Model – 3)制订。在 SAM-3 的体系结构, iSCSI 属于传输层协议,在 TCP/IP 模型中属于应用层协议。    iSCSI 使用客户/服务器模型。客户端称为 initiator,服务器端称为 target。    Initiator:通常指用户主机系统,用户产生 SCSI 请求,并将 SCSI 命令和数据封装到 TCP/IP 包中发送到 IP 网络中。     Target:通常存在于存储设备上,用于转换 TCP/IP 包中的 SCSI 命令和数据。2、iSCSI 名字规范       iSCSI 协议中, initiator 和 target 是通过名字进行通信的,因此,每一个 iSCSI 节 点(即 initiator)必须拥有一个 iSCSI 名字。     iSCSI 协议定义了 3 类名称结构:     >>iqn( iSCSI Qualified Name) 格式是:“ iqn” +“年月” +“ .” +“域名的颠倒” +“ :” +“设备的具体 名称”,之所以颠倒域名是为了避免可能的冲突。         举例: iqn.2008-07.com.h3c.rd:test    >>eui( Extend Unique Identifier) eui 来源与 IEEE 中的 EUI,格式是: “ eui” + “ 64bits 的唯一标识( 16 个字母)”。 64bits 中,前 24bits( 6 个字母)是公司的唯一标识,后面 40bits ( 10 个字母)是设备的标识。         举例: eui.acde48234667abcd    >>naa( Network Address Authority) 由于 SAS 协议和 FC 协议都支持 naa, iSCSI 协议定义也支持这种名字结构。naa 的格式: “ naa” +“ 64bits( 16 个字母)或者 128bits( 32 个字母) 的唯一标识”。         举例: naa. 52004567BA64678D             naa. 62004567BA64678D0123456789ABCDEF在实际使用过程中, iSCSI 节点名称可以不这么复杂。
  • iSCSI发起端:需要访问原始SAN存储的客户端

  • iSCSI目标:从iSCSI服务器提供的远程硬盘磁盘,或“目标门户”

  • iSCSI目标门户:通过网络向发起端提供目标的服务器

  • IQN:“iSCSI限定名称”。每个发起端和目标需要唯一名称进行标识,最好的做法是使用一个在Internet上可能独一无二的名称。

二、搭建iSCSI

1、实验环境

  • 服务端修改主机名
  • 设置IP地址为192.168.0.35
  • 在搭建iSCSI之前,先把SELinux禁用;关闭防火墙并清空所有规则。并配置好yum源

2、建立所需要的新分区

fdisk /dev/sdcpartproble

3.安装iscsi服务及配置

[root@initiator ~]# yum install targetcli -y   #安装管理工具iscsi—target[root@initiator ~]# systemctl start target #启动服务[root@initiator ~]# systemctl enable target    #设置开机自启动[root@initiator ~]# targetcli  #通过管理工具iscsi—target进行交互式的管理
ls列出列表信息

这里写图片描述

/> /backstores/block create runningfree /dev/sdb1   #创建块设备/> /iscsi create iqn.2017-08.com.exmple.halo    #生成iqn串/> /iscsi/iqn.2017-08.com.exmple.halo/tpg1/luns create /backstores/block/runningfree    #创建luns/> /iscsi/iqn.2017-08.com.exmple.halo/tpg1/acls create iqn.2017-08.com.exmple.halo-key  #设置acl规则/> /iscsi/iqn.2017-08.com.exmple.halo/tpg1/portals create 192.168.0.35  #设置监听IP/> /iscsi/iqn.2017-08.com.exmple.halo/tpg1/portals delete 0.0.0.0 3260  #删除默认监听地址/> /iscsi/iqn.2017-08.com.exmple.halo/tpg1/portals create 192.168.0.35  #设置监听IP

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

在设置监听IP时,默认是监听0.0.0.0(所有地址),不删除创建时会有报错(Could not create NetworkPortal in configFS),图中黄线部分
创建完规则后保存规则并退出

/> saveconfig       #保存规则/> exit             #退出

这里写图片描述

4.客户端挂载配置

1.软件安装与配置修改

需要先安装一个软件 iscsi-initiator-utils [root@target ~]# yum -y install iscsi-initiator-utils

安装完该包,需要修改 /etc/iscsi/initiatorname.iscsi 中的iqn 串为target端中acl 允许的串:

[root@target ~]# cat  /etc/iscsi/initiatorname.iscsiInitiatorName=iqn.2017-08.com.exmple.halo-key

2.discover发现target设备

[root@target ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.35

1)因为服务器的防火墙和SELinux没有关闭
这里写图片描述

2)在服务器上关闭了之后,在继续执行此命令。

[root@target ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.35192.168.0.35:3260,1 iqn.2017-08.com.exmple.halo

这里写图片描述

3.挂载设备

iscsiadm -m node -T iqn.2017-08.com.exmple.halo -p 192.168.0.35 -l
此时,可以使用iSCSI磁盘,就好像它是本地连接硬盘驱动器。可以挂载现有文件系统。如果磁盘未格式化,可以通过fdisk进行分区,例如,通过文件系统格式化分区或作为LVM物理卷。也可在/etc/fstab中永久挂载文件系统

4.查看dev下的设备

这里多出了sdb设备,说明已从服务器上链接。

这里写图片描述

5.格式化及挂载访问

fdisk、mkfs、mount操作,与普通设备无异

fdisk -l /dev/sdbmkfs.xfs /dev/sdbmount /dev/sdb /mnt

这里写图片描述

6.这里已基本完成,挂载完成后,可以往磁盘里面写文件了

  • 注销和删除的操作
    • 客户端:
umount /mnt/        ##卸载磁盘iscsiadm -m node -T iqn.2017-08.com.example:rdisks.demo -p 192.168.0.35 -u          ##注销目标,暂时断开连接iscsiadm -m node -T iqn.2017-08.com.example:rdisks.demo -p 192.168.0.35 -o delete           ##删除iSCSI目标的本地记录,以永久断开连接
  • 服务端:
targetcliclearconfig confirm=True        ##清除iscsi的所有配置信息