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. 好用的切换滑动焦点图框架jquery.superslide

    拿到学习网站:http://www.superslide2.com/

  2. Android Recyclerview隐藏item的所在区域显示大空白问题的解决方案

    最近搞了下Recyclerview,做了增加.删除item的功能.item上方有卡签 插个图片看下效果,点击底下的添加上去,同时,底下的item消失,这个用notifyItemInserted和not ...

  3. iptable防范ddos攻击

    Basic DoS Protection https://github.com/MPOS/php-mpos/wiki/Basic-DoS-Protection # Rule 1: Limit New ...

  4. 如何将centos7自带的firewall防火墙更换为iptables防火墙

    用惯了centos6的iptables防火墙,对firewall太无感了,那么如何改回原来熟悉的iptables防火墙呢? 1.关闭firewall防火墙 [root@centos7 html]# s ...

  5. 了解Web及网络基础(二)

    HTTP报文分为两种,HTTP请求报文跟HTTP响应报文. HTTP请求报文的结构如下: 其中,请求行中包括的内容有方法.URI和HTTP版本,请求首部字段.通用首部字段和实体首部字段隶属于HTTP首 ...

  6. ABAP和Java SpringBoot的单元测试

    ABAP 在ABAP类里,本地类(Local Class)里用关键字FOR TESTING声明过的方法, 在单元测试启动后会自动被调用到. Spring Boot 在Spring及Spring Boo ...

  7. 谷歌Web中文开发手冊:3响应式

    https://developers.google.com/web/fundamentals/getting-started/your-first-multi-screen-site/responsi ...

  8. 【CCPC-Wannafly Winter Camp Day4 (Div1) C】最小边覆盖(简单题)

    点此看题面 大致题意: 给你一个边集的子集,问你这可不可能是这张图的最小边覆盖. 大致思路 考虑到,如果一条边连接的两个点度数都大于等于\(2\),则这条边完全可以删去. 因此,我们只要判断是否存在这 ...

  9. 2017.9.18 include指令和include动作有什么区别?

    问题:include指令和include动作有什么区别? 答:include指令合并静态文档或Jsp页面中的内容,可以用于包括动态生成的输出结果,因此可以包含一个Servlet include指令在编 ...

  10. 2017.10.16 java中getAttribute和getParameter的区别

    (1)getAttribute:表示得到 域中的对象 返回的是OBJ类型;  getParameter:表示 得到 传递的参数 返回的是String类型; 也就是getAttribute获得的值需要进 ...