大话存储学习笔记(1)

一、存储历史

二、计算机IO

1.什么叫IO

I表示in,对于CPU来说,从内存中取数据;O表示out,CPU运算完后将数据发送至内存

同理,对于磁盘来说,将数据写入磁盘表示in,将输入从磁盘读出来叫out

2.总线

PCI总线:一种南桥与外设连接的总线技术

PCI总线特点:中断共享,即不同设备使用同一中断而不发生冲突。硬件上采用电平触发;软件上采用中断链,即,假设系统启动时,发现板卡A用了中断7,就会将中断7对应的内存区指向A卡对应的中断服务程序入口ISR_A;系统发现板卡B也用了中断7,这是中断7会指向对应的内存区ISR_B,同时ISR_B的结束指向ISR_A,以此类推,形成一个中断链。

CPU与硬盘之间的通信

通信都是“连”、“找”、“发”的过程

连:CPU与硬盘间通过总线进行连接

找:设备地址映射,每个IO设备在启动时都要向内存中映射一个或者多个地址,这个地址被称为IO端口,针对这个地址的数据,统统被北桥芯片重定向到总线上实际的设备上。

发:北桥芯片接收到之后,会等待CPU发送3条指令

(1)指令中主要包含了是读还是写

(2)指明应该读取的硬盘逻辑块号(LBA)

(3)读出来的内容放到内存哪个地址中

三、磁盘原理与技术详解

1.磁盘结构

盘片:盘片的基板有金属或玻璃材质制成,表面光滑平整不可有任何瑕疵。

磁头:硬盘的存储原理是将数据用控制电路通过硬盘读写头去改变磁盘表面上极细微的磁性粒子簇的N、S极性来加以存储。

磁性粒子簇溅镀在磁头可定位的范围内,并且磁性粒子制作得越细越好。硬盘读写头会漂浮在磁盘表面,高速来回移动读取数据,不能有接触,接触就会有划伤。实现这种技术,完全靠磁盘旋转时,在盘片上空产生空气流,利用空气动力学使磁头悬浮在磁盘片上空。

步进电机:为了让磁头精确定位磁道,必须使用步进电机,利用精确的齿轮或者音圈,每次旋转可以仅仅使磁头进行微米级的位移。

盘片上的数据

每个盘片的每个面都有一个读写磁头,磁头起停在盘片的最内圈。这个区域不存放任何数据,称为启停去或者着陆区

磁道:磁盘在格式化时分为很多同心圆,这些同心圆轨迹叫做磁道。磁道是用肉眼看不见的,只是在盘面上以特殊形式磁化了一些磁化区。划分磁道和扇区的过程,叫做低级格式化。另外,高级格式化指对磁盘上所存储的数据进行文件系统标记,而不是对磁道和扇区进行标记。

柱面:所有盘片上的同一磁道,在竖直方向构成的一个圆柱。

扇区:每个环形磁道等距离切割,形成等长度的圆弧,每个圆弧就是一个扇区。

扇区三级地址:扇区所在柱面(Cylinder)、磁头编号(Header)、扇区(Sector)在磁道上的位置(扇区号),称为CHS地址

磁盘读写数据的原理:盘片高速旋转,磁头用磁性对每个格子的磁性粒子去做磁化操作,每个磁极表示0或者1的状态,每个格子规定存放4096位,也就是512个字节(一个扇区)。等同一柱面上的所有磁头读写完毕后,磁头在转向下一柱面。选取磁头只需要电子切换,选取柱面需要机械切换,即寻道。

要精确到每个格子就需要给每个格子一个地址,早期是采用CHS地址方式,后来因为每个磁道的扇区数目不同,采用逻辑地址来编址,具体的盘片、磁道和扇区抽象成LBA地址。

时间: 2024-10-14 15:28:25

大话存储学习笔记(1)的相关文章

大话存储学习笔记(4)

七.逻辑卷管理 逻辑卷管理(简称LVM),是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层. 通过LVM管理可以轻松管理磁盘分区,如:若干个磁盘分区连接为一整块的卷组,形成一个存储池.管理员可以在卷组上随意创建逻辑卷组,并进一步在逻辑卷组上创建文件系统.管理员通过LVM可以方便调整卷组大小,并且可以按照磁盘存储的方式进行命名.管理和分配. LVM的配置信息记录在叫做VGDA(Volume Group Descriptor Area)的区域,LVM就是通过读

大话存储学习笔记(3)

五.磁盘IOPS和传输带宽 磁盘IOPS:每秒能进行多少次IO,每次IO根据写入数据的大小,这个值也不是固定的. 如果IO每次都写入很大的一块连续的数据,则每秒所做的IO次数是比较低的: 如果磁头频繁换道,每次写入的数据还是较大的话,此时IOPS是这块硬盘的最低数值了. 如果在不频繁换道,每次写入最小的数据块,如512字节,则此时IOPS将是最高值. 传输带宽:指硬盘或设备在传输数据是数据流的速度,如果写入1000个1kb的文件需要10s,那么传输带宽只能达到每秒1MB,而写入一个10MB的文件

大话存储学习笔记(5)

九.磁盘阵列 1.关于LUN LUN是SCSI ID的更细一级的地址号,每个SCSI ID下有更多的LUN ID.对大型磁盘阵列来说,可以生产几百几千个虚拟磁盘,为每个磁盘分配一个SCSI ID是远远不够的.因为每个SCSI总线最多允许16个设备接入(目前32位SCSI标准可以接入32个).LUN是一个次级寻址ID.磁盘阵列可以在一个SCSI ID下虚拟多个LUN地址,每个LUN对应一个虚拟磁盘.硬件层次生成的虚拟磁盘,称为LUN:软件生成的虚拟磁盘,称为卷. 2.双控制器的磁盘阵列 如果盘阵内

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

大话设计模式学习笔记

大话设计模式笔记 1. 使用简单工厂模式(使用反射可以解决避免分支判断问题) 注重创建不同的对象 2. 使用策略模式处理 不同的时间应用不同的业务规则 3. 单一原则:一个类仅有一个变化的原因  发现职责并把职责分离 4. 开放-封闭原则:软件实体可以扩展但不能修改  对扩展开放 对更改封闭 开发人员对程序中呈频繁变化的那部分做出抽象 5. 依赖倒转原则: A.高层模块不应依赖底层模块.两者都应该依赖抽象. B.抽象不应该依赖细节,细节应该依赖于抽象.即针对接口编程, 不应针对实现编程. 里氏替

[大话设计模式]学习笔记——简单工厂模式

序 说好的每天进步一点点的,结果工作太忙,一直在加班,都没有学习新东西.我还要进BAT呢. 坚持每天学习新东西. 写代码时,意识到在代码结构上还是有点欠缺.赶紧补上. 纪录对设计模式的认识.小菜变大鸟.进攻BAT. 应用场景: 编写一个计算器控制台程序,要求输入两个数和运算符号,得到结果. 这本书使用C#写的.已有博主用JAVA写出来,参考:http://blog.csdn.net/ghsau/article/details/8163418 常见的做法: 写一个方法封装计算机的功能,我们只需传参

js数据类型,及内存存储学习笔记

一.Javascript的数据类型 (1)基本类型: undefined :指的是,使用var声明变量但未对其加以初始化, var meddling,对未初始化的变量执行typeof操作符会返回undefined,而对未声明的变量执行typeof操作符同样也会返回undefined null  :typeof操作符会返回object,只要保存对象的变量还没有真正保存对象,就应该明确的让该变量保存null值. Boolean:该类型有俩个字面值:true ,false 大小写区分 Number :

《大话设计模式学习笔记》2:策略模式

商场促销示例: 1.策略类: public abstract class CashSuper { public abstract double AcceptCash(double money); } 2.具体策略类(以打折类为例): public class CashRebate:CashSuper { private double moneyRebate; public CashRebate(double moneyRebate) { this.moneyRebate = moneyRebat

【大话存储】学习笔记(7,8章),FC协议

Fibre Channnel 我们之前引入了SAN的概念,SAN首先是个网络,而不是存储设备.这个网络是专门来给主机连接存储设备用的. 我们知道按照SCSI总线16个节点的限制,不可能接入很多的磁盘,要扩大SAN的规模,只使用SCSI总线是不行的,所以必须找到一种可寻址容量大.稳定性强.速度块.传输距离远的网络结构.FC网络就应运而生. FC网络 Fibre Channnel也就是网状通道,FC协议从1988年出现,最开始作为高速骨干网技术. 任何互联系统都逃不过OSI模型,所以我们可以用OSI