Oracle系统的RAID选择

来源:互联网 发布:圣斗士星矢模型 淘宝 编辑:程序博客网 时间:2024/05/16 06:07

技术相关:Oracle系统的RAID选择


    Oracle的推荐的IO做法是:SAME(Stripeand Mirror Everywhere,在任何地方都是用“条带+镜像”,当然就是 RAID 1+0 ),而作为硬件供应商又总是顽固的坚持RAID5可以用在OLTP类型的Oracle中。其实这是“商业利益”在作怪,作为Oracle当然不用理会你买什么硬件,关键是别把性能问题归结到Oracle软件本身才好;而硬件厂商当然要炫耀其硬件性能如何了得,技术如何先进。
     Oracle似乎也发现大家都不爱用RAID1+0(容量缩减一般,成本太高),因此在10g中引入了ASM“自动存储管理”(Automatic Storage Management,参见:Automated Storage Management ASM configuration ),而Oracle ASM背后的基础就是RAID1+0,Oracle在大力推荐ASM的背后目的其实就是为了利用RAID1+0来“维持”Oracle系统的I/O性能。
    Oracle关于RAID的推荐如下:RAID Recommendations (From Metalink NOTE: 45635.1)

RAID Raid类型 Control File Database File Redo Log File Archive Log File 0 条带
避免 可以 避免 避免 1 镜像
最佳 可以 最佳 最佳 1+0 条带+镜像 可以 最佳 避免 避免 3 条带+静态奇偶校验 可以 可以 避免 避免 5 条带+轮转的奇偶校验 可以 如果RAID1+0不可用也可以 避免 避免

    为什么RAID 5不建议使用在有大量更新的Oracle系统中呢?这要从RAID 5的原理说起(参见:RAID 5术语解释)。
RAID 5 是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。

    简单来说,就是RAID 5在写入的时候需要计算数据的“奇偶校验信息”一并写入到RAID 5的其他磁盘上,由于这个计算过程,写性能会大大降低;而在读取的时候并不需要计算这个过程,因此“读”的时候可以多个磁盘同时读,性能当然较单个磁盘要好很多,读性能差不多和RAID 0一样

    其实,由于一些新技术的出现,目前已经支持RAID 5使用在存在大量更新操作的Oracle中了,参见:
    RAID5 now acceptable for Oracle --RAID5已经被Oracle接受。
    databases Using RAID5 with Oracle?    --Oracle可以使用RAID 5吗?

    Why Modern RAID 5 is Ideal for Oracle Databases
--为什么现代RAID 5是Oracle数据库的理想存储?

    但要知道,这都是些“新技术”。其实简单来说,就是如何规避“计算数据的奇偶校验信息一并写入到RAID 5的其他磁盘上”的写性能损失。比如: Hitachi TagmaStore RAID5 "Universal Storage Platform"使用256G内存作为RAID 5的cache,来规避上述的写性能损失。
    

 

    作为普通用户的我们,你买得起那么昂贵的存储设备吗?你有那么大的Cache吗?(如果为了使用RAID5 要买如此昂贵的设备,还不如直接使用RAID 1+0,除非你的Oracle有“N多T”或者“N多P”)。
    因此也就诞生了BAARF “Battle Against Any Raid Five”--向任何形式的RAID 5开战,这么个奇怪的组织。

    因此关于Oracle的RAID选择,我的建议就是采用RAID1+0;

    因此关于Oracle 存储设计的正确做法是:(I/O Configuration and Design)
  1. 一般情况,把你所有的盘做成一个RAID10,然后把所有文件都放置上面就ok了。
    1.  
      1. 随机读写频繁:db_block_size*2
      2. 顺序读频繁:DB_FILE_MULTIBLOCK_READ_COUNT*db_block_size
    • RAID最小stripe depth设定原则
  2. 如果,LVM不支持动态扩展,或者如果你只就几块单盘,不够条件组成RAID。
    1. 数据文件和索引没有必要分开,因为他们是顺序读取的。
    2. Redo log文件单独放到一个盘上,且千万不可放置到RAID5上。


参考文献:
Oracle and RAID Usage
Oracle disk RAID Technology

Oracle: Oracle数据搬出RAID 5






 

Automated Storage Management ASM configuration

原文地址:
技术相关:Oracle系统的RAID选择

 

原创粉丝点击