读书频道 > 数据库 > Oracle > Oracle Exadata技术详解
2.4 Exadata实际可用磁盘空间
2015-11-03 14:14:14     我来说两句 
收藏    我要投稿   

本文所属图书 > Oracle Exadata技术详解

本书作为国内第一本关于Oracle Exadata一体机的中文教程,偏重于实践方面,同时加入了更多V2版本以后的新内容。全书可分为三个部分。第一部分为基础篇(1~5章),主要介绍了Oracle Exadata一体机的配置、架构  立即去当当网订购

表2-1中列举出来的是Exadata裸盘的空间,也就是没有任何镜像或者冗余情况下的磁盘空间,而冗余是放到ASM这个层面来完成的,并非通常情况下使用的RAID。所以Exadata真实可用的空间取决于ASM使用的冗余策略,理论上,如果使用的是ASM的Normal Redundancy冗余策略(2路冗余),则实际可用的空间大约为原始空间的1/2,如果使用High Redundancy冗余策略(3路冗余),则实际可用空间大约是原始空间的1/3。

假定客户购买了一台1/4 配高性能的Exadata X2-2,一共有3台存储服务器,每台存储服务器有12块600GB的高性能盘,使用的是ASM的Normal Redundancy冗余模式,按照计算公式可以得到其可用空间为:

实际可用空间=3×12×600GB/2=10800GB = 10.5TB

但是从ASM层面看到的却是下面这样的结果:

ASMCMD [+] > lsdg
State    Type    Rebal  Sector  Block      AU  Total_MB   Free_MB  Req_mir_free_
MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  NORMAL  N         512   4096  4194304  15593472  15220648
5197824         5011412              0         N  DATA_DM01/
MOUNTED  NORMAL  N         512   4096  4194304    894720    893464
298240          297612              0         Y  DBFS_DG/
MOUNTED  NORMAL  N         512   4096  4194304   3896064   3879104
1298688         1290208              0         N  RECO_DM01/

从上述输入可以看到,实际可用的空间Usable_file_MB= 5011412MB + 297612MB + 1290208 = 6599232MB = 6444.56GB = 6.29TB。足足与计算结果相差4TB!那么这个差距来自哪里呢?是不是ASM的冗余策略选择错了?

首先找到Exadata x2-2的datasheet。对于1/4配,找到可用空间这一部分,如图2-2所示。




从图2-2中可以看到,在Exadata的datasheet中提到的1/4配高性能Exadata的裸磁盘空间确实是21.6TB,而可用空间为9.5TB,非常接近10TB。并且这个表格下面同时还有两个
脚注。

3. For raw capacity, 1GB = 1 billion bytes. Capacity calculated using normal space terminology of 1TB = 1024 * 1024 * 1024* 1024 bytes. Actual formatted capacity is less.

4. Actual space available for a database after mirroring (ASM normal redundancy) while also providing adequate space (one disk on Quarter and Half Racks and two disks on a Full Rack) to reestablish the mirroring protection after a disk failure.

注脚3很明显是在说明,对于磁盘的容量,磁盘厂商是按照如下公式计算的:1TB= 1000×1000×1000×1000bytes,而操作系统则是按照1TB=1024×1024× 1024×1024 bytes计算的。

注脚4是说系统会预留一部分磁盘空间来保证能顺利进行re-mirroring,1/4配和1/2配预留的空间大小为1块磁盘的大小,而1/1预留的空间为2块磁盘的大小。

了解了两个脚注的意思后,我们再来进一步详细分析:

1)硬盘厂商和操作系统计算的单位不一致,操作系统的单位进制为1024,而硬盘厂商的单位进制为1000,所以600GB的硬盘实际上只有600 × 1000 × 1000 × 1000 / 1024 /1024 /1024=558GB的空间。所以1/4配的高性能的Exadata真实的裸盘空间为558GB × 36 = 20116G=19.65TB,也就是说19.65TB才是实际真实可用的裸磁盘空间。

2)每个存储节点的前面两块盘都会分别预留30GB的空间用于安装操作系统,这一部分需要占据的空间为 30 × 2 × 3 = 180GB,这180GB 空间也是ASM无法用到的。

3)脚注4提到的会为re-mirroring预留一部分空间,以保证ASM的rebalance能够顺利完成,这一部分预留空间的计算公式如下:

DATA_reserved_space = [DATA_pct * (num_qtr_half_racks (2 * num_full_racks)) * disk_size * 1000/1024]
RECO_reserved_space = [RECO_pct * (num_qtr_half_racks (2 * num_full_racks)) * disk_size * 1000/1024]

除去DBFS这个磁盘组,DATA磁盘组大概占到所有磁盘组空间的80%,而RECO这个磁盘组大概占所有磁盘组空间的20%(DATA与RECO的容量比一般是8∶2)。

将上述条件带入到前面提到的公式,可得到:

DATA_reserved_space=80%×(1)×600G/1000/1024
RECO_reserved_space=20%×(1)×600G/1000/1024

在脚注4里提到,在一台1/4配的Exadata中,会预留一个盘的空间用于re-mirroring。所以在ASM做完normal redundancy以后,实际可用的磁盘空间为:(19.65TB-180GB-558GB)/2 = 9689GB = 9.46TB。

4)Usable_file_MB代表的含义并非是磁盘组的真实可用的空间,而是可用空间的一个安全值。

对于Req_mir_free_MB和Usable_file_MB,Oracle官方文档给出了以下解释:

Req_mir_free_MB Amount of space that must be available in the disk group to restore full redundancy after the most severe failure that can be tolerated by the disk group. This is the REQUIRED_MIRROR_FREE_MB column from the V$ASM_DISKGROUP view.
Usable_file_MB Amount of free space, adjusted for mirroring, that is available for new files. From the V$ASM_DISKGROUP view.

对于上面这段话,我们可以这样来理解:

假设有这么一种场景:1台1/4配的Exadata,由于某种原因(例如硬件故障),导致1个存储节点宕机并且完全不可用,这个时候这台存储节点上所有的数据在当前Exadata中有且仅有一份镜像。根据ASM的机制,如果超过了DISK_REPAIR_TIME设定的阈值以后,ASM会自动进行rebalance,将这台存储节点上的所有数据重新分布到其他两个节点上,使得所有数据都重新拥有两份镜像。如果当前使用的空间在这个Usable_file_MB以下,那么这个时候ASM能正常的完成rebalance,但是如果实际使用的空间超过了这个阈值,则会因为剩余空间不足,导致剩余的两个存储节点无法完成remirroring。那么也就表示有一部分数据此时只保留了一份(Normal正常情况下,所有的数据都有两份),并且无法完成rebalance。这个时候如果另外两个存储节点中的任何一个发生了坏盘,则有可能导致数据的丢失。

所以Usable_file_MB这个值只是一个在安全范围内能正常使用的空间。在一台1/4配的Exadata中,这个值相当于一台存储节点的可用空间,简单的计算方法为:

558GB × 12 – 30GB ×2 – 558GB/3=6450GB = 6.29TB

其中,30GB×2表示存储节点操作系统所占的空间,而558GB /3 表示ASM预留空间均摊到一个节点的磁盘空间。

所以一台高性能Exadata磁盘的可用空间接近9.5TB,一旦使用空间超过了6.5T,在某些情况下可能会造成数据丢失。

介绍完所有型号Exadata的配置以后,可能有一些读者心里会犯嘀咕了:有这么多种型号的Exadata,我应该怎样来选择适合自己应用的Exadata呢?因为Oracle的策略是如果有新的型号推出来,那么老的型号的Exadata就不再出货。例如当前最新的Exadata型号是X3,那么我们就无法购买X2的机器。对于OLTP在线交易系统,通常选择搭载高性能磁盘的Exadata;对于OLAP联机分析系统或者DW数据仓库,通常选择搭载高容量磁盘的Exadata。Exadata X*-8主要针对超大型应用。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.3 Exadata 存储服务器硬件配置
下一篇:2.5 Exadata磁盘的IOPS
相关文章
图文推荐
3.6 存储管理工具Ce
3.4.5 Interleaving
3.4 Exadata存储架构
3.3.3 SDP协议
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站