签到成功

知道了

CNDBA社区CNDBA社区

关于ASM 磁盘组中 Usable_file_MB 为负值的说明

2016-09-02 17:31 7134 0 原创 Oracle 性能优化
作者: dave



先看一组查询结果:

[grid@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  1048576     18427    12166             3072            4547              0             N  DATA/
MOUNTED  NORMAL  N         512   4096  1048576      9216      839             3072           -1116              0             N  DAVE/
MOUNTED  EXTERN  N         512   4096  1048576      6144     5589                0            5589              0             N  DGAMDU/
MOUNTED  NORMAL  N         512   4096  1048576      9216     3747             3072             337              0             N  FRA/

 

这里Dave磁盘组的Usable_file_MB 值为-1116.

http://www.cndba.cn/dave/article/174

 

这里Lsdg命令的结果也是从v$asm_diskgroup获取的,所以可以获取这个视图中有关字段的说明:

 

http://www.cndba.cn/dave/article/174

TOTAL_MB 

Total capacity of the disk group (in megabytes) 

--它不会考虑到镜像的因素, 是把所有failgroup中所有磁盘的总空间

 

FREE_MB 

Unused capacity of the disk group (in megabytes) 

--不考虑到mirror因素, 指目前总的可用空间

 

REQUIRED_MIRROR_FREE_MB

http://www.cndba.cn/dave/article/174

Amount of space that is required to be available in a given disk group in order to restore redundancy after one or more disk failures. The amount of space displayed in this column takes mirroring effects into account. 

--为了使diskgroup能在一个或多个磁盘损坏后能够恢复冗余(redundancy),磁盘组中应该保留的剩余空间.

 http://www.cndba.cn/dave/article/174

USABLE_FILE_MB 

Amount of free space that can be safely utilized taking mirroring into account and yet be able to restore redundancy after a disk failurehttp://www.cndba.cn/dave/article/174

--指能被"安全"利用的总空间, 即在考虑到磁盘损坏后能够恢复以前的冗余水平的前提下(保证原来的冗余级别),可以使用的空间。

 

 

所以Usable_file_MB这个值只是一个在安全范围内能正常使用的空间。

 

假设我们的磁盘组里有3failgroup,其中一个failgroup挂掉了,如果此时使用的空间在这个Usable_file_MB以下,那么这个时候ASM能正常的完成rebalance,即这个failgroup上的数据还会转移到其他的failgroup上,继续保证2份的冗余。

 

如果超过了这个阈值,则会因为空间不足,剩余的failgroup节点无法完成rebalance,那么就表示有一部分数据此时只保留了一份(Normal正常情况下,所有的数据都有两份),并且无法完成rebalance 这个时候如果另外两个节点中出现了坏盘,那么则有可能导致数据的丢失。

 

做个算术题:

1.png

 

已这里Dave磁盘组(Normal 冗余)为例:

 

http://www.cndba.cn/dave/article/174
http://www.cndba.cn/dave/article/174

磁盘组总可用空间就是:9216/2= 4608M

目前可用空间:839/2=419M

可以安全使用的总空间:(9216-3072/2 = 3072M

目前可以安全使用的空间:(839-3072/2= -1116M

 

我们计算出的结果,和查询的一致。

 

http://www.cndba.cn/dave/article/174
http://www.cndba.cn/dave/article/174

所以,当Free_MB < Req_mir_free_MB,那么Usable_file_MB 肯定是负值,这种情况下磁盘组如果有一个磁盘失效,是不能有效恢复成redundancy.即处在"不安全"的状态下

http://www.cndba.cn/dave/article/174

 

 

在实际环境中,在发生磁盘故障时,一般都是添加新的存储(或者利用备用的设备),add disk之后再保证它达到失败之前的冗余级别。

 

所以,Usable_file_MB 只是反映了当前"安全可利用的剩余空间", 只要free_mb为正,就没有问题.

 


版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2261
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:7975563次
  • 积分:4346
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ