ISCSI工作流程target和initiator

随着企业级的数据呈指数增长,传统的集中式存储方案已无法满足其存储要求,因而存储区域网(storage area network,SAN)技术被广泛应用,但其存在距离短、价格贵和构建复杂等不足。基于iSCSI协议的IP存储技术是一种新兴的网络存储技术,它将IP网络技术集成到存储I/O之中,在构建异构的存储网络方面具有其它数据访问协议无法比拟的优势?,已经成为当前网络存储技术的研究热点。

使用iSCSI协议来组建存储网络,具有低廉、开放、大容量、兼容性好等特点,而其主要缺点首先是存储和网络使用同一个物理接口,其次是需要频繁地将SCSI命令封装到IP包中以及从IP包中解析出SCSI命令,它们都将加重网络带宽和处理器的负担,影响了系统的响应速度,从而限制了iSCSl技术的发展。

访问iSCSI Target设备的典型I/O流程为:

①当用户向一个iSCSItarget设备发出访问请求时,应用程序通过系统调用访问文件系统:

②文件系统解释这个I/O命令,分析I/O命令所在的设备和地址,然后将请求发送给SCSI上层驱动程序:

③SCSI上层驱动程序将相应的I/O命令转换为SCSI命令,并发送给iSCSI Initiator;

④iSCSI Initiator将SCSI命令封装打包,通过网络发送到iSCSI Target模块;

⑤iSCSl Target模块收到iSCSI命令包后,将iSCSI命令包中的SCSI命令发送给SCSI底层驱动程序;

⑥由SCSI底层驱动程序完成I/O请求,将数据按原路径返回给用户。

以iSCSI读操作为例,其具体处理流程为:

①发送iSCSI命令;

②缓存调度;

③读取数据;

④使用iSCSI协议对数据进行封装;

⑤传输iSCSI协议封装的数据。

时间: 2024-11-05 18:30:41

ISCSI工作流程target和initiator的相关文章

Using iSCSI On Ubuntu 10.04 (Initiator And Target)

This guide explains how you can set up an iSCSI target and an iSCSI initiator (client), both running Ubuntu 10.04. The iSCSI protocol is a storage area network (SAN) protocol which allows iSCSI initiators to use storage devices on the (remote) iSCSI

Android 4.4 Kitkat Phone工作流程浅析(十一)__PSensor工作流程浅析

本文代码以MTK平台Android 4.4为分析对象,与Google原生AOSP有些许差异,请读者知悉. 前置文章: <Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划> <Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析> <Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程分析> <Android 4.4 Kitkat Phone工作流程浅析(四)__RI

GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流(转载)

最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮助. GitHub操作总结 : 总结看不明白就看下面的详细讲解. GitHub操作流程 : 第一次提交 : 方案一 : 本地创建项目根目录, 然后与远程GitHub关联, 之后的操作一样; -- 初始化Git仓库 :git init ; -- 提交改变到缓存 :git commit -m 'desc

Struts2工作流程

Struts2是一个非常优秀的MVC框架,它主要通过StrutsPrepareAndExecuteFilter过滤器将Struts2集成到Web应用中的. 基本工作流程: 1.客户端提交一个HttpServletRequest请求(action或JSP页面): 2.请求经过一系列的过滤器(如ActionContextCleanUp,SiteMesh等): 3.Struts2的核心过滤器StrutsPrepareAndExecuteFilter被调用,并询问ActionMapper来决定这个请求是

Laravel 5系列教程二:路由,视图,控制器工作流程

免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就要进入Laravel的神奇世界了,主要是讲解Laravel的Router,Views,Controllers的工作流程,目的也就是让大家明白Laravel在处理一个get请求的时候是如何工作的. 在开始之前,我们首先得将我们的服务器启动起来,如果你使用Laravel的artisan,你可以直接: php artisan

RT-thread finsh工作流程

finsh是RT-Thread的命令行外壳(shell),提供一套供用户在命令行的操作接口,主要用于调试.查看系统信息.在大部分嵌入式系统中,一般开发调试都使用硬件调试器和printf日志打印,在有些情况下,这两种方式并不是那么好用.比如对于RT-Thread这个多线程系统,我们想知道某个时刻系统中的线程运行状态.手动控制系统状态.如果有一个shell,就可以输入命令,直接相应的函数执行获得需要的信息,或者控制程序的行为.这无疑会十分方便. finsh支持两种模式: 1. C语言解释器模式, 为

[Servlet]Servlet的工作流程及注意事项

Servlet工作流程 利用Servlet完成的Web应用的实际工作流程是通过Tomcat服务器发布服务,客户端与服务器端之间的交互遵循Http协议完成的.具体工作流程如下: 客户端浏览器向服务器端发送请求. 服务器端由Tomcat服务器提供的Servlet容器解析接收到的请求. 通过Web应用程序的配置文件web.xml,解析到对应执行的Servlet. Servlet完成客户端发送的请求逻辑,并完成向客户端发送的响应内容. 由Tomcat服务器提供的Servlet容器向客户端浏览器进行响应.

Ajax的工作流程简述

提到Ajax相信我们都不会陌生,不管你是前端开发还是后台数据处理的程序员,ajax的作用就像现在生活中的手机一样,无论是作用还是流程都差不多,这里我们要进行ajax操作后台数据并显示在页面上的话,首先我们这里才用原生态的ajax去实现,第一步要做的就是首先我们得有一个ajax才行,紧接着还得清楚他的工作流程才行啊,下面我就简单谈谈ajax的工作流程.     v作为一个刚接触ajax的信任来说肯定会觉得很神奇,不知道一个小小的ajax竟然有这种强大的功效实现这样复杂的任务,其实不然,当我们除去包

图解EJB工作流程

学习EJB需要对JNDI和RMI方面知识有一定的了解. JNDI为EJB提供命名和目录服务,实现不同目录位置的Bean的唯一标识. RMI为EJB提供远程访问能力,实现Bean的远程调用功能 在介绍Bean的工作流程之前,先熟悉一下RMI的工作流程 RMI设计的目标:实现运行在不同JVM中Java对象的调用 客户端通过JNDI服务获取Bean对象的接口,称为桩(stub) 一般情况下Bean对象并不希望被直接操控,比如针对不同客户端暴露不同接口,所以在JVM2上也提供一个对外接口,称为骨架(sk