精华内容
下载资源
问答
  • SATA、mSATA、M.2、M.2(NVMe)、PCIE固态硬盘接口详解

    万次阅读 多人点赞 2019-08-03 13:38:56
    固态硬盘 概念 固态驱动器(Solid State Drive),俗称固态硬盘,固态硬盘是用固态电子存储芯片阵列而制成的硬盘,因为台湾英语里把固体电容称之为Solid而得名。SSD由控制单元和存储单元(FLASH芯片、DRAM芯片)...

    固态硬盘

    概念

    固态驱动器(Solid State Drive),俗称固态硬盘,固态硬盘是用固态电子存储芯片阵列而制成的硬盘,因为台湾英语里把固体电容称之为Solid而得名。SSD由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等诸多领域。

    其芯片的工作温度范围很宽,商规产品(0~70℃)工规产品(-40~85℃)。虽然成本较高,但也正在逐渐普及到DIY市场。由于固态硬盘技术与传统硬盘技术不同,所以产生了不少新兴的存储器厂商。厂商只需购买NAND存储器,再配合适当的控制芯片,就可以制造固态硬盘了。新一代的固态硬盘普遍采用SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2 NVME/SATA协议。

     

    接口

    目前固态硬盘的主要接口有:

    SATA接口

    作为目前应用最多的硬盘接口,SATA 3.0接口最大的优势就是成熟。普通2.5英寸SSD以及HDD硬盘都使用这种接口,理论传输带宽6Gbps,虽然比起新接口的10Gbps甚至32Gbps带宽差多了,但普通2.5英寸SSD也没这么高的需求,500MB/s多的读写速度也够用。

     

     

    mSATA接口

    mSATA接口,全称迷你版SATA接口(mini-SATA)。是早期为了更适应于超级本这类超薄设备的使用环境,针对便携设备开发的mSATA接口应运而生。可以把它看作标准SATA接口的mini版,而在物理接口上(也就是接口类型)是跟mini PCI-E接口是一样的。

     

    mSATA接口是SSD小型化的一个重要过程,不过mSATA依然没有摆脱SATA接口的一些缺陷,比如依然是SATA通道,速度也还是6Gbps。诸多原因没能让mSATA接口火起来,反而被更具升级潜力的M.2 SSD所取代。

     

    M.2接口

    M.2接口是Intel推出的一种替代mSATA的新的接口规范,也就是我们以前经常提到的NGFF,即Next Generation Form Factor。

     

    M.2接口的固态硬盘宽度22mm,单面厚度2.75mm,双面闪存布局也不过3.85mm厚,但M.2具有丰富的可扩展性,最长可以做到110mm,可以提高SSD容量。M.2 SSD与mSATA类似,也是不带金属外壳的,常见的规格有主要有2242、2260、2280三种,宽度都为22mm,长度则各不相同。

     

    不仅仅是长度,M.2的接口也有两种不同的规格,分别是“socket2”和”socket3”

     

    看似都是M.2接口,但其支持的协议不同,对其速度的影响可以说是千差万别,M.2接口目前支持两种通道总线,一个是SATA总线,一个是PCI-E总线。当然,SATA通道由于理论带宽的限制(6Gb/s),极限传输速度也只能到600MB/s,但PCI-E通道就不一样了,带宽可以达到10Gb/s,所以看似都为M.2接口,但走的“道儿”不一样,速度自然也就有了差别。

     

    上图为M.2接口走SATA通道的速率

     

    上图为M.2接口走PCIE通道的速率

     

    M.2接口(NVMe协议)

    NVM Express(NVMe),或称非易失性内存主机控制器接口规范(Non-Volatile Memory express),是一个逻辑设备接口规范。他是与AHCI类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过PCI-Express(PCIe)总线附加的非易失性内存介质,虽然理论上不一定要求 PCIe 总线协议。

    此规范目的在于充分利用PCI-E通道的低延时以及并行性,还有当代处理器、平台与应用的并行性,在可控制的存储成本下,极大的提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放SATA时代固态硬盘的极致性能。

    NVMe具体优势包括:

    ①性能有数倍的提升;

    ②可大幅降低延迟;

    ③NVMe可以把最大队列深度从32提升到64000,SSD的IOPS能力也会得到大幅提升;

    ④自动功耗状态切换和动态能耗管理功能大大降低功耗;

    ⑤NVMe标准的出现解决了不同PCIe SSD之间的驱动适用性问题。

    延时更低:

    说到NVMe标准对比AHCI标准的优势,其中之一就是低延时。因为AHCI标准本身就是为高延迟的机械硬盘而设,虽然SSD发展至今,主流产品已经开始不能满足性能的高速发展,特别是在延迟方面。而面向SSD产品的NVMe标准,降低存储时出现的高延迟,就是其要解决的问题之一。


    NVMe SSD可有效降低延迟(图片来自网络)

    在软件层方面,NVMe标准的延时只有AHCI的一半不到,NVMe精简了调用方式,执行命令时不需要读取寄存器;而AHCI每条命令则需要读取4次寄存器,一共会消耗8000次CPU循环,从而造成大概2.5微秒的延迟。

    IOPS大增:

    NVMe的另一个重点则是提高SSD的IOPS(每秒读写次数)性能。目前市面上性能不错的SATA接口SSD,最多只会测试到队列深度为32的IOPS能力,其实终究原因这是AHCI的上限,其实许多闪存主控可以提供更好的队列深度。而NVMe则可以把最大队列深度从32提升到64000,SSD的IOPS能力也会得到大幅提升。


    队列深度的大幅提升(图片来自网络)

     

    低延时和良好的并行性的优势就是可以让SSD的随机性能得到大幅度提升,这是950PRO系列SSD的现场跑分,它的随机性能表现绝对是一流的,在任何队列深度下都能发挥出极佳的速度。

    功耗更低:


    更先进的能耗管理(图片来自网络)

    NVMe加入了自动功耗状态切换和动态能耗管理功能,设备从能耗状态0闲置50ms后可以迅速切换到能耗状态1,在500ms闲置后又会进入能耗更低的状态2。虽然切换能耗状态会产生短暂延迟,但闲置时这两种状态下的功耗可以控制在非常低的水平,因此在能耗管理上,相比起主流的SATA接口SSD拥有较大优势,这一点对增加笔记本电脑等移动设备的续航尤其有帮助。

    驱动适用性广:


    主流操作系统逐渐开始支持NVMe(图片来自网络)

    NVMe标准的出现解决了不同PCIe SSD之间的驱动适用性问题,NVMe SSD可以很方便的匹配不同的平台、系统,无需厂家提供相应的驱动就可以正常工作,目前WindowsLinux、Solaris、Unix、VMware、UEFI等都加入了对NVMe SSD的支持。

     

    PCI-E接口:

    在传统SATA硬盘中,当我们进行数据操作时,数据会先从硬盘读取到内存,再将数据提取至CPU内部进行计算,计算后写入内存,存储至硬盘中;而PCI-E就不一样了,数据直接通过总线与CPU直连,省去了内存调用硬盘的过程,传输效率与速度都成倍提升。简单的说,我们可以把两种通道理解成两辆相同的汽车,PCI-E通道的汽车就像是在高速上行驶,而SATA通道的汽车就像是在崎岖山路上行驶。很显然,PCI-E SSD传输速度远远大于SATA SSD。

     

    目前PCI-E接口通道有PCI-E 2.0 x2及PCI-E 3.0 x4两种,最大速度达到32Gbps,可以满足未来一段时间的使用,而且早期PCI-E硬盘不能做启动盘的问题早解决,现在旗舰级SSD大多会选择PCI-E接口。

    虽然PCI-E SSD有诸多好处,但也不是每个人都适合。PCI-E SSD由于闪存颗粒和主控品质问题,总体成本较高,相比传统SATA固态硬盘价格贵一些。另外,由于PCI-E会占用总线通道,入门以及中端平台CPU通道数较少,都不太适合添加PCI-E SSD,只有Z170,或者是X79、X99这样顶级平台,才可以完全发挥PCI-E SSD的性能。总的来说,如果你是一个不差钱的土豪,那么就 PCI-E SSD吧!

     

    好了,带客官看过这么多固态硬盘的接口,相信这篇文章也一定能让你学到不少的知识。对于固态硬盘又多了更多的了解,希望可以帮助到大家。

     

    展开全文
  • 安装Ubuntu Linux系统时硬盘分区最合理的方法

    万次阅读 多人点赞 2017-08-13 15:36:20
    无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些...在讲硬盘分区之前,我先来普及一下硬盘的相关分类,硬盘一般分为IDE硬盘、SCSI硬盘和SATA硬盘三种,在Linux系统...

     

    无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在装系统的经验谈谈安装Ubuntu Linux系统时硬盘分区最合理的方法。

    在讲硬盘分区之前,我先来普及一下硬盘的相关分类,硬盘一般分为IDE硬盘、SCSI硬盘和SATA硬盘三种,在Linux系统中,IDE接口的硬盘被称为hd,SCSI和SATA接口的硬盘则被称为sd,其中IDE硬盘基本上已经淘汰,现在市面上最常见的就是SATA接口的硬盘,第1块硬盘称为sda,第2块硬盘称为sdb……,依此类推。

    一块硬盘最多有4个主分区,主分区以外的分区称为扩展分区,硬盘可以没有扩展分区,但是一定要有主分区,在主分区中要有一个激活分区用来启动Windows系统,在扩展分区中可以建立若干个逻辑分区,因此,最合理的分区方式应该最多分三个主分区,一个扩展分区,这样可以有效地利用有限的主分区,然后在扩展分区中建立逻辑分区。

    在Linux系统中每一个硬盘总共最多有 16个分区,硬盘上的4个主分区,分别标识为sdal、sda2、sda3和sda4,逻辑分区则从sda5开始标识一直到sda16。

    Ubuntu Linux可以把分区作为挂载点,载入目录,其中最常用的硬盘大小(500G-1000G)分配目录推荐如下表所示:

    目录 建议大小 格式 描述
    / 150G-200G ext4 根目录
    swap 物理内存两倍 swap 交换空间:交换分区相当于Windows中的“虚拟内存”,如果内存低的话(1-4G),物理内存的两倍,高点的话(8-16G)要么等于物理内存,要么物理内存+2g左右,
    /boot 1G左右 ext4 空间起始位置 分区格式为ext4 /boot
    建议:应该大于400MB或1GB Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;启动撞在文件存放位置,如kernels,initrd,grub。
    /tmp 5G左右 ext4 系统的临时文件,一般系统重启不会被保存。(建立服务器需要?)
    /home 尽量大些 ext4 用户工作目录;个人配置文件,如个人环境变量等;所有账号分配一个工作目录。

    另外一种情况是没有单独的机器配置,只能在自己电脑上安装 虚拟机,这种情况下 分配硬盘一般不超过100G  内存也只有2-4G左右,可以参考这种方式配置:

    目录 建议大小 格式 描述
    / 10G-20G ext4 根目录
    swap <2048M swap 交换空间
    /boot 200M左右 ext4 Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;启动撞在文件存放位置,如kernels,initrd,grub。
    /tmp 5G左右 ext4 系统的临时文件,一般系统重启不会被保存。(建立服务器需要?)
    /home 尽量大些 ext4 用户工作目录;个人配置文件,如个人环境变量等;所有账号分配一个工作目录。

    接下来就以Ubuntu Linux 12.04.3为例来为大家图文讲解手动对硬盘进行分区的方法。

    在如图1所示的分区界面中有两个选项可供选择。最简单的莫过于“清除整个硬盘并安装Ubuntu”选项,单击“继续”按钮,安装向导将根据原有的分区信息自动选择合理的分区方式。

     

    图1:Ubuntu Linux分区向导

    如果希望对分区过程进行完全控制,可以使用“其它”选项。单击“继续”按钮,安装向导将把用户带至手动分区界面,如图2所示。

     

    图2:手动分区模式

    在这里可以看到当前硬盘的分区信息,由于我使用的是虚拟机为大家进行演示,因此,只能看到一块没有使用过的硬盘,硬盘容量为20GB。

    第一步:选中空闲的磁盘空间,点击“添加”按钮,弹出“创建新分区”对话框,新分区的类型为主分区,挂载点为/boot,新建分区容量为128MB,最后点击“确定”按钮,如下图所示。

     

    图3:建立启动分区

    这个挂载点包含了操作系统的内核和在启动系统过程中所要用到的文件,接下来要新建一个交换分区。

    第二步:选中空闲的磁盘空间,点击“添加”按钮,弹出“创建新分区”对话框,新分区的类型为逻辑分区,“用于”选择“交换空间”,新建分区容量为1024M,最后点击“确定”按钮,如下图所示。

     

    图4:建立交换分区

    交换分区相当于Windows中的“虚拟内存”,如果物理内存小于或等于512MB,建议分配交换分区的大小为物理内存容量的2倍;如果物理内存大于512MB,建议分配交换分区的大小等于物理内存容量;如果您的内存够大也可以不建立交换分区。

    按同样的方法依次建立/var、/tmp、/home等挂载点,最终分区结果如下图所示。

                                                  图5:最终硬盘分区结果

     

    本文转载自: http://www.ah168.com/jishuwenzhang/xitong/Ubuntu-916.html 

    1. 近些年人民的物质生活极大提高,电脑内存和硬盘大小也出现了长足的发展,而文章是转载自原作者大神15年之前的文章,所以文中推荐的数值在现在来看已经显得有些捉襟见肘;但是作为学习linux的硬盘盘分区方法和理论还是有借鉴意义的,在这里向原作者致敬。

    2. 另外我本人还是学习linux的小菜鸡(┬_┬),这篇文章对我来说主要是学习之用,有不懂的可以去评论区找大神探讨

    展开全文
  • 硬盘的读写原理详解

    万次阅读 多人点赞 2012-03-29 17:30:30
    硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在...

           硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的 Ultral-160就是基于SCSI-3标准的;IDE 遵循的是ATA标准,而目前流行的SATA,是ATA标准的升级版本;IDE是并口设备,而SATA是串口,SATA的发展目的是替换IDE;

         我们知道信息存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;凸起的地方代表数字1(磁化为1),凹的地方代表数字0。因此硬盘可以以二进制来存储表示文字、图片等信息。

    1、硬盘的组成


            硬盘大家一定不会陌生,我们可以把它比喻成是我们电脑储存数据和信息的大仓库。一般说来,无论哪种硬盘,都是由盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部份组成。

                                   

                                                                           平面图:

     

                              

                                                立体图

            所有的盘片都固定在一个旋转轴上,这个轴即盘片主轴。而所有盘片之间是绝对平行的,在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离比头发 丝的直径还小。所有的磁头连在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向动作,(实际是斜切向运动),每个磁头同一时刻也必须是同轴的,即从正上方向下看,所有磁头任何时候都是重叠的(不过目前已经有多磁头独立技术,可不受此限制)。而盘片以每分钟数千转到上万转的速度在高速旋转,这样磁头就能对盘片上的指定位置进行数据的读写操作。

                                

    由于硬盘是高精密设备,尘埃是其大敌,所以必须完全密封。
     

    2、硬盘的工作原理


    硬盘在逻辑上被划分为磁道、柱面以及扇区.
                                                 
    硬盘的每个盘片的每个面都有一个读写磁头,磁盘盘面区域的划分如图所示。

                            


            磁头靠近主轴接触的表面,即线速度最小的地方,是一个特殊的区域,它不存放任何数据,称为启停区或着陆区(LandingZone),启停区外就是数据区。在最外圈,离主轴最远的地方是“0”磁道,硬盘数据的存放就是从最外圈开始的。那么,磁头是如何找到“0”磁道的位置的 呢?在硬盘中还有一个叫“0”磁道检测器的构件,它是用来完成硬盘的初始定位。“0”磁道是如此的重要,以致很多硬盘仅仅因为“0”磁道损坏就报废,这是 非常可惜的。
            早期的硬盘在每次关机之前需要运行一个被称为Parking的程序,其作用是让磁头回到启停区。现代硬盘在设计上已摒弃了这个虽不复杂却很让人不愉快的小缺陷。硬盘不工作时,磁头停留在启停区,当需要从硬盘读写数据时,磁盘开始旋转。旋转速度达到额定的高速时,磁头就会因盘片旋转产生的气流而抬起, 这时磁头才向盘片存放数据的区域移动。
           盘片旋转产生的气流相当强,足以使磁头托起,并与盘面保持一个微小的距离。这个距离越小,磁头读写数据的灵敏度就越高,当然对硬盘各部件的要求也越 高。早期设计的磁盘驱动器使磁头保持在盘面上方几微米处飞行。稍后一些设计使磁头在盘面上的飞行高度降到约0.1μm~0.5μm,现在的水平已经达到 0.005μm~0.01μm,这只是人类头发直径的千分之一。
            气流既能使磁头脱离开盘面,又能使它保持在离盘面足够近的地方,非常紧密地跟随着磁盘表面呈起伏运动,使磁头飞行处于严格受控状态。磁头必须飞行在盘面上方,而不是接触盘面,这种位置可避免擦伤磁性涂层,而更重要的是不让磁性涂层损伤磁头。
    但是,磁头也不能离盘面太远,否则,就不能使盘面达到足够强的磁化,难以读出盘上的磁化翻转(磁极转换形式,是磁盘上实际记录数据的方式)。
                                       

            硬盘驱动器磁头的飞行悬浮高度低、速度快,一旦有小的尘埃进入硬盘密封腔内,或者一旦磁头与盘体发生碰撞,就可能造成数据丢失,形成坏块,甚至造成 磁头和盘体的损坏。所以,硬盘系统的密封一定要可靠,在非专业条件下绝对不能开启硬盘密封腔,否则,灰尘进入后会加速硬盘的损坏。另外,硬盘驱动器磁头的寻道伺服电机多采用音圈式旋转或直线运动步进电机,在伺服跟踪的调节下精确地跟踪盘片的磁道,所以,硬盘工作时不要有冲击碰撞,搬动时要小心轻放。
            这种硬盘就是采用温彻斯特(Winchester)技术制造的硬盘,所以也被称为温盘,目前绝大多数硬盘都采用此技术。

     

    3、盘面、磁道、柱面和扇区


    硬盘的读写是和扇区有着紧密关系的。在说扇区和读写原理之前先说一下和扇区相关的”盘面”、“磁道”、和“柱面”。         
    1. 盘面
          硬盘的盘片一般用铝合金材料做基片,高速硬盘也可能用玻璃做基片。硬盘的每一个盘片都有两个盘面(Side),即上、下盘面,一般每个盘面都会利用,都可以存储数据,成为有效盘片,也有极个别的硬盘盘面数为单数。每一个这样的有效盘面都有一个盘面号,按顺序从上至下从“0”开始依次编号。在硬盘系统中,盘面号又叫磁头号,因为每一个有效盘面都有一个对应的读写磁头。硬盘的盘片组在2~14片不等,通常有2~3个盘片,故盘面号(磁头号)为0~3或 0~5。

    2. 磁道
             磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track)。磁道从外向内从0开始顺序编号。硬盘的每一个盘面有300~1 024个磁道,新式大容量硬盘每面的磁道数更多。信息以脉冲串的形式记录在这些轨迹中,这些同心圆不是连续记录数据,而是被划分成一段段的圆弧,这些圆弧的角速度一样。由于径向长度不一样,所以,线速度也不一样,外圈的线速度较内圈的线速度大,即同样的转速下,外圈在同样时间段里,划过的圆弧长度要比内圈 划过的圆弧长度大。每段圆弧叫做一个扇区,扇区从“1”开始编号,每个扇区中的数据作为一个单元同时读出或写入。一个标准的3.5寸硬盘盘面通常有几百到几千条磁道。磁道是“看”不见的,只是盘面上以特殊形式磁化了的一些磁化区,在磁盘格式化时就已规划完毕。

    3. 柱面
            所有盘面上的同一磁道构成一个圆柱,通常称做柱面(Cylinder),每个圆柱上的磁头由上而下从“0”开始编号。数据的读/写按柱面进行,即磁 头读/写数据时首先在同一柱面内从“0”磁头开始进行操作,依次向下在同一柱面的不同盘面即磁头上进行操作,只在同一柱面所有的磁头全部读/写完毕后磁头 才转移到下一柱面(同心圆的再往里的柱面),因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。电子切换相当快,比在机械上磁头向邻近磁道移动快得多,
    所以,数据的读/写按柱面进行,而不按盘面进行。也就是说,一个磁道写满数据后,就在同一柱面的下一个盘面来写,一个柱面写满后,才移到下一个扇区开始写数据。读数据也按照这种方式进行,这样就提高了硬盘的读/写效率。
    一块硬盘驱动器的圆柱数(或每个盘面的磁道数)既取决于每条磁道的宽窄(同样,也与磁头的大小有关),也取决于定位机构所决定的磁道间步距的大小。

    4.扇区
            操作系统以扇区(Sector)形式将信息存储在硬盘上,每个扇区包括512个字节的数据和一些其他信息。一个扇区有两个主要部分:存储数据地点的标识符和存储数据的数据段。
                         

    扇区的第一个主要部分是标识符。标识符,就是扇区头标,包括组成扇区三维地址的三个数字

          盘面号:扇区所在的磁头(或盘面)

          柱面号:磁道,确定磁头的径向方向。

         扇区号:在磁道上的位置也叫块号。确定了数据在盘片圆圈上的位置。

    头标中还包括一个字段,其中有显示扇区是否能可靠存储数据,或者是否已发现某个故障因而不宜使用的标记。有些硬盘控制器在扇区头标中还记录有指示字,可在原扇区出错时指引磁盘转到替换扇区或磁道。最后,扇区头标以循环冗余校验(CRC)值作为结束,以供控制器检验扇区头标的读出情况,确保准确无误。

    扇区的第二个主要部分是存储数据的数据段,可分为数据和保护数据的纠错码(ECC)。在初始准备期间,计算机用512个虚拟信息字节(实际数据的存放地)和与这些虚拟信息字节相应的ECC数字填入这个部分。

     

     5. 访盘请求完成过程 :

    确定磁盘地址(柱面号,磁头号,扇区号),内存地址(源/目)

           当需要从磁盘读取数据时,系统会将数据逻辑地址传给磁盘,磁盘的控制电路按照寻址逻辑将逻辑地址翻译成物理地址,即确定要读的数据在哪个磁道,哪个扇区

    为了读取这个扇区的数据需要将磁头放到这个扇区上方,为了实现这一点:

             1)首先必须找到柱面,即磁头需要移动对准相应磁道,这个过程叫做寻道,所耗费时间叫做寻道时间,

             2)然后目标扇区旋转到磁头下,即磁盘旋转将目标扇区旋转到磁头下。这个过程耗费的时间叫做旋转时间

    即一次访盘请求(读/写)完成过程由三个动作组成:
           1)寻道(时间):磁头移动定位到指定磁道 
           2)旋转延迟(时间):等待指定扇区从磁头下旋转经过 
           3)数据传输(时间):数据在磁盘与内存之间的实际传输

    因此在磁盘上读取扇区数据(一块数据)所需时间:

          Ti/o=tseek +tla + n *twm

    其中:

    tseek 为寻道时间

    tla为旋转时间

    twm 为传输时间

     

    4、磁盘的读写原理


    系统将文件存储到磁盘上时,按柱面、磁头、扇区的方式进行,即最先是第1磁道的第一磁头下(也就是第1盘面的第一磁道)的所有扇区,然后,是同一柱面的下一磁头,……,一个柱面存储满后就推进到下一个柱面,直到把文件内容全部写入磁盘。

    (文件的记录在同一盘组上存放是,应先集中放在一个柱面上,然后再顺序存放在相邻的柱面上,对应同一柱面,则应该按盘面的次序顺序存放。)

    (从上到下,然后从外到内。数据的读/写按柱面进行,而不按盘面进行,先)

    系统也以相同的顺序读出数据。读出数据时通过告诉磁盘控制器要读出扇区所在的柱面号、磁头号和扇区号(物理地址的三个组成部分)进行。磁盘控制器则 直接使磁头部件步进到相应的柱面,选通相应的磁头,等待要求的扇区移动到磁头下。在扇区到来时,磁盘控制器读出每个扇区的头标,把这些头标中的地址信息与期待检出的磁头和柱面号做比较(即寻道),然后,寻找要求的扇区号。待磁盘控制器找到该扇区头标时,根据其任务是写扇区还是读扇区,来决定是转换写电路, 还是读出数据和尾部记录。找到扇区后,磁盘控制器必须在继续寻找下一个扇区之前对该扇区的信息进行后处理。如果是读数据,控制器计算此数据的ECC码,然 后,把ECC码与已记录的ECC码相比较。如果是写数据,控制器计算出此数据的ECC码,与数据一起存储。在控制器对此扇区中的数据进行必要处理期间,磁 盘继续旋转。

     

    5、局部性原理与磁盘预读


      由于存储介质的特性,磁盘本身存取就比主存慢很多,再加上机械运动耗费,磁盘的存取速度往往是主存的几百分分之一,因此为了提高效率,要尽量减少磁盘I/O。为了达到这个目的,磁盘往往不是严格按需读取,而是每次都会预读,即使只需要一个字节,磁盘也会从这个位置开始,顺序向后读取一定长度的数据放入内存。这样做的理论依据是计算机科学中著名的局部性原理:

      当一个数据被用到时,其附近的数据也通常会马上被使用。

      程序运行期间所需要的数据通常比较集中。

      由于磁盘顺序读取的效率很高(不需要寻道时间,只需很少的旋转时间),因此对于具有局部性的程序来说,预读可以提高I/O效率。

      预读的长度一般为页(page)的整倍数。页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页(在许多操作系统中,页得大小通常为4k),主存和磁盘以页为单位交换数据。当程序要读取的数据不在主存中时,会触发一个缺页异常,此时系统会向磁盘发出读盘信号,磁盘会找到数据的起始位置并向后连续读取一页或几页载入内存中,然后异常返回,程序继续运行。

     

    6、磁盘碎片的产生


    俗话说一图胜千言,先用一张ACSII码图来解释为什么会产生磁盘碎片。
                   

    上面的ASCII图表示磁盘文件系统,由于目前上面没有任何数据文件,所以我把他表示成0。

    在图的最上侧和左侧各有a-z 26个字母,这是用来定位每个数据字节的具体位置,如第1行1列是aa,26行26列是zz。

    我们创建一个新文件,理所当然的,我们的文件系统就产生了变化,现在是

                         

    如图所示:”内容表”(TOC)占据了前四行,在TOC里存贮着每件文件在系统里所在的位置。
    在上图,TOC包括了一个名字叫hello.txt的文件,其具体内容是”Hello, world”,在系统里的位置是ae到le。

    接下来再新建一个文件

                         
    如图,我们新建的文件bye.txt紧贴着第一个文件hello.txt。

    其实这是最理想的系统结构,如果你将你的文件都按照上图所表示的那样一个挨着一个,紧紧的贴放在一起的话,那么读取他们将会非常的容易和迅速,这是因为在硬盘里动得最慢的(相对来说)就是传动手臂,少位移一些,读取文件数据的时间就会快一些。

    然而恰恰这就是问题的所在。现在我想在”Hello, World”后加上些感叹号来表达我强烈的感情,现在的问题是:在这样的系统上,文件所在的行就没有地方让我放这些感叹号了,因为bye.txt占据了剩下的位置。

    现在有俩个方法可以选择,但是没有一个是完美的

    1.我们从原位置删除文件,重新建个文件重新写上”Hello, World!!”. –这就无意中延长了文件系统的读和写的时间。

    2.打碎文件,就是在别的空的地方写上感叹号,也就是”身首异处”–这个点子不错,速度很快,而且方便,但是,这就同时意味着大大的减慢了读取下一个新文件的时间。

    如果你对上面的文字没概念,上图

                       

    这里所说的方法二就像是我们的windows系统的存储方式,每个文件都是紧挨着的,但如果其中某个文件要更改的话,那么就意味着接下来的数据将会被放在磁盘其他的空余的地方。

    如果这个文件被删除了,那么就会在系统中留下空格,久而久之,我们的文件系统就会变得支离破碎,碎片就是这么产生的。

    试着简单点,讲给mm听的硬盘读写原理简化版
                     

    硬盘的结构就不多说了,我们平常电脑的数据都是存在磁道上的,大致上和光盘差不多.读取都是靠磁头来进行.
               


    我们都知道,我们的数据资料都是以信息的方式存储在盘面的扇区的磁道上,硬盘读取是由摇臂控制磁头从盘面的外侧向内侧进行读写的.所以外侧的数据读取速度会比内侧的数据快很多.

                     

    其实我们的文件大多数的时候都是破碎的,在文件没有破碎的时候,摇臂只需要寻找1次磁道并由磁头进行读取,只需要1次就可以成功读取;但是如果文件破碎成 11处,那么摇臂要来回寻找11次磁道磁头进行11次读取才能完整的读取这个文件,读取时间相对没有破碎的时候就变得冗长.

    因此,磁盘碎片往往也是拖慢系统的重要因素之一,Vista之家团队也计划在Vista优化大师后续版本内加入磁盘碎片整理功能,敬请期待。

     

    7、硬盘容量及分区大小的计算


    在linux系统,要计算硬盘容量及分区大小,我们先通过fdsik -l查看硬盘信息:
      Disk /dev/hda: 80.0 GB, 80026361856 bytes
      255 heads, 63 sectors/track, 9729 cylinders
      Units = cylinders of 16065 * 512 = 8225280 bytes
       Device Boot Start End Blocks Id System
      /dev/hda1 * 1 765 6144831 7 HPFS/NTFS
      /dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)
      /dev/hda3 2806 9729 55617030 5 Extended
      /dev/hda5 2806 3825 8193118+ 83 linux
      /dev/hda6 3826 5100 10241406 83 linux
      /dev/hda7 5101 5198 787153+ 82 linux swap / Solaris
      /dev/hda8 5199 6657 11719386 83 linux
      /dev/hda9 6658 7751 8787523+ 83 linux
      /dev/hda10 7752 9729 15888253+ 83 linux
       其中 
        heads 是磁盘面;
        sectors 是扇区;
        cylinders 是柱面;
        每个扇区大小是 512byte,也就是0.5K;

      通过上面的例子,我们发现此硬盘有 255个磁盘面,有63个扇区,有9729个柱面;所以整个硬盘体积换算公式应该是:
      磁面个数 * 扇区个数 * 每个扇区的大小512 * 柱面个数 = 硬盘体积 (单位bytes)
      所以在本例中磁盘的大小应该计算如下:
      255 x 63 x 512 x 9729 = 80023749120 bytes 
      提示:由于硬盘生产商和操作系统换算不太一样,硬盘厂家以10进位的办法来换算,而操作系统是以2进位制来换算,所以在换算成M或者G 时,不同的算法结果却不一样;所以我们的硬盘有时标出的是80G,在操作系统下看却少几M;
      上面例子中,硬盘厂家算法 和 操作系统算数比较:
      硬盘厂家: 80023749120 bytes = 80023749.120 K = 80023.749120 M (向大单位换算,每次除以1000)
      操作系统: 80023749120 bytes = 78148192.5 K = 76316.594238281 M (向大单位换算,每次除以1024)
      我们在查看分区大小的时候,可以用生产厂家提供的算法来简单推算分区的大小;把小数点向前移动六位就是以G表示的大小;比如 hda1 的大小约为 6.144831G ;

     

    磁盘阵列


    磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。

    独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。

    RAID技术主要有以下三个基本功能:
    (1)通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度。
    (2)通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高数据存取速度。
    (3)通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。

    优点
    1)提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。
    2)通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。


    缺点
    RAID0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。
    RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。
    RAID0+1以理解为是RAID 0和RAID 1的折中方案。RAID 0+1可以为系统提供数据安全保障,但保障程度要比 Mirror低而磁盘空间利用率要比Mirror高。

    展开全文
  • (1)提示获取硬盘分区失败,可能缺少硬盘驱动。 (2)BIOS Menu中在DiskGenius可见磁盘,但U启动后在DiskGenius分区助手中不识别磁盘。 分析: 网上都建议修改BIOS设置,实践证明无法解决问题,回到问题本身,从...

    问题:

    ThinkStation使用U启动重装系统时,
    (1)提示获取硬盘分区失败,可能缺少硬盘驱动。
    (2)BIOS Menu中在DiskGenius可见磁盘,但U启动后在DiskGenius分区助手中不识别磁盘。

    分析:
    网上都建议修改BIOS设置,实践证明无法解决问题,回到问题本身,从硬盘驱动下手,思路在于使用光盘启动,安装中加载硬盘驱动。
    关于硬盘驱动,打开网址:https://think.lenovo.com.cn/support/driver/mainpage.aspx#ThinkStation
    在ThinkStation主机正面右下会刻下型号,如P710,选择对应型号点击,选择硬盘,下载驱动,将exe文件解压待用,一个就行,博主使用的是第三个。如果重装系统时发现时缺少RAID驱动,就下载第三个,安装时加入RAID驱动文件。

    操作步骤:
    (1)将镜像ISO文件刻录至光盘。3.8G的Win10 x64镜像刻录约20分钟,关闭盘片约5分钟。
    (2)在BIOS的StartUp中将DVD启动顺序排第一。
    (3)插入光盘,启动系统,显示Lenovo图标和左下提示语后,按下F12(避免错过进入光盘启动,可以连续按下),再按提示,点击任意键,进入光盘启动。
    (4)安装点击过程中,有分区一步,删除所有分区,新建分区,主分区建议输入204800。如果自动产生系统保留区,不影响分区。
    (5)同时点击加载驱动程序,在U盘中选择位置,将ThinkStation硬盘驱动文件加入。然后继续下一步,安装到最后即可。

    展开全文
  • 如果硬盘 接口这些都没有问题,而且插上之后,明显感觉移动硬盘有反应。那应该就是系统硬盘驱动的问题。打开设备管理器: 查看磁盘管理器正常情况下:磁盘管理器会包含所有的硬盘信息 包括主机的主硬盘 移动硬盘等等...
  • 文件读取之硬盘与内存模式

    万次阅读 2020-01-07 23:27:36
    硬盘模式:频繁操作文件 内存模式:一次性将所有内容读取到内存,再快速处理 """ # 硬盘模式 # while True: # find_name = input('please input the search name:') # with open('4.缓冲区.py.txt', 'r', encoding='...
  • Ubuntu挂载硬盘方法

    万次阅读 热门讨论 2018-07-29 21:13:09
    博主电脑共两块硬盘:128G的固态和500G的机械。系统装到了固态,加上一些数据还剩大概30G。然而机械硬盘全部空闲,故将机械盘划出了300G挂载到固态盘下。 二、步骤 1. 准备硬盘 博主系统版本为Ubuntu18.04,自带...
  • Linux虚拟机挂载新的硬盘

    万次阅读 2020-10-05 21:15:49
    1. 一个硬盘可以分成多个分区 2. 用户不能直接操作硬件, 需要 让硬件和系统的目录建立映射关系(挂载) 才可以操作,称为 挂载 第二步:步骤详情 第一步:虚拟机添加硬盘 第二步:查看系统分区挂载情况 lsblk...
  • 硬盘介绍

    千次阅读 2018-03-14 18:49:54
    (一)硬盘概念以及组成首先说一下硬盘的概念:港台称之为硬碟,英文名:Hard Disk Drive,简称HDD,硬盘是电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成。 这个就是一个硬盘:大部分的硬盘是由...
  • 硬盘分区表知识——详解硬盘MBR

    万次阅读 2019-05-07 10:26:15
    硬盘是现在计算机上最常用的存储器之一。我们都知道,计算机之所以神奇,是因为它具有高速分析处理数据的能力。而这些数据都以文件的形式存储在硬盘里。不过,计算机可不像人那么聪明。在读取相应的文件时,你必须要...
  • 固态硬盘与机械硬盘的区别

    万次阅读 2018-10-31 11:46:53
    固态硬盘与机械硬盘的差异 固态硬盘是由控制单元和固态存储单元组成的硬盘。固态硬盘的介质分为两种,一种是采用闪存作为介质,另外一种是采用DRAM作为存储介质,目前绝大多数固态硬盘采用的是闪存介质。 单元负责...
  • 常见硬盘区别

    万次阅读 2020-09-07 22:49:13
    机械硬盘是目前最常用的一种硬盘,通过马达驱动磁头臂,带到磁头到指定的磁盘位置访问数据,随机访问时性能很差。需要保证数据在不断更新、插入、删除后依然有序,传统做法是使用B+树 固态硬盘(SSD或Flash硬盘)...
  • linux查看硬盘大小与挂载硬盘

    万次阅读 2018-04-27 16:18:15
    linux查看硬盘大小与挂载硬盘 linux的硬盘有挂载和未挂载两种(类似windows上的硬盘分区(C、D、E盘)) (1)查看已经挂载的硬盘大小:df -h (2)查看详细的硬盘分区情况(包括挂载和未挂载两种的硬盘大小):...
  • 硬盘目前有好几种:IDE(ATA)硬盘,SATA硬盘,SCSI硬盘和SAS硬盘。 IDE(Integrated Drive Electronics)硬盘IDE硬盘也叫ATA硬盘,是采用并行传输技术的硬盘。IDE的英文全称为“Integrated Drive Electronics”,即...
  • 温馨提示: 本贴适用于 Win10 UEFI 模式启动+双硬盘(固态硬盘+机械硬盘)安装 ubuntu18.04 双系统 本人电脑型号: 戴尔游匣5575 (128固态+1T机械硬盘),Win10UEFI启动模式,64位操作系统 ubuntu18.04下载链接:...
  • 所以我判断是硬盘挂载信息没有添加在系统环境里,导致服务器重启后,无法重新挂载硬盘 所以我们先把硬盘挂载上 mount /dev/vdb /opt/calis/ 发现df -h出现了硬盘 为了防止下次重启服务器,重现这样的情况
  • 高速硬盘和固态硬盘的区别

    千次阅读 2019-07-07 13:47:26
    高速硬盘和固态硬盘的区别: 1、容量不同。固态硬盘比同容量硬盘体积小、重量轻。但这一优势随容量增大而逐渐减弱。直至256GB,固态硬盘仍比相同容量的普通硬盘轻。高速硬盘最大容量为100TB 3.5英寸。 2、性能不同...
  • ubuntu 16.04 硬盘分区,挂载 一、硬盘分区 1.查看硬盘及所属分区情况 sudo fdisk -lu 显示当前的硬盘及所属分区的情况。如下图所示: 图中有两块硬盘,我们要对第二块硬盘进行分区。 2.对硬盘进行分区 ...
  • linux挂载硬盘

    万次阅读 2020-09-09 13:12:34
    linux挂载硬盘 查看硬件设备 在root下输入lsblk 查看硬件设备(lsblk可以看成是“List block device”的缩写,即列为出所有存储设备。)。 mount /dev/sdb1 /mnt/usb 查看cat /etc/mtab文件显示当前系统已挂载的...
  • 固态硬盘与机械硬盘读取速度实测

    千次阅读 2019-01-30 12:34:07
    固态硬盘与机械硬盘读取速度实测
  • 1.购买移动硬盘盒子。 2.购买固态硬盘(跟机械硬盘同样大小的)。 3.使用分区助手-复制硬盘-扇区对扇区即可。 快速复制磁盘,测过不行。只能用扇区到扇区的复制。 点击下一步。最后到主界面选择提交。等待3个...
  • ubuntu14.04挂载新的硬盘

    万次阅读 2017-09-11 10:24:23
    装上硬盘后开始对硬件的检查 一、检查硬盘分区 1、显示硬盘及所属分区的情况。在终端输入命令 sudo fdisk -lu1 可以看见硬盘及分区情况 可以看到 Disk /dev/sda doesn't a valid partition table 2
  • Linux添加硬盘和挂载

    万次阅读 多人点赞 2019-05-24 11:18:20
    1.使用fdisk -l 查看硬盘的详细信息 分析: 2.分区初始化 fdisk /dev/sdb 分析:各个参数的解析  1. 输入 m 显示所有命令列示。  2. 输入 p 显示硬盘分割情形,打印分区表。  3. 输入 a 设定硬盘启动...
  • 本文简单介绍下Linux下磁盘分区、格式化等基本操作。 一. 查看分区表状态 先查看下是否有磁盘没有分区 fdisk -l ...输入p 可查看当前硬盘分区状态 输入n新建一个分区,输入p 建立分区,输入...
  • 硬盘克隆

    千次阅读 2017-01-18 17:13:47
    使用DiskGenius软件可直接克隆硬盘,步骤如下: 打开软件,在“工具”中可以选“克隆分区”或“克隆硬盘” 注:克隆硬盘,克隆的目标硬盘不能小于源硬盘。克隆分区,克隆的目标分区不能小于源分区。  复制...
  • 东芝的240G SSD和西部数据的2TB机械硬盘。SSD做系统盘,机械硬盘当数据盘。 之前两个硬盘插的是主板的SATA接口,一开始使用没问题,使用段时间之后发现非常卡顿,尤其是应用切换过程卡顿更加明显。系统已重装过所以...
  • Proxmox VE使用LVM新硬盘(多硬盘)

    千次阅读 2020-02-11 12:00:53
    PVE 添加硬盘 PVE 提供 Web 界面可以完成大部分的操作。但使用阵列卡,如 Dell 的 PERC 阵列卡等,在 Web 界面并不能直接完成添加硬盘和创建 LVM 卷的操作。 以下为以 Dell PERC 阵列卡挂载新硬盘为例,介绍如何为 ...
  • 这里对当前我实际操作后的两种硬盘挂载进行整理: 第1种是直接添加一块新硬盘,然后进行挂载。 第2种是对硬盘进行扩容后,对扩容后的空间进行分区再进行挂载。 【内容为参考网上资料,再加自已实际操作情况进行...
  • Ubuntu 16.04与Win10双系统双硬盘安装图解

    万次阅读 多人点赞 2017-01-07 23:49:21
    以前玩过ubuntu系统,后来很长时间没碰忘记了。突然想起我的电脑配置还可以,于是这几天又开始折腾了。...故,特记录下此篇文章《Ubuntu 16.04与Win10双系统双硬盘安装图解》,一般日后翻阅,也供后者少走弯路。 一
  • 关于机械硬盘的 CMR 和 SMR 技术

    万次阅读 2020-02-21 13:53:17
    硬盘我们天天都在用,那么关于机械硬盘所使用的技术你了解过吗? 硬盘缓存是大了好还是小了好? 关于 CMR 和 SMR 技术你又听说过吗?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 200,419
精华内容 80,167
关键字:

硬盘