首页 > 数据库DBA > oracle知识 > oracle存储 >

RAID技术详解:2、磁盘寻址

作者: 初见博客 分类: oracle存储 发布时间: 2021-06-23 16:58

1. 磁盘驱动器

维基百科网址:http://en.wikipedia.org/wiki/Hard_disk_drive

磁盘物理结构图如下:

640-11

 

磁盘逻辑组成图如下:

640-8

 

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

 

640-10

LBA->CHS

 

640-9

 

小结:

不管CHS也好,还是LBA也好。磁盘存储寻址都需要通过cylinder、head、sector来实现;CHS、LBA都是一个数字,CHS按照固定格式把24个bit位分成成cylinder、head、sector;LBA则需要通过求模运算得出cylinder、head、sector。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注