机械存储设计及实现
来源:互联网 发布:佛山陶瓷出口数据 编辑:程序博客网 时间:2024/05/01 22:20
主要阐述以下内容:
磁盘的内部结构及实现机制
分区的结构及实现机制
块的构造及原理
扇区的构造及结构
由于机械硬盘的访问机制为移动磁头,并等待磁碟旋转,因此在设计磁盘时,需要考虑如何组织数据为顺序访问,并且最大限度提供一次顺序访问尽可能多的数据
由于块大小设计直影响到性能、内存、空间等因素,因此需要合理设置块大小,同时需要合理的为业务扩展预留升级空间
机械磁盘读写原理
机械硬盘获取数据的方式为:
1、通过查找meta数据(图中的Data Meta,它是用于描述数据的数据,所以称为数据元,通常这些数据会被Cache在磁盘Cache或OS Cache中),捕获数据存储物理区域。包括:磁头指向的磁道位置、磁道的起始、结束位置等,其中还包含了数据块的标记,如使用状态,分区、块、卷、扇区等等存储细节等,是磁盘运作机制的核心组件
2、驱动磁碟旋转(服务器通常磁盘会一直旋转,但为了省电及减少对驱动轴的损耗,通常会对旋转进行优化,即空闲时降低磁盘旋转速度或停止转动,但重新驱动磁盘也会消耗大量的功耗,厂家进行了很多节能减排的优化措施,为绿色环保做了不少贡献)
3、将磁头(图中的head)移动到指定的磁道,并从指定的起始位置开始读取bit流,一直至指定的结束位置,并将信号传送至处理程序,最后转化为OS识别的数据
机械硬盘核心组件:
1、磁盘控制器:内部包含用于控制多磁碟并行访问的机制,包括磁头移动、盘片旋转、供电、缓存、写保护等,是整个磁盘的核心组件
2、分区(LUN):机械硬盘要被使用,通常先要被分区,并基于分区进行格式化,格式化将产生Meta数据,Meta数据通常会占用部分磁盘空间。空间大小取决于Block大小、分区量,Block越小,需要消耗的空间,用于于索引磁盘数据,接下来我们将还会介绍块及扇区的组合方式,多碟磁盘中,磁盘控制器将在每块磁碟中划分一块空间用于该分区使用,达到并行访问的目的,提升响应速度(通常某些访问需要集中访问的数据都集中在某些分区中),此处的分区不同于OS中的分区,此处为物理分区
3、块:块由扇区构成,块大小决定了数据访问的性能,如果大数据如果存储在小块中会导致浪费大量的数据元空间,并消耗更多的Cache、更多的寻道时间(数据是被分散再分区中的各个位置),所以当应用数据块比较小的时候,我们建议将数据划分成更大的块,提升性能,但如果块划的太大,会导致存储空间的浪费,当这些不需要的数据被LOAD到应用中时,同样会消耗额外的OS内存,通常我们建议根据业务的类型,在应用层选择合适的数据集大小,并设置合理的磁盘块大小
块由扇区构成,扇区直接构建再磁碟的磁面上,每个扇区为512byte,业绩意味着4KB的块大小将需要8个扇区组成(通常Linux设置块大小为4K),但再某些数据库应用中我们将数据库的数据设置为更大,如8K、16K、64K,日志设置为更大,如8K、16K、64K等,结构如下
4、扇区:扇区是磁盘存储的单元,扇区顾名思义,机械硬盘是圆形的,通过分区格式化后将得到一个一个的扇形结构,一条磁道的存储空间被格式化后将的到大量的扇形结构,磁盘的扇区大小为512byte,其在磁盘的结构如下图:
图中我们可以看到扇区结构非常复杂,包含数据区域、扇区分界标识区域、扇区间隙区域,磁盘在处理数据时为了更好的保护数据及容错、设计了扇区分界标识及扇区间隙(当然远远不止如此)
- 机械存储设计及实现
- 机械加工工艺规程设计的内容及步骤
- VB开发SolidWorks实现机械产品参数化设计
- 机械优化设计服务系统
- 机械硬盘结构及术语
- 机械硬盘上存储大量小文件
- 机械
- 机械
- AVR_BootLoader设计及实现
- 队列的存储及实现
- 冲压机械及周边关连用语
- 2015合肥机床及金属加工机械展览会
- Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路
- 机械臂(5)-- C#实现正解
- Python实现trie进行机械分词
- Mysql大数据量存储及访问的设计讨论-设计
- zookeeper 6 : 服务端存储设计与实现
- 操作系统原理及设计实现
- EFI LIST
- Connect to a Windows Desktop from Ubuntu via Remote Desktop Connection
- PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
- arm架构下的原子操作(atomic)函数源码分析
- Rails学习笔记
- 机械存储设计及实现
- 贡献15本经典C、C++、MFC、VC++教程,都是pdf完整版的
- Android(安卓) U8800 长按 搜索键、返回键 锁屏或解锁的设置方法
- 大一下学期项目设计—综合储蓄平台—Record类
- Perl符号引用和强引用
- UCenter的应用整合与单点登录分析
- Andriod 闪关灯问题解决
- struts2登陆拦截器(如果未登陆则返回登陆页)
- php base64解码图片 base64加密图片还原