ISCSI(iSCSI,Internet Small Computer System Interface)

iSCSI技术实现了物理硬盘设备与TCP/IP网络协议的相互结合,使得用户可以通过互联网方便地访问远程机房提供的共享存储资源。

既然要使用iSCSI存储技术为远程用户提供共享存储资源,首先要保障用于存放资源的服务器的稳定性与可用性,否则一旦在使用过程中出现故障,则维护的难度相较于本地硬盘设备要更加复杂、困难。

  1. 创建RAID阵列(保证数据安全性 RAID10)

此处略过,RAID详细创建过程讲解请看  https://www.cnblogs.com/zhangjianghua/p/9091200.html

  2、配置iSCSI服务端

iSCSI技术在工作形式上分为服务端(target)与客户端(initiator)。

iSCSI服务端即用于存放硬盘存储资源的服务器,它作为前面创建的RAID磁盘阵列的存储端,能够为用户提供可用的存储资源。iSCSI客户端则是用户使用的软件,用于访问远程服务端的存储资源。

iSCSI服务端和客户端的操作系统以及IP地址:

主机名称 操作系统 IP地址
iSCSI服务端 RHEL 7 192.168.38.251
iSCSI客户端 RHEL 7 192.168.38.250

第1步:安装iSCSI服务端程序以及配置命令工具;安装完成后,启动iSCSI的服务端程序targetd,然后把这个服务程序加入到开机启动项中

[root@zhangjh ~]# yum install targetd targetcli -y
[root@zhangjh ~]# systemctl start targetd
[root@zhangjh ~]# systemctl enable targetd
ln -s '/usr/lib/systemd/system/targetd.service' '/etc/systemd/system/multi-user.target.wants/targetd.service'

第2步:配置iSCSI服务端共享资源。

targetcli是用于管理iSCSI服务端存储资源的专用配置命令,它能够提供类似于fdisk命令的交互式配置功能,将iSCSI共享资源的配置内容抽象成“目录”的形式,我们只需将各类配置信息填入到相应的“目录”中即可。

[root@zhangjh ~]# targetcli
targetcli shell version 2.1.fb34
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'. /> ls
o- / ................................................................................ [...]
o- backstores ..................................................................... [...]
| o- block ......................................................... [Storage Objects: 0]
| o- fileio ........................................................ [Storage Objects: 0]
| o- pscsi ......................................................... [Storage Objects: 0]
| o- ramdisk ....................................................... [Storage Objects: 0]
o- iscsi ................................................................... [Targets: 1]
| o- iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.858af61dee6c ................ [TPGs: 1]
| o- tpg1 ...................................................... [no-gen-acls, no-auth]
| o- acls ................................................................. [ACLs: 0]
| o- luns ................................................................. [LUNs: 0]
| o- portals ........................................................... [Portals: 0]
o- loopback ................................................................ [Targets: 0]
/> cd /backstores/block
/backstores/block> create disik0 /dev/md0
Created block storage object disik0 using /dev/md0.
/backstores/block> cd /
/> ls
o- / ................................................................................ [...]
o- backstores ..................................................................... [...]
| o- block ......................................................... [Storage Objects: 1]
| | o- disik0 ............................... [/dev/md0 (40.0GiB) write-thru deactivated]
| o- fileio ........................................................ [Storage Objects: 0]
| o- pscsi ......................................................... [Storage Objects: 0]
| o- ramdisk ....................................................... [Storage Objects: 0]
o- iscsi ................................................................... [Targets: 1]
| o- iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.858af61dee6c ................ [TPGs: 1]
| o- tpg1 ...................................................... [no-gen-acls, no-auth]
| o- acls ................................................................. [ACLs: 0]
| o- luns ................................................................. [LUNs: 0]
| o- portals ........................................................... [Portals: 0]
o- loopback ................................................................ [Targets: 0]
/>

第3步:创建iSCSI target名称及配置共享资源。

iSCSI target名称是由系统自动生成的,这是一串用于描述共享资源的唯一字符串。稍后用户在扫描iSCSI服务端时即可看到这个字符串,因此我们不需要记住它。

系统在生成这个target名称后,还会在/iscsi参数目录中创建一个与其字符串同名的新“目录”用来存放共享资源。

我们需要把前面加入到iSCSI共享资源池中的硬盘设备添加到这个新目录中,这样用户在登录iSCSI服务端后,即可默认使用这硬盘设备提供的共享存储资源了。

/> cd iscsi/
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853.
Created TPG 1.
/iscsi> cd iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853/
/iscsi/iqn.20....762bbcbd6853> ls
o- iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853 .................... [TPGs: 1]
o- tpg1 .......................................................... [no-gen-acls, no-auth]
o- acls ..................................................................... [ACLs: 0]
o- luns ..................................................................... [LUNs: 0]
o- portals ............................................................... [Portals: 0]
/iscsi/iqn.20....762bbcbd6853> cd tpg1/luns
/iscsi/iqn.20...853/tpg1/luns> create /backstores/block/disik0
Created LUN 0.
/iscsi/iqn.20...853/tpg1/luns>

第4步:设置访问控制列表(ACL)。

iSCSI协议是通过客户端名称进行验证的,也就是说,用户在访问存储共享资源时不需要输入密码,只要iSCSI客户端的名称与服务端中设置的访问控制列表中某一名称条目一致即可,

因此需要在iSCSI服务端的配置文件中写入一串能够验证用户信息的名称。acls参数目录用于存放能够访问iSCSI服务端共享存储资源的客户端名称。

/iscsi/iqn.20...853/tpg1/luns> cd ..
/iscsi/iqn.20...bcbd6853/tpg1> cd acls
/iscsi/iqn.20...853/tpg1/acls> create iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853:client
Created Node ACL for iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853:client
Created mapped LUN 0.
/iscsi/iqn.20...853/tpg1/acls>

第5步:设置iSCSI服务端的监听IP地址和端口号。

位于生产环境中的服务器上可能有多块网卡,那么到底是由哪个网卡或IP地址对外提供共享存储资源呢?

这就需要我们在配置文件中手动定义iSCSI服务端的信息,即在portals参数目录中写上服务器的IP地址。

接下来将由系统自动开启服务器192.168.10.10的3260端口将向外提供iSCSI共享存储资源服务:

/iscsi/iqn.20...853/tpg1/acls> cd ..
/iscsi/iqn.20...bcbd6853/tpg1> cd portals
/iscsi/iqn.20.../tpg1/portals> create 192.168.38.251
Using default IP port 3260
Created network portal 192.168.38.251:3260.
/iscsi/iqn.20.../tpg1/portals>

第6步:配置妥当后检查配置信息,重启iSCSI服务端程序并配置防火墙策略。

/iscsi/iqn.20.../tpg1/portals> ls /
o- / ................................................................................ [...]
o- backstores ..................................................................... [...]
| o- block ......................................................... [Storage Objects: 1]
| | o- disik0 ................................. [/dev/md0 (40.0GiB) write-thru activated]
| o- fileio ........................................................ [Storage Objects: 0]
| o- pscsi ......................................................... [Storage Objects: 0]
| o- ramdisk ....................................................... [Storage Objects: 0]
o- iscsi ................................................................... [Targets: 2]
| o- iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853 ................ [TPGs: 1]
| | o- tpg1 ...................................................... [no-gen-acls, no-auth]
| | o- acls ................................................................. [ACLs: 1]
| | | o- iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853:client [Mapped LUNs: 1]
| | | o- mapped_lun0 ....................................... [lun0 block/disik0 (rw)]
| | o- luns ................................................................. [LUNs: 1]
| | | o- lun0 ............................................... [block/disik0 (/dev/md0)]
| | o- portals ........................................................... [Portals: 1]
| | o- 192.168.38.251:3260 ..................................................... [OK]
| o- iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.858af61dee6c ................ [TPGs: 1]
| o- tpg1 ...................................................... [no-gen-acls, no-auth]
| o- acls ................................................................. [ACLs: 0]
| o- luns ................................................................. [LUNs: 0]
| o- portals ........................................................... [Portals: 0]
o- loopback ................................................................ [Targets: 0]
/iscsi/iqn.20.../tpg1/portals> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
[root@zhangjh ~]# systemctl restart targetd
[root@zhangjh ~]# iptables -F
[root@zhangjh ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

配置Linux客户端:

[root@zhangjh ~]# yum install iscsi-initiator-utils.i686 -y

编辑iSCSI客户端中的initiator名称文件,把服务端的访问控制列表名称填写进来,然后重启客户端iscsid服务程序并将其加入到开机启动项中

[root@zhangjh ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853:client
[root@zhangjh ~]# systemctl restart iscsid
[root@zhangjh ~]# systemctl enable iscsid
ln -s '/usr/lib/systemd/system/iscsid.service' '/etc/systemd/system/multi-user.target.wants/iscsid.service'

iscsiadm是用于管理、查询、插入、更新或删除iSCSI数据库配置文件的命令行工具,用户需要先使用这个工具扫描发现远程iSCSI服务端,然后查看找到的服务端上有哪些可用的共享存储资源。

其中,-m discovery参数的目的是扫描并发现可用的存储资源,-t st参数为执行扫描操作的类型,-p 参数为iSCSI服务端的IP地址:

发现卷:

[root@zhangjh ~]# iscsiadm -m discovery -t st -p 192.168.38.251
192.168.38.251:3260,-1 iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.858af61dee6c  #这个是前边多创建了一个
192.168.38.251:3260,1 iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853

登录iSCSI服务端

[root@zhangjh ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853 -p 192.168.38.251 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853, portal: 192.168.38.251,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853, portal: 192.168.38.251,3260] successful.

在iSCSI客户端成功登录之后,会在客户端主机上多出一块名为/dev/sdb的设备文件。

[root@zhangjh ~]# file /dev/sdb
/dev/sdb: block special

下面进入标准的磁盘操作流程:

[root@zhangjh ~]# mkfs.xfs /dev/sdb -f
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/sdf isize=256 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

挂载并使用:

[root@zhangjh ~]# mkdir /iscsi
[root@zhangjh ~]# mount /dev/sdb /iscsi/
[root@zhangjh ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.1G 15G 18% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 918M 140K 917M 1% /dev/shm
tmpfs 918M 9.0M 909M 1% /run
tmpfs 918M 0 918M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/sdb 40G 33M 40G 1% /iscsi

从此以后,这个设备文件就如同是客户端本机主机上的硬盘那样工作了

如果我们不再需要使用iSCSI共享设备资源了,可以用iscsiadm命令的-u参数将其设备卸载:

[root@zhangjh ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853 -u
Logging out of session [sid: 1, target: iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853, portal: 192.168.38.251,3260]
Logout of [sid: 1, target: iqn.2003-01.org.linux-iscsi.zhangjh.x8664:sn.762bbcbd6853, portal: 192.168.38.251,3260] successful.

配置windows客户端:

第1步:运行iSCSI发起程序。

第2步:扫描发现iSCSI服务端上可用的存储资源。

在弹出的“快速连接”提示框中可看到共享的硬盘存储资源,单击“完成”按钮即可

第3步:连接iSCSI服务端的共享存储资源。

由于在iSCSI服务端程序上设置了ACL,使得只有客户端名称与ACL策略中的名称保持一致时才能使用远程存储资源,因此需要在“配置”选项卡中单击“更改”按钮,把iSCSI发起程序的名称修改为服务端

然后点击连接

显示连接成功:格式化分区即可使用

ISCSI网络存储的更多相关文章

  1. 《linux就该这么学》第十六节课:第16,17章,Squid服务和iscsi网络存储

    第十六章 squid总结: 正向代理:yum  安装后清空防火墙即可正常使用,客户端设置浏览器 透明正向代理:vim  /etc/squid/squid.conf 59行:http_port  312 ...

  2. CentOS 6.5下配置iSCSI网络存储

    一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行 SCSI协议,使其能 ...

  3. CentOS 6.3下配置iSCSI网络存储

    一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...

  4. 共享存储(ISCSI网络存储)

    server端:(192.168.100.11) 分区sdb 分别为10G和5G #fdisk /dev/dab …… 同步分区表 #partprobe /dev/sdb # yum install ...

  5. 配置iSCSI部署网络存储

    iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)是由IBM 下属的两大研发机构一一加利福尼亚AImaden和以色列Haifa研 ...

  6. 网络存储(二)之ISCSI原理

    组成 一个简单ISCSI系统大致由以下部分构成 ISCSI Initiator 或者 ISCSI HBA ISCSI Target 以太网交换机 一台或者多台服务器 结构图如下: iscsi服务器用来 ...

  7. 第17章 使用iSCSI服务部署网络存储

    章节概述: 本章节将分析SCSI与iSCSI技术结构的不同,了解iSCSI技术的优势.SAN存储网络技术结构以及iSCSI HBA卡的作用. 完整演示部署iSCSI target服务程序的方法流程:创 ...

  8. iscsi 挂载网络存储及存储访问

    http://blog.sina.com.cn/s/blog_408764940101ghzi.html 一.Ess3016x设置 登陆admin 密码 888888888888 1.安装硬盘,查看硬 ...

  9. Centos6.5搭建RHCS集群-实现GFS+iSCSI网络共享存储

    RHCS集群配置 需要用到的各组件功能:RHCS(Red Hat Cluster Suite):能够提供高可用性.高可靠性.负载均衡.存储共享且经济廉价的集群工具集合.LUCI:是一个基于web的集群 ...

随机推荐

  1. iDempiere 使用指南 BOM及工单流程

    Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...

  2. sharepoint2007就地升级2010系列(四)升级数据库

    上一篇我们完成了系统的升级,今天我们来看一下SQL2005X64是如何升级到SQL2008X64的. 首先,我们先停掉所有sharepoint的服务 其实网上的文档并没有写到这一步,但是我个人觉得,要 ...

  3. ArcGisJS的layers-add-result事件总结

    map.on("layers-add-result", initEditing);当地图控件中的所有图层加载完毕之后触发. 注意图层加载完成后返回的的结果:event. funct ...

  4. HashWithIndifferentAccess

    The params method returns the parameters passed to the action, such as those fromthe form or query p ...

  5. 再谈 Struts1.x 的运行机制

    1.Action类 execute 方法 ActionMapping 对应 <action path="user" type="myuser.UserAction& ...

  6. HCNA管理设置文件系统FTP服务上传下载文件

    1.拓扑图 2.R2配置 The device is running! ###################################### <Huawei>sys Enter s ...

  7. js01

    /////////////////////////////////////////////////////////////js开端/////////////////////////////////// ...

  8. 【js基础修炼之路】--创建文档碎片document.createDocumentFragment()

          讲这个方法之前,我们应该先了解下插入节点时浏览器会做什么.         在浏览器中,我们一旦把节点添加到document.body(或者其他节点)中,页面就会更新并反映出这个变化,对于 ...

  9. 【JavaScript 封装库】BETA 4.0 测试版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

  10. mysql如何查看错误代码具体释义?(基于perror)

    mysql如何查看错误代码具体释义? 关键词:mysql错误代码,mysql错误号 perror 错误号