教你构建iSCSI服务器实现SAN存储模型

简介:

  iSCSI(Internet Small Computer System Interface)Internet 小型计算机系统接口,是一种基于 TCP/IP的协议,用来建立和管理 IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。

    SCSI 结构基于客户/服务器模式,其通常应用环境是:设备互相靠近,并且这些设备由 SCSI 总线连接。iSCSI 的主要功能是在 TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。此外,iSCSI 提供了在 IP 网络封装 SCSI 命令,且运行在 TCP 上。

wKiom1PV-f3woVRnAAH_Vys5rW4049.jpg


实验环境:RHEL6.4

192.168.18.201 target

192.168.18.202 initiator


我们先来配置一个iSCSI 服务端。

1、安装服务端程序。

  • yum install scsi-target-utils -y

2、启动服务,随后添加一个target

  • /etc/init.d/tgtd start

  • tgtadm -L iscsi -m target -o new -t 1 -T iqn.2014-07.com.tuchao:tg1

3、给target添加一个存储(LUN)。

  • tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 -b /dev/sdb

4、开放给192.168.18.0/24网络中的主机访问。

  • tgtadm --lld iscsi --mode target --op bind --tid 1 -I 192.168.18.0/24

#其中的-I相当于--initiator-address

查看一下。

  • tgtadm --lld iscsi --mode target --op show

wKiom1PWAZGzAcdyAAKxUBVe9vo706.jpg

现在用客户端尝试连接使用,先安装程序。

yum install iscsi-initiator-utils -y

配置initiator名称

cd /etc/iscsi/

echo "InitiatorName=`iscsi-iname -p iqn.2014-07.com.tuchao`" > initiatorname.iscsi

发现设备,登录设备。

iscsiadm -m discovery -t sendtargets -p 192.168.18.201

iscsiadm -m node -T iqn.2014-07.com.tuchao:tg1 -p 192.168.18.201:3260 -l

这里显示success后表示登录成功,然后用fdisk -l 查看本地磁盘,会发现多了一块硬盘,可以分区格式化当作本地硬盘来使用了。


删除原先的配置。

先在initiator登出,然后删除连接。

iscsiadm -m node -T iqn.2014-07.com.tuchao:tg1 -p 192.168.18.201:3260 -u

iscsiadm -m node -T iqn.2014-07.com.tuchao:tg1 -p 192.168.18.201:3260 -o delete

rm -rf /var/lib/iscsi/send_targets/192.168.18.201,3260/

来到target端,解绑开放的网段,删除lun,删除target。

tgtadm --lld iscsi --mode target --op unbind  --tid 1 -I 192.168.18.0/24

tgtadm --lld iscsi  --mode logicalunit --op delete --tid 1 --lun 1

tgtadm --lld iscsi  --mode target --op delete --tid 1


配置CHAP(询问握手认证协议)

创建target,创建lun,绑定开放的网段。

tgtadm -L iscsi -m target -o new -t 1 -T iqn.2014-07.com.tuchao:chap1

tgtadm -L iscsi -m logicalunit -o new -t 1 -l 1 -b /dev/sdb

tgtadm -L iscsi -m target -o bind -t 1 -I 192.168.18.0/24

创建服务端帐号,并绑定某tid给予访问权限。(单向认证)

tgtadm --lld iscsi --mode account --op new --user tuchao --password 123456

tgtadm --lld iscsi --mode account --op bind --tid 1 --user tuchao

编辑initiator端配置文件

vim /etc/iscsi/iscsid.conf

wKioL1PWGPfQEuKEAAHGNskbRCg893.jpg

发现服务端设备,登录target。

iscsiadm -m discovery -t sendtargets -p 192.168.18.201

iscsiadm  -m node -T iqn.2014-07.com.tuchao:chap1 -p 192.168.18.201:3260 -l

这里登录成功了,截图略。

在原有的基础上配置为双向认证。

tgtadm --lld iscsi --mode account --op new  --user testuser --password redhat

tgtadm --lld iscsi --mode account --op bind --tid 1 --user testuser --outgoing

tgtadm -L iscsi -m target -o show

wKiom1PWHTfQKAATAAGPn9G0x2o380.jpg


如果initiator端已经登录过此target,此时还需要先注销登录后重启iscsid服务,并在删除此前生成的database后重新发现target,并重新登入。


iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -u

iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -o delete

rm -rf -rf /var/lib/iscsi/send_targets/192.168.0.11,3260

service iscsid restart


然后编辑iscsid.conf配置文件

wKioL1PWHnbgF3CRAAJ0GsjQJ0I711.jpg

这就好了,重新登录的方式和前面一样,略。


我们都知道这样用命令配置的是即刻生效但是重启就没有了,想要永久生效可以写到配置文件中。

刚刚做的配置可以这样写在文件里:

<target iqn.2014-07.com.tuchao:chap1>

        backing-store /dev/sdb

        initiator-address 192.168.18.0/24

        incominguser tuchao 123456

        outgoinguser testuser redhat

</target>


好了,总结完成,有更好的建议欢迎与我交流QQ:1183710107




本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1531669
相关文章
|
12天前
|
存储 Oracle 关系型数据库
服务器数据恢复—Storwize V3700存储数据恢复案例
**服务器存储数据恢复环境:** 某品牌Storwize V3700存储,10块硬盘组建了2组Mdisk加入到一个存储池中,一共创建了1个通用卷来存放数据,主要数据为oracle数据库。 **服务器存储故障:** 其中一组Mdisk中两块磁盘出现故障离线,该组Mdisk失效,导致该通用卷无法使用。
|
13天前
|
存储 运维 数据挖掘
服务器数据恢复—EqualLogic PS存储硬盘故障导致存储崩溃的数据恢复案例
一台某品牌EqualLogic PS系列某型号存储,存储中有一组由16块SAS硬盘组建的RAID5磁盘阵列,RAID5上划分VMFS文件系统存放虚拟机文件。存储系统上层一共分了4个卷。 raid5阵列中磁盘出现故障,有2块硬盘的指示灯显示黄色,存储不可用,存储设备已经过保,用户方联系我们数据恢复中心要求恢复存储中的数据。
服务器数据恢复—EqualLogic PS存储硬盘故障导致存储崩溃的数据恢复案例
|
16天前
|
存储 算法 数据挖掘
服务器数据恢复—昆腾存储StorNext文件系统数据恢复案例
服务器数据恢复环境: 昆腾某型号存储,8个存放数据的存储柜+1个存放元数据的存储柜。 元数据存储:8组RAID1阵列+1组RAID10阵列+4个全局热备硬盘。 数据存储:32组RAID5阵列,划分2个存储系统。 服务器故障: 数据存储的1个存储系统中的一组RAID5阵列中有2块硬盘先后出现故障离线,导致该RAID5阵列失效,整个存储系统崩溃不可用。
服务器数据恢复—昆腾存储StorNext文件系统数据恢复案例
|
1月前
|
存储 数据挖掘
服务器数据恢复—V7000存储raid5多块硬盘掉线的数据恢复案例
**服务器数据恢复环境:** 一台V7000存储,该存储上有一组由12块硬盘组建的raid5磁盘阵列,其中包括一块热备盘。 **服务器故障:** 管理员在巡检过程中发现该存储中的raid5阵列有一块硬盘掉线,于是使用一块新的硬盘更换掉线硬盘并同步数据。数据同步进行还不到50%的时候,该存储中又有一块硬盘掉线,存储崩溃,逻辑盘无法挂载,两块硬盘脱机。
|
13天前
|
前端开发 数据处理 API
后端开发:构建稳健与高效的服务器逻辑
后端开发:构建稳健与高效的服务器逻辑
|
8天前
|
Prometheus 监控 Cloud Native
构建高效可靠的Linux服务器监控体系
【4月更文挑战第30天】 在维护企业级Linux服务器的稳定性和性能方面,一个周全的监控体系是至关重要的。本文将探讨如何利用开源工具和实践构建一个高效、灵活且用户友好的监控系统。我们将重点讨论核心组件的选择、配置、报警机制以及数据分析方法,旨在帮助读者打造一个能够实时响应并预防潜在问题的监控环境。
|
9天前
|
存储 安全 网络协议
游戏服务器:构建与运行的艺术
游戏服务器:构建与运行的艺术
23 1
|
9天前
|
存储 运维 Oracle
服务器数据恢复—MSA2000存储raid5阵列瘫痪导致lun不可用的数据恢复案例
服务器存储数据恢复环境: 某品牌MSA2000存储,该存储中有一组由8块SAS硬盘(其中有一块热备盘)组建的RAID5阵列,raid5阵列上层划分了6个lun,均分配给HP-Unix小型机使用,主要数据为oracle数据库和OA服务端。 服务器存储故障: 该MSA2000存储RAID5阵列中2块硬盘出现故障离线,阵列中只有一块热备盘,虽然热备盘成功激活,RAID5阵列瘫痪,上层LUN无法使用,存储不可用。
服务器数据恢复—MSA2000存储raid5阵列瘫痪导致lun不可用的数据恢复案例
|
10天前
|
中间件 Go API
Golang深入浅出之-Go语言标准库net/http:构建Web服务器
【4月更文挑战第25天】Go语言的`net/http`包是构建高性能Web服务器的核心,提供创建服务器和发起请求的功能。本文讨论了使用中的常见问题和解决方案,包括:使用第三方路由库改进路由设计、引入中间件处理通用逻辑、设置合适的超时和连接管理以防止资源泄露。通过基础服务器和中间件的代码示例,展示了如何有效运用`net/http`包。掌握这些最佳实践,有助于开发出高效、易维护的Web服务。
25 1
|
28天前
|
存储 网络协议 前端开发
NAS 和 SAN 服务器概述
NAS 和 SAN 服务器概述
24 1