0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

对磁盘的深度解析,从操作系统层面来讲解

独爱72H 来源:itworld123 作者:itworld123 2019-12-06 16:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

(文章来源:itworld123)

企业级存储系统通常也是运行在常规操作系统之上的,比如早期的EMC的中端存储是运行在Windows XP平台上的,而国内的存储厂商的产品通常是基于Linux平台。分布式存储更是不例外,目前分布式存储通常都是运行在Linux操作系统之上。

为了更好地理解存储技术,从操作系统层面理解磁盘就显得尤为重要了。为了便于学习,本文以Linux操作系统作为参考,介绍磁盘在Linux操作系统层面的相关内容。我们通常看到的磁盘是在/dev目录下的文件(设备)。在Linux操作系统中一切皆文件,因此磁盘设备本身也是以文件的形态呈现的。比如某个操作系统下面我们可能会看到如下内容。

上述设备中形似sdX的设备为SCSI磁盘设备。无论是基于SAS、iSCSI还是FC的磁盘设备,大概都是这个样子。形似dm-X的是Device Map块设备,也就是通过LVM进行管理的设备,这种设备是一种逻辑设备。在Linux操作系统中块设备的种类很多,有本地磁盘设备、有SAN设备还有基于网络的块设备。在虚拟机中块设备又呈现为另外一种文件名,比如在Xen虚拟机中伪xvdX。

虽然名称差异很大,但是在Linux操作系统内核中的实现确实非常简单。在内核中任何磁盘块设备都是通过调用add_disk函数完成的。在《Linux设备驱动程序》这本书对块设备进行了详细的介绍,并且可以通过非常简单的代码实现一个自己的块设备。

SAN的全称是存储区域网络,也就是通过网络的形式实现计算节点(客户端)对存储系统的访问。在存储系统中可以划分若干个LUN,这些LUN通过网络的方式连接,在客户端呈现为一个磁盘。如图所示,存储系统的资源在计算节点以磁盘的形式呈现。

对于Linux操作系统来说,块设备就好像一个文件一样。任何读写数据都是以偏移和长度为基本信息下发到磁盘块设备进行处理。因此,对于块设备来说,它并不关系这些数据在底层是如何存储。对于SAN存储来说,当块设备接收到请求后,会调用底层协议层的接口将请求转发出去。SAN存储使用的是SCSI协议,因此,块设备的请求都会转换为SCSI协议进行处理。

Linux内核实现了一个SCSI子系统,所有SCSI设备及驱动都基于该子系统实现。该SCSI子系统分为3层,SCSI上层、SCSI中层和SCSI下层。其中上层是设备层,实现比如磁盘驱动、磁带驱动或者光盘等所有的块设备。中层是通用层,实现SCSI的公共功能,比如错误处理等内容。下层是硬件驱动层,比如FC-HBA驱动和SAS-HBA卡驱动等等。

针对Linux磁盘设备来说,其发送的请求经过SCSI层后会封装为SCSI协议包,然后通过底层的协议发送出去。对于块设备,底层协议对用户来时是透明的,用户在使用块设备的时候也不用关心块设备底层所使用的通信协议。但是对于SCSI子系统来说是需要关系底层通信协议的,因为它要调用底层驱动的接口将数据通过该驱动发送出去。对底层驱动的调用是通过其回调函数完成的,回调函数的注册发生在设备初始化的时候。

至此,我们了解到SAN存储磁盘与本地磁盘并无本质的差别,核心差异在与其数据需要通过某种协议与比较远的设备进行数据的交换。SAN存储最早只支持FC协议。后来随着以太网技术的飞速发展,IBM发明了iSCSI协议,该协议是基于TCP/IP协议实现的存储协议。iSCSI协议可以简单地理解为一个应用层的协议,类似HTTP协议。只不过HTTP协议用于传输Web内容,而iSCSI协议则用于传输磁盘内容。

可以看出,iSCSI其实就是对SCSI协议的封装,然后通过以太网进行传输。说白了,iSCSI就是以以太网作为传输媒介的SCSI协议。iSCSI协议分为客户端和服务端两部分,在iSCSI协议中称为启动器和目标器。其中启动器就是计算端,而目标器就是存储端。

(责任编辑:fqj)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    7328

    浏览量

    128625
  • 磁盘
    +关注

    关注

    1

    文章

    394

    浏览量

    26292
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    EV10AS180A模数转换器支持哪些操作系统

    应用。EV10AS180A转换器本身并不直接依赖或支持特定的操作系统,其核心功能是完成模拟信号到数字信号的转换,属于硬件层面的数据处理设备。硬件独立性:EV10AS180A作为一款高性能ADC,其工作原理
    发表于 11-18 09:18

    单片机的操作系统

    单片机操作系统主要分为实时操作系统(RTOS)和嵌入式操作系统两类,以下是常见选择: 实时操作系统(RTOS) ‌ FreeRTOS ‌:轻量级开源内核(最小内核约6 KB RAM)
    发表于 11-14 06:18

    亮钻科技与银河麒麟桌面操作系统深度适配

    最近,亮钻多款RK3568/RK3588主板和主机,获得银河麒麟桌面操作系统(工业版)的官方认证,双方产品相互兼容、稳定运行。
    的头像 发表于 10-22 10:49 596次阅读

    龙芯CPU与银河麒麟操作系统V11深度适配

    /3C6000)、LoongGPU及龙芯浏览器等产品均已完成与银河麒麟操作系统V11的深度适配,未来将以该操作系统为支撑,为终端用户和企业客户提供全新解决方案。
    的头像 发表于 09-02 10:44 650次阅读

    树莓派操作系统:版本、特性及设置完整指南!

    树莓派操作系统是什么?树莓派操作系统是由树莓派基金会专为树莓派开发的官方操作系统。它基于DebianLinux发行版,并针对树莓派的ARM架构进行了专门优化。树莓派操作系统有多个版本,
    的头像 发表于 07-28 18:26 821次阅读
    树莓派<b class='flag-5'>操作系统</b>:版本、特性及设置完整指南!

    深度智能 基座跃迁 鸿道Intewell,面向“AI+智造”的新型工业操作系统

    科东软件受邀参加“数字化与智能制造技术论坛”,带来“AI+智造”的精彩分享。在“AI+智造”深度融合的时代洪流中,工业操作系统作为底层基座的重要性日益凸显。鸿道Intewell操作系统已成为驱动中国制造业智能化跃迁的关键力量。
    的头像 发表于 07-23 17:02 423次阅读
    <b class='flag-5'>深度</b>智能 基座跃迁  鸿道Intewell,面向“AI+智造”的新型工业<b class='flag-5'>操作系统</b>

    深度操作系统deepin 25正式发布

    历经 Preview、Alpha、Beta 三轮社区共创测试,deepin 25 于今日发布亮相!本次版本以 “万物向新” 为核心,四大革新特性全面进化,1000+ 项优化修复落地,为广大开发者与用户朋友们带来更可靠、更流畅、更自由的开源操作系统体验。
    的头像 发表于 07-01 16:57 1098次阅读

    国产操作系统都是谁在用?国内企事业单位真实使用情况深度解析

    近年来,“国产操作系统”这个词频繁出现在各种政策文件、技术论坛和媒体报道中。随着信息安全需求的不断提升,以及对“去IOE”理念的深入贯彻,越来越多的国内企事业单位开始关注并部署国产操作系统。那么
    的头像 发表于 05-19 13:44 1308次阅读
    国产<b class='flag-5'>操作系统</b>都是谁在用?国内企事业单位真实使用情况<b class='flag-5'>深度</b><b class='flag-5'>解析</b>

    理想汽车智驾操作系统解读

    [首发于智驾最前沿微信公众号]在智能网联与生成式AI技术深度融合的浪潮下,汽车操作系统已经最初的简单资源管理平台,演化为承载感知决策、执行控制与安全防护的智能化中枢。理想汽车自主研发的星环OS
    的头像 发表于 05-13 10:54 896次阅读
    理想汽车智驾<b class='flag-5'>操作系统</b>解读

    deepin深度操作系统适配Milk-V Megrez开发板

    近期,deepin(深度)社区宣布,deepin 深度操作系统已完成对搭载 EIC7700X 芯片的 Milk-V Megrez 开发板的全球首发适配。
    的头像 发表于 02-28 10:53 969次阅读

    【「鸿蒙操作系统设计原理与架构」阅读体验】01-初始华为鸿蒙

    操作系统的设计假设和约束,是万物互联时代智能终端操作系统领域的一次大胆探索 本书首先讲解操作系统的一些历史以及演进的过程,了解操作系统
    发表于 01-25 11:05

    DeepEdge10芯片成功适配国产鸿蒙操作系统

    日前,DeepEdge10芯片已成功完成与国产鸿蒙操作系统的适配工作,标志着该芯片在边缘场景应用领域实现了供应链及操作系统层面的全面国产化安全。 为实现这一适配,技术团队已构建起针对鸿蒙操作系
    的头像 发表于 01-24 15:31 1307次阅读

    国产银河麒麟操作系统V10和星光麒麟V1.0操作系统如何选择?

    国产银河麒麟操作系统和星光麒麟操作系统都是由中国电子旗下科技企业麒麟软件有限公司(简称“麒麟软件”)开发的国产自主可控的操作系统。麒麟软件介绍:麒麟软件以安全可信操作系统技术为核心,面
    的头像 发表于 01-24 09:14 4217次阅读
    国产银河麒麟<b class='flag-5'>操作系统</b>V10和星光麒麟V1.0<b class='flag-5'>操作系统</b>如何选择?

    deepin操作系统介绍

    希望自己的能力和对桌面操作系统的理解,能给 Linux 的用户与开发者更多的选择。我们也相信 deepin 能够得到更多用户的认可与喜爱,成为开源世界的最佳选择。  一、 deepin 操作系统 先说 Linux
    的头像 发表于 12-23 09:08 3222次阅读
    deepin<b class='flag-5'>操作系统</b>介绍

    名单公布!【书籍评测活动NO.53】鸿蒙操作系统设计原理与架构

    的架构师来说,本书堪称“出卷老师亲自讲解的考试出题思路”。 本书重点介绍了鸿蒙操作系统的设计背景、设计理念和设计原则,同时对鸿蒙操作系统的整体架构、关键子系统的架构设计思路进行了详细的
    发表于 12-16 15:10