关于磁盘的一些知识

最近在拜读张冬瓜的存储大作,收获还是很多的,这本书对于一些底层的技术细节阐述的比较细致,作者的思维,处理问题的方式也是活跃且严谨,
建议大家有时间可以看看,我梳理了些关于磁盘的概念,贴出来
 
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下的所有磁盘,竞争就比较大了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值