关于磁盘的一些知识点
最近在拜读张冬瓜的存储大作,收获还是很多的,这本书对于一些底层的技术细节阐述的比较细致,作者的思维,处理问题的方式也是活跃且严谨,
建议大家有时间可以看看,我梳理了些关于磁盘的概念,贴出来
1.磁盘组成,扇区,磁道,柱面
磁盘由若干盘片组成,在盘片上分布了很多细小的磁粒,每个小颗粒有自己的南北极,当磁头进行感应的时候,通过磁极就变成了电路上的1010信号,这样就达到了记录最原始的2进制信息的目的,在一个盘片上,盘片被划为很多同心圆,这个叫磁道,每个磁道又被划分为小块的细小圆弧段,一般是512字节,这个称为扇区,距离轴心近的磁道上包含的扇区比远的磁道要少很多,因为周长不一样,所以盘片旋转一圈,从外边缘获取的数据是最多的.若干盘片叠在一起,各个盘片上相同半径的同心圆就组成了一个柱面,当向一个磁盘读写数据的时候,如果是连续IO,磁盘会比较倾向于按照柱面来进行,因为写完一个盘片的磁道,切换到另外一个盘片的相同磁道,只需要切换磁头就可以了,如果是连续在一个盘片上写几个磁道,就涉及到磁臂换道,这个是机械动作 ,就慢的多了,如果是离散IO,那磁臂基本就像振动的蜜蜂翅膀.
2.低级格式化
磁盘生产出来的时候,上面是没有什么磁道,扇区的东西的,低级格式化就是在每个盘片上划分,标明这些东西,而高级格式化,比如WINDOWS里面的格式化,他是绝对不会影响一个磁盘的磁道,扇区结构的,这好比低级格式化是造房子,打框架,高级格式化是给房子里面做装潢
3.io size
一次IO的大小,这个解释很晦涩,从用户发起修改数据指令到数据最终落定到磁盘,这里面有很多层面,数据库的IO,文件系统的IO,磁盘控制器的IO,等等,其实这些IO经过多个层面,已经经过了多次的分解,最终落到磁盘的也就是那512字节的扇区,有人曾经问过这样的问题,IO最终到磁盘的是一个扇区,那上面有必要弄这么多IO SIZE出来吗?统一一下不更省事吗?其实这个问题最好自己到邮局去看看他们的流程,你去邮寄东西,他们会给你几组不同尺寸的箱子,主要看你的物品大小,适合用什么箱子,但他们最大的箱子也只能装比如1吨的物品,那你超过的话就只能分拆,当然你只邮寄个小铅笔的话,他们肯定不会建议你用很大的箱子,这些东西组合后邮寄出去,分到下面的中转站,经过诺干解包,或者合并,再次分发,最终,成为了一个一个的小包裹,由邮递员送到了目的地,我们的IO其实就和这个过程差不多,IO SIZE的大小决定了你与下层系统交互的次数,你应用程序的类型决定了你的IO SIZE
4.stripe size是128K,如果我就写一个8K的block,会怎么办,假设是8块盘做的raid0?
这个问题遇到过很多答案,有的说是继续做stripe,把8K分成8个1K的数据,写8个盘,也有的说是等后面的IO过来,攒满128K的时候再发出去,这些思路都是错误的,
这个时候不会再做stripe,而是随即的选择1块磁盘,将这个8K写入,如果有多个进程都发起这种IO,从总体上看,IO就分散到各个磁盘了,并且是可以并行执行的,
称做磁盘的并发率比较高,读取的话也是到各个盘去找,从单进程看,没有了stripe,但宏观上看,是很好的并发了
对于前台数据库系统,IO基本是小而且离散的,并发量也 比较大,这个时候就需要有比较高的磁盘并发率,如果你的IO SIZE总是大于stripe size,那就意味这每个IO会牵动
这个stripe下的所有磁盘,竞争就比较大了
建议继续学习:
- 提升磁盘IO性能的几个技巧 (阅读:7604)
- 如何查看Linux 硬件配置信息 (阅读:5863)
- 确保数据存入磁盘 (阅读:4848)
- linux磁盘管理学习笔记(上) (阅读:3106)
- linux磁盘管理学习笔记(下):linux分区、挂载 (阅读:3089)
- linux磁盘管理学习笔记(中):df命令、du命令 (阅读:2867)
- 使用Pure-ftpd和Pure-ftpd-mysql进行FTP权限和磁盘配额管理 (阅读:2914)
- LVM介绍 (阅读:2805)
- 使用smartmontools监控磁盘状况 (阅读:2741)
- 数据的存储介质-磁盘的RAID (阅读:2675)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:神 八 来源: 神 八
- 标签: 磁盘
- 发布时间:2009-10-19 23:36:14
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [53] android 开发入门
- [53] 如何拿下简短的域名
- [52] 图书馆的世界纪录
- [50] Go Reflect 性能
- [50] Oracle MTS模式下 进程地址与会话信
- [48] 【社会化设计】自我(self)部分――欢迎区
- [47] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑