Oracle ASM存储方式浅析
AU
ASM的最小分配单元,默认是1M,可以在创建diskgroup时指定。在diskgroup中的每个盘都被切分为很多个AU,可以是1, 2, 4, 8, 16, 32, or 64MB。
File Extent
由一个或多个AU组成,一个file extent总是在一块磁盘上(不跨磁盘分配AU),这里的file extent和数据库中的extent是不同的,我们可以这样理解,这里的file extent是物理容器,而数据库中的extent是逻辑概念。
下图是AU和file extent的示意图,可以看到刚开始时一个file extent对应一个AU,到达某个数量级后,一个file extent对应8个AU,Oracle称之为Variable size file extent.
Mirror和Stripe
ASM如何做mirror和stripe,其实我们可以把ASM想象为一个存储设备,ASM的方式不是常见的磁盘对磁盘作RAID的方式,我猜测是类似于3PAR这种存储所采用的虚拟化方式,我们看看3PAR是如何处理的。3PAR将每块磁盘都切分为256M的单元(称为chunklet),创建logical disk(定义RAID类型),我们假设为RAID 10,系统自动选取不同磁盘上的chunklet先作mirror,然后再在这些mirror后的chunklet pair上做stripe,条带跨在logical disk上的所有物理磁盘,这样做的好处是因为磁盘被切分为很小的单元,可以实现动态负载迁移。而我们通常的存储,是要先固定的选取一些磁盘,比如8块磁盘,然后创建RAID group,然后在RAID group上创建逻辑盘,这种方式RAID group是固定的,除非重建否则没有办法动态调整。
Oracle ASM也有动态负载迁移的功能,我想Oracle应该是采用差不多的方式,所以Oracle也对磁盘首先划分为AU,AU组成了file extent,然后用file extent来做mirror,但并不是磁盘相同位置的extent来作mirror,Oracle只确保mirror的extent在不同的磁盘或者failure group上。有人问我一个问题,Oracle ASM是RAID10还是RAID 01,我的回答是从AU的角度去看,ASM是RAID 10,因为是先做了mirror,再做stripe。但是如果从磁盘的角度去看,因为不存在两个镜像盘的概念,所以它不是RAID 10,而是介于两者之间的一个东西。假设一个disk group中坏了一块磁盘,这时如果另一个disk group中包含了损坏的disk group上的mirror AU的磁盘也同时损坏,这个ASM就不可以恢复了。但ASM不是RAID 01,因为一个disk group中坏掉一块磁盘,并不意味着整个disk group坏掉,因为RAID 01的概念也是针对于磁盘的。
ASM的stripe有两种,分别是fine和Coarse,fine的stripe depth是128K,coarse的stripe depth等于AU的大小,默认是1M。Oracle对不同文件的条带大小是不同的,数据文件的条带是1M,而redo等小文件的条带是128K。Oracle的条带是跨在disk group的所有磁盘上,假设某个disk group有8块磁盘,当Oracle需要分配1M的extent时,如果stripe size是128K,则在每块磁盘的AU上分配128K,如果stripe size是1M,则在第一个磁盘上分配一个AU(这时实际上就没有stripe了)。如果Oracle需要分配4M的extent,而stripe size是128K,则在第一个磁盘分配128k,依次类推到第8块磁盘,然后接着从第一块磁盘开始分配,最后每个disk上分配了512K的空间(但是不连续的),而stripe size是1M,则在前四个disk上各分配一个AU。
从Oracle的角度看,extent是逻辑连续的,而ASM则根据stripe将其分散在不同的物理磁盘上,由ASM来维护AU,file extent,Oracle extent的对应关系,其实ASM就是一个存储管理软件。
建议继续学习:
- HFile存储格式 (阅读:14521)
- 我对技术方向的一些反思 (阅读:9851)
- 淘宝图片存储架构 (阅读:9810)
- 海量小文件存储 (阅读:7541)
- HBase技术介绍 (阅读:6738)
- 存储基础知识之——硬盘接口简述 (阅读:6123)
- 在perl中连接和使用sqlite做数据存储 (阅读:5040)
- 如果用户在5分钟内重复上线,就给他发警告,问如何设计? (阅读:4863)
- HTML5本地存储初探(二) (阅读:4385)
- Redis新的存储模式diskstore (阅读:4399)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:jacky 来源: Hello DBA
- 标签: ASM 存储
- 发布时间:2009-10-18 23:16:21
- [66] Go Reflect 性能
- [65] Oracle MTS模式下 进程地址与会话信
- [64] 如何拿下简短的域名
- [59] android 开发入门
- [59] IOS安全–浅谈关于IOS加固的几种方法
- [58] 图书馆的世界纪录
- [58] 【社会化设计】自我(self)部分――欢迎区
- [53] 视觉调整-设计师 vs. 逻辑
- [47] 界面设计速成
- [46] 读书笔记-壹百度:百度十年千倍的29条法则