디스크의 주요 로그 정보인 S.M.A.R.T. 데이터를 통해 확인 할 수 있는 정보가 어떤 것들이 있는지 찾아보려 한다.
사내 SMART 데이터 수집은 현재 진행중이므로, EDA 과정을 통한 가설 수립 및 실험 설계를 위해
Backblaze에서 제공하는 샘플 데이터를 통해 진행하였다.
(https://www.backblaze.com/b2/hard-drive-test-data.html)
(https://www.backblaze.com/blog/hard-drive-smart-stats/)
아래 5개의 항목을 주된 disk failure 를 예상하는 항목으로 사용한다(Backblaze 자체 기준)
디스크의 관리 효율화 및 비용 절감을 위한 방안을 찾는다.
특정 벤더 / 모델 / 용량에 따라 failure rate가 유난히 높은 것들이 존재한다.
-> 해당 제품을 향후 구매시에 제외한다. 중요 서비스에서 제외시킨다.
디스크 사용 기한이 증가할 수록 failure rate가 증가한다.
-> 특정 기간 사용이후에는 문제가 없는 디스크도 일괄 교체한다. (교체 및 모니터링 비용과 trade-off)
디스크 사용 기한 초기에 failure rate가 증가했다가 2,3년차에 줄어든후 다시 증가한다.
-> 초기 사용시 failure 발생에 대비해 warm-up 시동을 진행한다.
동일한 벤더 / 모델인 경우에도 제조연월에 따라 failure rate가 높은 것들이 존재한다.
-> 해당 제품을 중요 서비스에서 제외시킨다. 벤더와 계약시 협상 참고 사항으로 사용한다.
failure 발생되어 교체된 디스크가 벤더 점검후 재입고/재사용 된 디스크의 failure rate가 높다.
-> 사용했던 디스크의 재사용을 금지시킨다.
SMART 정보중 특정 항목은 failure 확률을 높은 비율로 예측 가능하다.
-> failure 예측 정보에 따라 failure 발생전에 해당 디스크를 교체한다.
## [1] 57545
2015.12.31 기준 사용 디스크수는 57543개 이다.
SMART 데이터의 샘플은 아래와 같다.
## Source: local data table [57,545 x 11]
##
## serial_number model capacityGB failure
## (fctr) (fctr) (dbl) (int)
## 1 MJ0351YNG9Z0XA Hitachi HDS5C3030ALA630 2795 0
## 2 Z305B2QN ST4000DM000 3726 0
## 3 MJ0351YNG9Z7LA Hitachi HDS5C3030ALA630 2795 0
## 4 MJ0351YNGABYAA Hitachi HDS5C3030ALA630 2795 0
## 5 WD-WMC4N2899475 WDC WD30EFRX 2795 0
## 6 PL1321LAG34XWH Hitachi HDS5C4040ALE630 3726 0
## 7 MJ1323YNG1TJ7C Hitachi HDS5C3030ALA630 2795 0
## 8 S300Z6K9 ST4000DM000 3726 0
## 9 S300Z6K8 ST4000DM000 3726 0
## 10 Z302PGH8 ST4000DM000 3726 0
## .. ... ... ... ...
## Variables not shown: smart5_reallocate (int), smart9_poweron (int),
## smart187_uncorrerror (int), smart188_commandtimeout (dbl),
## smart197_pendingcount (int), smart198_uncorrsector (int), smart9_day
## (dbl)
모델별로 가장 많이 사용하는 디스크는 ST4000DM000으로 29,024대를 사용(50.4%)
## Source: local data table [60 x 6]
##
## model capacityGB count failure_sum smart9_day_mean
## (fctr) (dbl) (int) (int) (dbl)
## 1 ST4000DM000 3726 29024 0 368.1779
## 2 HGST HMS5C4040ALE640 3726 7085 0 518.8168
## 3 Hitachi HDS5C3030ALA630 2795 4558 0 1325.1007
## 4 Hitachi HDS722020ALA330 1863 4488 0 1778.7532
## 5 HGST HMS5C4040BLE640 3726 3091 0 607.4723
## 6 Hitachi HDS5C4040ALE630 3726 2639 0 1001.6033
## 7 ST6000DX000 5589 1882 0 282.8334
## 8 WDC WD30EFRX 2795 1046 0 591.3636
## 9 Hitachi HDS723030ALA640 2795 1000 0 1483.7881
## 10 ST500LM012 HN 466 513 0 261.0984
## .. ... ... ... ... ...
## Variables not shown: prop (dbl)
용량별로 가장 많이 사용하는 디스크는 3726GB 디스크로 42,345대를 사용(73.5%)
## Source: local data table [12 x 5]
##
## capacityGB count failure_sum smart9_day_mean prop
## (dbl) (int) (int) (dbl) (dbl)
## 1 3726 42345 0 452.6721 0.7358844690
## 2 2795 6661 0 1230.5525 0.1157569122
## 3 1863 4634 0 1732.3607 0.0805310811
## 4 5589 2340 0 300.3918 0.0406652416
## 5 466 807 0 351.5290 0.0140242949
## 6 1397 224 0 2064.3064 0.0038927411
## 7 149 204 0 1448.4481 0.0035451749
## 8 298 107 0 905.6009 0.0018594790
## 9 233 101 0 842.2504 0.0017552091
## 10 7452 45 0 321.9565 0.0007820239
## 11 4658 45 0 305.3759 0.0007820239
## 12 75 32 0 1960.8698 0.0005561059
디스크 사용기한 현황을 살펴보자.
가장 오래 사용한 디스크가 3694일(10년이상), 평균적으로 650일(2년미만) 이다.
히스토그램을 보면 1~3년 정도 사용한 디스크가 대부분이다.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.417 244.300 538.400 650.100 899.300 3694.000
여러 항목들 간에 상관관계를 검토해보자. 단, 전체 SMART 항목(91개) 중에서 선별된 6개의 항목 간의 상관관계를 파악한다.
몇몇 항목이 상관관계가 높은 숫자로 나타남
5-197 = 1
5-198 = 0.6
*197-198 = 0.6
참고로 데이터는 normalize 된 데이터를 사용
(row 데이터 사용시 데이터의 편차가 커서 상관값이 구해지지 않음)
## [1] 17508669
2015년 사용한 디스크수는 총 62895개, failure 수는 1426, 연간 failure rate는 2.26%
## Source: local data table [1 x 3]
##
## disk_count fail_count failure_rate
## (int) (int) (dbl)
## 1 62895 1426 0.02267271
연간 디스크수 일별로 확인해보면 꾸준히 증가세 4만1천대에서 5만7천대로 40% 가량 증가
disk failure는 일별로 평균 3.9건 발생하며, 발생 추이는 전반적으로 약간의 감소세를 보이고 있다.
(붉은색 점선이 일평균, 파란색 선이 추이)
가설의 검증을 위해 디스크의 모델별로 실패율을 계산
그중에서 가장 많이 사용하는 모델의 실패율 현황을 살펴보았다.
실패율이 높은 모델의 경우 연간 50%가 넘는 실패율을 보인 모델도 있다. 일부 디스크의 경우 수량이 매우 적어(10개 미만) 추가적인 테스트가 필요할 것이나
특정한 모델에서 실패율이 평균(2.26) 대비 높게 나타남은 틀림이 없어 보인다.
## Source: local data table [7 x 8]
##
## model capacityGB disk_count fail_count fail_sd pod_mean
## (fctr) (dbl) (int) (int) (dbl) (dbl)
## 1 ST1500DL003 1397 24 13 0.07659137 734.6479
## 2 WDC WD1600BPVT 149 2 1 0.03729371 466.8089
## 3 ST320005XXXX 1863 2 1 0.12216944 1262.8252
## 4 WDC WD2500AAJS 233 3 1 0.03146584 622.4211
## 5 WDC WD800AAJB 75 16 5 0.03486626 1621.3679
## 6 ST250LT007 233 4 1 0.02771370 685.3977
## 7 WDC WD3200BEKX 298 14 3 0.02636146 331.6958
## Variables not shown: fail_rate (dbl), fail_se (dbl)
가설의 검증을 위해 디스크 사용연한과 실패율 간의 분석을 수행 하였다.
데이터에서는 failure 값이 0인 경우 정상, 1인 경우 실패를 의미한다. failure 값에 따른 사용기간을 boxplot로 그려본 결과 의미 있는 차이점은 파악 되지 않는다.
## Source: local data table [2 x 4]
##
## failure count smart9_day_mean smart9_day_sd
## (int) (int) (dbl) (dbl)
## 1 0 17507243 655.1580 526.1265
## 2 1 1426 759.0579 608.5475
backblaze 리포트에서 기간에 따른 failure rate가 bath tube 형태를 나타낸다고 언급하였으므로,
해당 데이터를 구간으로 나누어 어떤 변화와 차이가 있는지 확인해 본다.
## Source: local data table [14 x 3]
## Groups: failure
##
## failure smart9_day_range disk_count
## (int) (fctr) (int)
## 1 1 (0,75.5] 139
## 2 1 (75.5,150] 94
## 3 1 (150,221] 81
## 4 1 (221,288] 61
## 5 1 (288,355] 70
## 6 1 (355,423] 78
## 7 1 (423,494] 80
## 8 1 (494,579] 79
## 9 1 (579,690] 115
## 10 1 (690,828] 108
## 11 1 (828,1.04e+03] 146
## 12 1 (1.04e+03,1.39e+03] 93
## 13 1 (1.39e+03,1.62e+03] 94
## 14 1 (1.62e+03,3.69e+03] 188
알려진 바와 같이 failure 발생한 디스크 기준으로 사용기간을 확인해보니, 초기 사용기간에 발생한 failure 많게, 차차 감소하다가 다시 증가하는 형태를 보였다.
초기 사용 기간의 관리정책을 수립함에 참고가 가능할 것이다.
추가적으로 모델별, 용량별로 어떤 다른 추이를 보이는지도 확인해보자.
위쪽은 단순 카운트 기준이라서 많이 사용하는 디스크의 fail count가 크게 나타나므로 전체 디스크수 기준의 failure rate를 사용기간별로 확인해보자.