iscsi网络协议(连接硬件设备)

iscsi概念

iscsi是一种互联网协议,用于将存储设备(如硬盘驱动器或磁带驱动器)通过网络连接到计算机。它是一种存储区域网络(SAN)技术,允许服务器通过网络连接到存储设备,就像它们是本地设备一样。iSCSI协议基于TCP/IP协议,因此可以在现有的网络基础设施上运行,无需额外的专用硬件。

以下是iSCSI的一些关键特点:

网络依赖性:iSCSI使用TCP/IP网络协议,因此它依赖于网络连接。这意味着它可以在任何支持TCP/IP的网络环境中运行。

易用性:由于其基于标准的协议,iSCSI使得不同厂商的存储设备和计算机之间可以容易地进行互操作。

扩展性:iSCSI支持大规模的存储解决方案,可以扩展到数百甚至数千个磁盘驱动器。

成本效益:与传统的SAN解决方案相比,iSCSI通常成本较低,因为它可以使用标准的网络设备和协议。

灵活性:iSCSI允许存储资源的动态分配和管理,提供了很高的灵活性。

高可用性:iSCSI支持冗余路径和故障转移,从而提高了存储解决方案的可用性和可靠性。

安全性:iSCSI支持多种安全协议,如CHAP( Challenge-Handshake Authentication Protocol),用于验证和加密通信

一 存储方式

DAS:直连存储

NAS:网络附加存储(文件服务器)(网线)

SAN:存储区域网络(光纤)

注:传输介质不同

二 FC 与 iscsi

传输层: FC TCP

网络层: FC IP

数据链路层: FCswitch switch

物理层: FCHBA NIC

注:FC 光纤传输协议

注:iscsi 块存储

三 iscsi 架构

C/S

server:iscsi target iscsi 目标

client:iscsi initiator iscsi 发起者

注:使用 iscsi 至少保证是一个(1Gbps)千兆级网络

四 实验

1.实验拓扑

(iscsi target)www.yy.com(192.168.1.7)<----->(192.168.1.8)client(iscsi initiator)

2.安装软件

服务器:targetcli

客户端:iscsi-initiator-utils

3.配置服务器端

1)生成磁盘文件

注:可共享的硬盘类型

dd 指令所建立的 img 文件 镜像文件

使用整个磁盘

使用单独的磁盘分区

创建一个 lv

2)运行命令 targetcli

cd /backstore/fileio

创建 luns(将刚才创建的磁盘、分区等加入到 iscsi 服务中)

注:lun:logic unit number:逻辑单元号

功能:扩充存储

create disk01 /mnt/img

create disk02 /dev/sdb

create disk03 /dev/sdc1

create disk04 /dev/yvg/ylv

create disk05 /mnt/2.img 1G

cd /iscsi

设定 iqn

create iqn.2018-05.com.yy.www:storage1

注:com.yy.www此为主机名 倒着写(也可以任意写)

iqn 中月份必须为两位数

指定监听的 IP 地址和端口:cd /iscsi/iqn-*/tpg1/portals

配置 luns

cd /iscsi/iqn-*/tpg1/luns

create /backstores/fileio/disk01

设置访问权限

cd /iscsi/iqn-*/tpg1

关闭全局认证:set attribute authentication=0

生成节点 acl:set attribute generate_node_acls=1

cd /iscsi/qin-*/tpg1/acls

生成验证用的 iqn 的 FQDN:

create iqn.2018-05.com.yy.www:www.yy.com

cd /iscsi/iqn-*/tpg1/acls/iqn-*

设定验证用的用户及密码:set auth userid=用户名

set auth password=密码

保存退出:exit

注:以上配置保存在/etc/target/saveconfig.json 中

3)查看服务是否开启

#netstat -lantu |grep 3260

注:iscsi 默认端口号:3260

4.客户端配置

1)配置验证区域名称及密码

#vim /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2018-05.com.yy.www:www.yy.com

2)配置验证用的用户名、密码及验证方式

#vim /etc/iscsi/iscsid.conf

将 54 行开启:启动 CHAP 认证方式

node.session.auth.authmoted = CHAP

将 58 行开启:写入合法的验证用户账号

node.session.auth.username = yi

将 59 行开启:写入合法的密码

node.session.auth.password = 1

3)重启 iscsi 服务

systemctl restart iscsid

systemctl enable iscsid

5.客户端连接服务器

静态:直接通过服务器的 iqn 来连接

动态:客户端发送 sendtarget 指令,来获取服务器上可用的 iqn,然后通过服务器的 iqn进行连接

1)发现 iscsi target(iscsi 服务器)上的可用 iqn

iscsiadm -m discovery -t sendtargets -p 服务器 IP 地址

#iscsiadm -m discovery -t sendtargets -p 192.168.1.7

注:发现的 iqn 存储到/var/lib/iscsi/nodes 中可以对已发现的 iqn 进行管理实现 iqn 的增加、删除和更新

2)登录 iscsi target 空间

iscsiadm -m node -T iqn.2018-05.com.yy.www:storage1 --login

注:先发现在登陆

3)退出 iscsi target 空间

iscsiadm -m node -T iqn.2018-05.com.yy.www:storage1 --logout

4)开机自动挂载

iscsiadm -m node -T iqn.2018-05.com.yy.www:storage1 -p 192.168.1.2 -o update -n node.startup -v automatic

注:在/etc/fstab 的权限列:defualts,_netdev(在服务器网卡启动后才进行挂载动作)五个磁盘分五次自动挂载

相关推荐
We་ct6 分钟前
LeetCode 212. 单词搜索 II:Trie+DFS 高效解法
开发语言·算法·leetcode·typescript·深度优先·图搜索算法·图搜索
OxyTheCrack11 分钟前
【C++】简述main函数中的argc与argv
开发语言·c++
历程里程碑18 分钟前
Linux 49 HTTP请求与响应实战解析 带http模拟实现源码--万字长文解析
java·开发语言·网络·c++·网络协议·http·排序算法
ZVAyIVqt0UFji19 分钟前
高可用虚拟IP(HaVip)技术详解:原理、设计与应用
开发语言·网络·网络协议·tcp/ip·perl
慧天城寻19 分钟前
H3C巡检命令与避坑技巧
运维·网络·运维开发
油丶酸萝卜别吃20 分钟前
从网络角度来看,用户从输入网址到网页显示,期间发生了什么?
网络
飞Link20 分钟前
深度解析 TS2Vec:时序表示学习中的层次化建模(Hierarchical Contrastive Learning)
开发语言·python·学习·数据挖掘
爱炸薯条的小朋友22 分钟前
C#依赖注入和仿写Prism注入
开发语言·c#
M1582276905522 分钟前
SG-TCP-Profibus (M) ModbusTCP 转 Profibus DP 网关:工业双协议无缝互联的高效解决方案
网络·网络协议·tcp/ip
代码探秘者23 分钟前
【Java集合】ArrayList :底层原理、数组互转与扩容计算
java·开发语言·jvm·数据库·后端·python·算法