iSCSI配置

iSCSI介绍

几种存储的架构:

  • 直接存取 (direct-attached storage):例如本机上面的磁盘,就是直接存取设备;
  • 透过储存局域网络 (SAN):来自网络内的其他储存设备提供的磁盘(block device)
  • 网络文件系统 (NAS):来自 NAS 提供的文件系统,只能直接使用,不可进行格式化(NFS/SMB等)。

iSCSI架构将存储和使用主机分为两个部分:

  • iSCSI target:就是储存设备端,存放磁盘或 RAID 的设备,目前也能够将 Linux 主机仿真成 iSCSI target 了!目的在提供其他主机使用的『磁盘』
  • iSCSI initiator:就是能够使用 target 的客户端,通常是服务器。 也就是说,想要连接到 iSCSI target 的服务器,也必须要安装 iSCSI initiator 的相关功能后才能够使用 iSCSI target 提供的磁盘就是了。

iSCSI target需要安装scsi-target-utils软件包,iSCSI initiator 需要安装iscsi-initiator-utils

iSCSI软件及软件结构:

  • scsi-target-utils:用来将 Linux 系统仿真成为 iSCSI target 的功能;
  • iscsi-initiator-utils:挂载来自 target 的磁盘到 Linux 本机上。

iSCSI Target的iqn:

iSCSI 有一套自己分享 target 档名的定义,基本上,由 iSCSI 分享出来的 target 檔名都是以 iqn 为开头,意思是:『iSCSI Qualified Name (iSCSI 合格名称)』的意思

  iqn.yyyy-mm.<reversed domain name>:identifier

  iqn.年年-月.域名的反转写法  :这个分享的target名称

  iqn.2011-08.com.ccie:vbirddisk

另外,就如同一般外接式储存装置 (target 名称) 可以具有多个磁盘一样,我们的 target 也能够拥有数个磁盘装置的。 每个在同一个 target 上头的磁盘我们可以将它定义为逻辑单位编号 (Logical Unit Number, LUN)。我们的 iSCSI initiator 就是跟 target 协调后才取得 LUN 的存取权就是了 。在鸟哥的这个简单案例中,最终的结果,我们会有一个 target ,在这个 target 当中可以使用三个 LUN 的磁盘。

iSCSI Target

1. iSCSI Target软件结构


/etc/tgt/targets.conf


主要配置文件,设定要分享的磁盘格式与哪几颗;


/usr/sbin/tgt-admin


在线查询、删除 target 等功能的设定工具;


/usr/sbin/tgt-setup-lun


建立 target 以及设定分享的磁盘与可使用的客户端等工具软件。


/usr/sbin/tgtadm


手动直接管理的管理员工具 (可使用配置文件取代);


/usr/sbin/tgtd


主要提供 iSCSI target 服务的主程序;


/usr/sbin/tgtimg


建置预计分享的映像文件装置的工具 (以映像文件仿真磁盘);

  可以通过target进行分享的类型:

  • dd创建的仿真磁盘(无需预先格式化)
  • partition
  • 完整的磁盘
  • software raid
  • LVM中LV

2. 创建所需的磁盘装置

#创建dd文件
mkdir /srv/iscsi
dd if=/dev/zero  of=/srv/iscsi/disk1.im bs=1M count=20
chcon -Rv -t tgtd_var_lib_t /srv/iscsi/
 
#创建/dev/sdb1,/dev/sdb2两个分区
 fdisk /dev/sdb
 
#/dev/sdb2创建LVM分区
pvcreate /dev/sdb2
vgcreate server /dev/sdb2
lvcreate -L 300M -n iscsi01 server
 
lvscan
  ACTIVE            ‘/dev/server/iscsi01‘ [300.00 MiB] inherit

3.  修改tgt配置文件/etc/tgt/target.conf

vi /etc/tgt/targets.conf
<target iqn.2011-04.com.ccie:vdisk>
    backing-store     /srv/iscsi/disk1.img
    backing-store     /dev/sdb1
    backing-store    /dev/server/iscsi01
 
    initiator-address 192.168.0.0/24
    incominguser auth authpass
    write-cache off
</target>
 
# 此档案的语法如下:
<target iqn.相关装置的target名称>
    backing-store    /你的/虚拟设备/完整檔名-1
    backing-store    /你的/虚拟设备/完整檔名-2
    initiator-address   允许访问的IP地址
    incominguser      用户名和密码    
</target>
  • backing-store (虚拟的装置), direct-store (实际的装置): 设定装置时,如果你的整颗磁盘是全部被拿来当 iSCSI 分享之用,那么才能够使用 direct-store 。不过,根据网络上的其他文件, 似乎说明这个设定值有点危险的样子。所以,基本上还是建议单纯使用模拟的 backing-store 较佳
  • initiator-address (用户端地址): 如果你想要限制能够使用这个 target 的客户端来源,才需要填写这个设定值。基本上,不用设定它 (代表所有人都能使用的意思), 因为我们后来会使用 iptables 来规范可以联机的客户端
  • incominguser (用户账号密码设定): 如果除了来源 IP 的限制之外,你还想要让使用者输入账密才能使用你的 iSCSI target 的话,那么就加用这个设定项目。 此设定后面接两个参数,分别是账号与密码
  • write-cache [off|on] (是否使用快取): 在预设的情况下,tgtd 会使用快取来增快速度。不过,这样可能会有遗失数据的风险。所以,如果你的数据比较重要的话, 或许不要使用快取,直接存取装置会比较妥当一些。

4. 启动target服务

service tgtd start
chkconfig tgtd on
netstat -anptul | grep "tgtd"
tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      2374/tgtd          
tcp        0      0 :::3260                     :::*                        LISTEN      2374/tgtd
 
tgt-admin --show
Target 1: iqn.2017-06.com.ccie:vdisk
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0                           <== LUN号码
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdrw
            Backing store path: /srv/iscsi/disk1.img
            Backing store flags:
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 214 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb1
            Backing store flags:
        LUN: 2
            Type: disk
            SCSI ID: IET     00010002
            SCSI SN: beaf12
            Size: 315 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/server/iscsi01
            Backing store flags:
    Account information:
        auth
    ACL information:
        192.168.0.0/24
 
防火墙设置:
iptables -A INPUT  -p tcp -s 192.168.0.0/24 --dport 3260 -j ACCEPT
 

iSCSI  initiator配置

1.     软件结构


/etc/iscsi/iscsid.conf


主要的配置文件,用来连结到 iSCSI target 的设定;


/sbin/iscsid


启动 iSCSI initiator 的主要服务程序;


/sbin/iscsiadm


用来管理 iSCSI initiator 的主要设定程序;


/etc/init.d/iscsid


让本机模拟成为 iSCSI initiater 的主要服务;


/etc/init.d/iscsi


在本机成为 iSCSI initiator 之后,启动此脚本,让我们可以登入 iSCSI target。所以 iscsid 先启动后,才能启动这个服务。为了防呆,所以 /etc/init.d/iscsi 已经写了一个启动指令, 启动 iscsi 前尚未启动 iscsid ,则会先呼叫 iscsid 才继续处理 iscsi

2.     修改配置文件(写入target登陆的账号密码)

[[email protected] ~]# vim /etc/iscsi/iscsid.conf

node.session.auth.username = auth                       <==在 target 时设定的

node.session.auth.password = authpass                 <==约在 53, 54 行

discovery.sendtargets.auth.username = auth        <==约在 67, 68 行

discovery.sendtargets.auth.password = authpass

chkconfig iscsid on

chkconfig iscsi  on

由于我们尚未与 target 联机,所以 iscsi 并无法让我们顺利启动的!因此上面只要 chkconfig 即可,不需要启动他。

3.     侦测到target的相关数据

#检测iSCSI target设备端的数据

iscsiadm -m discovery -t sendtargets -p 192.168.0.5

192.168.0.5:3260,1 iqn.2017-06.com.ccie:vdisk

#显示被检测到的结果

ls -l /var/lib/iscsi/nodes/

total 4

drw-------. 3 root root 4096 Jun 29 21:31 iqn.2017-06.com.ccie:vdisk

[[email protected] ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.5

iscsiadm: No portals found

可能是target端配置地址限制。可以查看/etc/tgt/targets.conf中initiator-address配置

现在我们知道了 target 的名称,同时将所有侦测到的信息通通写入到上述 /var/lib/iscsi/nodes/中,若信息有修订过的话,那你可以到这个档案内修改,也可以透过 iscsiadm 的 update 功能处理相关参数的。

4.     开始联机target

#显示系统上所有target信息:

iscsiadm -m node

192.168.0.5:3260,1 iqn.2017-06.com.ccie:vdisk

#启动iscsi

/etc/init.d/iscsi restart

Logging in to [iface: default, target: iqn.2017-06.com.ccie:vdisk, portal: 192.168.0.5,3260] (multiple)

Login to [iface: default, target: iqn.2017-06.com.ccie:vdisk, portal: 192.168.0.5,3260] successful.

#也可以使用手工方式进行登陆:

iscsiadm -m node -T iqn.2017-06.com.ccie:vdisk --login

使用fdisk -l 可以查看到新增设备信息了。

在服务器上可以使用tgt-admin --show查看到客户端的挂在信息。

5.     更新/删除 target的方法

当 iSCSI target 可能因为某些原因被拿走或其他原因你需要关闭iSCSI initiator时。但是,又不能全部关掉 (/etc/init.d/iscsi stop), 因为还有其他的 iSCSI target 在使用。这个时候该如何取消不要的 target 呢?

[[email protected] ~]# iscsiadm -m node -T targetname --logout

[[email protected] ~]# iscsiadm -m node -o [delete|new|update] -T targetname

选项与参数:

--logout :就是注销 target,但是并没有删除 /var/lib/iscsi/nodes/ 内的数据

-o delete:删除后面接的那部 target 链接信息 (/var/lib/iscsi/nodes/*)

-o update:更新相关的信息

-o new   :增加一个新的 target 信息。

#查看现有target信息

iscsiadm -m node

192.168.0.5:3260,1 iqn.2017-06.com.ccie:vdisk

#iscsiadm -m node -T iqn.2017-06.com.ccie:vdisk --logout

Logging out of session [sid: 15, target: iqn.2017-06.com.ccie:vdisk, portal: 192.168.0.5,3260]

Logout of [sid: 15, target: iqn.2017-06.com.ccie:vdisk, portal: 192.168.0.5,3260] successful.

# 这个时候的 target 连结还是存在的,虽然注销你还是看的到!

#删除target信息

iscsiadm -m node -o delete -T iqn.2017-06.com.ccie:vdisk

#再次查看,target信息被删除了

iscsiadm -m node

iscsiadm: No records found

#重启iscsi服务

/etc/init.d/iscsi restart

时间: 2024-10-12 14:20:16

iSCSI配置的相关文章

CentOS6.5 iscsi配置

iSCSI分为提供存储设备的服务端和使用存储的客户端 iSCSI target:存储设备服务端,存放磁盘或RAID的设备.目的在于提供给其他主机使用 iSCSI initiator:使用target存储服务的客户端 SAN和NAS SAN(存储局域网):来自局域网内的其他存储设备提供的磁盘,可以进行格式化操作(如iSCSI) NAS(网络文件系统):来自NAS提供的文件系统,只能立即使用,不能进行格式化(如NFS) 一.存储服务端上安装配置iSCSI target 1.在存储服务器上安装scsi

iscsi 配置详解

2016年3月27日 21:08 之前学习iscsi的时候,觉得不是蛮麻烦的一个配置,就没有认真配置,结果今天做xen上面的故障转移的时候,要用到iscsi做共享存储,结果居然发现不会搞..干脆就从头学习下吧. iscsi就相当于把scsi封装到ip报文里面去,这样可以通过网络共享块级别的存储.速度快,成本较san低.性能估计也不会差太多吧.不过在普通网卡上使用的时候,把scsi报文封装到ip里面的时候需要CPU进行计算,解码的时候也需要CPU计算,使用专门的网卡则不会存在这个问题. 简单粗暴,

centos iscsi 配置

首先是服务器的设置:[[email protected] 桌面]# yum install scsi-target-*  -y     安装服务  配置yum的方法太简单了,我就不写了[[email protected] 桌面]# /etc/init.d/tgtd restart             重启服务[[email protected] yum.repos.d]# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.201

VMware vSphere vCenter 5.1之iSCSI配置

作者:在路上(老李)    QQ群:384423770 1. 选择"添加网络" 2. 选择"vMkernel"连接类型 3. 选择创建"创建vSphere标准交换机",并选择二块专用于iscsi的物理网卡 4. 设置"网络标签"为iSCSI01,如有VLAN,输入VLAN ID,不需要勾选任何其它选项 5. 输入IP地址信息,该网段必须和iSCSI存储在同一网段 6. 即将完成的效果图 7. 完成添加完iSCSI01后的虚拟网

RHEL7.0 ISCSI配置

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

iscsi 配置使用详解

环境: target: 192.168.1.35 initiator:192.168.1.36 target端: 1.安装服务器scsi-target-utils 2.准备两个磁盘分区/dev/sdb1,/dev/sdb2 3.启动iscsi服务 service tgtd start 4.创建并显示iscsi 5.添加个lun

[转载]vSphere ESXi主机配置iSCSI存储

要点: 1.ESXi主机与存储通信:ping 2.网络:vmkernel 3.存储:iscsi software adapter 4.存储映射 vSphere ESXi主机一般连接的存储类型有光纤存储.iSCSI存储两类.本次案例为iSCSI存储连接ESXi主机的配置. 案例环境:ESXi主机通过以太网络来连接iSCSID存储,并获取到存储空间,拓扑如下: 首先完成iSCSI存储与交换机的配置,由四根千兆网线连接,两边都做端口捆绑,总带宽为4*1000Mbps.存储映射出来10个5T的lun给两

【基础部分】之ISCSI的相关配置

ISCSI(存储分离) fdisk /dev/vdb 分一个主分区 rhel6下的配置: 服务端: yum install scsi-*   -y 进入到    /etc/tgt/targets.conf 开启服务  /etc/init.d/tgtd  start 客户端: yum  install  iscsi-* –y 剩下的步骤和rhel7一样 rhel7下的配置: yum install targetcli -y targetcli 命令可以测试 主服务器上的配置: targetcli

iscsi网络存储介绍及客户端配置操作

1. iscsi介绍与initiator安装 1.1 iSCSI介绍 iSCSI简单来说,就是把SCSI指令通过TCP/IP协议封装起来,在以太网中传输.iSCSI 可以实现在IP网络上传递和运行SCSI协议,使其能够在诸如高速千兆以太网上进行数据存取,实现了数据的网际传递和管理.基于iSCSI建立的存储区域网(SAN)与基于光纤的FC-SAN相比,具有很好的性价比. iSCSI属于端到端的会话层协议,它定义的是SCSI到TCP/IP的映射(如下图),即Initiator将SCSI指令和数据封装