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. canvas制作运动的小球

    <!DOCTYPE html> <head> <title>canvas</title> <style> .canvas{ border: ...

  2. Cg shadow of sphere

    参考自:https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Soft_Shadows_of_Spheres using UnityEngine; ...

  3. 解决 MVC4 Code First 数据迁移 数据库发生更改导致调试失败解决方法(二)

    文章转载自:http://www.cnblogs.com/amoniyibeizi/p/4486617.html 前几天学MVC过程中,遇到更改Model类以后,运行程序就会出现数据已更改的问题导致调 ...

  4. eclipse中Tomcat启动了 但看不到tomcat首页

    症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能访问. 关闭eclipse里面的tomc ...

  5. javascript代码工具库

    1. 垃圾收集 另一个块作用域非常有用的原因和闭包及回收内存垃圾的回收机制相关.这里简要说明一 下,而内部的实现原理,也就是闭包的机制会在第 5 章详细解释. 考虑以下代码: function pro ...

  6. 【JavaScript 封装库】BETA 3.0 测试版发布!

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

  7. 轻量级HTTP服务器Nginx(配置与调试Nginx维护Nginx)

    轻量级HTTP服务器Nginx(配置与调试Nginx) 文章来源于南非蚂蚁   Nginx安装完毕后,会产生相应的安装目录,根据前面的安装路径,Nginx的配置文件路径为/opt/nginx/conf ...

  8. 2017.9.18 HTMl学习总结----input标签的额type

    2.1.3  HTML表单标签与表单设计 (1)表单的组成:文本框(text),密码框(password),多行文本框(Multiline text box).  单选按钮框(Single - rad ...

  9. 2017.11.1 微型计算机原理与接口技术-----第七章 中断系统与8237A DMA控制器

    第七章 微型计算机原理与接口技术-----中断系统与8237A DMA控制器 (1)数据传送的两种方式:中断方式和直接存储器存取方式(DMA):中断是微处理器与外部设备交换信息的一种方式:DMA是存储 ...

  10. 20145238-荆玉茗 《Java程序设计》第五次实验报告

    实验五 Java网络编程及安全 一.实验内容 1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP ...