分类: LINUX
2013-05-06 18:03:47
磁盘主要由:磁盘片、磁头、磁头臂、永磁铁、音圈马达、主轴以及空气过滤片等部件构成。磁盘的工作原理是在马达的转动下引起磁头的转动,然后磁头定位之后利用特定的磁粒子的极性来记录数据。
磁盘的工作状态分为活动状态、空闲状态以及待机状态。图1给出了Seagate ST3500630AS类型磁盘的不同工作状态的能量消耗模型。
图1 Seagate ST3500630AS工作状态能耗模型
磁盘处于活动状态时,盘片高速旋转,同时磁头在寻道、定位以及存取数据,这种状态磁盘能耗最大;当磁盘处于空闲状态时,盘片保持高速旋转,磁头锁定在停泊位,此时磁盘的能耗稍低;当磁盘处于待机状态时,电子器件关闭,盘片停止旋转,磁头归位,此时磁盘的能耗最低。但是磁盘从待机状态返回到数据存取状态需要很长时间且能耗比较大。
磁盘的主要能耗部位在磁头臂、盘片等处,定位到磁盘的主要能耗部位就可以对磁盘系统能耗降低的方法或途径进行分析。通过图1得出结论,降低磁盘能耗的方法主要是延长磁盘在待机状态的时间。
当前针对磁盘能耗提出的成果主要分为单磁盘和磁盘阵列:
Carrera等人和Gurumurthi等人针对服务器在空闲周期较短从而使磁盘进入待机状态的问题,提出了动态转速磁盘(DRPM)的概念,即将磁盘的盘片转速分为多个不同速度等级,在系统负载较轻时使磁盘运行在低速旋转状态;当系统负载较重时,调整磁盘运行在高速旋转状态下。其研究表明,动态转速磁盘模型可以有效降低磁盘能耗。密歇根大学的H.Huang等人提出了FS?(FreeSpace Filesystem)模型。该模型主要是为了降低磁头定位延迟对磁盘性能和能耗的影响。
磁盘阵列研究:
D.Li等人提出的EERAID模型和eRAID模型。EERAID模型主要挖掘磁盘阵列的冗余信息并将冗余信息和I/O调度策略、阵列控制器级Cache管理策略等结合起来,采用非易失缓存作为写回策略的Cache来优化写操作请求。eRAID模型充分利用了RAID1的冗余特性来重定向I/O请求,通过停止旋转部分或者整个冗余组的磁盘来降低能耗,同时将系统性能的降低控制在一个可接受的范围。
Q Zhu等人提出的Hibernator模型,该模型基于动态转速磁盘模型的基础上,在有多种不同转速的磁盘组成的存储系统里,Hibernator将数据迁移到合适转速的磁盘上从而在保证满足性能要求的前提下达到节能目的。
C.Weddle等人提出的PARAID模型,该模型依据系统负载的轻重变化自动调整组成磁盘阵列的活动成员个数,形成一种可动态变换的多档磁盘阵列组织方法,从而在满足性能的前提下实现最大程度的节能。
D.Colarelli等人提出的MAID(Massive Arrays of idle Disk,MAID)模型,该模型采用额外的磁盘作为缓冲磁盘,将热点访问的数据置于新添加的缓存磁盘上,从而最大限度的减少定向到后端磁盘的I/O数量,延长后端磁盘的空闲时间,实现磁盘能耗的降低。
E.Pinheiro等人提出的PDC(Popular Data Concentration)模型,该模型主要针对存储系统的访问频率,周期性的将访问频率比较高的数据迁移到少数磁盘上,并将访问频率较低的数据集中于剩下的磁盘上。这样绝大部分的I/O请求集中在了少数磁盘上,从而可以降低磁盘能耗。
预读的工作原理是在对文件进行读操作时,首先在页缓存中查找是否存在要读取的数据,如果存在则读取,否则从磁盘读取文件数据然后将数据复制到内存缓存以便后续读取相同数据可以快速读取。预读的主要实现源码见/mm/readahead.c
预读主要对顺序请求有良好的处理能力,对随机请求性能就不那么完美了。预读分析主要点在预读算法、预读的时机如何选取以及和页缓存的结合使用。
回写策略的主要思想是将要写入磁盘的数据直接写入缓存中,后端存储不会立即更新,内核将页高速缓存中的被写入的页标记为“脏”,并且将脏页维护在脏页链表中,然后通过回写进程周期性的将脏页链表中的页写回磁盘。主要实现源码见:fs/fs-writeback.c、mm/page-writeback.c。
在Linux内核中有一个常驻内存的线程bdi_forker_thread,该线程负责bdi对象创建writeback线程进行周期性的回写操作。如果系统中的回写线程长时间处于空闲状态,该线程就会将其销毁。
回写过程中主要了解以下几个结构体的作用:backing_dev_info、bdi_writeback、wb_writeback_work、writeback_control等,读者自行查找相关结构体解释。
了解了系统和磁盘能耗相关部分之后,系统也通过shell命令提供了对磁盘性能的简单显示。主要命令有Hdparm、iostat、dd等命令。具体命令使用见man手册。
上面说的不对的地方希望大家指正,没有分析到的地方欢迎补充。