Exadata X2-2中的F20 Flash卡含有电源存储模块ESM(Energy Storage Module ), 也就是我们常说的电池,当主机异常断电时,ESM给Flash模块提供备用电源。实际上它并不是常规意义上的电池,而是一个叫做超级电容(supercapacito)的东西。它和普通的电池相比,具有寿命更长,充放电率高,功率更高的优点。Sun Flash Accelerator F20 Energy Storage Module (ESM) Lifespan. [ID 1327000.1]文档提及早期的计算ESM的耗损率以两年为基准,现在基本都是以三年的寿命来计算的。
具体的ESM时间寿命可参考如下图表:
如果ESM的电量耗尽,则闪存的写模式自动从write-back切换到write-through模式,造成性能下降。当然Exadata Smart Flash Cache(ESFC)这个特性早期只能使用write-through的模式,所以通常不是什么大问题。
而X3之后的Exadata使用了F40 Flash卡,同时带有这些能量存储组件(ESM),但F40的ESM设计为可在 Sun Flash Accelerator F40 PCIe 卡的整个寿命期内使用,而不再需要定期更换。
1、更换前准备工作
注意:
更换ESM需要将该存储节点关机后操作,但我们可以选择不影响数据库正常运行的方式来关闭存储节点。
1.1 定位存储节点
登陆出故障的存储节点,使用命令打开定位指示灯,以便更容易地识别需要修复的存储服务器。具体方式如下:
登陆存储节点,在存储软件命令行模式下执行(方法一):
CellCli>alter cell led on |
登陆该存储节点的ILOM,在ILOM命令行模式下执行(方法二):
->set /SYS/LOCATE value=Fast_Blink Set 'value' to 'Fast_Blink |
登陆存储节点,在操作系统命令行模式下执行(方法三):
# ipmitool sunoem cli 'set /SYS/LOCATE value=Fast_Blink' Connected. Use ^D to exit -> set /SYS/LOCATE value=Fast_Blink Set 'value' to 'Fast_Blink' -> Session closed Disconnected |
执行完以上命令,在机架前可以看到存储节点的指标灯在不停地闪烁。
1.2 不影响ASM的方式停止存储节点
(1). 检查所有磁盘组的disk_repair_time,登录到ASM实例并执行以下查询:
SQL> select dg.name, a.value from v$asm_diskgroup dg, v$asm_attribute a where dg.group_number=a.group_number and a.name='disk_repair_time'; |
(2). 修改所有磁盘组的disk_repair_time:
SQL> ALTER DISKGROUP DATA SET ATTRIBUTE 'DISK_REPAIR_TIME'='8.5H'; |
(3).检查ASM状态:
# cellcli -e list griddisk attributes name,asmmodestatus,asmdeactivationoutcome |
以上命令所有的griddisk返回应该为"Yes"。
(4).将所有的griddisk去激活:
# cellcli -e alter griddisk all inactive |
(5).再次检查ASM状态:
# cellcli -e list griddisk attributes name,asmmodestatus,asmdeactivationoutcome |
以上命令所有的griddisk返回应该:asmmodestatus列的值为'UNUSED' 或者 'OFFLINE' ,同时 asmdeactivationoutcome 列的值为Yes。
2、正式更换ESM
2.1 停止存储节点
当该存储节点的所有griddisk都offline和inactive之后,就可以完全地关掉存储节点了。
# shutdown -hP now |
2.2 更换ESM
按照6.1章节的方法,拆开存储节点主机之后,如下图所示:
RISER1有两个pci槽位(PCIE1和PCIE4) ,RISER2有两个pci槽位(PCIE2和PCIE5),都为F20 CARD ,每块F20CARD是由四个固态闪存模块(FDOM)组成的。
1、扭动螺丝1和螺丝2,将后板PCI横梁拆除,具体过程如下图所示:
2、然后扭动螺丝3,4分别拆除riser1和riser2,具体过程如下图所示:
拆下的F20 CARD ,如下图所示:
3、拆除ESM挡板,esm电池模块就挡板下面,拆掉esm模块,在左边有个4针的插头1,拔掉即可。
注意:
左边4针的插头连线在 F20 Flash卡的FMOD0的下面压住,所以在拔掉插头1连线之前 ,必须先拆卸FMOD0模块,有四个螺丝将FMOD0固定在卡上,具体如下图所示:
4、拆下ESM电池,具体如下图所示:
5、按照以上步骤的反射过程,将新的ESM模块安装上即可。
2.3 启动存储节点
重新组装好存储节点后,加电就可以登陆该存储节点的ILOM,并可以通过ILOM来启动存储节点操作系统。
-> start /SYS |
3、更换后检查工作
3.1 重置ESM计数器
(1).检查每一块flash卡的ESM故障状态和计数器
-> show /SYS/MB/RISER1/PCIE1/F20CARD fault_state -> show /SYS/MB/RISER1/PCIE1/F20CARD UPTIME -> show /SYS/MB/RISER1/PCIE4/F20CARD fault_state -> show /SYS/MB/RISER1/PCIE4/F20CARD UPTIME -> show /SYS/MB/RISER2/PCIE2/F20CARD fault_state -> show /SYS/MB/RISER2/PCIE2/F20CARD UPTIME -> show /SYS/MB/RISER2/PCIE5/F20CARD fault_state -> show /SYS/MB/RISER2/PCIE5/F20CARD UPTIME |
如果故障状态为'critical' 或者 'Faulted',则可以清除故障状态。
(2).清除故障状态
-> set /SYS/MB/RISER1/PCIE1/F20CARD clear_fault_action=true -> set /SYS/MB/RISER1/PCIE4/F20CARD clear_fault_action=true -> set /SYS/MB/RISER2/PCIE2/F20CARD clear_fault_action=true -> set /SYS/MB/RISER2/PCIE5/F20CARD clear_fault_action=true |
清除故障状态的同时,会将计数器重置为0.
(3).再次检查每一块flash卡的ESM故障状态和计数器
-> show /SYS/MB/RISER1/PCIE1/F20CARD fault_state -> show /SYS/MB/RISER1/PCIE1/F20CARD UPTIME -> show /SYS/MB/RISER1/PCIE4/F20CARD fault_state -> show /SYS/MB/RISER1/PCIE4/F20CARD UPTIME -> show /SYS/MB/RISER2/PCIE2/F20CARD fault_state -> show /SYS/MB/RISER2/PCIE2/F20CARD UPTIME -> show /SYS/MB/RISER2/PCIE5/F20CARD fault_state -> show /SYS/MB/RISER2/PCIE5/F20CARD UPTIME |
ESM的计数器应该为0,如果不为0,可以 reset Ilom,这种方式可能会将ESM的计数器重置为0,如果重置ILOM也不能将ESM的计数器归零,则需要使用如下命令来将ESM的计数器置零:
-> start /SP/faultmgmt/shell Are you sure you want to start /SP/faultmgmt/shell (y/n)? y faultmgmtsp>
faultmgmtsp> etcd -i ereport.chassis.device.esm.eol.warning@/SYS/MB/RISER1/PCIE1/F20CARD
faultmgmtsp> exit
-> show /SYS/MB/RISER1/PCIE1/F20CARD fault_state
-> set /SYS/MB/RISER1/PCIE1/F20CARD clear_fault_action=true |
3.2 激活griddisk
重启完存储节点的操作系统后,存储软件会随之自动启动,RS、MS、CELLSRV服务会全部online状态,但是griddisk仍然是inactive状态,需要手动激活。
(1).将所有的griddisk激活:
# cellcli -e alter griddisk all active |
(2).检查所有的griddisk已经online:
CellCLI>list griddisk attributes name,status,asmmodestatus,asmdeactivationoutcome |