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

    文章

    6713

    浏览量

    123163
  • 磁盘
    +关注

    关注

    1

    文章

    365

    浏览量

    25167
收藏 人收藏

    评论

    相关推荐

    工控机支持什么操作系统

    工控机,全称工业控制计算机(Industrial Personal Computer, IPC),支持多种操作系统以满足不同行业和应用场景的需求。具体来说,工控机常见的操作系统包括:
    的头像 发表于 09-11 09:24 325次阅读

    全志Linux磁盘操作基础命令

    磁盘操作 fdisk命令 fidsk是一个用来创建和维护磁盘设备分区的一个实用工具。 [ubuntu@book:~]$ fdisk -l//列出当前系统所有的磁盘设备 [ubunt
    发表于 09-02 10:47

    操作系统的内存布局介绍

    32位操作系统的内存布局很经典,很多书籍都是以32位系统为例子去讲解的。32位的系统可访问的地址空间为4GB,用户空间为1GB ~ 3GB,内核空间为3GB ~ 4GB。
    的头像 发表于 08-07 15:47 223次阅读
    <b class='flag-5'>操作系统</b>的内存布局介绍

    Linux磁盘IO详细解析

      在讲解磁盘IO前,先简单说下什么是磁盘磁盘是可以持久化存储的设备,根据存储介质的不同,常见磁盘可以分为两类:机械
    的头像 发表于 08-05 15:49 548次阅读
    Linux<b class='flag-5'>磁盘</b>IO详细<b class='flag-5'>解析</b>

    3568F-翼辉SylixOS国产操作系统演示案例

    SylixOS简介 SylixOS是“翼辉信息”开发的一款国产开源大型实时操作系统,内核自主化率达10 0%(据工信部评估报告),具有完全自主可控的技术能力,可满足广大用户国产化需求。 SyixOS操作系统拥有
    发表于 07-25 15:52

    嵌入式实时操作系统:Intewell操作系统与VxWorks操作系统有啥区别

    Intewell操作系统和VxWorks操作系统都是工业领域常用的操作系统,它们各有特点和优势。以下是它们之间的一些主要区别:
    的头像 发表于 07-08 14:16 355次阅读
    嵌入式实时<b class='flag-5'>操作系统</b>:Intewell<b class='flag-5'>操作系统</b>与VxWorks<b class='flag-5'>操作系统</b>有啥区别

    如何根据需求选择合适的新加坡VPS操作系统?

    选择合适的新加坡VPS操作系统您需要考虑哪些因素,如何根据需求选择合适的新加坡VPS操作系统?rak部落小编为您整理发布选择合适的新加坡VPS操作系统需要考虑哪些因素。
    的头像 发表于 05-10 11:14 394次阅读
    如何根据需求选择合适的新加坡VPS<b class='flag-5'>操作系统</b>?

    基于鸿道(Intewell®)操作系统研发的农业机器人操作系统

    江苏大学与科东软件联合研发“农业机器人操作系统”,并成立“农业机器人操作系统”联合实验室,奋力推进农业智能化,推动农业科技创新。“农业机器人操作系统”的技术革新,对提高农业生产效率、保护环境、应对农业劳动力短缺及促进智慧农业发展
    的头像 发表于 04-30 11:09 382次阅读

    带你认识实时操作系统(rtos)

    实时操作系统(RTOS)是为嵌入式系统和实时应用提供一个稳定、可预测和高效运行环境的操作系统。实时操作系统确保了系统能够在严格的时间限制内响
    的头像 发表于 04-16 16:30 1120次阅读
    带你认识实时<b class='flag-5'>操作系统</b>(rtos)

    服务器操作系统有几种?

    :微软官方信息发布,Windows Server 2008 R2刚开始,Windows Server不要出示32位版本号。 二、网络服务器Linux电脑操作系统 自然环境布署
    发表于 03-29 16:59

    【服务器数据恢复】服务器raid6阵列多块磁盘离线的数据恢复案例

    一台网站服务器中有一组由6块磁盘组建的RAID6磁盘阵列,操作系统层面运行MySQL数据库和存放一些其他类型文件。
    的头像 发表于 02-23 13:13 547次阅读

    深度解析全球操作系统格局

    操作系统是负责协调、管理和控制计算机硬件与软件资源的程序,是整个计算机的核心系统软件。 按照操作系统面向的设备类型,通用操作系统主要包括桌面操作系统
    的头像 发表于 01-18 15:00 1030次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>解析</b>全球<b class='flag-5'>操作系统</b>格局

    详解实时操作系统和非实时操作系统

    实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时任务协调一致运行的操作系统
    的头像 发表于 12-26 09:54 4416次阅读
    详解实时<b class='flag-5'>操作系统</b>和非实时<b class='flag-5'>操作系统</b>

    什么是实时操作系统(RTOS)

    实时操作系统(RTOS)是一种专为实时应用程序设计的操作系统。实时应用程序需要在特定时间内做出预测的响应,因此 RTOS 专注于提供对时间约束的强调,以确保系统能够满足实时性能要求。
    的头像 发表于 11-23 17:14 5519次阅读

    芯片到操作系统,手机厂商的操作系统混战卷到了智能手表

     电子发烧友网报道(文/莫婷婷)继华为推出鸿蒙操作系统之后,不少手机厂商都推出自研操作系统,小米推出小米澎湃OS替代MIUI,vivo也推出蓝河操作系统。霎时间,自研操作系统似乎成了手
    的头像 发表于 11-22 01:09 1788次阅读
    <b class='flag-5'>从</b>芯片到<b class='flag-5'>操作系统</b>,手机厂商的<b class='flag-5'>操作系统</b>混战卷到了智能手表