首页 > 数据库DBA > oracle知识 > oracle存储 >
RAID技术详解:2、磁盘寻址
1. 磁盘驱动器
维基百科网址:http://en.wikipedia.org/wiki/Hard_disk_drive
磁盘物理结构图如下:
磁盘逻辑组成图如下:
2. 什么是CHS(cylinder head sector)
维基百科网址:http://en.wikipedia.org/wiki/Cylinder-head-sector
通过上面材料,我们了解到磁盘通常由多个盘片、多个磁头组成。
每个盘片对应一个磁头(head),每个盘片被化成多个同心圆(track/cylinder),每个同心圆被切断成多个段(sector)。磁盘存储最小单位是sector,那么如何对sector进行定位?
CHS是早期在IBM PC架构上面用来进行磁盘寻址的办法。
CHS是一个三元组,组成如下:
- 一共24个 bit位。
- 其中前10位表示cylinder,中间8位表示head,后面6位表示sector。
- 最大寻址空间
随着科技大发展,磁盘容量大幅提升。远远超过了8GB寻址范围,如何对8GB之外空间进行寻址?历史上曾经CHS从24位扩展到多28位,实现寻址128GB,但是面对现在磁盘2TB容量还是无能为力,下面我们请出最终解决方案LBA。
3. 什么是LBA(logical block addressing)
维基百科网址:
http://en.wikipedia.org/wiki/Logical_Block_Addressing#CHS_conversion
正如上文所说,LBA是用来取代CHS。那么LBA是怎么实现磁盘寻址?
- LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址。
- LBA采用48个bit位寻址,最大寻址空间128PB。
LBA与CHS转换规则是怎么样的?
CHS->LBA
LBA->CHS
小结:
不管CHS也好,还是LBA也好。磁盘存储寻址都需要通过cylinder、head、sector来实现;CHS、LBA都是一个数字,CHS按照固定格式把24个bit位分成成cylinder、head、sector;LBA则需要通过求模运算得出cylinder、head、sector。