求助:苹果硬盘底层写入的最底层存储区域是MBR吗?还有更底层的存储区域吗?

PC存储方式解析-硬盘讨论章 上 - 简书
PC存储方式解析-硬盘讨论章 上
字数 13806
PC存储方式解析-硬盘讨论章 上
上2章讨论了RAID、NAS、SAN,我们现在将以上引出的问题回到最根本。容错(冗余)存储有RAID,在此基础上我们可以选择NAS、SAN等方案来使存储-应用-共享(分享)更简单、方便。但这一切的基础之基础是什么——硬盘。
注:01.硬盘历史等等,请自行搜索。
02.以民用论述为主。
9.1 从IDE到SATA
大陆(内地)电脑兴起是windows与PC一起走进千家万户,IDE并行总线接口硬盘最早还是和其他电脑配件一样视为不可替换的标配,上世纪末本世纪初那时20GB(Maxtor)的硬盘还是奢侈品。人们也没有像现在一样U盘满天飞,重要的文件还是需要使用软盘(Floppy Disk)存储。那时的Win98时长给你蓝脸看,还记得开始学习Word老师最早开讲就是勤保存。老庄说过「人生天地之间,若白驹之过隙,忽然而已。」『忽然』2003年到2004年见到传输速度快的SATA串行总线接口硬盘,那时大家讨论硬盘传输速度,辨别谁是真NCQ。那时微软的NTFS文件系统支持4GB单文件了,苍井爱田饭岛不用切开分上下集了。也是从这时开始磁盘『垂直录写技术』走进了人们视线中,发展到2008年基本市面上民用硬盘多是『垂直』硬盘了,也是从这时硬盘损坏开始和生产成正比了。
提到2008年就不能不提这年的中国奥运,虽然关键时刻没有在帝都但身处东北依然感受到百年圆梦的骄傲。08年奥运那时我们还没有从512的悲痛中走出,打着『Ulchi-Focus Lens』乙支自由卫士的航母就开到了黄海(偶要强调一句。乙支,指的是乙支文德。高句丽(普通话读作:高勾离)时期的抗隋将军,但高句丽在现在的中国东北一部和北朝鲜小半部,而当时的宇宙强国还是百济和新罗。后来新罗联合唐朝灭百济和高句丽才算完成了从南到今北朝鲜大同江的『统一』。后来经历一系列狗血宫廷剧,新罗变高丽(普通话读作:高离)。算来今天南朝鲜的起源是新罗,最多最多再加上百济。希望看到此段的同学们能主动帮助思密达辨别祖宗,也认清思密达认高句丽是对我国东北(长白山)等领土有吞并之心。)军演是马上可以转变成对敌攻击的军事行动,从黄海的航母起飞战机,十分钟就可对内陆的目标进行一轮轰炸。大家搜索一下08年有多少所谓『中产』移民了美国或其他国家,你真以为移民是出国旅游。又是这一年春晓油气田共同开发了,可现实是怎样。
时间来到了2010年,『垂直录写技术』进化出了二代,『叠瓦式磁记录』技术。硬盘生产商有望在今年(2015)推出真正消费级价格的SMR硬盘。当人们都在磁盘密度和如何增加更多磁盘上下功夫时,西部数据在2012年宣布了使用氦气来替代净化空气的硬盘。
展望未来西部数据还有纳米光刻技术和自组装分子来替代现有硬盘磁盘和排列方案,希捷在2006年公布的『热辅助磁记录』也有望在年面市。
9.2 消费向总线接口
硬盘(总线)接口(定义):是硬盘与电脑之间的连接部件,起到硬盘缓存和电脑内存之间数据传输的作用。
硬盘总线接口的性能高低直接影响,电脑运算性能的高低,因此先来说说接口。
为了行文方便IDE(Integrated Drive Electronics)并口总线接口硬盘=ATA(Advanced Technology Attachment)=PATA(Parallel ATA)。
采用40pin和80pin并口排线连接存储设备和电脑。此总线接口的硬盘从1986年西部数据技术规范标准的制定到2013年最后一个生产这类硬盘的硬盘商停止其生产,为电脑能走入普通消费者家庭立下了汗马功劳。良好的兼容性使那一时期几乎所有的电子设备想要都可与此接口连接,并且造价低廉。内部使用Ultra总线,通过『双倍数据比率』或者两个边缘(上升沿和下降沿)时钟机制用来进行DMA(Direct Memory Access)传输(早期是PIO,Programming I/O)。自身限制了升级的可能,使用的并口排线连接易受其他电子设备的干扰。无论怎样IDE接口的硬盘已成历史,如果你还在使用并想长期使用,如旧型号经典机器或『硬盘』型PS2等,你最好在IDE成『古董』之前屯一块。
SATA(Serial ATA),ATA(Advanced Technology Attachment)中文是高技术配置。IDE和SATA都是在ATA磁盘控制器下的计算机(电脑)系统总线接口,或者说是电脑总线(Bus)更恰当。2000年『Serial ATA Working Group』团体制定行业技术标准,以使用串行数据传输而得名。内部数据传输过程中,数据线和信号线独立使用,并且传输的时钟频率一致并保持独立。版本从HDD的2003年的SATA1.0到2004年的SATA2.0到2009年的SATA3.0,使HDD在数据传输上理论达到了500MB/S,实际平均也就60 (┬_┬)。
SATA各标准的理论最大传输值:
SATA 1.0:130MB/S
SATA 2.0:250MB/S
SATA 3.0:500MB/S(原生)(理论值,在高级SSD上能稳定飙到550~580)
SATA 3.0:380MB/S(非原生控制芯片)
以上即是理论最大传输值(以上值在各种平台上可能不同,但不会差异太大),也是限制传输最大值。即SATA1.0最大传输速度不会超过130,写出的目的就是要大家知道如何看评测,SATA3.0评测有些已经突破了自身标准的最大值了,要不就是作弊,要不就是SAS平台(((φ(◎ロ◎;)φ)))
SATA3.0对SSD开始优化从2011年的SATA3.1版针对SSD进行多项升级。未来SATA3.2——SATA Express将带来更快的数据传输速度16 Gbit/s, 1969 MB/s。和新的硬盘总线接口与新的接口整合方案。
除了以上,SATA总线接口硬盘还支持高级主机控制器接口(Advanced Host Controller Interface),AHCI(即是 储存设备内部传输控制标准)是英特尔制度的『一个存储器架构规范给予硬件制造商,规范如何在系统存储器与SATA存储设备间传输数据,目前(2014年3月)最新AHCI规范为1.3.1版。』 +1.
要想完全激活AHCI需使用SATA接口硬盘,『Windows Vista核心已完全支持AHCI,Linux从系统核心2.6.19版起支持,其他较旧操作系统则需要相关硬件制造商提供驱动程序才可以支持』+1.,windows系统上英特尔芯片组激活AHCI后安装『Intel(R) Rapid Storage Technology』驱动软件能获得更好效能更多功能,如针对硬盘的电源管理、节能等(个人觉得没什么用╮(╯▽╰)╭)。关于Windows系统AHCI驱动偶会在后续的优化帖上阐释。
SATA总线接口硬盘激活AHCI后还支持原生指令排序(Native Command Queuing)
NCQ的运行原理『本图阐述一颗硬盘在没有NCQ及有了NCQ的存取顺序分别。两颗硬盘所要求的内容顺序均为1、2、3、4,但NCQ硬盘可以透过改变读写次序而增加效率。』+2.
要想激活NCQ,硬盘需固件支持、硬盘控制器支持(SATA以上接口硬盘和主机板芯片组或主机板硬盘控制器支持)以及操作系统(windows需vista以上)四者的互相配合,才能改善硬盘内部磁区的读取顺序,提高硬盘的读取效能(NCQ是读取加速,与写入无关),亦能够轻微减轻硬盘损耗的速率。
AHCI是SATA硬盘更高级(或原生)的控制标准,NCQ是SATA硬盘的指令。NCQ包括在AHCI中,支持NCQ即支持AHCI,支持AHCI不一定支持NCQ。大家知道就好,我们没必要也没有义务『教导』那些NCQ等于AHCI,就是AHCI等于NCQ。
SATA AHCI还支持一个存在大于实际意义的热插拔,Hot swapping或Hot plugging。在消费级民用这一块大家知道有这个功能就好。
为什么SATA总线接口硬盘要激活AHCI:
SATA不激活AHCI,是运行在IDE模式,总线传输速度限制在IDE标准,完全发挥不出SATA的特性。激活AHCI SATA将支持更高级的电源管理,端口复制等。从个人使用的角度,AHCI才能完整的支持64bit LBA寻址能,更好的支持大容量硬盘。NCQ能提高4K随机读取性效能等。所以能开启AHCI请尽量开启,主板的RAID模式是完全支持AHCI的,其实主板的RAID模式比AHCI支持得更多,如使用DELL等笔电不用改回AHCI模式。如果组建RAID能不能支持AHCI、能不能支持NCQ,请参考主板或RAID卡说明书。
9.3 企业向
注:在企业向,SCSI、SAS等即指SCSI总线接口硬盘、SAS总线接口硬盘等,也指SCSI、SAS通信标准等。为了行文方便,没有特别写出SCSI、SAS等代指硬盘。
注:整个系列文,除非特别提示,企业级硬盘或企业级应用指SCSI、SAS等真正的企业级硬盘。所谓SATA总线接口的企业级硬盘不算在内,请读文各位朋友注意。
SCSI,Small Computer System Interface。单纯的SCSI总线接口是标准化的小型计算机系统总线接口,包括硬盘、光驱、主机磁带等等设备皆使用此总线接口。SCSI是最早作为硬盘总线接口的工业化标准,1979年由Shugart公司(希捷前身)和当时的各硬盘商制定的,致力于将实际物理存储地址变为逻辑映射地址,最终在1986年得到ANSI(美国国家标准协会)批准。SCSI总线接口标准版本从1986年SCSI-1一直提升到2003年SCSI-3 Ultra-5,支持最多连接16个SCSI设备组成链,但链中以最慢的设备速度传输。总带宽提升到5Gbps及多种类型协议和命令。
SCSI总线接口硬盘除继承SCSI标准,还因专门支持SCSI总线接口硬盘的SCSI背板(Backplane)卡的加持。SCSI卡集成处理数据传输的CPU运算芯片,硬盘可以移动驱动臂定位磁头,在磁盘介质和缓存中传递数据,整个过程在后台执行。这样可以同时发送多个命令同时操作,适合大负载的I/O应用,在多线程传输上表现稳定、可靠。
与消费级SATA或IDE比效能卓越甚至更强,但与SSD比无论数据传输还是多线程传输都落后。
SAS,Serial Attached SCSI,串列SCSI。现在网络上经常把SAS和SATA相混甚至说SATA来自SAS,或SAS、SATA出自同门。其实SAS是由SCSI存储总线接口演化而来(SATA是ATA演化而来),是由T10 committee开发维护的存储总线接口标准,与SATA更多的是互补。其设计目的是为了改善存储效能、扩展性和SATA兼容。理论值SAS协议交换域可以最多连接16384个设备。其最新扩展器可连接28或36个物理设备,每个设备皆以自己原始速度传输。看图SAS 02(这里的图是SAS硬盘的),SAS总线接口背板(Backplane)相连并多出几个金手指,使其即可连接具有双端口高性能的SAS总线接口硬盘,也可连接高容量低成本的SATA硬盘。SAS总线接口可向下兼容SATA,但SATA总线接口无法向上兼容SAS。SAS从80年代中期出现到今天从SAS1.0 3Gb/s、SAS2.0 6Gb/s到SAS3.0 12Gb/s标准不断进化,以上标准是给予SAS标准总线接口硬盘的传输速度。其他类型兼容使用SAS的协议传输,其中SCSI协议(SSP)用于传输SCSI标准速度;SCSI管理协议(SMP)用于连接具有SCSI协议的设备的维护和管理;SATA通道协议(STP)用于与SATA数据传输。
网络多将SAS与SATA相比较,偶也不免俗的简单比较一下。以SAS总线接口硬盘与SATA总线接口硬盘,SAS是点对点(point-to-point)的连接传输,SATA是带宽传输,SAS是条条大路通罗马,SATA是一条路走到黑。SAS是完全的双向通信系统,SATA是继承IDE的半双向通信系统,SAS通信上是SATA的两倍。在多线程传输上SAS也如SCSI一样提供更高级的运算芯片。在数据完整与数据保护上,SAS提供了完整的I/O ErrorDetection(IOEDC)技术可同时校验数据内容和位置,SATA只能校验数据。和I/O ErrorCorrection(IOECC)能够纠正读和写操作中的数据错误,而SATA只能在写操作时执行纠正。再有物理线缆上SAS线可延伸6米,SATA最长不能超过1米。到此,偶不免俗的比较了SAS与SATA,还是一开说得SAS与SATA是互补互助,SAS稳定快速、SATA价低量大。从最新的ssd SATA Express总线接口标准来看,SATA Express是不是很像SAS。偶曾说过「等那天PC都用上SCSI(SAS)磁盘控制器再说PC已死吧!」,恐怕这天快来了。
实际上SAS的对手是FC总线接口硬盘及标准。请参考
十.不同视角下的机械硬盘
10.1 硬盘的内视:
更多图请点击+3观看
10.2硬盘机械运行方式:
接口连接主板,连接电源。硬盘上主控芯片等通电,硬盘BIOS自检初始化缓存。
硬盘内部通电,主轴(马达)开始『规则』旋转(规则是根据硬盘的转数如5900RPM,5400RPM,7200RPM。但实际消费级民用硬盘一般达不到额定转数)磁盘(磁盘,是带有磁性颗粒涂层的盘片。盘片介质一般有塑料、玻璃、铝镁合金等材质制作),永磁铁通电后磁化与传动轴通电后,移动磁头驱动臂到达磁盘。磁头由电磁化和万有引力隔空气来读写数据(磁头 磁场 改变磁盘上的 磁性颗粒 的 磁序 排列来写入数据),磁头读写时感应电流是相反的,当硬盘断电后磁盘不再显磁。至于为什么磁化的磁头与磁盘就可以存储数据呢?这点有兴趣的同学请搜索巨磁阻效应(Giant Magnetoresistance)量子物理学正在改变着我们的世界!
磁头停泊区,拜西数绿标硬盘所赐,原来SMART中Load/Unload Cycle Count规则没有几个使用者会持续关注,由于绿标的省电设置,闲置没有操作8秒后就将使磁头驱动臂移动磁头,使磁头从磁盘移动到停泊区歇着,达到微乎其微的省电。不明白这种设定应该应用到企业级硬盘上,上百上千块硬盘这样省电才有意义,消费级民用一块省上0.0001瓦有什么用。其他硬盘一般闲置时间为300秒。
10.3 物理视角下的(硬盘)磁盘如何存储数据:
从1956年IBM开发出了1吨重5MB存储容量的硬盘到今天3.5寸几TB的硬盘容量,硬盘容量发生了翻天覆地的变化。促进这一变化的根本要追溯到硬盘磁盘的内部数据存储方式上。
我们知道硬盘大多选择使用塑料、玻璃或铝镁合金来制造磁盘盘基,再在盘基上涂上磁性颗粒(即磁畴(Magnetic Domain))涂层来存储数据,以现在『流行』的垂直记录技术使用的磁盘为例,至少盘基上要涂上软磁层、缓冲层、记录层、保护层和润滑层(偶此处提到的这5层是几种硬盘磁盘涂层的综合,具体到实际购买的硬盘使用何种几层涂层,请根据型号到硬盘制造商网站查询。)这5层涂层才能生产检查出合格的消费级民用磁盘(水平记录技术使用的磁盘一般是4层涂层)。企业及更高级最少是8层涂层。这层层涂层使用纳米薄膜技术,每层薄膜添加多种化工材料,如企业级的SAS使用的最终呈现主要为二氧化硅(SiO2)合金磁盘,使硬盘读写性能更好。(特别提示,偶这是老黄历了,不知现在(2015年)情况是否发生变化)当磁盘盘基和涂层材料技术更新出现瓶颈或暂时难再突破,人们将眼光转向更『深层』磁盘存储数据的排列。
10.3.1水平记录技术:
早期(1986年前后。存疑?),硬盘磁盘上写入数据,磁性颗粒受到磁化后以水平方向排列,通常称为 水平记录技术(longitudinal magnetic recording 简称LMR)。随着硬盘容量的需求增大,人们不停的研究如何减小磁性颗粒的大小,使既定容量的磁盘上可以添加更多的磁性颗粒。但LMR受到物理(『自然定律』)的超顺磁性(superparamagnetism)制约无法再突破,『超顺磁性是指当某些具有磁性的颗粒小于某个尺吋时,外场产生的磁取向力太小而无法抵抗热骚动的干扰,而导致其磁化性质与顺磁体相似。+4』研究者又研究出了垂直记录技术。
10.3.2 垂直记录技术
上面说了LMR由于已经被淘汰说得比较潦草,现在稍微详细谈谈垂直记录技术(Perpendicular recording 简称 PMR),第10代硬盘技术。
上面偶说了PMR使用的磁盘涂层:(从表面到里)
---磁盘介质--
当磁头通电产生磁场(永磁铁),隔空气『接触』磁盘(磁头是不会实际接触到磁盘的,两者之间空气间隔是0.001-0.003微米(um))。磁头磁场『穿过』最上层的润滑层,润滑层在此是起到保护磁头防止磁头受震动实际接触磁盘受损(不是所有硬盘都有此层)。『穿过』保护层,保护磁盘。使记忆层原始无序的磁畴受磁化改变磁序以此来达到存储数据0、1的目的。PMR技术使原本无序的磁畴磁化后成垂直角度排列。(见图,图片来自百度百科)
缓冲层:当磁畴磁化后会促使自身内部生长(十分抽象,请大家自行想象,生长单位最大是纳米),生长到缓冲层终止变化。缓冲层(也有叫晶体生长终止层、也有叫中止层(没打错字))有多种名称,但硬盘磁盘都会有这层,使其控制磁畴颗粒,即是保持硬盘容量,也是保证数据读写安全。
软磁层:也叫固化层,是保证在一定条件下磁化后的磁畴不会乱序。早期LMR,如图或是南极北极-南极北极……或是南极-南极北极-北极……。PMR将磁畴垂直相应的磁序也垂直,磁化的磁畴透过缓冲层,最终垂直定向固化到软磁层。软磁层不是所有硬盘都有,有些硬盘是将磁畴最终定向到磁盘介质上。特别说明一点,有没有软磁层不能是判断硬盘好坏的标准,如磁盘介质是塑料或玻璃就必须有软磁层,合金就不一定了。
以上是PMR的简介,PMR理论来自1977年岩崎俊一教授的科研成果,一直到2004年日立(现在的东芝)才正式推出PMR技术的消费级民用大容量硬盘,2006年开始商业化发展,2007年替代LMR成为主流硬盘内部存储方式。偶在此忽略了磁头的说明,要使用PMR技术还需GMR巨磁阻磁头的支持或组合,忽略的原因是GMR虽然也是高精密的科技结晶,但其自身不像磁盘有多种内部材质方案,有兴趣的同学搜索一下即可,LMR配合MR磁头;PMR配合GMR磁头。(特别说明,有些文章介绍说PMR是希捷发明的,偶简单的查询没有找到结论。无论是希捷还是日立最初技术来自岩崎俊一这点没有分歧。)
虽然PMR将硬盘单磁盘的存储密度从LMR的240Gbit/in2(240GB每平方英寸)提升到了620Gbit/in2,但『自然定律』的超顺磁性还是出现了限制了容量的发展……
10.4 OS视角下的硬盘:
上面说了硬盘,虽然没有说完,但现说一说操作系统下的硬盘。
10.4.1 CHS与LBA定址:
CHS(Cylinder / Head / Sector):
CHS硬盘定址方式,看图Sector(偶在此直接使用英文,中文有多种翻译,避免混淆。本篇没有繁中版大家凑合看吧╮(╯▽╰)╭)是图上红色和绿色相交的那一块,1 sector是512 bytes;由Sector组合一圈是Cylinder;Head是磁头,一张磁盘对应两个磁头。
一张磁盘有两面每一面有一个对应的Head,每一面有一圈一圈的Cylinder,即Track。每一圈Cylinder划分成同等大小的若干个Sector。硬盘控制芯片通过第几Head,第几Cylinder,第几Sector来定址。
LBA(Logical Block Address):
由于CHS定址方式是各个硬盘商的自定义内部定址,早在1979年由Shugart公司(希捷前身)和当时的各硬盘商提出一个统一的定址标准,将实际物理存储地址(CHS)变为逻辑映射地址(LBA)。消费级民用是伴随的这大容量硬盘开始普及的。
LBA完整中文是逻辑区块定址,对硬盘对CHS都没有影响。LBA只是单纯的将磁盘划归出大小同等的若干份区块(一般LBA=硬盘sector),将每个区块依次标号,从第一区块LBA=0,第二区块LBA=1,以此类推。现在没有特殊说明一般都使用LBA来表示实际的磁盘定址。
10.4.2 文件系统File systems:
File systems是『计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其存取和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。在写入新数据之前,用户不必关心硬盘上的那个块地址没有被使用,硬盘上的存储空间管理(分配和释放)功能由文件系统自动完成,用户只需要记住数据被写入到了哪个文件中。』+6
在OS存储数据中通过文件系统与硬盘控制器通信,再到硬盘驱动与LBA通信,LBA再与硬盘控制芯片转换定址,最终将数据存储到Sector上。
Windows File systems:
FAT(File Allocation Table):详见
NTFS(New Technology File System):详见
ReFS(Resilient File System)
偶在此就不废话了,现在FAT32更多应用在U盘(U盘文件系统还有一个exFAT:详见 ,与FAT32或NTFS比格式化后可使用容量最多,但实际使用下来与FAT32比较除了支持大于4GB的单文件其他可以说存在大于实际意义。多系统联接经常看不到盘,只能重新插回Windows修复)和UEFI启动分区上。
NTFS现阶段微软主打的文件系统,版本是3.1。要想用好NTFS还需配合最新windows系统的NTFS.sys 驱动程序,因NTFS在XPSP3(?有同学说是XPSP2就是v3.1,偶没有验证此处存疑)以后格式化全部是v3.1(格式化支持4K要Vista以上系统最好Win7SP1以上),但要实际使用NTFS的新特性需要Windows系统支持,XPSP3 2001年NTFS.sys 5.1;WS年NTFS.sys 5.2;Windows Vista 2005年 NTFS.sys 6.0;从WS2008、Win7、WS2008R2 NTFS.sys 皆是6.1;从Win8、WS2012 NTFS.sys 皆是6.2;从Win8.1、WS2012R2 NTFS.sys皆是6.3。从WS2008到WS2012R2虽然NTFS.sys大的版本号相同,但桌面系统和服务器系统版本号的尾号有区别,功能上的区别通过注册表开启屏蔽。如Win8.1通过修改注册表可以使用WS2012R2上支持的REFS;XPSP3替换WS2003的NTFS.sys可以支持GPT分区。但偶个人不建议开启屏蔽的功能。
重点说明一点,文件系统配合操作系统发挥更大效能这点不是微软『专利』,基本所有的文件系统都需要操作系统更好的配合来发挥效能。NTFS与REFS比、EXT3与EXT4比才有意义,NTFS与EXT4无论是在Win下还是Linux比较都没有任何实质的意义。
REFS虽然宣传是NTFS的升级,从现在其功能来看更像ZFS。无论以后怎样现阶段不建议大家使用,此建议包括使用服务器系统的同学。论稳定不如NTFS、论容错不如ZFS等一家之言。
Linux File systems:
ext3(Third extended filesystem):详见
ext4(Fourth extended filesystem):详见
Btrfs(B-tree FS):详见
EXT4是EXT3的升级,类NEFS的日志类文件系统。现阶段如不考虑旧系统、旧内核的兼容,推荐完全使用EXT4。
展望——终极文件系统:
ZFS(Zettabyte File System):详见
偶将以上三个文件系统定义为终极文件系统(现阶段),为什么叫终极文件系统。一是ZFS宣传上就有『last word in file system』这么霸气的豪言,另一方面如果你看了偶给出的详见链接,你会发现无论是现在最强的ZFS、还是Linux上的Btrfs,或是Windows REFS都在改写人们对现有文件系统的认知。不再是传统的Sector管理,而是在此之上引入了存储池+类RAID——ZFS-zpools、Btrfs的mkfs命令、Windows Storage Spaces配合REFS。其中类RAID是与RAID一样有速度、冗余等,但又不是传统的RAID有限制制约,偶就不展开了需要详细了解的见详见;更重视冗余(容错)和数据效验——无论ZFS、Btrfs、REFS现在都支持元数据的读与写时的效验和位置验证;快照与克隆,现阶段REFS需第三方方案解决,看以后微软对其发展方向再写。等等,像以上三者的『独家』储存方式大家看详见偶就不添足了。
虽然以上三者都很优秀,但现阶段最值得体验的是ZFS,其本身就是企业级应用,并已被企业认可。其虽可归为Linux这一大类,要想使用好还是要配合SUN(Oracle)公司的操作系统。ZFS开源后在Linux与苹果上都可使用,但要使用ZFS的更多功能,现阶段最推荐的就是FreeNAS(FreeNAS 8 64位以上)了。
Btrfs虽然宣传也是所谓企业级应用,但到现在为止还没有被企业认可。REFS偶已经说了多次了现阶段普通用户没必要『以身试毒』。再多说几句如果对ZFS或FreeNAS有兴趣请自带梯子(翻墙技能顺便能屏蔽一票键盘侠)去大陆(内地)以外学习,大陆这几年受美式民主、美式自由的蛊惑,用个开源系统都能用出优越感、『一库』到嘴歪眼斜,让我辈佩服之极。让我想到了老子 道德经 中的『绝圣弃智』,每读老庄仿若老庄生活在今天,遗憾的是老庄的思想、抱负呈现出的社会恐怕是世人几生几世也无法见到的真正自由世界。今日世人到是将道德经字面上的意义发挥的淋漓之至。『绝圣』今日不断『解剖』保家卫国的英雄,从烂骨坑中挑出几块还有点人形的零碎拼接出所谓『真英雄』,如帅哥张xx,比他强比他能打仗的有的是,可为什么要捧他?李宗仁、白崇禧反常凯申捧了没什么意思,没法子了不知那个懒癌想出小诸葛(或 蒋百里)『替』主席写了持久战。为什么说懒癌,提出神论的人(姑且称其为人吧)要是看看小诸葛(或 蒋百里)写的,再读读主席写的《论持久战》真相还用辨吗。傅作义、王耀武投降的投降、被俘的被俘,说了打自己脸。孙立人也同样不能捧,和张学良一个待遇,这自打自脸还是算了。其他偶就不一个个说了,最后找到了就他了,死在老共这,抗日不管如何至少没当汉奸,颜值够高,杀妻什么的别提。大家打开脑洞想想就现在互联网上这群人的德行,要是换到日本,换到鬼子那Yasukuni Shrine,他们会怎样?Yasukuni Shrine中供奉着差点让日本灭种的『强人』,『一億國民總玉碎』!!!有中国人告诉你这是口号,但他不会告诉你塞班岛、硫磺岛、冲绳等战场上日本是如何做到『一億國民總玉碎』。今天天皇还在,有中国人告诉你裕仁在二战中是牌位,可他不会告诉你,日本大本营当时有两派:统制派和皇道派,在侵中上两派没有分歧,只是皇道派诉求以伪满洲为基础蚕食中国、扶植更多日统伪政府,集中力量对付苏联;统制派是诉求快速占领中国沿海城市,实质控制东南亚。然后二·二六事件发生了,开始发生在陆军一部分,其他陆军、海军等开始时在观望……最终裕仁下令镇压。具有讽刺意义的是亲天皇的皇道派打着『清君侧』反被清,统制派与裕仁眉来眼去,最终主导了内阁。如果裕仁要是没有掌握到实权,如何镇压、如何清理皇道派和观望派、如何使东条等军部主导内阁。Nanking Massacre中实质指挥官是 朝香宫鸠彦王(あさかのみややすひこおう),裕仁的叔叔,松井石根判死不冤但替最后活90多的皇叔死了不值。朝香宫鸠彦王下令杀!杀!杀!他的底气在那?下克上吗?日本为天皇开脱,最终保留天皇投降却使用了停止战争——《终战诏书》,有兴趣的同学看看这份诏书的原文,「宜シク擧國一家、子孫相傳ヘ、確ク神州ノ不滅ヲ信シ、任重クシテ道遠キヲ念ヒ、總力ヲ將來ノ建設ニ傾ケ、道義ヲ篤クシ、志操ヲ鞏クシ、誓テ國體ノ精華ヲ發揚シ、世界ノ進運ニ後レサラムコトヲ期スヘシ。爾臣民、其レ克ク朕カ意ヲ體セヨ」今日日本不就是如此做的吗。对比德国这是投降吗?古之卧薪尝胆不过如此,中国人为什么!像上面我问的要是中日换一下会如何?日本让人类的魔鬼享受香火,美国的缔造者们不也是如此,华盛顿嘴上说废奴,可手上拿着黑人人皮制的鞭子。其他的不详说了投机的投机、养私生女的养私生女。中美换一下会如何?真正结束中国百年屈辱的毛,这些中国人是如何对待的,大跃进是谁的事?!3000万,这么可笑的笑话也会有人信,按当时中国的人口数,如果真是此数字,要家家戴孝,户户死人。有兴趣的同学问一问自己家人,哪位是那时非正常去世的。这几次人口普查四五十岁的人为什么又增大于减,那份保密文件现在都TM多少年了,不是反毛吗?拿出来打五毛的脸。至于岸英人家是攻克过柏林的,还需要刷经验吗?再有许多同学不知道,朝鲜在原来比咱还富裕,穷是后来的事,有机会详谈。
让偶又想起来几年前某汉化论坛,偶说鬼子,某人问偶,「你看动画、玩游戏吗?」「玩!」「那你还说日本。」偶一阵无语,逻辑这一刻去哪了。如果看动画玩游戏就不能说日本,那我想问一问,玩游戏、看动画的是哪里人!!!拉仇恨吗?如果我无端指责某某日本人你可以说拉仇恨,这些是现实——是真实发生的历史如何是拉仇恨。事实历史讲清才能更好的认识今日的和平来之不易,才能让我们知道和什么样的日本人做朋友……
『风雨送春归,飞雪迎春到。已是悬崖百丈冰,犹有花枝俏。俏也不争春,只把春来报。待到山花烂漫时,她在丛中笑。』
偶一家之言,开源或自由软件。现今社会判断的基本标准是法律,再有就是风俗习惯——中秋节赏月、元宵节赏灯,尊重遵守自己及各民族的习俗;伦理——待人接物的行为标准,不要将谢谢、再见,尊老爱幼都要写成标语贴上才想起。一个人的待人处事礼貌周全最终反映的不是一个人的学历高低,是一个人的家教!不要自己混蛋还要连累上辛苦养育自己的父母,现在网络更是反映一个人『德性』的试金石;最后是宗教信仰,尊重遵守。宗教不是政治资本、宗教不是摇钱树、宗教修成正果的才是『神』,离『神』差一指你也是人。不读古兰经的和尚不是好基督(((φ(◎ロ◎;)φ))) ,要学会自我辨识,送子玛利亚是哪国的神!开不开源、自不自由是程序开发者选择的权利,『仓廪实而知礼节,衣食足而知荣辱《管子 牧民》』,开发者为什么就要把自己辛苦开发的程序让你免费使用甚至修改,为什么考试张三都写完了不容许我看看。
以美国程序界为例:最早的:最赚钱的微软、苹果等开源了吗?影响人们使用了吗?那个心智正常的说苹果、微软闭源不道德了。中期:谷歌、百度完全开源了吗?谷歌收购了张三收李四,用不上或消化完的开源了。怎么没人问一问核心不开源这是多么不道德的事。第三阶段:再再到『非死不可』等用什么就开源什么,这值得高兴吗?人家省了真金白银,你得到什么了!?狐假了半天借到威了吗!对个人而言,选择适合自己的系统、软件才是根本,至于有能力开发软件或维护开源这是自我能力的体现与价值。对企业而言,选择开源、自由软件,不选择开源、自由软件,这是金钱与法律的考量。开源(偶在此直接将开源与自由软件(Free software)统称为开源,上下同)自身的开发,不开源自身的开发,也是金钱与法律的考量。无论个人还是企业在开闭源上都没有道德的事。
许多人将开源识为免费的午餐,更有甚者将闭源赚钱视为耻辱。开发程序员日以继日的『砌』码一样是劳动,拿自己的劳动赚钱不知耻在何处。免费的午餐就真的好吃吗?便宜 买死 人!360的免费、TB的便宜,大家赚到了吗?!GUN GPL都不是强调可以免费,强调的是(有限的)自由:运行的自由、复制的自由、分发的自由、修改软件的自由。GUN中大家都会遵守的一个基本准则就是贡献代码回馈主分支,即开源程序代码不是无偿提供的,受益人必须将自己的代码(劳动)反馈给开源软件或开源源头。看明白GUN实质你还觉得上面那些公司谷歌、非死不可什么的是开源的道德楷模吗?!看明白了你知道我为什么骂那些打着Linux大旗为商业开源洗地的人们了吧!(……剩下大陆发文已删除,跑题,有机会再贴出……推荐个视频给有兴趣的同学看看:鸿观 第一季:第31期 读反心灵鸡汤 认清自己
)当然如果喜欢情怀多过知识的当偶没说。
10.4.3 File systems与磁盘:
如偶上面说的在OS存储数据中通过文件系统与硬盘控制器通信,再到硬盘驱动与LBA通信,LBA再与硬盘控制芯片转换定址,最终将数据存储到Sector上。
即:OS数据 —— File systems —— LBA(CHS) —— Sector。
硬盘有实际的数据存储Sector块大小,File systems同样也有。当存储一个档案时,依档案的大小,会『切割』出特定数量大小的blocks。即File systems的Sector,如图,用此图表示就是cluster,也有叫做Data cluster。来传输给LBA(CHS)存储。(注:可能有些同学要糊涂了,一会cluster,一会blocks(blocks有没有s都成,复数形式)。由于硬盘——磁盘、文件系统等等都不是同一公司提出的所以许多名词实指东东一样但叫法各异,还有些已经形成了约定俗成的叫法。如blocks或block多用在数据块中。实际上cluster是FAT中使用的名词,block是Linux EXT2中使用的名词,实指都一样。)
如图NTFS blocks的大小(filesystem block size),4096bytes、8192bytes、64kb……。在此偶使用的硬盘上NTFS文件系统分配的blocks是4096字节(bytes),如果偶存储一个4096bytes大小的档案刚好占据一个blocks。如果偶要存储8192bytes大小的档案会占据两个blocks。如果偶要存储一个2011bytes大小的档案,占据一个blocks剩余2085,剩下的部分就不会再存储其他数据了。
以上浪费的部分引起了研究者的注意,90年代一个名为『Block suballocation』 +7 (又称 Tail Merging ,块再分配)的专利技术面市在Linux上得到应用。如Btrfs、ReiserFS文件系统。
回到小标题File systems与磁盘,那文件系统与磁盘有什么关系吗?答案:没有。偶不是卖萌(+/ω╲+),留在下面解答。
10.4.4 MBR与GPT分区表:
我们知道了硬盘定址、知道了文件系统的储存,我们再次回到最开始,硬盘LBA和filesystem直接有个沟通的桥梁——分区表。
当我们拿到一块新硬盘,都需要初始化硬盘,这个初始化就是构建硬盘分区表。(分区表Windows与Linux等通用,本节以Windows为主要说明对象。)MBR初始化的硬盘会将硬盘原始的CHS或LBA根据使用者的分区情况进行划分并保存在首个扇区中;GPT也是如此只是GPT在初始化硬盘时将分区情况储存在硬盘的一头一尾扇区中。同时blocks也由MBR的512bytes提升到4096bytes,配合高级格式化支持比MBR更大的硬盘容量。
MBR与GPT比较:
MBR只有一个512bytes的文件存放分区信息,它完了全完;GPT每个分区一头一尾都存储(备份)分区信息,一个挂了另一个可以恢复。
MBR只支持(由于上一条原因)最多4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器);GPT微软支持128分区。
MBR无法引导超过2.2TB的分区;GPT现阶段支持最大18EB的分区。
关于分区表的概念是统一的,网络上有很多介绍偶就不废话了。上面说了「OS存储数据中通过文件系统与硬盘控制器通信,再到硬盘驱动与LBA通信,LBA再与硬盘控制芯片转换定址,最终将数据存储到Sector上。」其中OS——硬盘就是通过分区表,说白了从我们的实际使用角度就是:OS – 硬盘 – 分区 – C盘、D盘(File systems——分区表——LBA(CHS))。如果还不理解就直接将分区表看成LBA(CHS)即可(虽不完全正确但也不是全错)。
MBR与GPT在windows系统上的区别:
MBR(Master Boot Record)分区表,「其实应该叫MBR磁盘分区管理模式」(在此要特别指出,MBR即指MBR分区表,也可单指MBR引导)。与之相对应的就是GPT(Globally Unique Identifier Partition Table Format,全局唯一标识分区表)分区表,全称是 GUID分区表,「GPT磁盘分区管理模式」。
MBR分区表,支持最大分区容量为2TB(2.2TB),支持最多4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)。分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序) +10,仅支持从活动分区引导系统。
GPT分区表,支持最大分区容量为18EB,支持多少主分区受系统影响,Windows系统最多支持128个主分区。GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR之后才是GPT头。 +10 在GPT中引导分区不在需要标记为活动。Windows系统对GPT分区表还会单独创建微软保留分区(MSR),释义:「微软保留分区(Microsoft Reserved Partition,缩写MSR)是使用GUID分区表(GPT)储存装置的必需分区。其全局唯一标识符(GUID)为E3C9E316-0B5C-4DB8-817D-F92DF00215AE。这个分区只适用于使用GUID分区表的存储器而不适用于使用传统的主引导记录(MBR)分区表的存储器。根据微软的文档,这个分区的用途目前是保留的,暂时不会保存有有用的数据,未来可能用作某些特殊用途。
在将存储器格式化为使用GUID分区表时,微软保留分区就会自动分出,并不能删除(理论如此。用第三方软件转换GPT磁盘分区管理模式有些不会自动创建MSR。MSR也是可以用第三方软件删除的,而且对原分区没有影响)。微软保留分区的位置必须在EFI系统分区(ESP)和所有OEM服务分区之后,但是紧接在第一个数据分区之前。对于不大于16GB的存储器上,微软保留分区的初始大小为32MB;在更大的存储器上,其初始大小为128MB。但是它的大小在后续的使用中可能自动缩小,例如在把基本磁盘(basic disk)转换为动态磁盘(dynamic disk)时。」 +11
特别说明:
10.5 partition alignment
以上说到了GPT,网络上习惯将GPT于4K连在一起,其实GPT只与大于2.2TB容量的硬盘有关,至于4K请继续看:大家都知道硬盘开始使用之前要partition(分区),在2011年以前大家可以随便分区不用考虑这个那个。从2011年开始硬盘商出厂的硬盘全部使用了新的 高级格式化 4K(advance format),将原来LBA sector 的512bytes扩充到4096bytes。使现有的磁盘格式化后的利用区域由原来的88%达到了现在advance format的97% (本段更多内容请参考 机翻的可能比较高!注意 和
使用advance format硬盘来partition需要使用Vista sp1 以上操作系统,才能『分割』出partition alignment(对齐分区)。
看图,释义:绿色块是LBA;page是从SSD引入的概念,SSD没有CHS和马达磁盘什么的,page就是SSD中最小的读写单位,大小为4096bytes=4k,即相当于机械硬盘的sector。一个page有8个LBA,512bytes x 8。为什么是512x8马上会写到。
早期Windows系统partition从LBA63开始『分割』,造成存储数据会跨page存储,如图一个4096bytes数据实际存储使用了2个page,造成读写重复效能变低。
所以,从Vista sp1开始Windows系统从page的起始LBA位置partition,分区就全部partition alignment,即分区对齐SSD是从page和block对齐;HDD是从Sector对齐。如图此处演示的就是从HDD LBA2048(SSDB page257) partition。
检查partition alignment:
推荐使用AS SSD Benchmark软件,下载地址见最后。
A.AHCI已启用。 B.分区对齐
(注:本图片来自网络。感谢!) a. AHCI没有启用。 B. 分区没有对齐。
其他同类的软件,DiskGenius、PA都可检查partition alignment,但没有AS SSD Benchmark直观。
10.5.1 Advance Format的兼容性:
有新技术出现自然带来新的问题,如Advance Format的兼容性问题。硬盘生产商为了兼容市场,实际有三种内部存储转换定址的硬盘:
释义:Bytes Per Sector每扇区大小。Bytes per Physical Sector实际的物理扇区大小,Sector和page。
每扇区大小、物理扇区大小 都是 4096bytes,为原生4K。一般记作 4Kn
每扇区大小(模拟)512、物理扇区大小4096,为兼容4K。一般记作 512e
每扇区大小、物理扇区大小 都是512bytes,为原生512。一般记作 512n
以上三种情况,Windows系统512n支持最好(这是废话);512e需要Vista以上系统支持,才能完全发挥效能;4Kn需要Windows 8以上系统和GPT分区表支持,才能完全发挥效能。
三种从现在网络上反映来看,普通使用没有什么区别,不过还是原生的好,即512n、4Kn。
判断硬盘内部定址:
a.CMD命令:
『fsutil fsinfo ntfsinfo f:』查询分区命令,f:是要查询的分区盘符。Windows8以上系统才能使用此命令。
每个扇区字节数,即Bytes Per Sector。
每个物理扇区字节数,即Bytes per Physical Sector。
每个群集字节数,即格式化中 分配单元大小。
b. 直观TxBENCH软件:
512B(AFT)=512e,512B=512n。
偶没有4Kn的盘 ( &﹏&。)~呜呜呜……
之所以出现512e这种盘是为了给商业转型留出空间。无论消费者喜欢也好不喜欢也罢,4K已经是现在硬盘的发展方向。其体现的ECC、格式化后的利用区域上升等对普通消费者可以说用处不大。利用区域的上升我们1TB该多少GB还是多少GB,反使生产商可以使用更烂的磁盘来生产硬盘。
不知什么时候,有些鼓吹4K的『自行炮』,说什么4K这里高级格式化能改变Sector(扇区)大小。偶明确的告诉大家,消费级民用硬盘(SATA、IDE)没有这个功能,所谓的软件低格都是骗人的(除非使用硬盘商的专业软件)。只有企业级SAS+专业RAID卡,才能实现改变Sector(扇区)大小。如SAS通过RAID卡设置Sector=528,存储数据还是512,实现多余的空间用来做效验;或者更改Sector用来重新映射、替换错误Sector修复硬盘。无论目的如何更改Sector必使硬盘可用空间减少。
偶在上提过File systems与磁盘没有关系,就是要告诉大家4K和格式化没有关系。但 每个扇区字节数(Bytes Per Sector)=每个物理扇区字节数(Bytes per Physical Sector)=每个群集字节数,能得到更好的效能发挥。
本章小结:
硬盘是连续的Sector(LBA)的储存空间,操作系统将此存储空间识别为卷,文件系统管理卷上的分区,用cluster 或 blocks单位来读写存储空间上的数据。硬盘与操作系统,文件系统与LBA,都需要通过存储设备接口通信,接口不是简单的『沟通』,还要传输数据,即总线接口,总线越大数据传输越多越快……
『刨』去废话应该有1万字了,硬盘讨论章 上 到此,to be continued……
+2. 原生指令排序
对笔电硬盘有兴趣的同学请点击这里
对SAS拆解有兴趣的同学请点击这里
+4 超顺磁性
+5 图片来自:
/#将en-us 替换为 zh-cn 就是中文了。
——感谢以上链接中传播知识的作者!
本文PDF下载网盘「PC\Doc\」
密码: 4m83
(提取码:0426)
+++听从大家的建议将强调引用从「」换成繁中使用习惯的『』(偶翻出以前王sir写到信都是「」,看王嫂和TW几位同学来的email直接是“”(o??o?)? ??)。偶不是繁中用户,使用「」替代“”引号只是为了修改方便,有些博客、论坛使用引号再次修改引号会变成乱码,「」不会
博客 http://blog.sina.com.cn/u/ 的小号~~~^_^~~~
渣浪 http://weibo.com/ 联系偶b( ̄▽ ̄)d
导读目录 硬盘的组成 硬盘的物理结构主要针对的是机械硬盘及其内部的结构加以介绍,以下内容可能不是硬盘内部全部的部件,本次的介绍的重点是说明与硬盘读写相关主要部件的作用。刚接触到linux,学习到硬盘分区的部分,感觉需要对机械硬盘的内部结构了解的太少了,所以经过翻阅资料,在这...
PC存储方式解析 DAS NAS SAN理论章# 上一篇:PC存储方式解析-RAID篇-理论章 五. DAS NAS SAN理论 注:此处讨论的RAID不单指RAID一种,包括所有类RAID的产品或功能。 本章接上从W8介绍Storage Spaces引申而来,看到不少同学...
PC存储方式解析-硬盘讨论章 下 01.PC存储方式解析-RAID篇-理论章() 简书 备份 02.PC存储方式解析-DAS NAS SAN理论章 简书 备份 03.PC存储方式解析-硬盘讨论章 上 简书 备份 10.6 继续前行的磁盘「容量」——叠瓦式磁记...
作者 谢恩铭 转载请注明出处公众号「程序员联盟」(微信号:ProgrammerLeague )原文:http://www.jianshu.com/p/53b8b76439d0 《Linux探索之旅》全系列 内容简介 第一部分第四课:磁盘分区+完成Ubuntu安装 第一部分第...
PC存储方式解析-RAID篇-理论章 一. RAID释义 RAID,(冗余或容错)磁盘阵列(正确的中译,冗余磁盘阵列,大陆一般直接就磁盘阵列,大家知道就好,较真的同学还是记英文吧!)。全称最早是「Redundant Array of Inexpensive Drives」廉...
你跟十个人聊天,十个人会讲故事。但你要十个人用文字记录故事,不一定全能做到。准确的说,有人想记录,却找不到合适的方式;有人想写,可想写和能写,毕竟是两码事。从小时学会的第一个字起,我们便开始写,上到学堂,语文课的作文,招式简易却是最好的启蒙。 2017年到了,如果你想写文章...
面试题如下: 默认情况下iPhone的消息推送提示会在锁定的屏幕上做完整的透出,有时会泄漏一些隐私的内容,目前设置和修改此项功能的隐藏深路径长,并且界面表达不方便理解和操作。如果让你优化这个流程和操作界面你会怎么做?如果让你用更创新的方式解决这个问题,你会怎么做? 看了题目...
今天给她报听写,因刚刚第五单元已复习,就想复习以前的字词。小妮子觉得有难度,表现出决不同意的态度。还说:“报17课到20课,我就写,不然不写。”
看!这么大的孩子,自主意识强,能言善辩,也毫不避讳的表达了自己坚定的态度。7岁8岁的孩子,她们带来的挑战很多...
四、产品定位分析 当我们找到了竞品后,了解了竞品的基本情况,接下来就要对竞品本身展开分析了,这一节主要阐述产品定位的一些分析。 4.1用户定位 当我们做竞品分析的时候,我们必须要了解该产品是为哪些用户提供服务的,这些用户从该产品得到了什么? 用户的具体细分情况,收入、年龄、...
window对象---
代表浏览器中的一个打开的窗口或者框架,window对象会在&body&或者&frameset&每次出现时被自动创建,在客户端JavaScript中,Window对象是全局对象,所有的表达式都在当前的环境中计算,要引用当前的窗口不需要特殊的语法,...

我要回帖

更多关于 mysql底层存储原理 的文章

 

随机推荐