zoukankan      html  css  js  c++  java
  • 磁盘

    前言

    英文汉语
    Disk 磁盘
    Head 磁头
    Sector 扇区
    Track 磁道
    Cylinder 柱面
    Units 单元块(一个柱面的大小)
    Block 数据块
    Inode 索引节点
    1. 硬盘的外部和内部硬件结构,工作原理及读写原理
    2. 装系统之前一般都会做RAID,但LVM不常用
    3. 磁盘名词知识及分区知识体系
    4. 文件系统名词及文件系统体系
    5. 文件系统命令操作知识

    一、磁盘

    1. 磁盘的历史介绍 

    1956年9月,IBM向世界展示了第一台磁盘存储系统IBM 350 RAMAC,容量5MB,需要50个直径24英寸的磁盘。

    真正原形是1973年IBM公司推出的Winchester(温氏)磁盘。 它的特点是:"磁盘在工作时,磁头悬浮在高速转动的磁盘盘片上方,而不与盘片直接接触。磁盘在工作时,磁头沿高速旋转的盘片上方做径向移动",这便是当今所有磁盘的雏形。

    现代的磁盘容量虽然更大了,但是依然沿用“温彻斯特”的动作模式,我们称这种磁盘为机械磁盘

     

    下面是IBM公司于1980年在IBM-XT上的一块10M的磁盘图示,从图中我们可以看出,除了外形略大外,无论外观还是内部结构和现在的磁盘无太大的差别。

    当今磁盘的发展趋势是体积更小、速度更快、容量更大、使用更安全

     

    实现这些特性,采取的改进方法有:

    • 研究读写更灵敏的磁头
    • 更先进的接口类型
    • 提升主轴电机的转速
    • 存储密度更高的磁盘盘片及更有效的数据保持技术等。
     

    速度更快:采购磁盘

    • 主轴转速 5400/7200/10000/15000 每分钟
    • sata/sas/scsi/ide
    • 读写更灵敏的磁头
     
    发展趋势实现措施
    体积更小 存储密度更高
    速度更快 读写更灵敏的磁头,主轴的转速更快,接口更先进了
    容量更大 存储密度更高
    使用更安全 数据保持技术
     

    2. 磁盘的外部结构 

    磁盘的作用:存储数据。

     

    普通的PC机和IDE磁盘的外部结构

    下面是西部数据(WesternDigital)公司生产的磁盘,幸好为WD200BB。是一款容量为20GB的7200RPM高速磁盘,产品序列号为WMA9L1203351,产地为马来西亚,出厂日期是2001年8月15日。

    笔记本电脑SATA磁盘的外部结构

    除了上面PC的IDE磁盘外,还有体积小巧的笔记本电脑磁盘。
    笔记本电脑磁盘一般是SATA磁盘,当然已经开始有SSD磁盘了。

     

    SATA磁盘如下图所示:

     

    SSD固态硬盘的外部结构

    从2012年起,SSD固态硬盘也变得逐渐流行起来,笔记本电脑及服务器领域都有逐年增加的趋势。

     

    固态硬盘是电子的,非机械的。

     

    常见机架服务器硬盘的外部结构:

    下面是一块普通的IDE磁盘图片,在磁盘的一端有电源接口插座、主从设置跳线器和数据线接口插座,而磁盘的背面则是控制电路板。

    从图9中可以清楚地看出各部件的位置。 

    总的来说,磁盘的外部结构可以分成如下几个部分

    磁盘接口、控制电路板以及固定面板

    1. 磁盘接口。 接口包括 电源接口插座和数据接口插座两部分,其中电源插座就是与主机电源相连接,为磁盘提供电力保证。数据接口插座则是磁盘数据与主板控制芯片之间进行数据传输交换的通道,用一根数据电缆将其余主板IDE接口等和磁盘的数据接口相连接,数据电缆一般为40针、80芯的接口电缆,早期数据接口有IDE和SCSI接口,当前主流的硬盘结构为 串口SATA硬盘或者SCSI接口。

     

    1. 控制电路板。大多数的控制电路板都采用贴片式焊接,包括主轴调速电路、磁头驱动与伺服定位电路、读写电路、控制与接口电路等。在电路板上还有一块ROM芯片,里面固化的程序可以进行磁盘的初始化,执行加电和启动主轴电机,加电初始寻道、定位以及故障检测等。在电路板上还安装有容量不等的高速数据缓存芯片,在此块磁盘内有2MB的高速缓存(计算机世界缓存无处)
     

    Linux中查看内存:

    [root@oldboy ~]# free -m
                 total       used       free     shared    buffers     cached
    Mem:           996        280        715          0         66         84
    -/+ buffers/cache:        129        866 
    Swap:          767          0        767 

    提示:

    1. Linux系统的特性是将系统不同的物理内存作为cache或buffers使用,因此,715不是系统的真实内存。
    2. 系统真正可用内存是866M
    3. buffers 为写入缓冲区,sync 将缓冲区数据写入磁盘
    4. cache 为读取数据的缓存区
    5. 硬盘是机械的、无论是写入还是读取都太慢了,所以读取和写入都是用了缓存和缓冲技术。
    6. 门户架构网站架构都会用缓存技术,来让用户写入读取尽可能不接触磁盘。

    3. 磁盘的内部结构

    磁盘的内部结构主要包括: 盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部分。

    磁头组件及磁头驱动装置

    1. 磁头组件。它由 读写磁头、传动手臂、传动轴三部分组成。
      • 硬盘读取数据的工作原理是利用特定的慈粒子的极性来记录数据。磁头在读取数据时,将慈粒子的不同极性转换成不同的电脉冲信息,再利用数据转换器将这些原始信号变成电脑可以使用的数据,写的操作正好与此相反。 
    1. 磁头驱动装置。磁盘的寻道靠移动磁头,而移动磁头则需要该装置驱动才能实现(机械操作)。磁头驱动装饰由电磁线圈电机、磁头驱动小车、防震动装置构成,高精度的轻型磁头驱动装置能够对磁头进行正确的驱动和定位,并能在很短的时间内精确定位系统指令指定的磁道。 
    1. 磁盘片。盘片是磁盘存储数据的真正载体,磁盘盘片大多采用金属薄膜材料(也有波粒材料),这种金属薄膜较软盘的不连续颗粒载体具有更高的存储密度、高剩礠及高矫顽力等优点。 
    1. 主轴组件。 磁盘主轴的转数是衡量磁盘读写性能的重要参考之一。例如:SAS15k,SATA 10k
    1. 前置控制电路。

    4. 磁盘的接口类型 

    接口的决定性作用,影响读取效率。

     

    磁盘接口是磁盘与主机系统间的连接部件,作用是在磁盘缓存和主机内存之间传输数据。
    不同的磁盘接口决定着磁盘与计算机之间的连接速度,在整个系统中,磁盘接口的优劣直接影响着程序运行快慢和系统性能好坏。

    从整体的角度上,磁盘接口分为IDE、SATA、SCSI和光纤FC通道四种,IDE接口磁盘早期多用于家用产品中,部分应用于服务器,SCSI接口的磁盘早期则主要应用于服务器市场,而光纤通道只在高端服务器上,价格昂贵。SATA是种新生的磁盘接口类型,已经逐渐取代IDE和SCSI接口,在家用市场和服务器都有逐渐流行的趋势(sata,sas接口)

     

    4.1 IDE磁盘与IDE接口 

    IDE(Integrated Drive Electronics)电子集成驱动器。

    本意是指把“磁盘控制器”与“盘体”集成在一起的磁盘驱动器。把盘体与控制器集成在一起的做法减少了磁盘接口的电缆数目与长度,数据传输的可靠性得到了增强,磁盘制造起来变得更容易,因为磁盘生产厂商不需要再担心自己的磁盘是否与其它厂商生产的控制器兼容。

    对于用户而言,磁盘安装起来也更方便。如今的IDE接口已经逐渐退出磁盘领域。

     

    IDE代表着磁盘的一种类型,但在实际的应用中,人们也习惯用IDE来称呼最早出现的IDE类型磁盘ATA-1,这种类型的接口随着接口技术的发展已经被淘汰了,而后其发展分支出更多类型的磁盘接口,比如ATA、Ultra、DMA、Ultra DMA等接口都属于IDE磁盘。

     

    4.2 SATA磁盘与SATA接口 

    使用SATA(Serial ATA,Serial Advanced Technology Attachment)的磁盘,有名 串口磁盘,当前PC机磁盘的主流。

    Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提供了数据传输的可靠性。

    串行接口还具有结构简单、支持热插拔的优点。

     

    可靠,简单,热插拔,性能高。

    SATA串口磁盘是一种完全不同于 并行ATA 的新型磁盘接口类型,由于采用串行方式传输数据而知名。

    相对于并行ATA来说,就具有非常多的优势。

    首先,Serial ATA以连续串行的方式传送数据,一次只会传送1位数据。这样减少SATA接口的针脚数目,使连接电缆数目变少,效率也会更高。 实际上,Serial ATA仅用4支针脚就能完成所有的工作,分别用于连接电缆、连接地线、发送数据和接收数据,同时这样的架构还能降低系统能耗和减小系统复杂性。 

    其次,Serial ATA的起点更高,发展潜力更大。Serial ATA 1.0定义的数据传输率可达150MB/s,这比目前最新的并行ATA(即ATA/133)所能达到的133MB/s的最高数据传输率还高,而在Serial ATA2.0的数据传输率将达到300MB/s,最终SATA将实现600MB/s的最高数据传输率。

    SATA是当前PC机及服务器磁盘的主流。

    4.3 SCSI 磁盘与SCSI接口

    SCSI(Small Computer System Interface)小型计算机系统接口,和IDE(ATA)是完全不同的接口。

    IDE接口是早期普通PC的标准接口,而SCSI并不是专门为磁盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。

    SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点。

    因较高的价格值得它难以如IDE磁盘普及,因此,早几年的SCSI磁盘主要应用于中、高端服务器和高档工作站中。

    我们在使用VMWARE做虚拟机化时选的的就是SCSI接口的模式。

     

    比喻:

    SCSI 驴

    SATA 马

    SAS 骡子(具有马和驴的优点)

     

    4.4 SAS磁盘与SAS接口

    SAS (Serial-Attached SCSI)是新一代的SCSI技术,和现在流行的Serial ATA(SATA)磁盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连接线改善内部空间等。

    SAS是并行SCSI接口之后开发出的全新接口。

    SAS的设计是为了改善存储系统的效能、可用性和扩充性,提供与串行ATA(Serial ATA)磁盘的兼容性。

     

    优势:

    1. SAS技术降低了磁盘阵列的成本
    2. 串行接口让传输性能提高
    3. 更好的扩展性能:最多可以链接16384个磁盘设备
    4. 安装更简单:支持热插拔
    5. 更好的兼容性
     

    总的来说,SAS技术是结合了SATA与SCSI两者的优点而诞生的,同时串行SCSI是点到点的结构。因此除了提高性能之外,每个设备连接到指定的数据通路上提高了带宽,从而为数据传输与存取提供了必要保障。

     

    企业生产环境主流磁盘的相关信息对比:

    企业生产场景普及程度:SAS > SATA > SSD

    单位容量对比性能和价格:SSD > SAS > SATA

    单位架构购买磁盘容量: SATA > SAS > SSD

     

    4.5 光纤通道 

    光纤通道(Fibre Channel),和SCSI接口一样光纤通道最初也不是为磁盘设计开发的接口技术,是专门为网络系统设计的,但随着存储系统对速度的需求,才逐渐应用到磁盘系统中。

    光纤通道磁盘是为提高多磁盘存储系统的速度和灵活性才开发的,它的出现大大提高了多磁盘系统的通信速度。

    光纤通道的主要特性有:热插拔性、高速带宽、远程连接、连接设备数量大等。

     

    光纤通道是为在像服务器这样的多磁盘系统环境而设计的,能满足高端工作站、服务器、海量存储子网络、外设间通过集线器、交换机和点对点连接进行双向、串行数据通讯等系统对搞数据传输率的要求。

     

    4.6 SSD磁盘

    固态硬盘(Solid State Drive、IDE FLASH DISK)是由控制单元和存储单元(FLASH 芯片)组成,简单的说就是用固态电子存储芯片阵列而制成的磁盘。

    固态磁盘的接口规范和定义、功能及使用方法上与普通磁盘相同,在产品外形和尺寸上也与普通磁盘一直。

    其芯片的工作温度范围很宽(-40~85℃)。目前广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。

    虽然目前成本较高,但也正在逐渐普及到DIY市场。

     

    由于固态磁盘级数与传统磁盘技术不同,所以产生了不少新兴的存储器厂商。厂商只需购买NAND存储器,再配合适当的控制芯片,就可以制造固态磁盘了。

     

    新一代的固态磁盘普遍采用SATA-2接口和SATA-3接口。

     

    分类:

    • 基于闪存FALSH的固态硬盘
    • 基于DRAM的固态硬盘(性能更高)
     

    优点:

    • 启动块
    • 读取延迟小
    • 碎片不影响读取时间
    • 写入速度快
    • 无噪音
    • 发热量较低
    • 无机械故障
    • 工作温度范围更大
    • 体积小重量轻
    • 无机械故障

    缺点:

    • 成本高
    • 容量低
    • 写入寿命有限
    • 易受外界影响
    • 数据难以恢复


    5. 企业生产工作中磁盘的选型

    磁盘: 当前服务器市场:主流磁盘为SAS,SATA,SSD磁盘。

     

    5.1 企业级SAS硬盘

    企业里常见的SAS硬盘是15000转/分(这里是主轴的转速)。当前主流300G、600G、1000G,从具体的业务需求及性价比考虑。 一般都选择6x300G,6x600G,单盘容量不要太大,除非纯备份! 

    用途:用于提供生产线上的普通对外提供服务的业务服务器

    例如:生产线上的数据库业务、存储业务、图片业务及相关高并发业务(web http,cache服务),总的来说,如果没有特殊业务需求,SAS磁盘是生产环境首选的磁盘配置。

     

    5.2 企业级SATA硬盘 

    7200-10000转/分。

    常见的容量为1T和2T,4T和6T。

    优点是经济实惠,容量大,从具体的业务需求及性价比考虑。

    多用SATA磁盘做线下不提供服务的数据存储或者并发业务访问不是很大的业务应用,比如站点程序及数据库、图片的线下备份等。

     

    特性:容量性价比高,一般2T的SATA磁盘较佳。

     

    磁盘选购小结:

    1. 线上的业务,用SAS硬盘
    2. 线下的业务,用SATA磁盘,磁带库
    3. 线上的高并发、小容量的业务,SSD磁盘
    4. 思想:根据数据的访问热度,智能分析分层存储。SATA+SSD
     

    千万不要用SATA磁盘来做在线高并发服务的数据存储或数据库业务,这是血的教训。

    某公司采用SATA做数据库的存储盘,结果导致数据库连续宕机一个月。

    5台SATA盘RAID5。

    解决:重新买5台,把磁盘从SATA(RAID5)换成SAS(RAID10)。6个月没事。

     

    5.3 SSD固态电子盘

    特点:容量小,价格贵。一般用于数据量小并且有超大规模高并发的业务(还可以通过磁盘加内存闪存的技术方式解决这个大规模并发的问题)

     

    百度、腾讯、360核心业务都会采用SSD磁盘,应用层也必须已经做了各种缓存。

    特别提示:大公司如淘宝,某些业务可能会根据数据的热度来综合使用分层存储,以达到性价比最佳的情况。80G SSD+500G SATA

     

    淘宝网CDN缓存对象分级存储策略案例

    问题:在存储数据中,18K以下的对象数量占总数量的80%,而其存储量占总量不到40%;同时,80%经常被访问对象所占用的存储空间不到总量的20%。

     

    分析问题: 以上的问题意味着“热点数据”(访问频次高的内容)需要更快的性能,而占的空间并不大,而“冷数据”(访问频次低的内容)所需存储量很大,对性能要求不需要高。

     

    解决问题:因此,服务器引入分层存储机制,单台服务器(实际会多台)的磁盘可由一块80GB的SSD硬盘和两块500GB的SATA盘组成。然后把“热数据”存放在SSD盘上,“冷数据”存放在SATA盘上,冷热数据可以动态调度,从而兼顾性能、容量与成本。

    另:分层存储调度软件由淘宝开发。

     

    上面的策略是高效、低成本方案,这是我们运维工作要重视的,实际工作中不可能不考虑成本,而无限制的去提升性能。

    http://server.51cto.com/News-318584.htm


    6. 磁盘内部:磁头、盘面、柱面、磁道、扇区 

    6.1 磁盘内部相关名词知识: 

    一般来说,一块磁盘有1个到数个盘片不等,其中每个盘片的有效盘面对应一个读写磁头,从上往下从0开始依次编号,不同的磁盘盘面在逻辑上被划分为磁道、柱面以及扇区,一般在出厂时就设定好了这些,磁盘及盘片的剖面如下图:

     

    6.1.1 磁盘的磁头

    磁盘的每个盘片的每个有效盘面都会有一个读写磁头(磁头数=盘片个数x2),磁盘盘面区域的划分如图所示。

    在磁盘不工作的时候,磁头停靠在主轴接触盘片的表面,即线速度最小的地方。这里是一个不存放任何数据的特殊区域,称为启停区或者陆区(Landing Zone),启停区以外就是数据区。

     

    在磁盘的最外围,离主轴最远的磁道称为“0”磁道,磁盘数据的存放就是从最外围“0”磁道开始的。

    既然磁盘数据是从最外圈开始,而停止时磁头又是在最内圈启停区,那么磁头是如何找到“0”磁道的位置的呢?

    那是因为在磁盘中还有一个用来完成磁盘初始定位的“0”磁道检测器构件,由这个构件完成磁头对“0”磁道的定位。

     

    “0”磁道非常重要,我们知道,系统的引导程序就在0柱面0磁道1扇区的前446Bytes

     

    早期的磁盘在每次关机之前需要运行一个被称为Parking的程序,其作用是在系统关机前让磁头回到启停区。现代磁盘在设计上已经摒弃了这个缺陷。磁盘不工作时,磁头会自动停留在启停区,当磁盘需要读写数据时,磁盘主轴盘片开始旋转。旋转速度达到额定的高速时,磁头就会因为盘片旋转产生的气流而抬起,这时磁头才向盘片存放数据的区域移动并开始读取数据。

     

    盘片旋转产生的气流很强,足够把磁头托起,并与盘面保持一个微小的距离。这个距离越小,磁头读写数据的灵敏度就越高,当然对磁盘各部件的要求也越高。早期设计的磁盘驱动器使磁头保持在盘面上方几微米处飞行。稍后一些设计使磁头在盘面上的飞行高度降到约0.1μm~0.5μm,现在的水平已经达到0.005μm~0.01μm,这仅为人类头发直径的千分之一。

     

    6.1.2 磁盘的盘面 

    磁盘的盘片一般是用铝合金材料或玻璃做基片。

    磁盘的每一个盘片都有两个盘面,即上,下盘面。 一般来说,每个盘面都可以存储数据,成为有效盘面,也有极个别的磁盘盘面数为单数。

    每一个这样的有效盘面都有一个盘面号,按顺序从上至下从“0”开始依次编号。因为每一个有效盘面都有一个对应读写磁头,盘面号又叫磁头号。磁盘的盘片组在2~14片不等,通常有2~3个盘片(如300G15KSAS盘就是3个盘片),故盘面号(磁头号)0~3或0~5不等,注意:盘面个数等于磁头个数。

     

    6.1.3 磁盘的磁道

    • 磁盘在格式化时被划分成许多同心圆,这些同心圆的轨迹叫做磁道。磁道由盘面从外向内依次从0开始顺序编号。
    • 磁盘的每一个盘面一般有300~1024个磁道,新式大容量磁盘每个磁盘每个盘面的磁道数可能会更多。信息以脉冲串的形式记录在这些轨迹中,这些同心圆轨迹不是连续的记录数据,而是被划分成一段段的圆弧,这些圆弧的角速度一样。由于径向长度不一样,所以,线速度也不一样,外圈的线速度较内圈的线速度大,即同样的转速下,外圈在同样时间段里,划过的圆弧长度要比内圈划过的圆弧长度大(但是读取到的数据是一样的)。这样的每段圆弧叫做一个扇区,扇区从“1”开始编号,每个扇区中的数据做为一个单元同时读出或写入。一个标准的3.5寸磁盘盘面通常有300~1024个磁道。特别说明,磁道是“看”不见得,只是在盘面上以特殊形式磁化了的一些磁化区,我们给大家画的图片是磁道形象的展示,在磁盘格式化时就已规划完毕了。
     

    前面讲过的,给磁盘分区实际就是划分柱面号及扇区号。
    柱面是所有盘面上相同半径的不同磁道的集合。

     

    6.1.4 磁盘的柱面

    • 一个磁盘所有的盘面上同一个半径相同的磁道的圆形轨迹从上倒下依次组成一个圆柱体,就称作柱面,每个圆柱上的磁头由上而下从“0”开始编号。
    • 一块磁盘的柱面数(或每个盘面的磁道数)既取决于每条磁道的宽窄(也会与磁头的大小有关),也取决于定位机构所设定的磁道间步距的大小。这些都是在出厂前就完成设定的。特别注意:这里的柱面数和前面的磁道数是一样的。

    柱面数 = 一个盘面的磁道数。

    柱面是所有盘面相同半径的不同磁道的集合。

    给磁盘分区实际就是划分柱面及扇区号。

     

    6.1.5 磁盘的扇区

    操作系统是以扇区为单位将信息存储在磁盘上的,一般情况下,每个扇区的大小是512字节(0.5k)。

    一个扇区主要有两部分内容:存储数据地点的标识符存储数据的数据段

     

    • 扇区的第一个主要部分是标识符。
      • 标识符就是扇区头标,包括组成扇区三维地质的三个数字:扇区所在的磁头(或盘面),磁道(或柱面号)以及扇区在磁道上的位置即扇区号。头标中还包括一个字段,其中有显示扇区是否能可靠存储数据,或者是否已发现某个故障因而不宜使用的标记。
      • 有些磁盘控制器在扇区头标中还记录有指示字,可在原扇区出错时指引磁盘转到替换扇区或磁道。最后,扇区头标以循环冗余校验(CRC)值做为结束,以供控制器检验扇区头标的读出情况,确保准确无误。
    • 扇区的第二个主要部分是存储数据的数据段,可分为数据和保护数据的纠错码(ECC)。
      • 在初始准备期间,计算机用512个虚拟信息字节(实际数据的存放地)和与这些虚拟信息字节相应的ECC数字填入这个部分。

    6.1.6 磁道、柱面、扇区总结 

    磁盘最基本的组成部分是由坚硬的金属材料制成的涂以磁性介质的盘片,不同容量磁盘的盘片数不等。

    记忆要点:

    1. 一块磁盘有2-14个盘片,每个盘片有两个面,每个面对应一个读写磁头,用磁头号来区分盘面,即盘面数就是磁头数,盘片数x2=磁头数(盘面数)
    2. 不同盘面的磁道被划分为多个扇区区域,每个区域就是一个扇区(Sector)。
    3. 同一个盘面,以盘片中心为圆心,每个不同半径的圆形轨迹就是一个磁道。
    4. 不同盘面相同半径的磁道组成一个圆柱面就是柱面
    5. 一个柱面包含多个磁道(这些磁道的半径相同),一个磁道包含多个扇区。
    6. 数据信息记录可表示为:某磁头,某磁道(柱面),某扇区
     

    6.1.7 一句话概括定义(磁道,扇区,柱面)

    • 磁道:每个盘片有两个面,都可记录信息。盘片表面以盘片中心为圆心,用于记录数据的不同半径的圆形磁化轨迹就称为磁道。磁化轨迹是磁化区域,是看不见的。磁道看起来是一个平面圆周形
    • 扇区:盘面由圆心向四周画直线==半径,不同的磁道被直线分成许多扇形的区域,每个弧形的区域叫做扇区,每个扇区大小一般为512字节,扇区看起来就是圆弧或扇形。
    • 柱面:磁盘中,不同的盘片(或盘面)相同半径的磁道轨迹从上到下所组成的圆柱型区域就称为柱面,柱面看起来是一个圆柱形。
     

    7. 磁盘的容量 

    盘面大小= 磁道大小 x 磁道数

    磁盘大小 = 盘面大小 x 盘面数,(盘面数 = 磁头数)

    磁盘大小 = 磁道大小 x 磁道数 x 磁头数,(磁道大小 = 512字节 x 扇区数)

    磁盘大小 = 512字节 x 扇区数 x 磁道数 x 磁头数

     

    磁盘大小 = 柱面大小 x 柱面数,(柱面大小=磁道大小x磁头数)

    磁盘大小=磁道大小 x 磁头数 x 柱面数

    磁盘大小= 512字节 x 扇区数 x 磁头数 x 柱面数(柱面数=磁道数)

     

    疑问:不同磁道上的扇区大小,看起来不一样大。直观感觉越靠外面的磁道扇区越大。

    原因:

    1. 数据的存储密度在不同的磁道内可能不同
    2. 磁道间隙的密度可能不同,外面小,里面大
    3. 现代的硬盘技术更新很快,可能分布算法已经升级。
    [root@oldboy ~]# fdisk -l
    
    Disk /dev/sda: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes # 柱面大小
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00090347
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          26      204800   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              26         124      786432   82  Linux swap / Solaris
    Partition 2 does not end on cylinder boundary.
    /dev/sda3             124        1045     7396352   83  Linux
    
    # 计算磁盘大小=扇区数*512字节*柱面数(磁道数)*磁头数 
    [root@oldboy ~]# echo "63*512*1044*255/1000/1000"|bc
    8587
    [root@oldboy ~]# echo "scale=2;63*512*1044*255/1000/1000"|bc
    8587.19

    8. 磁盘的工作原理

    磁盘是机械式硬盘:

    1. 盘片的旋转靠马达带动主轴,带动盘片旋转
    2. 磁头的径向移动也是靠步进电机来完成的
    3. 所有的磁头同时同向移动的。

    磁盘再读写数据时,应尽可能让磁头不动,或者少移动磁头就能读到更多或全部的数据。

     

    磁盘工作原理示意图:

    磁盘的读写流程及原理

    1. 磁盘的数据读/写一般是按柱面进行的,即次头读/写数据时首先在同一柱面内从“0”磁头开始进行操作,依次向下在同一柱面的不同盘面即不同磁头上进行操作,只有同一柱面所有的磁头全部读/写完毕后,磁头才转移到下一柱面(即寻道),因为切换磁头只需通过电子设备切换即可,而切换柱面则必须通过机械设备切换。电子磁头间的切换比机械磁头向临近磁道或柱面切换要快的多。所以,数据的读/写按柱面进行,而不按盘面进行。也就是说,一个磁道写满数据后,就在同一柱面的下一个盘面的相同半径磁道来写,一个柱面写满后,才移到下一个柱面开始写数据。读数据也按照这种方式进行,这样就大大提高了磁盘的读/写效率。

    机械磁盘读写磁盘数据的原理小结

    1. 磁盘是按照柱面为单位读写数据的,即先读取同一个盘面的某一个磁道,读完之后,如果数据没有读完,磁头也不会切换其他的磁道,而是选择切换磁头,读取下一个盘面的相同半径的磁道,直到所有盘面的相同半径的磁道读取完成之后,如果数据还没有读写完成,才会切换其他不同半径的磁道,这个切换磁道的过程称为寻道。
    2. 不同磁头间的切换是电子切换,而不同磁道间的切换需要磁头做径向运动,这个径向运动需要步进电机调节,这个动作是机械的切换。 磁头寻道是机械运动,切换磁头是电子切换。

    9. 总结:

    1. 名词:磁道(track),柱面(cylinder),扇区(sector)
    2. 数据在磁盘的位置,三维地址,0磁头0磁道1扇区。MBR 0磁头0磁道1扇区前446字节
      •  
    1. 磁盘读写数据原理
  • 相关阅读:
    unity3d 免费好用的数据库处理框架 数据库直连框架
    为.NET搭建Linux的开发环境,鄙视那些将简单事情复杂化的人
    为Linux重新开发MVC,有图有真相
    让我们一起用开源数据库和开源框架废弃Access
    C#子线程执行完后,调用主线程的方法
    javascript 将 table 导出 Excel ,可跨行跨列
    Easyui中 messager.alert 后某文本框获得焦点
    Easyui中 alert 带回调函数的 消息框
    wamp 在本地安装PHP环境, 开启 curl 扩展
    H+ 编辑tab页 保存后 刷新列表tab页 并关闭自已。tabA页调用tabB页的方法
  • 原文地址:https://www.cnblogs.com/zoe233/p/11923422.html
Copyright © 2011-2022 走看看