目录

第二章 计算机IO

总线

IO通过共享一条总线来实现. 总线上所有不见都会收到同样的信号, 同一时刻只能有一个部件接收或发送, 是半双工模式. 所有部件按照另一条总线(仲裁中线或中断总线, 产生电位的可以是cpu或线上其他设备)上的信号判断该时刻总线可以由那个部件使用.

总线有数据总线, 有控制总线, 中断总线, 地址总线等. 一般按照数据总线条数确认总线或设备的位宽(cpu则按照内部寄存器到运算单元的总线数目)

PCI总线 PCI总线的地址总线和数据总线分时复用.

内部通信

CPU和内存见单独用一条总线连接, 这条总线与慢速IO总线通过北桥芯片连接. CPU与北桥连接的总线叫系统总线或前端总线. 北桥与IO总线之间有南桥, 南桥集成了众多外设的控制器. 计算机总线

每个IO设备启动时要向内存映射一个或多个长度为8位的地址(又称IO端口).有IO操作时, CPU(磁盘驱动程序)将IO地址通过系统总线发给北桥, 然后发送3个指令: 1.当前指令读还是写,是否启用中断通知,磁盘缓存等, 2.应读取的硬盘逻辑块号(LBA), 3.读取后放到内存哪个地址. 指令被北桥发给南桥上集成的磁盘控制器, 控制器读取完成后通过DMA技术直接对内存寻址并写入,不必通过CPU中转.

第三章 磁盘原理与技术

磁带的记录是流式的, 密度高, 定位慢, 用于数据备份. 磁盘记录是块式的, 存取速度快.

硬盘结构

主要结构: 盘片, 磁头, 步进电机
在盘片上, 细分盘面(一片两面), 磁道(同心圆, 从外向内), 扇区(磁道上等长度圆弧, 内部为流式存储), 柱面(同一磁道在竖直方向构成圆柱)
柱面, 磁头和扇区简称CHS, 扇区地址又称CHS地址. 后期变为线性的LBA编址方式.

扇区的交叉因子和柱面的磁头扭斜

限制磁盘性能主要因素是寻道速度(换道速度,步进速度)

接口技术

ATA指令系: IDE, SATA
SCSI: SCSI, SAS, SSA, FCP

关于SCSI技术细节见书本

传输

内部传输速率指磁头读写磁盘的最高速率, 不包括寻道和等等扇区旋转时间.RAID技术让一个硬盘换道的同时另一硬盘读写以提高速率.
外部传输速率指硬盘外部接口传送给硬盘控制器时的速率.

对SCSI来说, 完成一次连续LBA地址扇区的读写就算一次IO.
高带宽硬盘在传输大块连续数据有优势, 高IOPS硬盘在传输小块不连续数据有优势

固态硬盘

flash芯片存储问题: 1. 写扩大, 2. wear off(cell 报废)
解决: 1.损耗平衡算法, 2.定期垃圾清理, 3.TRIM, 4.延迟写入和合并写入, 5.预留空间

第四章 RAID

RAID, Redundant Array of Independent Disks, 独立磁盘组成的冗余阵列

书中对RAID的描述信息密度太低, 另外在网上找了些相关资料

标准RAID

  • RAID 0 条带化(striping)存储. 将数据分段存储于各个磁盘中,读写均可以并行处理, 其读写速率为单个磁盘的N倍,无数据冗余.关键参数: 1. stripe width: 可被并行写入的 stripe的个数,即等于磁盘阵列中磁盘的个数。2. stripe size: 写入每个磁盘的数据块大小
  • RAID 1 镜像(mirroring)存储,数据被同等地写入两个或多个磁盘中, 写入慢读取快.没有数据校验, 磁盘利用率最低.
  • RAID 2 RAID 0改良版, 加入汉明码校验. 适合连续IO, 大块IO(比如视频流服务). 单个磁盘损坏可恢复
  • RAID 3 类似RAID 2, 额外使用一块硬盘存储简单的奇偶校验信息, 因此磁盘数为N+1.因为无论哪个磁盘写入数据都需要同时重写校验盘数据, 校验盘负载高, 因此适合少些多读, 比如数据库, web服务器等. 单个磁盘损坏可恢复
  • RAID 4 类似RAID 3, 按块(扇区)读取. 提高小量IO速度
  • RAID 5 奇偶校验(XOR), 数据以块分段条带化存储, 校验信息交叉存储在所有数据盘.单个磁盘损坏可恢复, 坏盘替换后自动重建数据.可视为RAID 0 和1的折中方案
  • RAID 6 类似RAID 5, 增加第二个独立的使用不同算法的奇偶校验信息块, 写损失大, 写性能差. 两块磁盘损坏可恢复.

混合RAID

  • RAID 01 RAID0和1的结合, 先做条带(0), 在做镜像(1)
  • RAID 10 先做1, 再做0, 读写性能约等于01, 安全性好于01.

第五章 RAID,虚拟磁盘,卷和文件系统

第六章 磁盘阵列

第七章 系统互联OSI

第八章 Fibre Channel协议