搭建iSCSI共享IPSAN
iSCSI(internet SCSI)是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。
iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。
iSCSI 的主要功能是在TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。
从本质上说,iSCSI 启动器是一个客户端设备,它连接到服务器(在本例中是 iSCSI 目标)提供的某一服务,并发起对该服务的请求。iSCSI 启动器软件需要安装在每个节点上。 iSCSI 启动器可以用软件实现,也可以用硬件实现。软件 iSCSI 启动器可用于大部分主要操作系统平台。对于本文,我们将使用 iscsi-initiator-utils RPM 中提供的免费 Linux Open-iSCSI 软件驱动程序。iSCSI 软件启动器通常与标准网络接口卡 (NIC)(大多数情况下是千兆位以太网卡)配合使用。硬件启动器是一个 iSCSI HBA,它本质上只是一个专用以太网卡。
iSCSI 目标是 iSCSI 网络的"服务器"组件。它通常是一个存储设备,包含您所需的信息并响应来自(一个或多个)启动器的请求。对于本文,节点rac1 将是 iSCSI 目标。
配置iscsi target:
方案1:命令行配置,立即有效,重启无效
1.在target上添加磁盘:sdb,sdc,sdd,sde
准备存储设备/dev/md5
yum –y install mdadm
mdadm –Cv /dev/md5 –a yes –n 3 –x 1 –l 5 /dev/sd[b-e]
mdadm –D –s >/etc/mdadm.conf
sed –I ‘1 s/$/auto=yes/’ /etc/mdadm.conf
cat /etc/mdadm.conf
2、安装程序包、启动服务
[root@rac1 ~]# yum install -y scsi-target-utils
[root@rac1 ~]# service tgtd start
3、创建target
[root@rac1 ~]# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2017-04.com.comsys:iscsi.fcdisk
4、创建lun
[root@rac1 ~]# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/md5
[root@rac1 ~]# tgtadm --lld iscsi --mode logicalunit --op delete --tid 1 --lun 1 #删除lun的方法
5、授权
为 Target 分配了 LUN 后,需要配置访问控制才可以使用。可以设置所有用户都能访问,也可以设置基于IP/IP段或用户名验证的访问权限。
添加两个 IP 的访问权限:
[root@rac1 ~]# # tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.1.10
[root@rac1 ~]# # tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.2.10
再添加一个 IP 段的访问权限:
[root@rac1 ~] # tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.3.0/24
添加所有 IP 的访问权限:
[root@rac1 ~] # tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address ALL
注意:访问控制是 Target 的一个特性,只能给 Target 添加访问控制,而对单独的 LUN 则无法添加访问控制。
6、查看已经定义的信息
[root@rac1 ~]# tgtadm --lld iscsi --mode target --op show
方案2:在配置文件中定义,重启有效
1、安装tgt
[root@rac1 ~]# yum install scsi-target-utils -y
2、配置tgt
tgt的主配置文件为/etc/tgt/targets.conf,下面我们来设置该文件。
在该文件最后新增以下设置:
<target iqn.2011-10.com.example.cluster1:iscsi>
backing-store /dev/md5 #指定要发布的设备已划分的分区
initiator-address ALL #对于客户端的访问控制,允许所有用户访问
</target>
说明:
iqn(iSCSI Qualified Name)名称规则如下:
格式是:“iqn”+“年月”+“.”+“域名的颠倒”+“:”+“设备的具体名称”,之所以颠倒域名是为了避免可能的冲突。
举例: iqn.2008-07.com.h3c.rd:test
每个在同一个target上的backing-store 称为逻辑单元号(Logical Unit Number,LUN),这个实验中有1个LUN。
其他高级设置如, 大家自己进行配置。
incominguser user1 pass12 #允许user1访问密码pass12
write-cache off #关闭写缓存
#direct-store /dev/sdc #整块磁盘
3、启动iSCSI target
[root@rac1 ~]# /etc/init.d/tgtd start #启动target服务
[root@rac1 ~]# chkconfig tgtd on #开机自动启动
4、查看iSCSI target
[root@rac1 ~]# tgtadm --lld iscsi --mode target --op show
LUN0 是控制器,可以看到各个LUN的大小和磁盘路径。
至此,iSCSI Target 设定完毕。
iSCSI客户端配置
1)安装客户端软件
yum –y install iscsi-initiator-utils lsscsi
/etc/init.d/iscsi start
/etc/init.d/iscsi restart
2)发现并连接iscsi设备
iscsiadm –m discovery –t sendtargets –p 192.168.1.51
#发现target服务,信息会写入/var/lib/iscsi 目录
发送给192.168.1.51一个target
其中:
-m 可用的mode有discovery,node,fw
-t sendtargets,可简写为st,仅用于discovery模式,发送一个target给initiator;
-p 指定target服务的ip和端口
- T用于指定target名字
-l login
-u logout
登录到指定名字的target上
lsscsi 查看scsi设备
tree /var/lib/iscsi/nodes
/etc/init.d/iscsi start #在启动iscsi服务 该服务是根据iscsid服务信息/var/lib/iscsi/ 来识别设备的
lsblk #lsblk查看块信息的命令
iscsiadm –m node –T iqn.2008-07.com.h3c.rd:test –u
#卸载scsi设备
lsblk 查看设备,已没有共享的设备了
iscsiadm –m node –T iqn.2008-07.com.h3c.rd:test –l
登录scsi设备
lsblk查看
3)使用iscsi存储设备
fdisk –l /dev/md5
mkfs.ext4 /dev/md5
mkdir /scsi
mount /dev/md5 /scsi
df –Th
搭建iSCSI共享IPSAN的更多相关文章
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式CentOS7-1810下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 TGT 方式 CentOS6.9系统下
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式 Debian9.5下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 TGT 方式 Debian9.5系统下
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储
转至:https://www.linuxidc.com/Linux/2016-09/135655.htm Linux下搭建iSCSI共享存储 拓扑: 实验步骤: ------------------- ...
- Linux下搭建iSCSI共享存储详细步骤(服务器模拟IPSAN存储)
一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...
- 搭建iSCSI文件服务器故障转移群集
故障转移群集(Failover Cluster)可以提供一个高可用性应用程序或服务的网络环境,本章将接受如何搭建iSCSI SAN文件服务器故障转移群集. 故障转移群集概述 我们可以将多台服务器组成一 ...
- RedHat Enterprise7 搭建ISCSI
IP 主机名 作用 10.45.129.113/24 外网 172.16.1.10/24 内网 rac1 RAC节点1 10.45.129.114/24 外网 172 ...
- 实验:iscsi共享存储
实验名称: iscsi共享存储 实验环境: 我们需要准备一个磁盘,对于这个磁盘我们需要使用,将这个磁盘空间共享给iscsi客户端: 实验需求: 我们这里使用两台服务器来实现iscsi共享存储: 1.指 ...
随机推荐
- Python学习---重点模块的学习【all】
time [时间模块] import time # print(help(time)) # time模块的帮助 print(time.time()) # 时间戳 print(time.cloc ...
- Nginx学习---企业级nginx环境搭建
1.1. nginx安装环境 1.系统要求 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. 1-1 安装 GCC 源码安装nginx需要依赖gcc环境,需要 ...
- Sqoop操作集合
1.在hive中建一个与mysql中一模一样的表 sqoop create-hive-table --connect jdbc:mysql://***.**.***.**:3306/数据库名称 --t ...
- 解决python3 UnicodeDecodeError: 'gbk' codec can't decode byte
本来想写个html来玩玩,结果读取文件得时候就BUG了.... 以下代码读取html中无中文没有问题. def handle_request(client): buf = client.recv(10 ...
- python 网络编程 -- Tcp协议
Socket是网络编程的一个抽象概念.通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可. 客户端 大多数连接都是可靠 ...
- 【SQL.基础构建-第四节(4/4)】
-- Tips:数据更新 --一.插入数据 --1.INSERT 语句的基本语法 --语法:--INSERT INTO <表名>(列1, 列2, ...) VALUES (值1, ...
- java多线程--实现Runnable接口方式
因为java类只能继承一个类可以实现多个接口的特性,所以一般情况下不推荐使用继承Thread类实现多线程,下面是实现Runnable接口方式的简单多线程代码 package text; /** * 多 ...
- 【[HNOI2004]敲砖块】
非常巧妙的\(dp\)顺序 这道题如果按照最正常的顺序来\(dp\)的话,显然是没有办法做的,后效性太大了 所以我们可以巧妙的改变\(dp\)的顺序 我们注意到一个位置\((i,j)\)要被打到的话就 ...
- 【[IOI2014]Wall 砖墙】
好像随便一卡就最优解了 malao告诉我这道题挺不错的,于是就去写了写 这两个操作很有灵性啊,感觉这么有特点的数大概是需要分块维护的吧 但是并没有什么区间查询,只是在最后输出整个序列 于是我们就直接用 ...
- sping全家桶笔记
1.curl 用于在终端命令模式下访问一个URL地址 例如在idea的Terminal中访问URL,健康检查(需要加入actuator依赖)curl http://localhost:8080/act ...