【linux iscsi】linux中iscsi服务应用搭建的例子

更新时间:2020-02-22    来源:php应用    手机版     字体:

【www.bbyears.com--php应用】


一、ISCSI连接的相关概念

SCSI:小型计算机系统的接口 (Small Computer System Interface),ISCSI(Internent Small Computer System Interface)较SCSI协议多了一个Internet,就是基于以太网传输的SCSI协议。日常应用中非常常见的一个应用,提供存储服务的一端通常被称为iSCSI target ,使用存储空间的一段被称作iSCSI initiator 。iSCSI initiator连接存储端的方式有三种:

1、以太网卡+initiator软件方式

该方式基本使用现有环境就可以,只需要在客户机上安装一个客户端管理软件(Initiator)。优点是只需在现有的网络中就可以完成,成本很低;缺点是消耗客户端主机部分资源,适用的环境在一般的低I/O和低带宽性能要求的应用环境中。

2、硬件TOE网卡+initiator软件方式

TOE(TCP offload Engine)网卡是一个智能的以太网卡,它可以将这个网络的数据流量的处理工作全部转到网卡的集成硬件中完成。客户端主机可以从繁忙的协议解脱出来。这个优点是采用了TOE卡后可以大幅度提高数据的传输速率,降低客户端的主机的资源消耗,缺点是需要购买TOE智能以太网卡,成本较高。

3、ISCSI HBA卡连接方式

客户端安装专业的ISCSI HBA卡,从而实现主机和交换机之间、主机与存储之间的高效率数据的交换,这个优点是数据传输的性能最好,缺点是需要购买ISCSI HBA适配卡,成本非常高。

本篇主要介绍的就是第一种连接方式。

二、环境与需求

iSCSI target:

IP:192.168.1.200

iqn串:iqn.2015-08.com.361way:test-target

ACL允许主机:iqn.2015-08.com.361way:client00

iSCSI Initiator:

主机1:192.168.1.210 (linux主机)

主机2:192.168.1.211 (win7主机)

要注iscsi target可以为两台iscsi initiator主机提供磁盘存储服务。

三、iscsi target服务端配置

iscsi target管理工具的安装:

# yum -y install targetcli
安装完成后,其有一个targetcli工具,我们可以通过该工具进行交互式的管理:

# targetcli
---创建块设备
/> backstores/block create server1.disk /dev/sdb1   //也可以是不分区的一块整盘

/> backstores/fileio create test /tmp/test.img 100m   //使用img文件
---生成iqn串
/> iscsi/ create iqn.2015-08.com.361way:test-target
/> cd iscsi/iqn.2015-08.com.361way:test-target/tpg1/
---设置监听IP,默认是监听0.0.0.0,所有地址,不删除创建时会有报错
tpg1/> portals create 192.168.1.200:3260
Using default IP port 3260
Could not create NetworkPortal in configFS.
tpg1/> portals delete 0.0.0.0 3260
tpg1/> portals create 192.168.1.200:3260
Using default IP port 3260
Created network portal 192.168.1.200:3260
---创建lun
tpg1/> luns/ create /backstores/block/test server1.disk  //使用磁盘或分区时

tpg1/> luns/ create /backstores/fileio/test       //使用img文件时
---设置acl规则
tpg1/> acls/ create iqn.2015-08.com.361way.com:client01        //acl访问规则,只允许该iqn串客户端连接
---保存规则,
/> saveconfig
/> exit
1、iscsi target非常灵活,支持将block 设备、fileio img、pscsi 硬件连接设备、ramdisk 创建为lun ,并提供给其他主机提供磁盘共享服务。上面的示例中,给出了两种常用的设备:一种是磁盘、分区提供lun;一种是img文件提供lun ;

2、iqn串的格式为: iqn.YYYY(年)-MM(月).域名反写:随机串 ,其中随机串可以数字字幕任意输,只要便于识别就可以。

3、创建监听地址这一步操作可以省略,不过在主机同时存在内外网环境,我们只想给内网环境主机提供磁盘共享服务时,出于安全考虑,可以只监听内网网口。

4、所有的配置修改过后,除了要切到根目录下,通过saveconfig保存配置外,还需要特别注意一定要将target服务配置为开机自启动,不然重启后,配置会不存在,不过在现实环境或考试中也无需惊慌,在/etc/target/backup 目录有最近的几次更改的备份。

# systemctl start target
# systemctl enable target
5、在centos7中,所有配置保存在/etc/target/saveconfig.json 文件中,这个和之前的版本有所不同。如果在配置中出现配置错误,想要重新来过,直接该文件即可。

默认iscsi 监听端口为3260 ,需要在防火墙上放行,配置命令如下:

# firewall-cmd --permanent --add-port=3260/tcp
# firewall-cmd --reload
四、客户端挂载配置

1、linux客户机挂载方法

软件安装与配置修改

linux 主机挂载前需要先安装一个软件 iscsi-initiator-utils

# yum -y install iscsi-initiator-utils
安装完该包,需要修改 /etc/iscsi/initiatorname.iscsi 中的iqn 串为target端中acl 允许的串:

#cat  /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2015-08.com.361way:client01
如涉及到用户认证的还需要修改/etc/iscsi/iscsid.conf 文件中的node.session.auth.username、node.session.auth.password的值 。

discover发现target设备

# iscsiadm -m discovery -t sendtargets -p 192.168.1.200

# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.1.200 --discover
192.168.1.200:3260,1 iqn.2015-08.com.361way:test-target   //输出target端iqn相关信息
登入或登出

# iscsiadm -m node -T iqn.2015-08.com.361way:test-target -l      //登入
# iscsiadm -m node -T iqn.2015-08.com.361way:test-target -u     //登出
或者使用全写
# iscsiadm --mode node --targetname iqn.2015-08.com.361way:test-target --portal 192.168.1.200:3260 --login
# iscsiadm --mode node --targetname iqn.2015-08.com.361way:test-target --portal 192.168.1.200:3260 --logout
登入操作就相当于将远程盘映射到本地磁盘,login操作完成后,正常可以通过fdisk -l 查看到新增的磁盘,此时可以通过fdisk工看分区后像操作本地盘一样进行读写操作。

使用iscsiadm命令发现设备和登入登出时,我比较习惯使用全写,虽然容易记住,但在man iscsiadm 时有直接已经写好的样例,拿过来更改下就可以直接使用。

开机自动挂载

我们将新增的磁盘/dev/sdb ,格式化为ext4格式后,并将/dev/sdb1挂载/opt 目录下,在/etc/fstab中需要如下配置:

/dev/sdb1         /opt            ext4      defaults,_netdev        0 0
重点在增加了_netdev ,访参数的意思就是该设备的挂载需要网络,避免网络启动前挂载出现错误。

删除node

默认我们discover和login以后,会在/var/lib/iscsi目录有相关文件生成:

# tree
.
├── ifaces
├── isns
├── nodes
│   └── iqn.2015-08.com.361way:test-target
│       └── 192.168.1.200,3260,1
│           └── default
├── send_targets
│   └── 192.168.1.200,3260
│       ├── iqn.2015-08.com.361way:test-target,192.168.1.200,3260,1,default -> /var/lib/iscsi/nodes/iqn.2015-08.com.361way:test-target/192.168.1.200,3260,1
│       └── st_config
├── slp
└── static
10 directories, 2 files
使用logout 操作时,并不会清理相关记录,主机重启后,还会通过/etc/fstab下的配置重启挂载iscsi 共享,可以使用如下方法进行干净的删除:

# iscsiadm --mode node --targetname iqn.2015-08.com.361way:test-target --portal 192.168.1.200:3260 --logout
Logging out of session [sid: 1, target: iqn.2015-08.com.361way:test-target, portal: 192.168.1.200,3260]
Logout of [sid: 1, target: iqn.2015-08.com.361way:test-target, portal: 192.168.1.200,3260] successful.
# iscsiadm --mode node --targetname iqn.2015-08.com.361way:test-target --portal 192.168.1.200:3260 -o delete
# tree
.
├── ifaces
├── isns
├── nodes
├── send_targets
│   └── 192.168.1.200,3260
│       └── st_config
├── slp
└── static
7 directories, 1 file
-o delete以后,可以和login、logout后该目录文件的变化做下对比。

五、windows客户端挂载

win7和win2008以后的版本中默认都已经集成了iscsi 客户端管理工具,之前的版本也可以单独安装软件包。打开管理工个的方法为:windows 可以在开始---运行---iscsicpl 直接打开iscsi 客户端管理程序,如果记不住命令也可以通过 控制面板---所有控制面板项 --- 管理工具---iSCSI 发起程序  打开iscsi 管理工具:

discover 发现iscsi target:


windows-iscsi-discover


连接target:


win7-iscsi-target


磁盘管理


在磁盘管理里会发现新增的磁盘


iscsi-disk


总结:


rhce 考试部分的iscsi 还是比较简单的,不涉及chap 用户认证 ,也不涉及多路径的配置。实际使用中,可以考虑使用较为成熟的专用存储OS系统,如开源的Openfiler、商业版的open-e dss-v7 。

本文来源:http://www.bbyears.com/jiaocheng/85358.html

热门标签

更多>>

本类排行