漫漫长路,其修远兮!
分类: 服务器与存储
2013-02-22 12:25:13
一.硬盘的分类
按照硬盘的接口主要有IDE,SATA,SCSI,SAS
IDE(Integrated Drive Electronics),电子集成驱动器
SCSI(Small Computer System Interface),小型计算机系统接口
SATA(Serial ATA),又叫做串口硬盘
SAS(Serial Attached SCSI),串行连接的SCSI(串行比并行要快很多,主要是时钟频率要高很多)
SSD(Solid State Disk),固态电子存储芯片阵列而制成的硬盘,固态硬盘的存储介质分为两种,一种是采用闪存(FLASH芯片)作为存储介质,另外一种是采用DRAM作为存储介质
二.衡量硬盘性能的指标
1.主轴转速:15K RPM(每分钟15K转)
2.内部传输速率:6Gbps,对于顺序读写的应用比较关注
3.iops:每秒处理I/O请求的次数,对于随机读写的应用要很关注
IOPS=1000ms/(寻道时间+旋转延迟)
寻道时间:Tseek是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms
旋转延迟:Trotation是指盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示。比如,7200 rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms,而转速为15000 rpm的磁盘其平均旋转延迟为2ms
数据传输时间:Ttransfer是指完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数据传输率。目前IDE/ATA能达到133MB/s,SATA II可达到300MB/s的接口数据传输率,数据传输时间通常远小于前两部分消耗时间。简单计算时可忽略
15000转/分的SAS硬盘平均物理寻道时间是3ms
15000 rpm的磁盘其平均旋转延迟约为60*1000/15000/2 = 2ms。
15000 rpm的磁盘IOPS = IOPS = 1000 / (3 + 60000/15000/2) = 200 IOPS
IOPS的测试benchmark工具主要有Iometer, IoZone, FIO等,可以综合用于测试磁盘在不同情形下的IOPS。对于应用系统,需要首先确定数据的负载特征,然后选择合理的IOPS指标进行测量和对比分析,据此选择合适的存储介质和软件系统。
三.几个基本概念
顺序IO模式/并发IO模式
磁盘控制器可能会一次对磁盘组发出一连串的IO命令,如果磁盘组一次只能执行一个IO命令时称为顺序IO;当磁盘组能同时执行多个IO命令时,称为并发IO。并发IO只能发生在由多个磁盘组成的磁盘组上,单块磁盘只能一次处理一个IO命令
单个IO的大小
答案是不确定。首先操作系统为了提高 IO的性能而引入了文件系统缓存(File System Cache),系统会根据请求数据的情况将多个来自IO的请求先放在缓存里面,然后再一次性的提交给磁盘,也就是说对于数据库发出的多个8K数据块的读操作有可能放在一个磁盘读IO里就处理了。
还有对于有些存储系统也是提供了缓存(Cache)的,接收到操作系统的IO请求之后也是会将多个操作系统的 IO请求合并成一个来处理。不管是操作系统层面的缓存还是磁盘控制器层面的缓存,目的都只有一个,提高数据读写的效率。因此每次单独的IO操作大小都是不一样的,它主要取决于系统对于数据读写效率的判断。
当一次IO操作大小比较小的时候我们成为小的IO操作,比如说1K,4K,8K这样的;当一次IO操作的数据量比较的的时候称为大IO操作,比如说32K,64K甚至更大。
在我们说到块大小(Block Size)的时候通常我们会接触到多个类似的概念,像我们上面提到的那个在数据库里面的数据最小的管理单位,Oralce称之为块(Block),大小一般为8K,SQL Server称之为页(Page),一般大小也为8k。
在文件系统里面我们也能碰到一个文件系统的块,在现在很多的Linux系统中都是4K(通过 /usr/bin/time -v可以看到),它的作用其实跟数据库里面的块/页是一样的,都是为了方便数据的管理。但是说到单次IO的大小,跟这些块的大小都是没有直接关系的,在英文里单次IO大小通常被称为是IO Chunk Size,不会说成是IO Block Size的
IO响应时间
最后来关注一下能直接描述IO性能的IO响应时间。IO响应时间也被称为IO延时(IO Latency),IO响应时间就是从操作系统内核发出的一个读或者写的IO命令到操作系统内核接收到IO回应的时间,注意不要和单个IO时间混淆了,单个IO时间仅仅指的是IO操作在磁盘内部处理的时间,而IO响应时间还要包括IO操作在IO等待队列中所花费的等待时间。
四.比较SATA,SAS,SSD的特点和区别
STAT,SAS都是采用的串行技术,SAS的接口技术可以向下兼容SATA。
SAS性能和可用性都比STAT高,STAT一般用作PC机器,SAS一般用作服务器的存储,SAS的价格比STAT高。