iSCSI是由IBM发明的基于以太网的存储协议,该协议与SUN的NFS协议都是为了解决存储资源共享问题的解决方案。两者意图一致,只不过两者是不同的实现方式,前者在客户机上呈现的是一个块设备,而后者则是一个目录树。关于两者的区别,可以参考本号之前的文章,本位不再赘述

本文今天主要介绍一下iSCSI的整体架构,以及在Linux平台上启动器端(可以理解为客户端,后续介绍该概念)如何实现对存储设备(系统)的配置和访问。

整体架构概述

概括的说,iSCSI是一种存储设备远程映射技术,它可以将一个远程服务器上的存储设备映射到本地,并呈现为一个块设备(大白话就是磁盘)。从普通用户的角度,映射过来的磁盘与本地安装的磁盘毫无差异。

这种映射方式基于是基于SCSI协议的,SCSI协议是计算机与外围设备(例如硬盘、光盘等)通信的协议。而iSCSI则是通过TCP协议对SCSI进行封装的一种协议,也就是通过以太网传输SCSI协议的内容。

从上图可以看出来,iSCSI其实也是一种典型的客户端服务器架构(CS架构),其中访问存储系统的计算机成为客户端,其中负责连接的软件成为启动器。而提供存储服务的计算机成为服务端,其中的软件成为目标器

由于iSCSI是基于TCP协议的,因此启动器和目标器可以是纯软件实现,也可以基于硬件实现。如果是硬件实现,硬件实现主要是对SCSI命令封装和解析等,这样可以释放CPU资源。目前在Linux下面,启动器和目标器都有纯软件的实现,比如启动器的实现Open-iSCSI,目标器的实现LIO、SCST和TGT等。

基本概念介绍

本节介绍关于iSCSI的一些基本概念,理解这些概念便于我们理解iSCSI的原理及后续阅读iSCSI的开源代码。

Network Portal: 网络端口。网络实体的一个组成部分,它有一个 TCP/IP 地址。 网络端口在 initiator 用 IP 地址标识, 在 target 用 IP 地址+侦听的 TCP 端口标识。

Session: 连接 initiator 和 target 的一组 TCP 连接构成一个 session(可以简单理解为 I_T nexus)。可以向 session 添加 TCP 连接,也可以把 TCP 连接从 session 删除。 也就是说一个session中是可以有多个连接的。通过一个 session 的所有连接,initiator 只看到同一个 target。

Connection : 一个 TCP 连接。Initiator 和 target 之间使用一或者多个 TCP 连接通信。

CID(Connection ID): 一个 session 里的每个 connection 用 CID 进行标识,该标识在 session 范围内是唯一。CID 由 initiator 产生,在 login 请求和使用 logout 关闭 连接时传递给 target。

SSID(Session ID):一个 iSCSI Initiator 与 iSCSI Target 之间的会话(Session)由会话ID(SSID)定义,该会话ID是一个由发起方部分(ISID)和目标部分(Target Portal Group Tag)组成的元组。 ISID 在会话建立时由发起者明确指定。 Target Portal Group Tag 由发起者在连接建立时选择的 TCP端口来隐式指定。 当给定 TargetName 时,TargetPortalGroupTag 也必须由目标在连接建立期间作为确认返回。

Portal Groups: 网络端口组。iSCSI session 支持多连接,一些实现能把通过多个端口建立的多个连接捆绑到一个 session。 一个 iSCSI 网络实体的多个网络端口被定义为一个网络端口组,把该组和一个 session 联系起来,该 session 就可以捆绑通过该组内多个端口建立的多个连接,再使它们一起协同工作以达到捆绑的目的。每一个该组的 session 并不需要包括该组的所有网络端口。一个 iSCSI 节点可能有一或者多个网络端口组,但是每一个 iSCSI 使用的网络端口只能属于 iSCSI 节点的一个组。

Target Portal Group Tag: 网络端口组标识。使用 16 比特的数标识一个网络端口组。在 一个 iSCSI 节点里,所有具有同样组标志的端口构成一个网络端口组。

iSCSI Task: 一个 iSCSI 任务是指一个需要响应的 iSCSI 请求。

I_T nexus: I_T nexus 是指一个 SCSI initiator 的端口和一个 SCSI target 端口之间 的关系。 对于 iSCSI, 这个关系对应一个 session, 它指 session 的 initiator 端和 iSCSI target 网络端口组之间的关系。I_T nexus 的标识是一对端口名称(iSCSI initiator 名称+i+ISID,iSCSI target 名称+t+网络端口组标识)。 PDU (Protocol Data Unit): initiator 和 target 之间通信时把信息分割为消息。这些 消息称为 iSCSI PDU。 SSID (Session ID): iSCSI initiator 和 iSCSI target 之间的 session 用 SSID 进行标识, 该标识由 initiator 部分的 ISID 和 target 部分的 TPGT 构成。

ISID(The initiator part of the Session Identifier):发起方会话标识,由 initiator 在 session 建立的时候明确给出,

TSIH (Target Session Identifying Handle): Target 分配给与特定名称 initiator 建立的 session 的标识。 但是 0 值被保留着用于 initiator 告知 target 这是一个新 session。 在为一个 session 添加一个 connect 时,TSIH 已经隐含指明。

启动器端配置

Linux的启动器包含内核态的启动器、用户态的守护进程和命令行工具3部分内容,整体架构还是比较复杂的。但是如果不想理解其原理,只是一般使用的话,还是比较简单方便的。下面我们介绍一下其操作步骤(这里假设已经有一个存储设备),关于更详细的原理我们后续再进行详细的介绍。

启动iscsi守护进程

在启动器端是有一个守护进程的,首先要保证该守护进程是处于正常运行状态。如果没有运行的情况下需要启动该服务。

#service iscsi start

默认情况下,系统启动后此进程会自动运行的。如果没有自动运行可以通过下面命令进行控制和查看。

# chkconfig iscsi on

发现目标

默认情况下,iscsi发起方和目标方之间通过端口3260连接。假设已知iscsi的目标方IP是192.168.1.1,运行下列命令:

# iscsiadm -m discovery -t sendtargets -p 192.168.1.1:3260

如果一切正常,过此时找到并拥有了一个目标(target):

192.168.1.1:3260,1 iqn.1997-05.com.test:itworld123

登入节点

以上面被发现的目标为例:

# iscsiadm -m node –T iqn.1997-05.com.test:itworld123 -p 192.168.1.1:3260 -l

其中iqn.1997-05.com.test:itworld123是目标名。

查看磁盘信息

正常来说,如果登录成功后在客户端操作系统中就可以看到新增的硬盘了。可以通过下面命令查看。

# fdisk –l

格式化设备

iSCSI设备的使用与普通硬盘没有任何差异,比如我们想把该设备格式化为ext4文件系统,运行:

# mkfs.ext4 /dev/sdb

具体使用我们这里就不再解释,使用方法与本地磁盘完全一致。

登出节点

有些情况下我们可能需要登出节点,此时将端口启动器和目标器之间的连接,磁盘也会消失。登出之前需要先停止对磁盘的使用。

# umount /mnt/iscsi_itworld123

执行如下命令可以登出:

# iscsiadm -m node –T iqn.1997-05.com.test:raid -p 192.168.1.1:3260 –u

登入需验证码的节点

为了保证存储设备的安全,可以对存储设备设置权限认证,这样只有合法用户才能访问存储设备。下面是具有认证的存储的登录方法。

1)开启认证

[装置

2)添加用户

[装置

3)添加密码

[装置

好了,今天先到这。我们今天主要介绍iSCSI的基本架构以及启动器端的使用。这个主要是让大家有个感性的认识,为后面介绍启动器的实现打下基础。后续我们将介绍启动器用户态管理程序的架构和实现,以及内核态启动器的实现。

iscsi没有可用于使用快速连接登陆的目标_iSCSI的基本架构及操作简介相关推荐

  1. iscsi没有可用于使用快速连接登陆的目标_【解密】5G商用在即 OPPO快速网络切换方法;高管宣布华为河图商标注册成功;小米折叠屏专利曝光 类似于摩托罗拉Razr...

    1.[专利解密]5G商用在即 OPPO快速网络切换方法 2.好消息!高管宣布华为河图商标注册成功 3.小米折叠屏专利曝光 类似于摩托罗拉Razr 4.索尼Xperia提交新专利 上下双升降结构 1.[ ...

  2. 姜敬哲/孙燕妮/原丽红合作开发可用于病毒快速分类的工具PhaGCN2

    南海水产研究所姜敬哲团队.香港城市大学孙燕妮团队.广东药科大学原丽红合作开发的可用于病毒快速分类生信工具 使用PhaGCN2对病毒基因组片段分类 Virus classification for vi ...

  3. SQL Server 2005 连接本地端口1433开启远程连接/登陆18456错误的解决方法

    SQL Server 2005 连接本地端口1433开启远程连接/登陆18456错误的解决方法 出处:http://jimmyli.blog.51cto.com/我站在巨人肩膀上Jimmy Li 作者 ...

  4. Windows 10快速连接蓝牙设备

    标题快速连接蓝牙设备 使用快捷键:win+k 参考并感谢:https://www.zhihu.com/question/490168916 标题快速打开蓝牙设置 桌面新建快捷方式,输入ms-setti ...

  5. 实现Ubuntu网络快速连接

    网络管理 工作之后一直以Ubuntu系统为主力开发环境,系统自带的网络管理network和第三方开源网络wicd使用效果一般,连接,切换网络的速度比较慢,由此这里卸载系统的网络管理和第三方应用wicd ...

  6. ShowType=0,● 交换机命令show interfaces type 0/port_# switchport|trunk用于显示中继连接的配置情况,下面 - 赏学吧...

    ● 交换机命令show interfaces type 0/port_# switchport|trunk用于显示中继连接的配置情况,下面是显示例子: 2950# show interface fas ...

  7. ShowType=0,● 交换机命令show interfaces type 0/port_# switchport|trunk用于显示中继连接的配置情况,下面...

    ● 交换机命令show interfaces type 0/port_# switchport|trunk用于显示中继连接的配置情况,下面 ● 交换机命令show interfaces type 0/ ...

  8. xmanager调出图形安装oracle,Xmanager快速连接Linux图形界面教程

    本文特指快速连接没有安装过图形界面的 linux 系统.本人使用的测试环境为 CentOS 6.8,在没有安装过任何图形界面的前提下进行的. 最近在 linux 系统上安装 oracle ,且使用的是 ...

  9. 蓝牙快速连接 android,Android智能设备快速连接蓝牙的方法与流程

    技术特征: 1.Android智能设备快速连接蓝牙的方法,其特征在于,在Android系统根目录下的init.rc中注册native蓝牙服务,native蓝牙服务进程在开机时启动,完成对本机蓝牙模块和 ...

最新文章

  1. Java集合HashMap
  2. C# 3.0 扩展方法
  3. 面试官问你“有什么问题问我吗?”,你该如何回答?
  4. IdentityServer4-MVC+Hybrid实现Claims授权验证(四)
  5. DPDK:不仅是加速
  6. 往事回忆记得刚写飞鸽传书的时候
  7. linux应用调用内核函数,Hooking linux内核函数(一):寻找完美解决方案
  8. PHP里的“夏令虫”
  9. 如何在Mac OSX系统下安装Tomcat
  10. comsol 裂隙 耦合_使用COMSOL建立多重连续介质渗流模型
  11. paip.调试js 查看元素事件以及事件断点
  12. AMS1117S三端稳压低压降稳压器ic
  13. 第三章 硅谷宠儿 Friendster (一)
  14. 分析2022年新型传播的.360后缀勒索病毒与数据恢复案例
  15. Froala Editor 2.8.1破解过程
  16. 巴斯勒相机的相机控制类析构函数多次调用的问题
  17. 中M22春C、Java入门练习( 7-13 后天 )
  18. matlab中eval函数作用6,Matlab中eval函数的使用方法
  19. 白泽六足机器人_ros_v1——单腿RVIZ仿真
  20. 传说之下怎么设置按键_传说之下手机版怎么设置按键 按键设置方法

热门文章

  1. PaperWeekly给您拜年啦!
  2. GitHub的初次使用记录
  3. linux 正在运行的程序不能拷贝_如何实现在Windows上运行Linux程序,附示例代码
  4. numpy如何直接在数组上进行添加_NumPy 论文登上了 Nature!
  5. Redis 远程字典服务及shell全部命令汇总【点击可查看高清原图】(附 xmind思维导图原文件 百度网盘)
  6. Invalid host: lb://xxx_xxx
  7. 【身份认证与控制二】分布式session共享(序列化问题)
  8. BZOJ 2733 | 洛谷 P3224 [HNOI2012]永无乡
  9. CG CTF WEB AAencode
  10. 怎么改服务器php文件,自定义更改服务器asp/php/.net等文件后缀名