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.lazyload.min.js

    当一个页面打开的图片太多,我们可以用jquery的一个延迟加载插件.名为:jquery.lazyload.min.js 使用非常简单,如下: <div style="height:70 ...

  2. http相关文章目录

    四种常见的 POST 提交数据方式  https://imququ.com/post/four-ways-to-post-data-in-http.html

  3. 小程序里打开app的实现过程

    之前开发过类似得需求,也踩了一些小坑,在这里和大家分享下,毕竟这样的需求也不在少数,基本上产品后期都会有这样的需求: 官方说明 因为需要用户主动触发才能打开 APP,所以该功能不由 API 来调用,需 ...

  4. 国外统计学课程主页Statistical Books, Manuals and Journals

    国外统计学课程主页Statistical Books, Manuals and Journalshttp://statpages.info/javasta3.html

  5. 使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库

    在表DBCON里维护一条记录,指向HANA数据库.con_ENV里填入HANA数据库的主机名和端口号.如vmXXXX:30015 DATA: ls_new TYPE DBCON. ls_new-con ...

  6. Jmeter入门8 连接microsoft sql server数据库取数据

    本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...

  7. InnoDB锁演示

    create table t1( c1 int(10) unsigned not null default '0', c2 int(10) unsigned not null default '0', ...

  8. 返回json格式 不忽略null字段

    返回json格式 不忽略null字段  发布于 353天前  作者 king666  271 次浏览  复制  上一个帖子  下一个帖子  标签: json 如题,一个实体的某个字段如果为null,在 ...

  9. Java继承和访问修饰符

    继承 概念:为了提取两个类中公共代码,可以使用继承抽取重复性的代码到一个公共类中,这个公共的类称为父类(super class).继承于父类的类称为子类(sub class). 关键字     ext ...

  10. Next K Permutation

    3457: Next K Permutation 时间限制: 1 Sec  内存限制: 128 MB提交: 4  解决: 4[提交] [状态] [讨论版] [命题人:admin] 题目描述 n 个数有 ...