第一章 磁盘历史和内外部物理结构介绍
1、磁盘的历史介绍
从1956年9月IBM向世界展示了第一台磁盘存储系统IBM 350 RAMAC至今,磁盘存储系统已经经历了近半个世纪的发展。经历了这么多年,磁盘的变化非常巨大。虽然最早的RAMAC容量只有5MB,然而却需要使用50个直径为24英寸的硬盘。而我们现在的一块容量高达1000GB的磁盘,仅仅只需要三张磁盘片(还是一块3.5寸盘)即可。
2、磁盘发展趋势和实现措施
第二章 磁盘核心知识及数据读写原理
1、企业生产环境主流磁盘的相关信息对比:
企业生产场景普及程度:SAS>SSD>SATA
企业容量对比性能和价格:SSD>SAS>SATA(一块SSD和一块SATA)
企业价格购买磁盘容量:SATA>SAS>SSD
2、固态磁盘于传统磁盘比较,拥有以下缺点:
![EATN
O]HPGX9]}X@HWHQ1K.png](https://upload-images.jianshu.io/upload_images/16833162-9dd52f8303e4e6e6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3、SSD固态粗盘与传统机械磁盘优劣势对比:
4、企业生产工作中磁盘的选型
磁盘:当前服务器市场:主流磁盘为SAS、SATA、SSD硬盘。
(1)企业级SAS硬盘(默认):
企业里常见的SAS硬盘是15000转/分(这里就是主轴的转数)。当前主流300G、600G、1000G,从具体的业务需求及性价比考虑,在工作中多用146G、300-600G的SAS硬盘,
一般选6*300G,6*600G,单盘容量不要太大,除非纯备份!
用途:用户提供生产线上的普通对外提供服务的业务服务器
例如:生产线上的数据库业务、存储业务、图片业务及相关高并发业务(web http,cache服务),总的来说,如果没有特殊业务需求,SAS磁盘是生产环境首选的磁盘配置。
(2)企业级SATA硬盘:
企业级SATA硬盘,7200-10000转/分,常见的容量为1T和2T,4T,6T,优点是经济实惠,
容量大,从具体的业务需求及性价比考虑,老男孩老师在工作中多用SATA磁盘做线下不提供服务的数据存储或者并发业务访问不是很大的业务应用,比如站点程序及数据库、图片的线下备份等。
特性:容量性价比高,一般2T的SATA磁盘较佳。
选择SATA理由:1、没钱。2、量少,不给用户提供服务。3、备份。
磁盘选购小结:
(1)线上的业务,用SAS磁盘。
(2)线下的业务,用SATA磁盘,磁带库。
(3)线上高并发、容量小的业务,SSD磁盘。
(4)成本思想:根据数据的访问热度,只能分析分层存储。SATA+SSD
5、老男孩企业故障案例:
不要用SATA磁盘来做在线高并发服务的数据存储或数据库业务,这是血的教训。
某公司采用SATA做数据库的存储盘,结果导致数据库连续宕机一个月。
5台SATA盘RAID5。
解决:重新买5台,把磁盘动SATA(RAID5)换成SAS(RAID10)。
数据库集群。
1、主库选择用SAS RAID10,从库SAS Raid0。
2、当数据库使用的引擎是MyISAM引擎,改成Innodb引擎。
6、磁盘相关名词说明
7、磁盘及盘片结构
8、盘片示意图
9、磁盘的磁道
磁盘在格式化时被划分成许多同心圆,这些同心圆的轨迹叫做磁道(Track)。磁道由盘面从外向内依次从0开始顺序编号。一块磁盘大约有300~1024个磁道。
10、磁盘的扇区
扇区的第一个主要部分是标识符,标识符就是扇区头标,包括组成扇区三位地址的三个数字,扇区所在的磁头(或盘面)。磁道(或柱面号)以及扇区在磁道上的位置即扇区号,头标中还包括一个字段,其中有显示扇区是否能可靠存储数据,或者是否以及发现某个故障因而不宜使用的标记。有些磁盘控制器在扇区头标中还记录有指示字,可在原扇区出错时指引磁盘转到替换扇区或磁道。最后扇区头标以循环冗余校验(CRC)值作为结束,以供控制器检验扇区头标的读出情况,确保准确无误。
扇区的第二个主要部分是存储数据的数据段,可分为数据和保护数据的纠错码(ECC)。在初始准备期间,计算机用512个虚拟信息字节(实际数据的存放地)和与这些虚拟信息字节相应的ECC数字填入这个部分。
记忆要点:
(1). 一块磁盘有2-14个盘片,每个盘片有两个面,每个面对于一个读写磁头,用磁头号来区分盘面,即盘面数就是磁头数。盘片数*2=磁头数(盘面数)
(2). 不同盘面的磁道被划分为多个扇形区域,每个区域就是一个扇区
(3). 同一个盘面,以盘片中心为圆心,每个不同半径的圆形轨迹就是一个磁道
(4). 不同盘面相同半径的磁道组成一个圆柱面就是柱面
(5). 一个柱面包含多个磁道(这些磁道的半径一样),一个磁道包含多个扇区
(6). 数据信息记录可表示为:某磁头,某磁道(柱面),某扇区。
11、总结概括
(1)磁道的一句话概括定义
磁道:每个盘面有两个面,都可记录信息。盘片表面以盘片中心为圆心,用于记录数据的不同半径的原型磁化轨迹就称为磁道。磁化轨迹就是磁化区域,是看不见的。磁道看起来是一个平面圆周形。
(2)扇区的一句话概括定义
扇区:盘面由圆心向四周画直线,不同的磁道被直线分成许多扇形(弧形)的区域,每个弧形的区域叫做扇区,每个扇区大小一般为512字节,扇区看起来就是圆弧或扇形。
(3)柱面的一句话概括定义
柱面:磁盘中,不同的盘片(或盘面)相同半径的磁道轨迹从上到下所组成的圆柱形区域就称为柱面,柱面看起来是一个圆柱形。
12、磁盘是机械式磁盘:
(1)盘片的旋转靠马达带动主轴,机械运动。
(2)磁头的径向移动也是靠步进电机来完成的,机械运动。
(3)所有的磁头同时同向移动的。
磁盘在读写数据是,尽可能让磁头不懂,或少移动磁头就能读到更多或全部的数据。
13、磁盘读取原理:
14、机械磁盘读写磁盘数据的原理小结:
(1)磁盘是按照柱面为单位读写数据的,即先读取同一个盘面的某一个磁道,读完之后,如果数据没有读完,磁头也不会切换到其他的磁道,而是选择切换磁头,读取下一个盘面的相同半径的磁道,知道所有盘面的相同半径的磁道读取完成会后,如果数据还没有读写完成,才会切换其他不同半径的磁道,这个切换磁道的过程称为寻道。
(2)不同磁头间的切换时电子切换,而不同磁道间的切换需要磁头做径向运动,这个径向运动需要步进电机调节,这个动作是机械的切换。
磁头寻道是机械运动,切换磁头是电子切换。
15、磁盘容量的计算:
512字节*每磁道扇区数=磁道大小
磁道大小*磁道数=盘面大小
盘面大小*磁头数=磁盘容量
磁盘容量=512字节每磁道扇区数磁道数*磁头数
柱面大小=磁道大小*磁头数
磁道大小=521字节*没磁道扇区数
磁盘容量=柱面大小*柱面数(磁道数)
磁盘容量=521字节每磁道扇区数柱面数(磁道数)*磁头数
fdisk -l 查看磁盘对应的分区
[root@oldboy ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x000349ee 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 2611 19979264 83 Linux [root@oldboy ~]# echo 512632610255|bc 21467980800 [root@oldboy ~]# echo 512632610255/1000/1000 512632610255/1000/1000 [root@oldboy ~]# echo 512632610255/1000/1000|bc 21467 [root@oldboy ~]# echo 512632610255/1000/1000/1000|bc 21 [root@oldboy ~]# echo 512 63 2610 255|awk '{print 24/1000000000}' 21.468