Linux系统下基于SCST的SCSI target驱动设计

摘要

随着信息数字化的深入发展,数据存储的需求日益增长。存储虚拟化带给我们最直接的益处就是,提高存储利用率,降低成本,简化存储管理,而基于网络的虚拟存储技术将成为未来的一种趋势,它的开放性、扩展性、管理性等方面的优势将在数据大集中、异地容灾等应用中充分体现出来。存储局域网(SAN)是一种高性能,扩展性极强的存储系统模型,近年来应用非常广泛。FC-SAN是一种基于光纤通道协议的存储局域网,它通过光纤传输SCSI指令和数据。本文详细论述了Linux系统下基于SCST的SCSI target驱动设计原理与实现。SCST是Linux系统下一个为了简化SCSI 驱动设计而开发的一个SCSI子系统层。SCSI target驱动应用于存储局域网(SAN), 它与光纤通道HBA卡协同工作,处理和响应SCSI发起端的I/O请求,实现存储虚拟化和存储分配功能。整个SCSI target驱动分三层模块,最底层模块处理与HBA卡通信,解析SCSI指令和数据并传递给上层驱动处理。虚拟磁盘模块则响应I/O请求,完成数据的最终读写操作。这三个模块均以内核模块的方式嵌入Linux内核。

关键词: 虚拟存储,SCSI,SAN,SCST,光纤通道

Abstract

With the deepening development of digital information, demand for data storage is increasing dramatically. The basic benefits that storage virtualization brings to us are increment in storage utilization rate increment, cost cutting and simplification in storage management. As network starge virtualization is becoming the trend of future technology, its advantages in compatibility, expansibility and quality management will be fully seen in the applications such as data concentration and different area disaster recovery. Storage area network(SAN) is a storage system model with excellent performance and scalability that has been widely used in recent yeas.FC-SAN is baed on the fibre channel transport protocol,which allows SCSI commands and data transmits on fibre channels.This assay descripts the design and implemention of SCSI target driver based on SCSI under linux operation system. SCST is a SCSI subsystem for linux,it simplify the design of scsi target driver. SCSI target driver works with Host bus adapters,processes and responses to I/O requests from initiators on storage area network.It realizes storage virtualization and distribution.The whole SCSI target driver is a three-tier system.The lowest module communicates host bus adapters,parses SCSI commands and data,then pass them to the top module.The virtual disk module response the I/O requests and do the real data read and write operations.

linux 内核 scsi底层驱动程序,Linux系统下基于SCST的SCSI_Target驱动设计.doc相关推荐

  1. Ubuntu 18.04 Linux内核升级(因为在系统中安装会出现各种驱动不兼容的问题,所以去官网下)

    前言 原本使用Ubuntu 18.04.2 LTS来换到5.4.45的内核版本,来尝试在系统中直接用sudo apt-get install linux-image--命令更新一下Linux的内核,但 ...

  2. linux编辑文档windows,1.9vim编辑器linux内核的底层文本编辑器,跟windows系统上的文本文档类似,大部分用这个工具进行文本的编辑,这个工具的操作方式基本上用不到鼠标,多是...

    1.9vim编辑器 linux内核的底层文本编辑器,跟windows系统上的文本文档类似,大部分用这个工具进行文本的编辑,这个工具的操作方式基本上用不到鼠标,多是用命令去操作 这个工具分为三种模式:命 ...

  3. linux内核分成如下五个子系统,linux内核主要由5个子系统 Linux内核由哪几个子系统组成?...

    1, Linux内核由哪几个子系统组成? Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信.1.进程调度(SCHED):控制进程对CPU的访问.当需要选择下一 ...

  4. Fastsocket:高扩展性的 Socket 以及 Linux 内核的底层网络实现

    目录 简介 安装编译 测试结果 GitHub README 介绍 参加者 安装 从源安装 开关内核 系统配置 用法 合适的场景### 如何使用 演示服务器 评价 Nginx的 HAProxy 在线评估 ...

  5. Linux系统下基于IO多路复用的大规模可靠UDP服务器的实现(三)

    七.可靠性UDP的优化细节 4.5章节中,我们提到了KCP本身的优化提高,由于可靠性UDP是这个方案是否优秀的关键,而各种可靠UDP协议中都有TCP算法的影子,所以下面我们再仔细的谈一下这个部分.按照 ...

  6. 蓝点linux_新闻速读 gt; Windows 10 的 Linux 内核将像驱动程序一样由微软更新服务进行更新 | Linux 中国...

    本文字数:3252,阅读时长大约:4 分钟导读:• Ubuntu 发行商 Canonical 将参加微软欧洲虚拟开源峰会 • 树莓派支持 Vulkan 最新进展:通过 70000 项测试 • 谷歌浏览 ...

  7. linux内核 lts长期演进,Linux Kernel 4.19 将成为下一个LTS(长期支持)系列

    最近Linux内核开发人员和维护人员Greg Kroah-Hartman透露,Linux Kernel 4.19将下一个长期支持的Linux内核系列. 现在Linux Kernel 4.17已经达到使 ...

  8. Linux(CentOS 7_x64位)系统下安装RDkit(修正)

    Linux(CentOS 7_x64位)系统下安装RDkit(修正) 一.RDKit简介 Linux(CentOS 7_x64位)系统下安装RDkit点击打开链接 前面写的一篇CentOS 7下安装R ...

  9. 【Linux 内核 内存管理】Linux 内核内存布局 ③ ( Linux 内核 动态分配内存 系统接口函数 | 统计输出 vmalloc 分配的内存 )

    文章目录 一.Linux 内核 动态分配内存 系统接口函数 二.统计输出 vmalloc 分配的内存 一.Linux 内核 动态分配内存 系统接口函数 Linux 内核 " 动态分配内存 & ...

最新文章

  1. 用easyui动态创建一个对话框
  2. 微隔离的红蔷薇在湾区创见的舞台绽放
  3. 日记 [2007年01月26日] 用 phpMyAdmin 让 MySQL 数据库管理温和化
  4. C语言13567星号如何输出,c语言程序编程心得
  5. 两道概率题-供大家周末把玩
  6. numpy.tile 阵列
  7. Shell编程中Shift的用法(转)
  8. 薪资/薪水/金额的数据类型
  9. 在python中是否可以使用if作为变量名_在Python中可以使用if 作为变量名_python使用符号 标示注释...
  10. java 上传 进度,关于 javaweb的文件上传实时显示进度
  11. 啥?!BM25 比语义向量检索效果好?
  12. 字符集在本地化过程中的影响
  13. Vivaldi for Mac(极速浏览器)支持m1
  14. oracle审计功能启动关闭
  15. java Monitor对象监视器、对象头、mark word
  16. Window 10 python 3.7安装 PyV8
  17. 数组unshift_数组unshift()方法以及JavaScript中的示例
  18. UEFI是什么意思?UEFI和BIOS的区别是什么?
  19. 用微信第三方平台授权小程序业务
  20. mybatis 启动报错 分析

热门文章

  1. 关于vs编码格式UTF8中文处理方式
  2. markdown语法十步学习 图文并茂
  3. linux版_巧用linux版powershell,管理linux下的docker
  4. java calendar字符串显示_Java获取当前时间年月日、时间格式化打印、字符串转日期...
  5. cbow word2vec 损失_word2vec是如何得到词向量的?
  6. pickle序列化存在安全隐患
  7. python中的json注意事项
  8. mysql数据库制定位置_MySQL数据库在指定位置增加字段
  9. maxwell中文汉化补丁_《我的世界:地下城》中文剧情流程攻略 通关视频流程
  10. vue 父刷新子_父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法...