Exadata的闪存卡损坏,导致业务系统IO堵塞

发布时间 2023-11-09 09:43:43作者: 石云华

1、故障概要

 

一套Exadata X6-2(4个计算节点 + 7个存储节点 ),上午11点多,业务部门反馈业务系统当前出现了严重的堵塞现象,大量的单据出现积压,数据库的活跃会话增多,出现大量的buffer busy waits等待事件。

 

 

2、故障原因分析

2.1 检查Exadata所有节点的alerthistory日志,发现其中一台存储节点的闪存卡出现故障,具体日志如下所示。

dm01celadm05: 3_1 2022-10-18T10:59:56+08:00  info     "Flash disk entered confinement status.  The LUN 2_1 changed status to warning - confinedOnline. CellDisk changed status to normal - confinedOnline.

Status                      : WARNING - CONFINEDONLINE 

Manufacturer                : Oracle 

Model Number                : Flash Accelerator F320 PCIe Card 

Size                        : 2981GB 

Serial Number               : S2T7NA0JB03083 

Firmware                    : KPYAIR3Q 

Slot Number                 : PCI Slot: 2; FDOM: 1 

Cell Disk                   : FD_01_dm01celadm05 

Grid Disk                   : Not configured 

Flash Cache                 : Present 

Flash Log                   : Present

Reason for confinement  : threshold for disk I/O errors exceeded."

 

CellCLI> list celldisk FD_01_dm01celadm05 detail

         name:                   FD_01_dm01celadm05

         comment:               

         creationTime:           2018-09-13T19:44:54+08:00

         deviceName:             /dev/nvme2n1

         devicePartition:        /dev/nvme2n1

         diskType:               FlashDisk

         errorCount:             500404

         freeSpace:              0

         id:                     70c8bef8-4ece-4f99-8d0d-a77555a10de8

         interleaving:           none

         lun:                    2_1

         physicalDisk:           S2T7NA0JB03083

         size:                   2.91094970703125T

         status:                 normal

 

CellCLI>

 

2.2 检查所有存储节点的IO使用率,发现只有出现闪存故障的这台存储节点IO使用率异常。

[root@dm01celadm05 ~]# iostat -x -m 1

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

sdb               0.00     3.00    3.00    5.00     0.19     1.12   336.00     0.04    4.88   13.00    0.00   4.88   3.90

sdd               9.00    30.00   42.00  333.00     3.41     5.75    49.98     3.72    8.98   79.76    0.05   2.67 100.00

sde               1.00     3.00    2.00   75.00     0.44     2.05    66.09     0.05    0.62   22.00    0.05   0.62   4.80

sdf               0.00     0.00   52.00  171.00     0.77     4.65    49.79     5.23   70.39  301.37    0.15   4.48 100.00

sdi               0.00     3.00    4.00    9.00     0.25     1.44   265.85     0.06    4.69   15.25    0.00   4.62   6.00

sdj               0.00     3.00    5.00  119.00     0.00     2.08    34.35     0.01    0.12    2.00    0.04   0.11   1.40

sdh               0.00     7.00    7.00   24.00     0.44     3.80   280.23     0.06    1.81    7.71    0.08   1.81   5.60

sdg               0.00     3.00    3.00   67.00     0.19     2.34    74.04     0.03    0.47    8.67    0.10   0.43   3.00

sdk               0.00     9.00    1.00  479.00     0.06     7.36    31.67     0.07    0.15   15.00    0.11   0.12   5.70

sdl               0.00     5.00    3.00   16.00     0.19     2.30   267.79     0.03    1.63   10.00    0.06   1.63   3.10

sdc               1.00     6.00   19.00   34.00     0.51     2.57   118.83     0.07    1.38    3.74    0.06   1.38   7.30

sdm               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

sda               0.00     3.00    5.00   49.00     0.31     1.80    80.30     0.05    0.93    9.80    0.02   0.91   4.90

md4               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

md11              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

md6               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

md7               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

md8               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

md5               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

md2               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

nvme0n1           0.00     0.00 1643.00 1498.00    38.88    16.41    36.04     0.47    0.15    0.26    0.03   0.06  18.90

nvme1n1           0.00     0.00 1658.00 1671.00    37.23    15.80    32.62     0.39    0.12    0.21    0.02   0.06  18.80

nvme2n1           0.00     0.00  290.00  205.00     9.77     2.38    50.29     0.12    0.24    0.39    0.04   0.22  10.90

nvme3n1           0.00     0.00 1385.00 1377.00    24.55    12.58    27.53     0.30    0.11    0.18    0.04   0.07  19.20

可以看出,sdd 和 sdf 这两块磁盘的IO使用率为100%。同时IO延时也明显高于其他的磁盘。

 

2.3 由于Exadata上的闪存都默认配置为FlashCache,且当前环境中FlashCache为Write-Back模式。检查这块损坏的闪存卡已经缓存哪些机械磁盘的数据。

CellCLI> list griddisk detail

......

         name:                   DG_DATA_CD_03_dm01celadm05

         asmDiskGroupName:       DG_DATA

         asmDiskName:            DG_DATA_CD_03_DM01CELADM05

         asmFailGroupName:       DM01CELADM05

         availableTo:           

         cachedBy:               FD_01_dm01celadm05

         cachingPolicy:          default

         cellDisk:               CD_03_dm01celadm05

         comment:               

         creationTime:           2018-09-22T17:00:11+08:00

         diskType:               HardDisk

         errorCount:             0

         id:                     f09a1e8b-0051-4f22-8f5f-74ed61bac473

         offset:                 32M

         size:                   7.11944580078125T

         status:                 active

......

         name:                   DG_DATA_CD_05_dm01celadm05

         asmDiskGroupName:       DG_DATA

         asmDiskName:            DG_DATA_CD_05_DM01CELADM05

         asmFailGroupName:       DM01CELADM05

         availableTo:           

         cachedBy:               FD_01_dm01celadm05

         cachingPolicy:          default

         cellDisk:               CD_05_dm01celadm05

         comment:               

         creationTime:           2018-09-22T17:00:11+08:00

         diskType:               HardDisk

         errorCount:             0

         id:                     f2ee5dcc-2e3c-423e-b4a0-d478fa333f28

         offset:                 32M

         size:                   7.11944580078125T

         status:                 active

......

           name:                   DG_GRID_CD_10_dm01celadm05

           asmDiskGroupName:       DG_GRID

           asmDiskName:            DG_GRID_CD_10_DM01CELADM05

           asmFailGroupName:       DM01CELADM05

           availableTo:

           cachedBy:               "FD_02_dm01celadm05, FD_01_dm01celadm05"

           cachingPolicy:          default

           cellDisk:               CD_10_dm01celadm05

           comment:                "Cluster sdsw-dm01 diskgroup DG_GRID"

           creationTime:           2018-09-14T16:47:17+08:00

           diskType:               HardDisk

           errorCount:             0

           id:                     67f07f80-bf8a-413e-aea9-a69210a54e73

           offset:                 7.1194915771484375T

           size:                   33.546875G

           status:                 active

......

可知,CD_03_dm01celadm05、CD_05_dm01celadm05、CD_10_dm01celadm05 这三块机械磁盘的数据缓存到已经损坏的闪存卡中。

 

2.4 查询celldisk与操作系统盘符的对应关系。

CellCLI> list celldisk CD_03_dm01celadm05 detail

         name:                   CD_03_dm01celadm05

         comment:               

         creationTime:           2018-09-14T16:42:04+08:00

         deviceName:             /dev/sdd

         devicePartition:        /dev/sdd

         diskType:               HardDisk

         errorCount:             0

         freeSpace:              0

         id:                     de11eb06-f468-41d7-90b9-e57a542f0327

         interleaving:           none

         lun:                    0_3

         physicalDisk:           PKAJAV

         raidLevel:              0

         size:                   7.152252197265625T

         status:                 normal

 

CellCLI> list celldisk CD_05_dm01celadm05 detail

         name:                   CD_05_dm01celadm05

         comment:               

         creationTime:           2018-09-14T16:42:04+08:00

         deviceName:             /dev/sdf

         devicePartition:        /dev/sdf

         diskType:               HardDisk

         errorCount:             0

         freeSpace:              0

         id:                     f8446976-92aa-4c16-9deb-71deec12979d

         interleaving:           none

         lun:                    0_5

         physicalDisk:           PL0X8V

         raidLevel:              0

         size:                   7.152252197265625T

         status:                 normal

 

CellCLI> list celldisk CD_10_dm01celadm05 detail

         name:                   CD_10_dm01celadm05

         comment:               

         creationTime:           2018-09-14T16:42:05+08:00

         deviceName:             /dev/sdk

         devicePartition:        /dev/sdk

         diskType:               HardDisk

         errorCount:             0

         freeSpace:              0

         id:                     ee487ef9-52ce-48be-a980-e5edb9c8adb0

         interleaving:           none

         lun:                    0_10

         physicalDisk:           PL0SAV

         raidLevel:              0

         size:                   7.152252197265625T

         status:                 normal

 

CellCLI>

可知,闪存卡出现故障,IO受到影响的机械磁盘为:/dev/sdd 、/dev/sdf 和 /dev/sdk。损坏的闪存卡上存放的脏数据,会立即被flush出FlashCache,写入对应的机械磁盘中。所以当闪存卡出现故障后,这三块机械磁盘的IO写入量非常大。

 

2.5 故障紧急处理。为了尽量恢复业务,强制关闭了dm01cell05存储节点的存储服务(alter cell shutdown services all;),关闭了该存储服务后,业务部门反馈业务系统已经恢复正常运行。等到当前晚上,在业务空闲期,重新启动存储服务(alter cell startup services all),并且完成脏数据的flush操作。

 

2.6下面,对整个故障进行复盘。第5台存储节点中有一块闪存卡出现故障,存储管理软件会自动将FlashCache中这块闪存所存放的脏数据flush到对应的机械磁盘中。 由于脏数据比较多,导致刷脏数据时,对应的几块机械磁盘的IO使用率达到100%,IO响应时间比平时增长十几倍。这个时间点,正好是业务高峰期,数据库有大量的数据写入操作,所以业务IO出现阻塞状态。

 

3. 建议及改进

3.1 在紧急处理这个故障时,其实没必要关闭整个存储服务,而只需要将受到影响的几个griddisk置于inactive状态即可。

3.2 FlashCache的脏块flush算法还有增强的必要。存储管理软件完全可以通过监控系统的IO指标来判断出空闲期,然后在空闲期间加大脏块的flush操作,避免在FlashCache中积压大量的脏块。