Linux的iSCSI共享存储服务搭建

一、简介

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/sdc
partproble

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列出列表信息

Linux的iSCSI共享存储服务搭建_第1张图片

/> /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

Linux的iSCSI共享存储服务搭建_第2张图片
Linux的iSCSI共享存储服务搭建_第3张图片
Linux的iSCSI共享存储服务搭建_第4张图片
Linux的iSCSI共享存储服务搭建_第5张图片
Linux的iSCSI共享存储服务搭建_第6张图片

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

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

Linux的iSCSI共享存储服务搭建_第7张图片

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.iscsi
InitiatorName=iqn.2017-08.com.exmple.halo-key

2.discover发现target设备

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

1)因为服务器的防火墙和SELinux没有关闭
Linux的iSCSI共享存储服务搭建_第8张图片

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

[root@target ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.35
192.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设备,说明已从服务器上链接。

Linux的iSCSI共享存储服务搭建_第9张图片

5.格式化及挂载访问

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

fdisk -l /dev/sdb
mkfs.xfs /dev/sdb
mount /dev/sdb /mnt

Linux的iSCSI共享存储服务搭建_第10张图片

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目标的本地记录,以永久断开连接
  • 服务端:
targetcli
clearconfig confirm=True        ##清除iscsi的所有配置信息

你可能感兴趣的:(linux运维)