Exadata存储节点,主动更换磁盘
1、前言
Exadata存储节点,绝大部分情况下,是不需要主动更换磁盘的,当磁盘的损坏程度达到一定的判定标准,存储管理软件会自动将该磁盘判定为坏盘。 注意:该判定标准不仅仅依据于磁盘的坏块errorCount。
对于满足如下全部情况的环境,建议主动更换存储节点的磁盘:
(1). 磁盘的errorCount在增长。
(2). 机型太老,例如:运行了5年以上的老机器。
(3). DiskGroup是Normal冗余。
2、主动更换存储节点的磁盘的步骤,见官方文档:
https://docs.oracle.com/en/engineered-systems/exadata-database-machine/dbmmn/replacing-hard-disk-proactively.html
概括来讲,就是:
(1). 如果当前的存储管理软件版本大于或等于21.2.0,则直接使用命令:
CellCLI> alter physicaldisk X:Y drop for replacement maintain redundancy
等命令结束后,更换磁盘,等待后台自动完成rebalance即可。
(2). 如果当前的存储管理软件版本小于21.2.0,则需要手动先从磁盘组中删除griddisk:
SQL> ALTER DISKGROUP diskgroup_name DROP DISK asm_disk_name;
等rebalance结束之后,再从存储管理软件层面删除磁盘:
CellCLI> alter physicaldisk X:Y drop for replacement
等命令结束后,更换磁盘,再次等待后台自动完成rebalance即可。
从官方文档的说明可以看出:在主动换盘的整个过程中,ASM磁盘组的冗余度是保持不变的。这样的好处是在主动换盘的过程中,保持ASM磁盘组的冗余度不降低,但带来的坏处也非常明显,那就是整个过程中,会发生两次 "整个ASM磁盘组的全局rebalance操作”。尤其是需要等待第一次ASM磁盘组的全局rebalance操作结束后,才允许换盘,这个过程可能需要等待很长,甚至一两天时间。
3、那有没有办法在主动更换磁盘的时候,减少等待的时间呢?当然有,那就是执行drop for replacement时不要加maintain redundancy选项,也即在换盘时,允许ASM的冗余度降低。
Exadata存储软件在11.2.3.3.0版本中,引入了"ALTER PHYSICALDISK <disk number> DROP FOR REPLACEMENT"特性,用于在磁盘没有损坏的情况下,主动更换磁盘。
该命令会进行检查,以确保该硬盘上的griddisk可以安全地从 ASM 磁盘组中进行offline操作,而不会导致ASM磁盘组强dismount掉。如果所有griddisk都能正常offline而不会导致磁盘组dismount掉,那么该命令会从 ASM 中将相关的griddisk进行offline操作,同时禁用该磁盘,然后开启存储服务器上的LED灯,提示可以正常换盘操作。
从该特性的说明也可以看出:执行drop for replacement时不加maintain redundancy选项,则ASM磁盘组的冗余度会临时性地降低。但这种方式也有它的好处:那就是不会发生两次全局的rebalance动作,只会发生一次fast resync动作,这大大减少了整个ASM磁盘组的IO压力。