Ext文件系统(1)磁盘硬件

发布时间:2026/9/11 17:46:46
Ext文件系统(1)磁盘硬件 一、磁盘的江湖地位机械磁盘是计算机中唯一的机械设备属于外设离 CPU 远所以慢但它容量大、价格便宜几百块钱就能买 TB 级磁盘而内存一般只有 4~16GB磁盘产业国外厂商西部数据、东芝、希捷做得好国内在软件、加密、存储方案上推进国产化尤其银行领域冷热数据分离朋友圈例子两年前的旧记录 → 备份到便宜的大容量盘所以翻旧记录慢最新记录 → 存在高效盘上企业用不同的盘做分层存储兼顾性能与成本二、从服务器到机房磁盘的家服务器没有鼠标键盘显示器只需网卡通过网络访问常见 4×6 24 个可热插拔盘位单台可插 24×4TB机柜塞约 10 台服务器背面走线路由器、防火墙简单组网机房多个机柜相连是公司的命门进门要经过两三次审核自建机房成本极高土地、建筑、电费、散热空调、设备损耗、网络只有大厂玩得起 →云服务的由来白天压力大晚上压力小资源利用率不充分把闲时资源卖出去开源节流三、磁盘的物理结构盘片光面用来存数据一张盘片正反两面都能存马达带动盘片高速旋转7200 / 10000 / 14000 / 20000 转等转速越高效率越高磁头像针头一样悬浮在盘面上读写数据有几个盘面就有几个磁头摆臂传动臂带动磁头在半径方向来回摆动寻道类比盘片 纸磁头 笔磁盘是密封的军工级产品内部基本真空私自拆盖即报废四、磁盘的本质磁铁盘片放大看由无数小颗粒构成每个颗粒 一块小磁铁规定一个磁极方向代表1另一个代表0如南极 1北极 0写磁盘 磁头通电改变小磁铁的南北极方向不同设备用不同的物理特性表示二进制磁盘磁极方向内存电平电容充放电网络波形高低物理特性不同但都是两个状态本质都是二进制永久存储与退磁不主动删除、不退磁数据就一直在永久存储介质高温会退磁磁铁烧一烧就变成普通石头 → 磁盘数据彻底消失 所以机房怕火、严禁明火——电脑烧了无所谓磁盘退磁数据就全没了要彻底销毁磁盘数据也可以烧掉或者全盘写 0 / 写 1、格式化五、磁盘的存储结构磁道、扇区、柱面1. 磁道Track盘面由一系列同心圆构成每个同心圆就是一条磁道类似地球的经纬线圈2. 扇区Sector—— 基本读写单位磁道不连续被切分成一小节一小节 扇区因磁道有宽度截取一段呈扇形一个扇区 512 字节 512 个小磁铁先进磁盘也有 4K 扇区磁盘读写的基本单位是扇区哪怕只改 1 个 bit也要把整个扇区 512 字节读进内存 → 改那一位 → 再整体写回不允许按字节 I/O外设按字节读写效率太低内外圈磁道长短不同但容量都按 512B 算——只是二进制位的疏密程度不同先进磁盘可以让外圈密度更高从而容量更大取决于磁盘技术课程不做深究编号细节扇区号从 1 开始柱面号和磁头号从 0 开始如0 号柱面、0 号磁头、1 号扇区3. 多盘面与磁头共进退一块磁盘可有多张盘片如 3 片 6 面有几面就有几个磁头磁头共进退只有一个传动臂磁头摆动 传动臂伸缩所有磁头同时前伸 / 后缩各自独立寻道做不到4. 柱面Cylinder所有盘面中同一半径的磁道逻辑上构成一个柱面因为磁头共进退大家总指向同一半径的磁道 → 柱面是逻辑概念写大批数据时可以以柱面为单位多个磁头同时写效率高数量上柱面数 磁道数盘面数 磁头数每个磁道的扇区数相同5. CHS 定位三个数字定位一个扇区传动臂带动磁头定位到柱面先定柱面选哪个磁头确定哪一面等盘片旋转让目标扇区转到磁头下方这就是最早期的寻址方式——CHS 寻址Cylinder / Header / Sector。磁盘容量公式容量 磁头数 × 柱面数(磁道数) × 每磁道扇区数 × 512BCHS 的局限老黄历听个故事早期系统用8bit 存磁头号最多 256 个、10bit 存柱面号最多 1024 个、6bit 存扇区号最多 63 个一个扇区 512B算下来 CHS 寻址最大只能支持约8.4GB现代主流磁盘内部依然在用 CHS定位但已经不再暴露给操作系统和用户直接使用企业盘 vs 桌面盘一次定位成功 企业盘需要多次读、多次确认 桌面盘转速越高、摆臂摆动频率越高效率越高磁头错过了目标扇区只能等盘片转下一圈六、文件 内容 属性都是数据文件的大小、名称、权限、时间等属性也是数据文件 内容 属性区分内容与属性是文件系统和操作系统的事在磁盘看来全是二进制文件存储 占据一个或多个扇区磁盘上能定位一个扇区CHS就能定位多个扇区——记录文件所占扇区的地址集合即可还原文件七、逻辑抽象LBA——磁盘就是一个数组磁带类比本节的灵魂磁带卷起来是同心圆像磁盘的磁道拉直了就是线性结构磁盘的一面不也是由同心圆磁道构成的吗把一面破开拉直它就成了线性结构六面都拉直拼起来 →磁盘在逻辑上就是线性结构其中最小的基本单元就是扇区LBALogical Block Address线性结构中每个扇区都有一个线性下标这个下标就是LBA从此定位一个扇区只需要一个数字数组下标不再需要 CHS 三个参数操作系统对磁盘的管理一瞬间就变成了对数组的管理先描述再组织类比虚拟地址空间操作系统开机时识别磁盘总容量总容量 ÷ 512 → 得到 0 到最大值的扇区下标范围瞬间全部拥有这和虚拟地址空间非常像进程虚拟地址 0 到全 F 线性连续经页表转换成物理地址最小单元 1 字节由软件/MMU 体系完成磁盘LBA 0 到最大值线性连续转换成 CHS 由**磁盘内部固件硬件电路/伺服系统**完成黑盒视角给磁盘一个 LBA它自己就能定位到对应扇区OS 不需要关心内部细节OS 也不需要记录每个扇区的信息——知道总容量下标范围自然全有CHS ↔ LBA 互转一维 ↔ 三维下标互转设每磁道扇区数为 S、磁头数为 HLBA C × (H × S) H × S (S − 1) └─ 前面完整柱面的扇区总数 ─┘ └前面完整磁道┘ └自己−1(扇区号从1起,LBA从0起)┘ 反解 柱面号 C LBA ÷ (H × S) 整除 磁头号 H (LBA mod (H × S)) ÷ S 整除 扇区号 S LBA mod S 1推导思路先数前面完整柱面的所有扇区再数前面完整磁道的扇区最后加上自己——因为扇区号从 1 开始而 LBA 从 0 开始所以减 1反解就是一路除法取整 模运算本质一维下标 ↔ 三维下标互转和二维数组与一维数组互转的除 / 模运算是同一套思想 老师强调CHS/LBA 互转公式不是重点重点是——OS 只需使用 LBA磁盘 以扇区为元素的一维数组用一个数字就能访问磁盘上的任意扇区三级视角录音补充磁道展开 一维数组柱面展开 二维数组柱面上每条磁道扇区数一样整个磁盘 多张二维表 三维数组LBA 就是把三维下标拍扁成一维下标八、一条完整的认知链磁盘是唯一机械设备慢、大容量、便宜 ↓ 物理结构盘片 马达 磁头 摆臂磁头共进退 ↓ 存储结构磁道同心圆→ 扇区512B基本读写单位→ 柱面同半径磁道 ↓ CHS 三步定位定柱面 → 选磁头 → 等旋转但寻址能力上限约 8.4GB ↓ 逻辑抽象磁带拉直 → 磁盘 线性结构 以扇区为元素的一维数组 ↓ LBA一个数字定位任意扇区CHS 转换交给磁盘固件黑盒 ↓ OS 管理磁盘 管理数组先描述再组织→ 为下一章引入文件系统铺路