第17章 使用iSCSI服务部署网络存储
章节概述:
本章节将分析SCSI与iSCSI技术结构的不同,了解iSCSI技术的优势、SAN存储网络技术结构以及iSCSI HBA卡的作用。
完整演示部署iSCSI target服务程序的方法流程:创建RAID阵列(5)后使用targetcli命令发布到iSCSI存储目录并创建ACL列表。
配置使用iSCSI initiator服务程序发现、连接并使用iSCSI存储设备,最后编辑fstab文件将存储设备设置为开机启动。
本章目录结构
- 17.1 网络存储技术
- 17.2 部署iSCSI存储
- 17.2.1 配置iSCSI服务端
- 17.2.2 配置iSCSI客户端
17.1 网络存储技术
传统的SCSI小型计算机系统接口(Small Computer System Interface)技术是存储设备最基本的标准协议,但通常需要设备互相靠近并用SCSI总线链接,因此受到了物理环境的限制。
iSCSI小型计算机系统接口(即Internet Small Computer System Interface)则是由IBM公司研究开发用于实现在IP网络上运行SCSI协议的新存储技术,即能够让SCSI接口与以太网技术相结合,使用iSCSI协议基于以太网传送SCSI命令与数据,克服了SCSI需要直接连接存储设备的局限性,使得我们可以跨越不同的服务器共享存储设备,并可以做到不停机状态下扩展存储容量。
SAN存储区域网络技术(Storage Area Network)便是基于iSCSI存储协议,采用高速光钎通道传输存储数据的服务程序。
本图为SAN结构拓扑
服务器会基于iSCSI协议将SCSI设备、命令与数据打包成标准的TCP/IP包然后通过IP网络传输到目标存储设备,而远端存储设备接收到数据包后需要基于iSCSI协议将TCP/IP包解包成SCSI设备、命令与数据,这个过程无疑会消耗系统CPU资源,因此我们可以将SCSI协议的封装动作交由独立的iSCSI HBA硬件卡来处理,减少了对服务器性能的影响。
本图中设备为iSCSI HBA卡
但坦白来讲iSCSI技术还是存在诸多问题的,如距离与带宽之间的矛盾关系,虽然iSCSI满足了数据长距离传输的需求,但现在广域网的带宽还是不够理想,IP网络的速率和延迟都是iSCSI传输数据的巨大障碍。
17.2 部署iSCSI存储
iSCSI的工作方式分为服务端(target)与客户端(initiator):
服务端:即存放硬盘或RAID设备的存储端,目的是为客户端提供可用的存储。
客户端:使用服务端的服务器主机。
本实验需要两台虚拟主机来完成,分别是:
主机名称 | 操作系统 | IP地址 |
iscsi服务端 | 红帽RHEL7操作系统 | 192.168.10.10 |
iscsi客户端 | 红帽RHEL7操作系统 | 192.168.10.20 |
逻辑单元LUN(即Logical Unit Number)是使用iSCSI协议中的重要概念,因为当客户机想要使用服务端存储设备时都必需输入对应的名称(Target ID),而一个服务端可能会同时提供多个可用的存储设备,于是便用LUN来详细的描述设备或对象,同时每个LUN Device可能代表一个硬盘或RAID设备,LUN的名称由用户指定。
17.2.1 配置iSCSI服务端
第1步:准备作为LUN发布的存储设备。
在前面的存储结构章节中学习了使用mdadm工具创建RAID磁盘冗余阵列的方法,忘记就翻回去看下吧~
在虚拟机中再添加4块硬盘:
创建RAID5并设置1块备份故障盘:
[root@linuxprobe ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde mdadm: layout defaults to left-symmetric mdadm: layout defaults to left-symmetric mdadm: chunk size defaults to 512K mdadm: size set to 20954624K mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
查看RAID阵列的详细信息,记录下UUID的值:
[root@linuxprobe ~]# mdadm -D /dev/md0 /dev/md0:Version : 1.2Creation Time : Thu Sep 24 21:59:57 2015Raid Level : raid5Array Size : 41909248 (39.97 GiB 42.92 GB)Used Dev Size : 20954624 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Thu Sep 24 22:02:23 2015State : clean Active Devices : 3 Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KName : linuxprobe.com:0 (local to host linuxprobe.com) UUID : 3370f643:c10efd6a:44e91f2a:20c71f3eEvents : 26Number Major Minor RaidDevice State0 8 16 0 active sync /dev/sdb1 8 32 1 active sync /dev/sdc4 8 48 2 active sync /dev/sdd3 8 64 - spare /dev/sde
创建RAID阵列配置文件:
[root@linuxprobe ~]# vim /etc/mdadm.conf DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde ARRAY /dev/md0 UUID=3370f643:c10efd6a:44e91f2a:20c71f3e
第2步:安装iSCSI target服务程序:
[root@linuxprobe ~]# yum -y install targetd targetcli Loaded plugins: langpacks, product-id, subscription-manager ………………省略部分安装信息……………… Dependencies Resolved ================================================================================Package Arch Version Repository Size ================================================================================ Installing:targetcli noarch 2.1.fb34-1.el7 rhel7 55 ktargetd noarch 0.7.1-1.el7 rhel7 48 k Installing for dependencies:PyYAML x86_64 3.10-11.el7 rhel7 153 klibyaml x86_64 0.1.4-10.el7 rhel7 55 klvm2-python-libs x86_64 7:2.02.105-14.el7 rhel7 153 kpyparsing noarch 1.5.6-9.el7 rhel7 94 kpython-configshell noarch 1:1.1.fb11-3.el7 rhel7 64 kpython-kmod x86_64 0.9-4.el7 rhel7 57 kpython-rtslib noarch 2.1.fb46-1.el7 rhel7 75 kpython-setproctitle x86_64 1.1.6-5.el7 rhel7 15 kpython-urwid x86_64 1.1.1-3.el7 rhel7 654 k Transaction Summary ================================================================================ Install 2 Packages (+9 Dependent packages) ………………省略部分安装信息……………… Complete!
启动iSCSI target服务程序:
[root@linuxprobe ~]# systemctl start targetd
将iSCSI target服务程序添加到开机启动项:
ln -s '/usr/lib/systemd/system/targetd.service' '/etc/systemd/system/multi-user.target.wants/targetd.service'
第3步:创建存储对象。
targetcli命令用于管理iSCSI target存储设备,格式为:“targetcli”
[root@linuxprobe ~]# targetcli Warning: Could not load preferences file /root/.targetcli/prefs.bin. 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: 0] o- loopback ..................................................... [Targets: 0]
进入/backstores/block目录中:
/> cd /backstores/block /backstores/block>
使用/dev/md0创建设备disk0:
/backstores/block> create disk0 /dev/md0 Created block storage object disk0 using /dev/md0.
返回到根目录中:
/backstores/block> cd .. /backstores> cd .. />
查看创建后的设备:
/> ls o- / ..................................................................... [...]o- backstores .......................................................... [...]| o- block .............................................. [Storage Objects: 1]| | o- disk0 ..................... [/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: 0]o- loopback ..................................................... [Targets: 0]
第4步:配置iSCSI target目标。
进入到iscsi目录中:
/> cd iscsi /iscsi>
创建iSCSI target目标:
/iscsi> create Created target iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80. Created TPG 1.
依次进入到target的luns目录中:
/iscsi> cd iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80/ /iscsi/iqn.20....d497c356ad80> ls o- iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80 ...... [TPGs: 1]o- tpg1 ............................................... [no-gen-acls, no-auth]o- acls .......................................................... [ACLs: 0]o- luns .......................................................... [LUNs: 0]o- portals .................................................... [Portals: 0] /iscsi/iqn.20....d497c356ad80> cd tpg1/ /iscsi/iqn.20...c356ad80/tpg1> cd luns /iscsi/iqn.20...d80/tpg1/luns>
创建LUN设备:
/iscsi/iqn.20...d80/tpg1/luns> create /backstores/block/disk0 Created LUN 0.
第5步:设置访问控制列表。
切换到acls目录中:
/iscsi/iqn.20...d80/tpg1/luns> cd .. /iscsi/iqn.20...c356ad80/tpg1> cd acls
创建访问控制列表:
/iscsi/iqn.20...d80/tpg1/acls> create iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80:client Created Node ACL for iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80:client Created mapped LUN 0.
切换到portals目录中:
/iscsi/iqn.20...d80/tpg1/acls> cd .. /iscsi/iqn.20...c356ad80/tpg1> cd portals
添加允许监听的IP地址:
/iscsi/iqn.20.../tpg1/portals> create 192.168.10.10 Using default IP port 3260 Created network portal 192.168.10.10:3260.
查看配置概述后退出工具:
/iscsi/iqn.20.../tpg1/portals> ls / o- / ........................... [...]o- backstores................. [...]| o- block ................... [Storage Objects: 1]| | o- disk0 ................. [/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: 1]| o- iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80 .... [TPGs: 1]| o- tpg1 .................. [no-gen-acls, no-auth]| o- acls ........................................................ [ACLs: 1]| | o- iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80:client [Mapped LUNs: 1]| | o- mapped_lun0 ............................................. [lun0 block/disk0 (rw)] o- luns .................... [LUNs: 1]| | o- lun0 .............. [block/disk0 (/dev/md0)]| o- portals ............. [Portals: 1]| o- 192.168.10.10:3260 [OK]o- loopback .................. [Targets: 0] /> exit Global pref auto_save_on_exit=true Last 10 configs saved in /etc/target/backup. Configuration saved to /etc/target/saveconfig.json
第4步:创建防火墙允许规则:
[root@linuxprobe ~]# firewall-cmd --permanent --add-port=3260/tcp success [root@linuxprobe ~]# firewall-cmd --reload success
17.2.2 配置iSCSI客户端
首先检查能够与iscsi服务端通信:
[root@linuxprobe ~]# ping -c 4 192.168.10.10 PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data. 64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.959 ms 64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.469 ms 64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.465 ms 64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.277 ms--- 192.168.10.10 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3002ms rtt min/avg/max/mdev = 0.277/0.542/0.959/0.253 ms
红帽RHEL7系统已经默认安装了iscsi客户端服务程序:
[root@linuxprobe ~]# yum install iscsi-initiator-utils Loaded plugins: langpacks, product-id, subscription-manager Package iscsi-initiator-utils-6.2.0.873-21.el7.x86_64 already installed and latest version Nothing to do
编辑的iscsi客户端名称文件:
该名称是initiator客户端的唯一标识,读者可以按照我的方法修改,也可以用iscsi-iname命令随机生成~都可以的。
[root@linuxprobe ~]# vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80:client
重启iscsi客户端服务程序:
[root@linuxprobe ~]# systemctl restart iscsid
将iscsi客户端服务程序添加到开机启动项中:
ln -s '/usr/lib/systemd/system/iscsid.service' '/etc/systemd/system/multi-user.target.wants/iscsid.service'
发现iscsi服务端的可用存储设备:
iscsiadm命令用于管理(插入、查询、更新或删除)iSCSI数据库配置文件的命令行工具,格式见下面演示。
[root@linuxprobe ~]# iscsiadm -m discovery -t st -p 192.168.10.10 192.168.10.10:3260,1 iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80
连接iscsi服务端的可用存储设备:
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80, portal: 192.168.10.10,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80, portal: 192.168.10.10,3260] successful.
此时便多了一块硬盘设备:
[root@linuxprobe ~]# file /dev/sdb /dev/sdb: block special
格式化、挂载后查看容量信息:
[root@linuxprobe ~]# mkfs.xfs /dev/sdb log stripe unit (524288 bytes) is too large (maximum is 256KiB) log stripe unit adjusted to 32KiB meta-data=/dev/sdb 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@linuxprobe ~]# mkdir /iscsi [root@linuxprobe ~]# mount /dev/sdb /iscsi [root@linuxprobe ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 18G 3.4G 15G 20% / devtmpfs 734M 0 734M 0% /dev tmpfs 742M 176K 742M 1% /dev/shm tmpfs 742M 8.8M 734M 2% /run tmpfs 742M 0 742M 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
查看设备的UUID值:
[root@linuxprobe ~]# blkid | grep /dev/sdb /dev/sdb: UUID="eb9cbf2f-fce8-413a-b770-8b0f243e8ad6" TYPE="xfs"
设置为开机后自动挂载时因为iSCSI服务程序基于IP网络传输数据,所以我们必需在fstab文件中添加参数_netdev,代表网络联通后再挂载:
[root@linuxprobe ~]# vim /etc/fstab UUID=eb9cbf2f-fce8-413a-b770-8b0f243e8ad6 /iscsi xfs defaults,_netdev 0 0
转载于:https://www.cnblogs.com/linux130/p/5778881.html
第17章 使用iSCSI服务部署网络存储相关推荐
- 配置iSCSI部署网络存储
iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)是由IBM 下属的两大研发机构一一加利福尼亚AImaden和以色列Haifa研 ...
- 17 Flask mega-tutorial 第17章 在Linux上部署(腾讯云 Ubuntu)【极其详细的部署过程】
如需转载请注明出处. win10 64位.Python 3.6.3.Notepad++.Chrome 67.0.3396.99(正式版本)(64 位) 注:作者编写时间2018-03-28,linux ...
- 最新linux搭建gfs系统--iscsi+GFS实现网络存储
虚拟机搭建gfs系统 系统环境:CentOS release 5.5 - 2.6.18-194.el5 gfs节点1:192.168.1.231 gfs1 gfs节点2:192.168.1.232 g ...
- 最新Linux(CentOS5.5)搭建GFS系统--iSCSI+GFS实现网络存储
虚拟机搭建gfs系统 系统环境:CentOS release 5.5 - 2.6.18-194.el5 gfs节点1:192.168.1.231 gfs1 gfs节点2:192.168.1.232 g ...
- 华为存储iscsi配置_网络+存储+虚拟化:三大要素构建新网络
虽然现代数据中心的每一部分都是至关重要的,但是网络却是所有通信的绝对基础.这正是为什么从一开始就必须设计和建设一个合理网络的原因.毕竟,没有稳固的网络,即使最好的服务器和存储器也干不了什么. 为此,我 ...
- gfs mysql_linux搭建gfs系统--iscsi+GFS实现网络存储
启动cman错误的解决办法: Starting fencing... failed 1.同步/etc/cluster/cluster.conf配置文件 2.先启动节点122的cman,在马上重启123 ...
- 8 iSCSI网络存储服务
iSCSI网络存储服务 一网络存储概述 ·直接附加存储 通常我们所熟悉的存储设别就是硬盘,其通过与计算机主板的I/O接口(如IDE.SCSI)相连接,由本机操作系统负责读写及管理,这就是最传统的数据存 ...
- 红帽8DNS服务部署
第一章RedHat8.6_DNS服务部署 RedHat8.6服务部署 第一章RedHat8.6_DNS服务部署 一.搭建DNS准备工作 二.安装bind服务程序 2.1修改配置文件/etc/named ...
- Windows2012R2环境下WSUS补丁服务部署
**Windows2012R2环境下WSUS补丁服务部署** 网络环境 第一步:服务器端WSUS部署 安装windows更新:服务器管理器----添加角色和功能----Windows Server更新 ...
最新文章
- 机器学习笔记 :LSTM 变体 (conv-LSTM、Peephole LSTM、 coupled LSTM、conv-GRU)
- Android隐藏标题栏,全屏显示
- php 上传apk包到cdn_网站cdn加速,cdn防御系统
- php获取继承类方法吗,php如何获取当前类名,继承中的问题?
- 大datatable 内存一直涨_听说你的爬虫一直在整站里循环绕圈圈爬取重复的数据?...
- 如何对xgboost模型进行优化
- matlab中fittype函数,fittype拟合函数
- pyv8的使用基本方法
- 开源WINVNC(一)
- Intellij IDEA 提示cannot find declaration to go to 解决方法
- javascript与python性能对比-lua与python性能测试比较
- 医院信息管理系统论文java_毕业论文-基于java的医院门诊信息管理系统设计与实现...
- 【STM8L】Active-Halt模式下的低功耗
- pdf转excel,如何把pdf转换成excel表格
- 网易云信短信接口java_短信接入示例
- Python 爬取链家二手房,我在北京买房的经历
- 企业数字化转型和升级:架构设计方法与实践
- 来电铃声和通话中的提示音
- html 合并文件到excel,Excel2013把多个文件合并到一个Excel文档里方法图解
- 独家:央行正在酝酿新的备付金管理办法出台 增加清算机构审核职能
热门文章
- stream map方法_Java Stream中map和flatMap方法
- net core mysql 连接池_EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽
- extjs中滚动条属性_十分钟快速了解 JS 中的 offset、scroll、client
- 五分钟没有操作自动退出_这又是什么骚操作??5只蚂蚁战略配售基金拟增设B类份额,自动赎回退出!!...
- gpio引脚介绍 树莓派3b_如何让LabVIEW程序运行在树莓派3B(此处有坑)
- linux 查询wwid命令,linux肿么查看硬盘的wwid
- python有序队列_Python 队列
- oracle 取系统当前年份_oracle查询以当前年份为准的近些年数据
- 使用Python,OpenCV+OCR检测护照图像中的机器可读区域(MRZ Machine-Readable Zones)
- 基于锁相环的调制解调仿真实现