KR101948634B1 - 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법 - Google Patents

스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법 Download PDF

Info

Publication number
KR101948634B1
KR101948634B1 KR1020160151746A KR20160151746A KR101948634B1 KR 101948634 B1 KR101948634 B1 KR 101948634B1 KR 1020160151746 A KR1020160151746 A KR 1020160151746A KR 20160151746 A KR20160151746 A KR 20160151746A KR 101948634 B1 KR101948634 B1 KR 101948634B1
Authority
KR
South Korea
Prior art keywords
data
failure
prediction
classification
events
Prior art date
Application number
KR1020160151746A
Other languages
English (en)
Other versions
KR20180054992A (ko
Inventor
김영우
최훈하
최승호
박성순
김경훈
Original Assignee
(주) 글루시스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 글루시스 filed Critical (주) 글루시스
Priority to KR1020160151746A priority Critical patent/KR101948634B1/ko
Priority to PCT/KR2016/013141 priority patent/WO2018092924A1/ko
Publication of KR20180054992A publication Critical patent/KR20180054992A/ko
Application granted granted Critical
Publication of KR101948634B1 publication Critical patent/KR101948634B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법에 관한 것으로, 스마트 정보와 시스템 로그를 포함하는 데이터를 전처리하는 단계; 상기 데이터로부터 추출된 파라미터에 의해 상기 데이터의 타입을 분류하는 단계; 분류된 타입의 데이터를 네트워크에 입력 노드로서 입력하여 장애로서 학습하는 단계; 및 윈도우 큐에 있는 데이터를 주기적으로 네트워크에 입력하여 장애를 예측하는 단계를 포함하는 것을 구성적 특징으로 한다.

Description

스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법{FAILURE PREDICTION METHOD OF SYSTEM RESOURCE FOR SMART COMPUTING}
본 발명은 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법에 관한 것이다.
컴퓨터 시스템이 점차 복잡하고 성장함에 따라, 시스템에 대한 장애 대응은 더욱 중요한 사안이 되어 가고 있다. 복잡한 시스템에서 하나의 시스템 자원의 장애로 인해 전체 시스템에 장애를 유발시킬 수 있다. 이에 따라 주요 시스템 자원에 대한 모니터링과 고가용성에 대한 연구 개발은 과거부터 현재까지 활발히 진행되어왔다. 그러나, 장애 예측은 기술적 난이도, 분석적 접근 방법의 필요, 반복적/지속적인 테스트 등의 이슈로 쉽게 접근하지 못하는 기술이다(F. Salfner et al.: A survey of Online Failure Prediction Methods. ACM Comput. Surv. Vol. 42, No 3, pp. 10:1=10:42(2010).
컴퓨터 시스템의 무중단 서비스를 위해 장애를 사전에 예방할 수 있는 방법이 요구된다.
[1] F. Salfner et al.: A survey of Online Failure Prediction Methods. ACM Comput. Surv. Vol. 42, No 3, pp. 10:1=10:42(2010). [2] syslog, RFC 3164, "http://www.ietf.org/rfc/rfc3164.txt?number=3164" [3] E. Pinheiro, W.-D. Weber, and L. A. Barroso. Failure Trends in a Large Disk Drive Population. In FAST, Feb. 2007. [4] "S.M.A.R.T", https://en.wikipedia.org/wiki/S.M.A.R.T. [5] "S.M.A.R.T.", https://ko.wikipedia.org/wiki/S.M.A.R.T. [6] "List of S.M.A.R.T. attributes"http://www.cropel.com/library/smart-attribute-list.aspx [7] J Meza, Q Wu, S Kumar, O Mutlu, "Large-Scale Study of Flash Memory Failures in the Field"2015 [8] RAS logs, "Knowledge Center, http://www.ibm.com/support/knowledgecenter/SSFJTW_5.1.0/com.ibm.cluster.loadl.v5r1.load400.doc/am2mg_raslogs.htm" [9] A. Oliner and J. Stearly, "Supercomputers Say: A Study of Five System Logs,"Proc. of DSN, 2007. [10] Y. Liang, Y. Zhang, A. Sivasubramanium, R. Sahoo, J. Moreia, and M. Gupta, "Failure Logs for a Blue Gene/L [11] Y. Liang, Y. Zhang, H. Xiong, and R. Sahoo, "Adaptive Semantic Filter for Blue Gene/L Failure Log Analysis,"Workshop on SMTPS, 2007. [12] P. Gujrati, Y. Li, Z. Lan, R. Thakur, and J. White, "MetaLearning Failure [13] R. Agrawal, T. Imielinski, and A. Swami, "Association Rules between Sets of Items in Large Database,"Proc. of SIGMOD, 1993. [14] Errin W. Fulp, Glenn A. Fink, Jereme N. Haack, "Predicting Computing System Failures Using Support Vector Machines", 2008 [15] Y. Watanabe, Y. Matsumoto, "Online failure prediction in cloud datacenters", Fujitsu Sci. Tech. J, vol. 50, no. 1, pp. 66-71, 2014. [16] K. Yamanishi and Y. Maruyama. Dynamic syslog mining for network failure monitoring. In Proceedings of the 11th ACM SIGKDD, International Conference on Knowledge Discovery and Data Mining, pages 499-508, New York, NY, USA, 2005. ACM Press. [17] D. Pelleg, A. Moore. X-means : Extending with Efficient Estimation of the Number of Clusters", Proc. 17th Int'l Conf. Machine Learning, July 2000. [18] "network"https://en.wikipedia.org/wiki/Artificial_neural_network [19] SanghyukChun, "Learning 스터디 (18) Neural Network Introduction"http://sanghyukchun.github.io/74/ [20] "UNDERSTANDING CONVOLUTIONAL NEURAL NETWORKS FOR NLP"http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/ [21] Yoon Kim, "Neural Networks for Sentence Classification", 2014 [22] TensorFlow, "https://www.tensorflow.org/" [23] 개방형 문제해결 플랫폼 https://crowd.kbig.kr
본 발명에서는 시스템 장애 예측을 위한 방법과 함께 다양한 분야에 적용 가능한 장애 예측 프레임워크에 대한 설계를 제안한다.
본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법은,
스마트 정보와 시스템 로그를 포함하는 데이터를 전처리하는 단계;
상기 데이터로부터 추출된 파라미터에 의해 상기 데이터의 타입을 분류하는 단계;
분류된 타입의 데이터를 네트워크에 입력 노드로서 입력하여 장애로서 학습하는 단계; 및
윈도우 큐에 있는 데이터를 주기적으로 네트워크에 입력하여 장애를 예측하는 단계를 포함하는 것을 구성적 특징으로 한다.
본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법은 컴퓨터 시스템의 무중단 서비스를 제공할 수 있다.
본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법은 입력 값인 컴퓨터 시스템 로그(Syslog)를 문장 분류하는 전처리과정을 통해, 해당 메시지가 네트워크에 관한 메시지인지 저장 장치에 관한 메시지인지 구분할 수 있고, 따라서, 예측된 장애가 어떤 것과 연관된 장애인지 보다 정확하게 예측할 수 있다.
도1은 컴퓨터 시스템의 장애가 fault에서 failure로 변해가는 과정을 나타내는 도면이다.
도2는 온라인 장애 예측에 대한 시간을 나타내는 도면이다.
도3은 사용 기간에 따른 디스크 장애 비율을 나타내는 그래프이다.
도4는 디스크 사용률에 따른 디스크 장애 비율을 나타내는 그래프이다.
도5는 평균 온도에 따른 디스크 장애 비율을 나타내는 그래프이다.
도6은 사용 시기별 온도에 따르는 디스크 장애 비율을 나타내는 그래프이다.
도7은 쓰기 회수와 SSD 장애 사이의 관계를 나타내는 그래프이다.
도8은 SSD 수명에 따른 장애 패턴을 나타내는 그래프이다.
도9는 Blue Gene/L 시스템 레코드 시퀀스의 일 예를 나타내는 도면이다.
도10은 리눅스 시스템의 Syslog 데이터를 입력 값으로 하여 수치화한 결과의 예를 나타내는 도면이다.
도11은 로그 파일을 태그값에 따른 분포를 나타내는 그래프이다.
도12는 10개의 태그가 순서대로 윈도우로 들어올때의 변화를 나타내는 도면이다.
도13은 클라우드 데이터 센터에서 실시간 장애 예측시 단어 매칭을 통한 메시지 예시적인 분류 상태를 나타내는 도면이다.
도14는 클라우드 데이터 센터에서 실시간 장애 예측시 단어 매칭을 통한 장애 예측 학습의 예를 나타내는 도면이다.
도15는 인공 뉴런의 구조를 나타내는 도면이다.
도16은 뉴럴 네트워크의 구조를 나타내는 도면이다.
도17은 CNN 문장 분류 방법에서 컨볼루션 연산된 결과의 예이다.
도18은 CNN 문장 분류 방법에서 pooling 연산된 결과의 예이다.
도19는 이미지 분류에서 CNN 구조를 나타낸다.
도20은 문장 분류를 위한 CNN 구조를 나타낸다.
도21은 텐서플로우 예제 코드와 데이터 플로우 그래프의 예이다.
도22는 본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측을 위한 프레임워크의 전체 구성을 나타내는 도면이다.
도23은 본 발명에 따르는 학습 프레임 워크의 구성을 나타내는 도면이다.
도24는 본 발명에 따르는 예측 프레임워크의 구성을 나타내는 도면이다.
도25는 본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 프레임워크를 구성하는 클래스 관계도이다.
1. 장애 예측 개괄
가. 용어 정의
1) Failure : "정상 서비스로부터 벗어난 서비스를 제공할 때 발생하는 이벤트"로 정의된다. 또한, Failure는 인간 또는 다른 컴퓨터 시스템일 수도 있는 사용자에 의해 관찰 가능한 오류를 의미한다. 시스템 내부적으로 문제가 있는 상태이더라도, 문제가 있는 출력이 나오지 않는다면 failure 라고 하지 않는다. (아무런 출력이 없는 상태 또한 마찬가지이다.)
2) Error : "문제가 있는 상태"라는 상황은 올바른 상태에서 시스템의 상황이 예상과 다른 방향으로 흘러가는 상태를 말하며 이는 error라고 부른다. error는 이후에 failure로 이어질 수 있는 시스템 상태의 일부이다. error는 탐지된 error와 탐지되지 않은 error로 구분된다.
3) Faults : error의 근본적인 원인이다. 대부분의 경우, faults는 동작이 중단되는 시간을 발생시키며, 일단 faults가 생기면 error가 발생한다.
4) Symptom : failure를 발생시키는 것 이외에도 error는 시스템의 비정상적 행동을 유발시킨다. 이 비정상적 행동을 symptom이라 부른다.
도1은 컴퓨터 시스템의 장애가 fault에서 failure로 변해가는 과정을 나타내는 도면이다.
5) 온라인 예측(online prediction)
도2는 온라인 장애 예측에 대한 시간을 나타내는 도면으로, 현재 시각(t)에, 길이(Δtd)의 데이터 윈도우 내에서 시스템 모니터링에 의해 평가되는 현재 시스템 상태에 기반하여 장애(failure)의 발생이 약간의 시간 앞서서(lead time(Δt)) 예측된다.lead time(Δt)은 현재 시각(t)에 데이터 윈도우(Δtd)의 데이터를 이용하여 장애 예측이 수행되는 시간을 말하며, 장애에 대응하기 위해서 반드시 warning-time(
Figure 112018118053911-pat00001
)보다는 커야 한다. Δtp는 예측이 유효한 시간을 말한다. Δt동안에 예측된 장애는 예측 기간(Δtp) 이내에만 유효하다. 예측 기간(Δtp)이 너무 크면, 장애의 발생 여부는 예측할 수 있지만 정확히 언제 장애가 발생할지가 명확하지 않기 때문에 예측은 쓸모없다.
나. 평가 척도
1) 장애 예측 결과 케이스 : 표 1은 컴퓨터 시스템의 네 가지 상황에 대해 정의한다. 장애 예측은 표1의 예측 결과 중에서 예측 기간 이내에 true positive(TP)만을 예측하는 것이다. 경고는 발생했지만, 실제로 장애가 일어나지 않는다면, 이것을 false positive(FP)라 한다. 만약 발생한 장애를 예측하지 못했다면, false negative(FN)라 부른다. 장애가 발생하지도 않았고, 아무런 경고를 하지 않는 경우를 true negative(TN)라 부른다.
True Failure True Non-failure Sum
장애를 예측함
(장애 경고)
true positive (TP) (correct warning) false positive (FP) positives
(false warning)
positives
(POS)
장애를 예측하지 못함
(장애 경고 없음)
false negative (FN)
(missing warning)
true negative(TN)
(correctly no warning)
negatives
(NEG)
Sum failures(F) non-failures(NF) total(N)
2) 평가 척도 : 평가 척도는 표1을 기반으로 제시한다. 표2에 제시된 precision과 recall은 장애 예측 분야에서 자주 이용되는 평가 척도이다.
Name of the metric Formula Other names
Precision
Figure 112018118053911-pat00002
Confidence
Positive predictive value
Recall
True positive rate
Figure 112018118053911-pat00003
Support
Sensitivity
Statistical power
False positive rate
Figure 112018118053911-pat00004
Fall-out
Specificity
Figure 112018118053911-pat00005
True negative rate
False negative rate
Figure 112018118053911-pat00006
1 - recall
Negative predictive value
Figure 112018118053911-pat00007
False positive error rate
Figure 112018118053911-pat00008
1 - precision
Accuracy
Figure 112018118053911-pat00009
Odds ratio
Figure 112018118053911-pat00010
하지만, precision과 recall은 true negative(TN)을 고려하지 않는다는 문제점이 있다. 그렇기 때문에 표2에 나타난 false positive(FP), specificity, negative, predictive value, accuracy와 같은 척도를 precision, recall과 함께 사용한다. 장애는 빈번히 발생하는 이벤트가 아니기 때문에 accuracy는 장애 예측에서 적절한 척도로 여겨지지 않는다. 장애 예측 시스템에서 true negative(TN)는 고려해야한다. 예를 들어, 같은 단위 시간 동안, 두 개의 장애 예측 알고리즘이 같은 TP, FP, FN을 출력했다면, 두 알고리즘의 precision, recall은 같을 것이다. 그러나, 한 알고리즘은 1초에 한번 예측했고, 두 번째 알고리즘은 10초에 한번 예측을 했다면, 두 번째 알고리즘의 성능이 더 좋다고 평가해야할 것이다. 이러한 이유로 FN을 고려한 성능척도가 필요하다.
2. 관련 연구
2.1 Syslog
Syslog는 RFC 3164(syslog, RFC 3164, http://www.ietf.org/rfc/rfc3164.txt?number=3164)에 정의되어 있는 표준 프로토콜이다. Syslog는 다양한 어플리케이션, 장치 드라이버 등 시스템의 전반적인 메시지를 생성, 저장하여 다양한 분석이 가능하도록 제공한다. Syslog는 시스템의 관리, 보안 외에도 메일, 예약 작업등 일반적인 알림도 제공한다. Syslog는 PC 외에도 프린터나 라우터 등 다양한 플랫폼을 지원하며, 이런 이유로 Syslog는 중앙 저장소에 다양한 플랫폼에서 나오는 로그들을 저장하는데 사용되기도 한다. Syslog에서는 메시지를 생성하는 주체(facility)에 따라 auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0, local1, ..., local7로 나뉜다. 그리고 로그 메시지의 우선순위 혹은 심각성(severity)에 따라 emergency, alert, critical, error, warning, notice, info, debug로 나뉜다. 간단한 설정으로 기준 주체, 심각성을 변경하여 원하는 로그 정책으로 변경할 수 있고, 이 로그들을 쉽게 원격지에 전송할 수 있다. Syslog 시스템에 따라 사용되는 로깅(logging) 시스템이 다를 수 있으나, 프로토콜 표준이기 때문에 전반적으로 비슷하다.
2.2 DISK, SSD 장애와 SMART attributes
가. SMART Attributes
나. HDD 장애 관련 논문인 "Failure Trends in a Large Disk Drive Population"는 2007년 구글이 발표한 논문으로 디스크 장애의 원인과 영향을 주는 요인들에 대해 분석하였다. 이전의 디스크 장애 분석연구들은 실제 환경이 아닌 인위적인 환경에서의 연구였다. 구글은 실제 데이터센터에서 디스크 장애에 대한 데이터를 수집하고 분석하였다. 분석한 파라미터들로는 디스크의 사용기간, 온도, SMART Attribute가 있다.
1) 사용 기간에 따른 분석 : 도3은 사용 기간에 따른 디스크 장애 비율을 나타내었다. 3, 4년 정도 경과한 디스크의 경우 연식(age)보다는 제조사와 모델의 영향을 더 많이 받았다. 3개월, 6개월, 1년 된 디스크의 경우에는 초기사망현상(infant mortality phenomena)이 발생하였다. 제조사, 모델, 그리고 제조 장소와 일자에 따라 장애 비율이 달라진다.
해당 논문에서는 100% 사용(Utilization)의 기준이 애매하기 때문에 Read/Write 대역폭(bandwidth)의 주 단위 평균을 측정하여 이용하였다. 또한, 사용률 25% 이하일 경우를 Low, 50 ~ 75%인 경우를 Medium, 75% 이상인 경우를 High로 구분하였다. 도4는 디스크 사용률에 따른 디스크 장애 비율을 나타낸다. 높은 사용률이 높은 장애율을 나타낼 것이라 예상했지만 아주 오래된 디스크나 아주 새것인 디스크에 대해서만 이러한 경향이 나타났다. 3년이 된 디스크의 경우 정반대의 경향을 보였다. 이에 대한 설명으로 fittest theory를 이야기한다. 높은 사용률에 관련된 장애들은 디스크가 사용된지 얼마 되지 않았을 때, 더 큰 영향을 주기 때문에 이미 초기 사망 시기(infant mortality phase)를 지난 디스크들은 사용률에 민감하지 않다. 이러한 고정 관념의 두 번째 이유로는 디스크 제조사들이 새 디스크에 대한 부하를 주어 장애와 사용률의 상관관계를 파악하기 때문이다. 결론적으로 생각보다는 사용률과 장애의 상관관계가 낮다는 것을 알 수 있다.
온도는 디스크 장애와 관련된 가장 중요한 요소 중 하나로 알려져 있으며, 이전 연구들에서는 15℃ 이하일 때 고장률이 거의 두 배가 된다고 알려져 있다. 해당 논문에서는 주기적으로 스마트 정보를 수집해 온도를 측정하였다. 첫 번째로, 관측 기간 동안의 평균온도와 장애의 상관관계를 분석하였다. 도5에 도시된 바와 같이 온도가 증가할 때, 장애가 증가하지는 않는다. 낮은 온도 구간이 높은 장애 비율과 연관이 있으며, 온도가 아주 높은 구간에서는 반대의 경향을 보인다.
2) 온도에 따른 분석 : 두 번째로, 사용 기간별로 평균 온도에 따른 디스크 장애 비율을 분석하였다. 도6에 도시된 바와 같이, 온도가 중간쯤 되는 구간에서는 장애 비율이 낮다. 3, 4년 된 디스크의 경우 높은 온도에서 높은 장애 비율을 보인다. 온도가 낮거나 중간쯤 되는 구간에서는 온도가 낮을수록 장애율이 높다. 결론적으로 온도가 보통인 경우에는 장애율은 온도보다는 다른 요소에 더 영향을 받는다는 것을 알 수 있다.
3) 스마트 attributes와의 관계 분석 : 스마크 attributes와 디스크 장애에 대한 관계를 분석하였다. 표3에 기재된 바와 같이, 디스크 장애와 연관이 있는 스마트 attributes는 Scan error, Reallocation counts, Offline reallocation, Probational, Seek errors, CRC errors 등이 있다(List of S.M.A.R.T. attributes, http://www.cropel.com/library/smart-attribute-list.aspx).
SMART Attributes Name ID 설명
Scan Error 198 섹터에 읽기/쓰기 시도 시 고칠 수 없는 에러의 수, 디스크의 표면이나 기계적 결함을 나타냄. 1번 이상 발생한 경우 에러 확률이 10배 이상
Reallocation Counts 196 Sector remapping이 일어난 수(remapping 성공 실패 모두 카운팅), 하나라도 있다면 에러 확률이 10배 이상
Offline Reallocation 05 재할당이 일어난 회수, bad sector의 수를 의미. 기대 수명 측정에 이용되며, 성능에도 영향을 끼침. 하나라도 있다면 에러 확률이 21배 이상
Probational 197 읽기에 실패해 불안정하다고 판단된 섹터의 수, 결국 read에 성공하면 이 수치는 감소한다. 읽기 실패시 바로 remapping 하지 않고 쓰기(write)시 remapping, 만약 쓰기가 성공하면 정상 섹터라고 판단한다. 하지만, 이 경우에 성공하더라도 조금 시간이 지나면 fail이 나게 된다.
Seek Errors 07 헤드의 seek error를 의미. 헤드를 위치시키는 기계적 결함이 있을 때, 발생한다. 벤더에 따라 구조가 많이 다르고, 의미가 없는 경우도 있다.
CRC Errors 199 데이터 전송 케이블에 문제가 있는 경우이다.
나. SSD 장애 관련 논문인 Meza, Q Wu, S Kumar, O Mutlu의 "A large-Scale Study of Flash Memory Failures in the Field", 2015.에서는 페이스북 서버에 있는 여러 회사들의 SSD를 이용하여, SSD(Solid State Drive)에서 운영체제로 보고된 장애에 대한 원인을 통계적으로 분석하였다. 아래에서 자세한 분석 방식과 분석 결과로 제시한 여러 요인들을 설명한다. 마지막으로 해당 논문에서 제시한 장애 원인을 통해 유추한, 장애와 관련 있는 SMART(Self-Monitoring, Analysis and Reporting Technology) 속성들을 제시한다.
1) 분석 방식 : SSD에서 발생하는 장애는 발생한 크기가 작으면 내부에 있는 컨트롤러의 도움을 받아 수정된다. 하지만 일정 크기 이상이 되면 운영체제의 도움을 받아야 해당 오류를 수정 할 수 있다. 해당 논문에서는 운영체제의 도움을 받아야 하는(운영체제에 보고해야 하는) 오류들을 기준으로 원인을 분석하였다. 우선 분석을 위해 SSD를 용량, 사용한 기간, 쓰여진/읽혀진 데이터 양 등의 기준으로 각각을 서로 다른 플랫폼으로 분류하였다. 도7에 도시된 바와 같이, 분류된 각각의 플랫폼 내에서 원인으로 추정되는 것들을 나타내는 값들(에러에 대한 지표), 예를 들어 SSD에 여태까지 쓰여진 데이터 같은 값을 기준으로 플랫폼 내의 SSD들을 그룹화한다. 마지막으로 아래 그림과 같이 에러 발생 비율과 해당 지표(에러 원인)를 그래프로 시각화하여 통계적으로 어떤 지표가 에러와 연관되어 있는지 분석한다.
2) 분석 결과 : SSD 장애는 SSD에 처음 사용할 때부터 얼마나 지워지고 쓰였는지(플래시 메모리 사용량)에 비례해서 발생하였다. 또한, SSD 수명의 관점에서 SSD 장애 발생 비율은 도8의 라이프 싸이클 장애 패턴과 같은 경향으로 변하였다. 초기 장애(early failure) 구간에서는 이례적으로 반비례하는 구간이 있는데, 이것은 SSD 내부에서 자체적으로 오류가 빈번하게 발생하는 불량한 셀(cell)들은 소거하여 전체적인 장애 비율이 감소하는 구간이다. 해당 논문에서는 여러 원인들을 분석한 결과 SSD 레지스터에서 읽어들인 쓰여진 데이터(Data Written), 삭제된 블록 (Erased Block), 복사된 페이지(Copied Page), DRAM 버퍼 사용량(DRAM Buffer Usage)이 SSD 수명과 연관있는 지표로서 장애 발생률을 예측하는 지표로서 활용될 수 있다고 분석하였다. 또한, 온도, 버스 전력 소비등으로 온도가 상승했을 때 자체적으로 활동을 제한하여 오류를 방지하지 못하는 SSD에 한해, 에러 발생에 관한 지표가 될 수 있다고 예상하였다.
3) SSD 장애와 관련 있는 SMART attributes : 위의 논문을 통해 여러 SMART 속성을 분석한 결과 표4와 같은 속성들을 SSD 장애와 관련 있는 속성으로 분류할 수 있었다.
SMART Attributes Name ID 설명
Erase/Program cycles 100 지우고/프로그래밍하는 Cycle의 횟수
SSD Program Fail Count 171,181 플래시 메모리에 write를 실패한 수(raw value는 failure의 실제 수를 나타낸다.)
SSD Erase Fail Count 172,182 플래시 메모리에 erase를 실패한 수
Erase Fail Count 176 Erase 명령어에 실패한 수
SSD Wear Leveling Count 173 각 블록들의 Erase한 횟수 중 가장 큰 값
Media Wearout indicator 233 SSD의 남은 수명, Intel SSD의 경우 100에서 점차 1로 감소
Total LBAs Written 241 쓰여진 LBA의 수
2.3 장애 예측을 개선하기 위한 시스템 로그 전처리
본 발명은 슈퍼컴퓨터 Cray XT4와, IBM Blue Gene/L기반으로 구현된 장애 예측 시스템에 사용되는 입력 값인 시스템 RAS(Reliability(신뢰성), Availability(가용성), Serviceability(편리성)) 로그를 전처리하여 예측률과 압축률을 개선하는 방법을 제공한다.
가장 먼저, 두 슈퍼컴퓨터에서 발생되는 시스템 RAS 로그를 정리하는데, Blue Gene/L에서 RAS 로그는 각 이벤트에 대한 심각도(severity) 레벨을 제공하지만, 일부 치명적인 실패 이벤트의 심각도가 낮거나, 심각도가 높은 것이 실제로 치명적이지 않았다. 이를 확인하여 치명적인 실패 목록에서 제외하거나 포함하여 총 83개의 치명적 이벤트를 확인하였다. CF(cache failure), DRF(DDR register failure), IF(interrupt failure), PHF(power hardware failure), LF(link failure)등과 같은 실패 이벤트가 포함되었다. Cray XT4의 RAS 로그의 경우 각 이벤트에 대한 심각도 레벨을 제공하지 않아, ORNL(Oak Ridge National Laboratory) 시스템 관리자와 협의하여 10가지의 치명적 이벤트 LFF(link failure fault), NHF(nod hearbeat fault), NFF(nod failed fault), SFF(service failed fault), SHF(seastar hearbeat fault), NHC(node health check fault), VHC(YERTY health check fault), RXM(RX messge CRC error), RXH(RX message head CRC error), L0V(L0 valtage fault)를 확인하였다.
본 발명에 따르는 시스템 RAS 로그 전처리는 이벤트 분류(Event Categorization), 이벤트 필터링(Event Filtering), 상관관계 필터링(Causality-related Filtering) 단계를 포함한다.
가.이벤트 분류 : 이벤트 분류에서는 정규 표현식으로 구문을 분석하여 RAS 이벤트를 분류한다. 만약, 비슷한 구문을 갖는 이벤트가 둘 이상일 때, 데이터 분석을 위해 하나의 범주로 묶인다.
이벤트를 분류하는데에는 계층적 접근방식을 사용하였으며, Cray XT의 경우는 CRMS Event Type 필드를 기준으로 9개의 상위 레벨 범주로 분류되고, 하위 레벨에는 52개의 이벤트 종류로 나누어진다. Blue Gene/L의 경우는 Facility 필드 기준으로 10개의 상위 레벨 범주로 분류되며, 하위 레벨에는 293개의 이벤트 종류로 나누었다.
추가적으로, 기계학습 목적으로 치명적 이벤트 그룹과 비 치명적 이벤트 그룹으로 나누었다. 비 치명적 이벤트 그룹은 시스템 혹은 애플리케이션에서 치명적인 crash가 발생할 동안의 시스템 경고, 정보 메시지들로 묶어지고, 치명적 이벤트 그룹은 앞서 설명한 Cray XT4는 10가지, Blue Gene/L은 83가지의 치명적 이벤트로 묶어진다.
나.이벤트 필터링 : 중복된 이벤트 레코드를 삭제하는 작업이며, 크게 어느 레코드가 중복인가? 어느 정보를 유지해야하나? 이 두 가지 질문에 대해 해결한다.
먼저 첫 번째 질문은, 레코드 중복을 제거하기 위해 2가지 관점으로 본다.
첫 번째로는 시간적 관점으로, 시스템이 비정상을 감지하면, 실패가 발생하기 전의 경고, 정보 메시지를 유지하는데, 이때 근본 문제가 해결되지 않은 실패의 비슷한 RAS로그가 여러 번 다시 나타날 수 있다. 이를 시간적 필터링(temporal filtering)으로 T초 내에 동일한 위치에서 보고되는 이벤트들 중 같은 종류를 제거한다.
두 번째로는 공간적 관점으로, 규모가 큰 시스템에는 많은 병행 애플리케이션이 있어 여러 노드가 같이 동작되는데, 이때, 많은 같은 종류의 경고, 실패 이벤트가 다른 위치에서 발생 될 수 있다. 이를 공간적 필터링(spatial filtering)으로 T초 내에 다른 위치에서 발생한 비슷한 이벤트를 제거한다.[9-12]
두 번째 질문에는, 위 필터링을 하는 동안에 어느 정보가 남겨지고 지워져야 하는 것이다. 기존의 필터링 방법은 중복 레코드를 삭제하게 위해 첫 번째 레코드를 유지하고 이후 레코드를 제거한다. 이것은 이벤트 사이의 상관관계를 분석하는데 중요한 정보가 제거 될 수 있다. 이를 해결하기 위해 첫 질문에 언급한 필터링들은 개선되었는데, 중복 레코드를 지울 때, 이벤트 시작시간, 마지막 시간, 그 사이에 발생한 횟수, 이벤트 발생 위치 정보를 기록한다.
다. 상관관계 필터링 : 여러 서브시스템에 다양한 양식으로 실패가 보고되는데, 이들은 구문이 다르지만 같은 의미를 가질 수 있다. 이를 본 발명에서는 의미 중복(semantic redundancy)라 하며, 의미중복은 기존의 필터링 방법과, 이전 항목에 설명한 이벤트 필터링으로는 제거할 수 없다. 이것은 실패 이벤트 사이 시간의 의미가 낮아질 수 있고, 또한, 문제의 근원이 숨겨져 잘못된 해석결과로 인해 결정적으로 문제를 해결할 수가 없다. 한 예로, 도9의 레코드가 전술한 시각적 필터링, 공간적 필터링을 거치게 되면, #786429와 #786438는 서로 독립된 형태로 유지되고, 더 나쁜 경우에는 시각적 필터링, 공간적 필터링의 임계값(T)이 900초일 경우 모든 LF는 #786421만 유지되고 나머지는 삭제될 것이다. 이때, LF 레코드의 마지막 시간은 유지되지 않아 예측 단계에서 #786429와 #786438은 #786421와 멀리 떨어진 레코드로 판단하기 때문에 좋지 않은 결과를 초래한다. 이를 해결하기 위해 본 발명에서는 선형적 연관 규칙 마이닝(Apriori association rule mining)을 사용한다.
선형적 연관 규칙 마이닝은 공동적으로 발생하는 치명적 이벤트의 세트를 식별하고 이들을 필터링한다.
Figure 112018118053911-pat00011
Figure 112018118053911-pat00012
을 각각 치명적 이벤트 A와 B 사이의 시작, 마지막 시간이라 정의하고, Wf는 치명적 이벤트 A와 B의 사이 간격이라 정의할 때,
만약
Figure 112018118053911-pat00013
식이 성립하면 A와 B는 한 트랜잭션으로 간주한다.
즉,
Figure 112018118053911-pat00014
Figure 112018118053911-pat00015
식이 모두 성립한다면 치명적 이벤트 A와 B는 하나의 트랜잭션으로 간주한다.
n이 트랜잭션, m이 A 이벤트를 포함하는 트랜잭션, r이 이벤트 A, B를 포함하는 트랜잭션이라 가정할 때 ,
Figure 112018118053911-pat00016
,
Figure 112018118053911-pat00017
이며, 두 이벤트가 공동으로 발생하는지 여부를 판단하는 식은
Figure 112018118053911-pat00018
이 되고,
Figure 112018118053911-pat00019
는 A가 발생할 때 B가 발생할 확률이 된다.
모든 트랜잭션에서 A와 B사이의 상관관계를 측정하는 식은
Figure 112018118053911-pat00020
이며, 공동적으로 발생한 이벤트 A, B에 대해서
Figure 112018118053911-pat00021
의 값이 지정한 임계값보다 크면 A와 B는 우연의 일치가 아니라는 것을 파악하고, A와 B는 상관관계가 있음을 인지한다. 상관관계 필터링의 조건은
Figure 112018118053911-pat00022
가 성립하거나
Figure 112018118053911-pat00023
Figure 112018118053911-pat00024
가 성립하거나
Figure 112018118053911-pat00025
Figure 112018118053911-pat00026
가 성립한다면 A와 B는 상관관계가 있다. 한 예로 #786421와 #786438은 상관관계 필터링에 의해 이 둘은 서로 상관관계가 있음을 알 수 있다.
2.4 Support Vector Machines를 사용하여 컴퓨팅 시스템 장애 예측
Errin W. Fulp, Glenn A. Fink, Jereme N. Haack의 "Predicting Computing System Failures Using Support Vector Machines", 2008.에서는 linux 시스템 log인 Syslog 데이터를 입력 값으로 하여, 적절히 수치화 및 그룹화, 벡터화한 후 SVM(Support Vector Machines)을 이용해 fail, non-fail을 분석한 과정 및 결과를 제시하고 있다.
가.수치화 : Syslog에 대한 특성을 나타내는 Facility와 발생한 Syslog의 심각성, 타입 등의 관한 정보인 Severity(Level)을 이용해서 Tag값을 만들어내는 과정이다. 도10에 표시된 바와 같이, 만들어진 Tag값은 숫자가 낮을수록 중요한 메시지임을 의미한다.
나.그룹화(Encoding) : Tag 범위별로 Syslog를 그룹화하는 과정이다. 도11의 Tag의 분포를 기준으로 그룹화할 범위를 정하였다. 예를 들어 Tag가 0부터 50까지의 값은 1로 변환하고 50부터 100까지는 2, 100부터 150은 3으로 그룹화한다.
다. 벡터화 : 이 과정은 tag값에 따라 그룹화(Encoding)된 값을 하나씩 특정 윈도우 사이즈의 큐에 넣고, 윈도우 안에서 그룹화된 값의 순서(Sequence) 별로 특정 값(f)을 부여한 후, 마지막으로 임의의 범위에서의 특정 값(f)들을 모아 각 값들의 발생 횟수를 벡터로 만들어 SVM의 입력 값으로 사용한다.
예를 들어 도12는 Syslog 10개의 메시지를 이용해 윈도우 사이즈를 5로 하고, 윈도우 사이즈 안에서의 순서(Sequence)에 따라 특정 값으로 얻어진 239, 233, 215, 160를 (239:2, 233:1, 215:2, 160:1)라는 벡터로 변환하여 SVM을 학습시킨다. 도12의 빨간 화살표는 윈도우 큐 안에서 메시지가 하나씩 들어올 때마다 윈도우 큐에서의 변화를 표현한 것이다.
라. SVM 학습 : 벡터화된 입력 값들을 토대로 어떤 순서(Sequence)의 Syslog가 특정 빈도로 발생하면 오류인지 아닌지를 학습한다. 벡터 하나를 이루는 메시지 수가 많을수록 예측 확률이 올라갔다. 이는 더 많은 데이터가 있으면 예측률이 올라감을 의미한다.
2.5 클라우드 데이터센터에서의 온라인 장애 예측]
Y. Watanabe, Y. Matsumoto의 논문 "Online failure prediction in cloud datacenters", Fujitsu Sci. Tech. J, vol. 50, no. 1, pp. 66-71, 2014.은 클라우드 데이터 센터에서 실시간 장애 예측에 대한 방법을 제시한다. 이 논문에서 언급하는 클라우드 데이터 센터에서의 장애 예측의 문제는 다음과 같다. 첫째, 다양한 종류의 하드웨어와 소프트웨어들로 인해 메시지 형태가 통일되지 않아 메시지 분류가 어렵다. 둘째, 네트워크 지연과 같은 문제 때문에 메시지의 순서가 보장되지 않는다. 이 문제로 인해 메시지에 대한 학습이 쉽지 않다. 셋째, 하드웨어들은 다른 장비로 언제든지 교체될 수 있고, 소프트웨어들이 업그레이드되는 일은 빈번히 발생하므로, 학습에 대한 정보가 노후화되는 문제가 있다. 이러한 문제를 해결하기 위해서 이 논문에서는 단어 매칭을 통해 메시지 분류를 통한 장애 예측 방법을 제안한다.
가. 메시지 분류 : 메시지를 단어 단위로 쪼갠 뒤, 메시지 사전(message dictionary)에 존재하는 메시지들 중 가장 많은 수의 단어가 일치하는 메시지로 분류된다.
나. 학습 : 시스템에서 발생하는 로그들이 메시지 사전에 있던 단어들과 매칭을 통해 메시지 타입을 분류한다. 타입이 정해진 메시지는 메시지 윈도우에 쌓이게 되며 메시지 윈도우는 계속해서 업데이트 된다. 도14에 도시된 바와 같이, 만약 장애 A가 발생하면 그 순간 윈도우 내에 있는 메시지 타입들은 장애 A에 대한 징후로 메시지 패턴 사전(Message pattern dictionary)에 저장된다. 임의의 장애 T에 대한 학습은 베이지안 추론을 바탕으로 학습되며, 장애 T에 대한 발생 확률은 다음과 같다.
Figure 112018118053911-pat00027
다. 장애 T가 발생하면 메시지 패턴 사전에는 메시지 패턴 P가 발생한 시각과 장애 T가 발생한 시간의 차이와 Failure T의 발생 확률이 함께 저장된다.
라.예측 : 시스템에서 발생하는 로그들은 학습 때와 마찬가지로 타입이 결정되고 윈도우 내의 메시지 타입들은 메시지 패턴을 이룬다. 이 메시지 패턴들은 실시간으로 장애들의 발생 확률을 계산한다. 장애의 확률이 정의된 임계값을 초과하면 장애의 징후로 판단하고 시스템 관리자에게 경고한다.
마.세 가지 장점
1) 메시지 형태에 독립적으로 메시지의 분류가 가능하다. 클라우드 환경은 다양한 형태의 메시지들을 만들어낸다. 메시지들을 구성하는 단어들의 일치성을 이용하므로 다른 형태의 메시지들도 분류가 가능하다. 의미를 해석하는 과정 없이 자동적으로 분류가 가능하며, 메시지 사전을 사람이 조정할 수고가 없어 편리하다.
2) 메시지 패턴은 메시지 발생 순서에 독립적으로 생성이 가능하다. 클라우드 환경에서는 메시지들의 순서가 보장되지 않는다. 메시지 타입들이 집합을 이루는 메시지들의 패턴을 이용하므로 메시지 순서가 맞지 않더라도 학습과 예측 결과에 영향이 없다.
3) 메시지 패턴을 실시간으로 학습할 수 있다. 입력되는 메시지는 실시간으로 메시지 패턴을 생성하고 장애 관련 징후가 학습되고 탐지된다. Batch 형태로 학습되는 일반적인 패턴 학습과 달리 시스템상의 어떠한 환경 변화도 즉시 수용하고 업데이트 할 수 잇다. 이를 통해 학습의 최선의 결과가 장애 예측에 이용될 수 있다.
2.6 네트워크 장애 모니터링을 위한 Dynamic Syslog Mining
K. Yamanishi 및 Y. Maruyama의 논문 "Dynamic syslog mining for network failure monitoring."은 Hidden Markov Model을 이용한 장애 예측 방법에 대해 논하고 있다.
가. Markov Model : Markov Model은 NLP분야에서 많이 이용되는 이론으로, 과거의 있었던 일들을 바탕으로 확률을 계산하여 미래에 어떤 일이 발생할 지에 대한 확률을 구하는 방법이다. 예를 들어 과거의 데이터를 통해 오늘 날씨를 통해 내일 어떤 날씨가 발생할 확률을 알고 있다고 가정하자. 또한, 오늘 날씨(current state)는 어제 날씨(previous state)에만 영향을 받는다고 가정하자. 그렇다면 각 단계의 조건부 확률만을 통해 미래의 날씨를 예측할 수 있다.
나.Hidden Markov Model : Hidden Markov Model은 각 state(예를 들어, 날씨)를 모를 때(Hidden 상태, 숨겨져 있을 때) 각 state가 내보내는 symbol(날씨의 특징)을 보고 state가 변이할 확률과 state의 sequence를 추측하는 것이다.(sunny->rainy로 변이할 확률을 추측, sunny->rainy->...->cloudy 와 같은 시퀀스가 나타날 확률을 추측)
다.Dynamic Syslog Mining for Network Failure Monitoring : 이 방법에서는 장애 예측을 위해 Syslog를 이용한다. Syslog는 time series를 구성하기 때문에 각 이벤트들에 대한 time correlation을 고려해야한다. 이것을 Syslog behavior라고 정의하고, Syslog behavior는 dynamic model을 이용해 실시간으로 학습이 이루어진다. Dynamic Syslog behavior는 finite mixture of HMMs를 이용해 표현되고 이를 HMM mixture라고 부른다. HMM mixture의 파라미터들은 on-line discounting learning algorithm을 이용해 동적으로 학습된다. on-line discounting learning algorithm은 옛 데이터를 잊어 가는 방식의 모델이다. HMM mixture는 여러개의 HMM으로 구성되는데 mixture 요소의 적절한 수는 dynamic model selection 이론에 기반 되어 선택 되어 진다. 또한 failure를 경고하기 위해 변칙 점수를 매기는데 universal test statistics에 기반하여 계산되어진다. 변칙 점수는 실시간으로 계산되어지며 threshold를 초과되면 경고를 알린다.
2.7 K-means와 X-means
본 발명에서는, X-means 클러스터링을 이용하여 raw data의 타입을 분류한다.
가. K-means 클러스터링 : K-means 클러스터링은 각 데이터의 클래스를 정해주지 않은 상태에서 학습을 시키는 비지도 학습 알고리즘의 하나이다. 데이터의 분류(classification)를 위해서는 각 데이터들의 label이 필요하지만, 데이터의 label이나 category가 무엇인지 알 수 없는 경우가 많기 때문에 주어진 데이터들을 클러스터링하여 데이터들의 타입을 분류한다. K-means 클러스터링은 가까운 거리에 있는 데이터들은 같은 클러스터에 속한다고 정의하고 다음과 같은 알고리즘을 통해 클러스터링을 수행한다.
1) 정해진 k의 수만큼 k개의 점을 임의로 지정한다. 이 점이 클러스터의 중심이 된다.
2) 각 data와 각 클러스터의 중심 간의 유클리드 거리를 계산하여, 속하는 클러스터를 지정한다.
3) 클러스터의 중심을 무게중심 값으로 조정한다.
4) 2번과 3번을 반복한다. 클러스터 중심이 더 이상 변하지 않는다면, 반복을 멈춘다.
나. X-means 클러스터링 : K-means 클러스터링의 단점은 클러스터의 개수를 지정해주어야 한다는 점이다. X-means 클러스터링은 이 문제를 극복하기 위한 K-means 클러스터링의 보완된 형태이다. X-means 클러스터링은 BIC(Bayesian information criterion) score를 이용한다. 처음에는 k=2 인 K-means 클러스터링을 수행하며, 각 클러스터는 재귀적으로 k=2인 K-means 클러스터링을 수행한다. 이때, K-means를 수행하기 전과 수행한 후의 BIC score를 비교하여 높은 상태를 유지한다.
2.8 Neural Network, CNN(Convolution Neural Network) Sentence Classification
시스템 자원의 장애 예측 연구에서는 장애 예측을 위해서, 최근 머신러닝 분야에서 상당한 성과를 내고 있는 Neural Network와 문장 분류에서 괄목한 만한 성과를 낸 CNN(Convolutional Neural Network)을 활용하였다. Neural Network는 전 처리된 데이터를 이용해 장애를 예측하는데 이용하고자 한다. 또한, Syslog 메시지의 의미를 파악해 데이터로 이용하기 위해서 CNN Sentence Classification을 이용하고자 한다.
가.Neural Network[18,19]
1)개념 : 인공 신경망이라 불리는 이 기계 학습 모델은 인간 뇌 안의 뉴런을 모방한, 인공 뉴런을 여러 계층으로 쌓아 학습시킴으로써 종전에 해결하지 못했던, 이미지 인식, 자연어 처리 등에서 획기적인 성과를 이루었다. 도15 및 도16은 하나의 인공 뉴런이 동작하는 과정을 나타낸 것이다. 이러한 인공 뉴런(이하 뉴런)은 머신 러닝에서 보통 뉴런과 구분 없이 사용된다. 각 뉴런은 여러 입력 값을 가중치 값에 곱해서 더한 후 activation function에 인풋으로 주어진다. activation function의 값이 한계 값(threshold)을 초과하면 해당 뉴런이 활성화되어(activate) 아웃풋을 내놓는다. 하나의 뉴런을 통해 간단하게 yes/no를 학습할 수 있는 것이다. 이러한 뉴런들을 여러 계층으로 쌓아 아래와 같이 네트워크를 형성하면 Neural Network라고 할 수 있다. 해당 머신 러닝 알고리즘을 학습하면서 Neural Network는 각 뉴런의 입력으로 들어가는 값에 곱할 가중치 값들을 학습한다. 가중치 값을 학습함으로써 어떤 뉴런의 결과가 활성화될지 여부가 조정되는 것이다. 결과적으로 특정 Input 노드의 값에 따라 특정 Output 노드가 활성화되도록 학습하는 것이다.
나. CNN 문장 분류(Convolutional Neural Networks for Sentence Classification)
1) CNN 개념 : CNN은 기본적으로 activate 함수를 가지고 있는 convolution 계층이다. 또한 convolution 후에 pooling layer를 적용하여 효율적으로 연산을 수행한다. convolution 연산이란, 도17의 예시와 같이 입력 값으로 들어온 행렬의 각 부분에 대해 필터 행렬을 곱하는 연산을 수행하는 것이다. 필터의 값에 따라 각 부분을 특징을 추출해 낼 수 있다. 예를 들어 이미지 처리에서는 특정 필터를 적용한 결과로서 경계선만을 찾아내거나, 원본 사진을 흐릿하게 만들 수 있다. CNN을 학습시킨다는 것은 이러한 필터의 값을 학습한다는 것이다. pooling 연산이란 입력 값에 대해서 convolution 연산이 적용된 결과에 대해서 부 표본을 만드는 것이다. 예를 들어 도18의 max 연산에서는 왼쪽의 convolution된 결과의 각 부분에서 최대값을 추출함으로써, convolution연산으로 추출된 결과에서 가장 특징적인 부분을 부 표본으로 생성하는 것이다. 결과적으로 이미지 분류에서의 CNN 구조를 예로 들면, 도19와 같은 구조를 이룬다. 첫 번째 계층의 Convolution으로 픽셀로부터 경계선을 감지하고, 두 번째 Pooling 계층으로부터 모양을 추려내고, 세 번째 계층의 Convolution에서는 모양으로부터 특정한 특징(high level feature)을 감지하고, 다음으로 Pooling 계층에서 중요한 특징들을 추려내어, 마지막 Fully Connected 계층(Neural Network)에서 분류에 이용한다.
2) Word2Vec : 자연어 처리를 위해 단어를 벡터로 표현하는 것을 말한다. 단어를 벡터로 변환하기 위해 구글 뉴스의 1천억 개의 단어를 2가지 구조의 Neural Network로 학습하였으며, 학습된 모델을 통해서 단어를 벡터로 표현해주는 툴로서 제공하고 있다. Word2Vec는 심층 신경망을 통해 학습된 것은 아니지만 많은 데이터를 통해 학습된 것이므로, 여러 자연어 처리 연구에서 전처리 단계에 사용된다. 또한 자연어 처리에서는 벡터로 표현된 단어들의 코사인 유사도를 통해 단어의 유사도를 측정하는데, 해당 툴을 사용하면 단어들을 의미 있는 벡터로 표현해 이와 같은 코사인 유사도를 이용할 수 있다. 예를 들어 스웨덴과 가장 유사한 단어는 “노르웨이, 덴마크, 필란드”등의 결과가 나온다.
3) CNN을 이용한 문장 분류 과정 : Yoon Kim의 논문 “Convolutional Neural Networks for Sentence Classification"에서는 자연어 처리를 위해 입력 값으로 문장을 넣었다. 도20에 도시된 바와 같이 입력한 문장을 단어별로 나누었고 각 단어를 Word2Vec를 이용하여 벡터로 표시하였다. 벡터로 표현된 단어들을 여러 필터를 적용하여 Convolution하고, Pooling한 후에 마지막 계층인 분류 계층(Neural Network)을 통해 분류한다. 이 논문에서는 입력 값인 단어 벡터가 학습하면서 수정되게 하거나 수정되지 않게 하고, 여러 파라미터 값을 최적화하고 정규화하여 결과를 측정했다. 또한 감정이나 주제를 분류하는 여러 데이터를 사용한 예측률을 다른 모델들과 비교 제시하여, CNN을 이용한 문장 분류가 유효함을 제시하였다.
4) 장애 예측에서의 활용 : 이 논문을 통해 단순한 CNN 구조를 통해서도 유효한 문장 분류가 가능함을 알 수 있었다. 또한 CNN은 다른 RNN과 같은 문장 분류보다 속도가 빠르기에 제시한 CNN구조를 장애 예측 연구에서 활용하고자 한다. 이 논문은 TensorFlow를 이용하여 구현한 코드가 오픈 소스로 공개되어 있기에, 본 발명에서는 공개된 코드를 이용해 입력 값인 Syslog를 전 처리하려 한다. 예를 들어 Syslog의 메시지 부분을 문장 분류함으로써, 해당 메시지가 네트워크에 관한 메시지인지 저장 장치에 관한 메시지인지 구분하고자 한다. 이에 따라 예측된 장애가 어떤 것과 연관된 장애인지 보다 정확하게 예측할 수 있다.
2.9 머신러닝 라이브러리 TensorFlow
텐서플로우(TensorFlow)는 구글내 연구와 제품개발을 위한 목적으로 구글 브레인(Google Brain) 팀이 만든 머신러닝을 위한 오픈소스 소프트웨어 라이브러리이다. 텐서플로우는 데이터 플로우 그래프(Data Flow Graph)방식을 사용하며, 이 그래프의 노드(Node)는 수학 계산, 텐서(Tensor) 입출력, 텐서 읽기, 저장을 하고, 엣지(Edge)는 각 노드의 출력과 입력을 연결한다. 텐서는 다차원 데이터를 담는 배열이며 텐서플로우의 모든 작업은 텐서단위로 이루어진다. 수식(1)을 텐서플로우 API로 표현하면 도21과 같이 10x10 행렬 두 개를 입력으로 하는 데이터 플로우 그래프가 생성되고, 계산이 바로 되는 것이 아닌 텐서플로우 세션(session)을 열어 입력 값 input_x1, input_x2와 함께 데이터 플로우 그래프를 실행하여 결과 값 Y를 얻는다. 텐서보드(tensorboard)를 사용하여 세션에서 일어나는 거대한 계산과정을 시각적으로 쉽게 이해하고, 결과에 대한 정량적인 그래프를 그려볼 수 있어, 수식에 대한 디버깅이 쉽다.
Figure 112018118053911-pat00028
식(1)
이하 본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법에 대해 설명한다.
컴퓨터 시스템 장애 예측에 사용할 데이터는 SMART 정보와 Syslog를 이용한다. 또한, 프레임워크는 데이터에 대한 전 처리과정과 이를 이용해 예측과정을 포함한다.
3.1 전체 구성도
본 발명은 컴퓨터 시스템 자원의 장애 예측뿐 아니라 추후, 다양한 분야에 이용 가능한 장애 예측 프레임워크를 구현하기 위한 것으로, 본 발명에 따르는 프로그램의 전체 시스템 구성은 도22와 같다.
가. 전처리(Pre-processing) : 먼저 raw data에 대한 전처리 과정을 거쳐 각 데이터의 파라미터들을 추출한다. 이 과정은 프레임워크 외부의 작업으로 프레임워크를 사용하는 사용자가 별도로 수행한다고 가정한다. 본 발명에 따르는 장애 예측 프로그램에서 사용하는 데이터는 SMART 정보와 Syslog이다. SMART 정보의 경우 특정 attribute들 각각이 failure를 발생시킬 것이라는 정보를 포함하고 있으므로 이를 모니터링하고 장애를 발생시킬 여지가 있을 경우 경고하는 용도로 이용한다. Syslog로부터 장애 예측에 이용할 파라미터들을 추출한다. Syslog의 경우 kern, user daemon, audit, alert, local0 ~ 7를 포함하는 13개의 facility와 emergency, alert, critical, error, warning를 포함하는 5개의 severity를 하나의 정보로 만들어 priority를 이용한다. (Priority = Facility*5 = Severity). 그리고 메시지의 의미를 이용해 어떠한 정보를 내포하고 있는가를 파라미터로 이용하려고 한다. 이때, Sentence Classification을 이용하며, 프로그램에서는 Disk, Network 이 두 가지 class와 Syslog 메시지가 얼마나 연관이 있는지를 이용한다.
나.장애 학습 및 예측
1) 클러스터링(Clustering) : 각 데이터들로부터 추출된 파라미터를 통해 Clustering 학습을 거쳐 몇 개의 타입으로 구분된다. 여기서 구분된 Cluster, Type의 개수는 예측에 이용되는 Neural Network의 입력 노드의 개수가 된다. 학습시에는 주어진 학습데이터를 통해 타입의 개수와 중심을 계산하여 저장한다. 예측시에는 전처리 과정을 거쳐 프레임워크에 주어지는 데이터와 각 타입들의 중심 간의 거리를 계산하여 주어진 데이터의 타입을 구분해 데이터 윈도우 큐로 전달한다.
2) 예측(Prediction) : 데이터 윈도우 큐가 존재하여 데이터들은 위에서 구분된 타입의 형태로 윈도우 큐를 갱신한다. 만일 시간 t일 때 장애 A가 발생한다면, 그 순간 윈도우 큐에는 일정 시간(tω) 전의 데이터들이 들어있다. 이 큐에 존재하는 타입들의 빈도는 각 Neural Network의 입력 노드에 입력으로 주어지고 장애로서 학습하게 된다. 예측시에는 주기적으로 윈도우 큐에 있는 데이터들을 Neural Network에 입력하여 장애를 예측하며, 예측이 발생될 것으로 판단되면, t - tω 시간 후에 장애가 발생할 것이라고 경고한다.
3.2 프레임 워크 구성도
프레임워크 구성은 데이터 분류, 장애 예측 부분으로 구성된다. 또한 학습 프레임워크와 예측 프레임워크의 구조는 상이하다. 프레임워크는 Python3로 구현되며, 머신러닝 API로 TensorFlow를 이용한다.
가. 학습 : 먼저 도23의 학습 프레임워크은, 데이터 분류 단계에서 예측에 사용할 데이터를 입력으로 받아, 사용자가 정의한 기계 학습 알고리즘에 따라 분류 학습 모델을 생성한다. 분류 학습 모델에 따라 분류된 입력 데이터는 데이터 저장소(Data Store)에 저장된다. 다음으로 장애 예측 단계에서는 데이터 분류에서 분류한 입력 타입에 따라, 사용자가 정의한 기계 학습 알고리즘에 따라 예측 학습 모델을 생성한다. 예측 모델을 학습할 입력 데이터는 데이터 저장소에 저장된 데이터를 사용하거나, 사용자가 분류된 데이터를 따로 입력할 수도 있다.
나. 예측 : 학습 후에 예측할 때는 도24와 같은 프레임워크 구조를 이루는데, 학습할 때와 구조가 유사하다. 데이터 분류 단계에서 예측에 사용할 데이터를 입력 값으로 받아, 학습한 기계학습모델을 사용하여 타입별로 분류하고 데이터 저장소(Data Store)에 저장한다. 데이터 저장소에는 특정 윈도우 크기(window size)만큼의 큐가 존재하여 일정 시간마다 주기적으로 해당 데이터를 입력 생성 인터페이스(Input Create Interface)를 통해 학습된 예측 모델을 이용해 장애 발생을 예측한다. 예측한 내용을 데이터 저장소에 저장하여, 사용자 인터페이스를 통해 사용자에게 예측 정보를 제공한다.
다음으로, 본 발명에 따르는 프레임워크의 각 구성요소들을 학습, 예측 단계로 나누어 설명하고자 한다. 또한 각 항목에서는 데이터 분류, 장애 예측 단계로 나누어, 데이터 흐름에 따라 각 항목의 역할을 제시한다.
3.3 프레임워크 구성요소
가.학습
1) 데이터 분류(Data Classification)
가) Raw Data : Failure 예측을 위해 사용되는 전 처리된 데이터로서, 데이터 분류의 입력 값으로, 시스템 장애 예측을 위해서 여러 데이터가 들어간다. 본 발명에서는 Syslog의 facility와 심각도(severity)정보를 활용한 우선순위 정보와 Syslog의 메시지(message) 부분을 문장 분류한 타입 정보를 배열로 하여 예측을 위한 입력 값으로 한다.
나) 데이터 요약 인터페이스(Data Abstract Interface) : 사용자가 분류에 사용할 데이터 형식을 정의할 수 있다. 우선 타입 분류 학습 시에는 Raw Data를 그대로 받지 않고, 불필요하게 중복된 부분을 걸러낸다. 걸러진 Raw Data를 받아 사용자가 정의한 함수에 따라 데이터 형식을 바꾸고, 변경된 데이터 형식을 ㅂ분류 인터페이스의 입력 값으로 사용한다.
다) 분류 인터페이스(Classification Interface) : 사용자가 정의한 기계 학습 알고리즘으로, 정의된 알고리즘에 따라 학습하여 분류 모델을 생성한다. 본 발명에서는 X-means를 사용한다.
라) 분류 모델(Classification Model) : 정의된 분류 알고리즘에 따라 학습하여 생성된 모델로서, 해당 모델에 대한 데이터는 데이터 저장소에 저장된다. X-means의 경우 클러스터의 중심 값, 클러스터의 수 등이 저장된다.
2) 장애 예측
가) 분류된 데이터(Classified Data) : 예측에 사용할 입력 데이터 형식으로, 앞서 데이터 분류를 거쳐 나온 데이터 형식이다. 학습시에는 데이터 분류 단계를 거쳐 데이터 저장소에 저장된 데이터뿐만 아니라, 사용자가 바로 예측을 위한 입력 값을 넣을 수 있다.
나) 입력 생성 인터페이스(Input Create Interface) : 사용자가 예측에 사용할 데이터 형식을 지정할 수 있다. 본 발명에서는 데이터 분류를 통해 분류된 Raw Data가 데이터 저장소에 지정한 윈도우 사이즈만큼 쌓이면, 데이터가 입력 생성 인터페이스로 보내지고, 이 구성요소에서는 윈도우 사이즈 안의 타입별 입력 값의 개수를 세어 벡터로 나타낸다. 만들어진 벡터를 예측 알고리즘의 입력 값으로 보낸다.
다) 예측 인터페이스(Prediction Interface) : 사용자가 정의한 기계 학습 알고리즘으로서, 정의된 알고리즘에 따라 학습하여 예측 모델을 생성하는데, 본 발명에서는 Neural Network를 사용한다.
라) 예측 모델(Prediction Model) : 정의된 예측 알고리즘에 따라 학습하여 생성된 모델로서, 해당 모델에 대한 데이터는 데이터 저장소에 저장되는데, Neural Network의 경우 입력층, 은닉층, 출력층의 구조 및 뉴런의 가중치들이 저장된다.
나.예측 : 예측시의 구성요소는 학습시의 구성요소와 유사하다. Raw Data, 데이터 요약 인터페이스(Data Abstract Interface), 입력 생성 인터페이스(Input Create Interface)는 학습 시와 같고, 예측 부분의 입력 값인 분류된 데이터(Classified Data)가 빠지고 분류 인터페이스(Classify Interface), 예측 인터페이스(Prediction Interface)가 학습한 것을 기반으로 동작하며 결과를 데이터 저장소에 저장하는 부분이 다르다. 또한 사용자 인터페이스(User Interface)를 통해 사용자에게 예측 정보를 제공한다.
1) 데이터 분류(Data Classification) : 예측에 사용할 Raw Data가 입력 값으로 들어가고, 데이터 요약 인터페이스(Data Abstract Interface)를 통해 적절한 데이터 형식으로 바뀐 후 학습된 분류 모델의 입력 값으로 들어간다. 분류된 값들은 데이터 저장소에 window size 크기의 큐(queue)에 저장된다.
2) 장애 예측 : 주기적으로 window size만큼의 분류된 타입에 대한 데이터가 입력 생성 인터페이스(Input Create Interface)로 들어가서 예측 모델의 입력 값으로 주어진다. 여기서 예측된 내용은 데이터 저장소에 저장되고, 사용자는 이 정보를 사용자 인터페이스를 통해 볼 수 있다. 또한 데이터 저장소에는 예측된 결과뿐만 아니라 입력 값에 대한 정보도 저장되어 있기 때문에, 사용자는 어떤 데이터를 통해 오류가 발생한다는 것을 감지했는 지와 어느 부분을 수정해야 하는지를 알 수 있다. 데이터 저장소 구성요소는 현재 큐에 대한 데이터를 메모리에 유지하고 있고, 이전에 예측에 사용한 입력 데이터는 파일로 저장해둔다.
3.4 클래스 디자인
본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 프레임워크는 Python3를 개발 언어로 하고 머신 러닝 라이브러리로는 TensorFlow를 이용하여 구현한다. 본 발명에 따르는 장애 예측 프레임워크를 구성하는 각 클래스는 도25에 도시된 바와 같은 관계를 갖고, 각각의 클래스는 다음과 같다.
가. user_main 클래스
분류 이름 설명
class user_main 유저가 구현하는 프로그램의 메인 클래스
분류 이름 자료형 설명
Field(-) fw Classframework 프레임워크의 클래스
pipe_descriptor Framework로 데이터를 보내는 파이프 식별자
나. framework 클래스
분류 이름 설명
class framework Framework에서 데이터를 관리하고 유저에게서 명령을 받는다. , .Framework 동작시 초기값을 받는다. .
분류 이름 자료형 분류
Field(-)

data_descriptor 데이터 식별자(학습을 위한 데이터, 이전 데이터)
new_data_descriptor 데이터 식별자(학습을 위해 축적한 데이터)
pipe_descriptor 유저로부터 데이터를 받는 파이프의 식별자(정적 변수)
분류 이름 자료명 설명
Method(-) data_merge - -
Method(+)

init - -
run string -
pipe_connect - pipe_descriptor
다. data_interface 클래스
분류 이름 설명
Class data_interface 추상 클래스로서, 사용자는 이 클래스를 상속받아 자신의 데이터에 맞게 전처리할 수 있도록 구현해야 한다/
분석할 원시 데이터를 처리한다. 분류 학습에 이용될 데이터를 필터링하고, 데이터 형식을 바꾼다.
분류 이름 자료형 분류
Field(-)
fw Class framework get_data 메서드를 호출하기 위해 framework 클래스의 주소를 갖는다.
converted_data list convert 메서드로 전처리된 데이터들이 list에 저장된다, 이 list의 크기는 최대 get_data 메서드의 파라미터로 주어지는 정수이다.
분류 이름 자료형 설명
Method(+)
convert list list
get_converted_data - list
라. classification class
분류 이름 설명
Class classification 데이터를 임의의 K 타입으로 분류한다.
분류 이름 자료형 분류
Field(-)
di Classdata_interface get_converted_data를 호출하기 위해 data_interface 클래스 주소를 갖는다.
ds Classdata_store add 메서드를 호출해 결과를 저장하기 위해 data_store 클래스 주소를 갖는다.
분류 이름 자료형 설명
Method(+)
classification list list
classification1 list list
classification2 list list
마. input_create class
분류 이름 설명
Class input_create 예측 메서드의 입력 데이터를 생성한다. type_queue의 데이터를 type_vector 형식으로 바꾼다.
분류 이름 자료형 분류
Field(-)
ds Classdata_store type_queue에 접근하기 위한 data_store 클래스의 주소
type_vector list 예측 메서드의 입력이 될 type_vector
분류 이름 파라미터
자료형
반환
자료형
설명
Method(+)
read_window - list data_store
classification1 - list type_vector list를 반환한다.
바. prediction class
분류 이름 설명
Class prediction 원도우 내부의 데이터를 가져와 예측한다.
분류 이름 자료형 분류
Field(-)
ic Class input_create get_type_vector 메서드를 호출하기 위해 input_create 클래스의 주소를 갖는다.
ds Classdata_store 예측된 결과를 저장하기 위해 data_store 클래스의 주소를 갖는다.
분류 이름 파라미터
자료형
반환
자료형
설명
Method(+)
prediction ilst input_create 클래스의 type_vector 리스트를 인자로 넘겨 장애 예측을 한다.
read_window list 미리구현된 prediction 메서드(static)
classification1 list
사. data_store class
분류 이름
설명
Class data_store
분류, 예측 결과를 저장한다(프레임워크의 정도들을 저장한다).
분류 이름 자료형 설명
Field(-)
result_map dictionary result_map={"classify" : type_vector, "predict" : predict_map} 형태를 갖는다,
분류 이름 파라미터
자료형
반환
자료형
설명
Method(+)
report - - result_map에 저장된 결과들을 콘솔에 출력한다.
add_result key, result - result_map의 key에 result를 저장한다.
get_window - window 최근 저장된 분류 결과를 윈도우 개수만큼 얻어온다.

Claims (6)

  1. 스마트 정보와 시스템 로그를 포함하는 데이터를 전처리하는 단계;
    상기 데이터로부터 추출된 파라미터에 의해 상기 데이터의 타입을 분류하는 단계;
    분류된 타입의 데이터를 네트워크에 입력 노드로서 입력하여 장애로서 학습하는 단계; 및
    윈도우 큐에 있는 데이터를 주기적으로 네트워크에 입력하여 장애를 예측하는 단계를 포함하고,
    데이터를 전처리하는 단계는
    정규 표현식으로 이벤트의 구문을 분석하여 이벤트를 분류하는 단계;
    중복된 이벤트를 삭제하기 위해 이벤트를 필터링하는 단계; 및
    공동적으로 발생하는 치명적 이벤트 셋을 식별하고 필터링하는 상관관계 필터링 단계를 포함하고,
    중복된 이벤트를 삭제하기 위해 이벤트를 필터링하는 단계는
    일정시간(T) 동안 동일한 위치에서 발생하는 이벤트 중 같은 종류를 제거하는 시간적 필터링 단계; 및
    일정시간(T) 동안 다른 위치에서 발생하는 이벤트 중 같은 종류를 제거하는 공간적 필터링 단계를 포함하는 것을 특징으로 하는
    스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법.
  2. 삭제
  3. 제1항에 있어서,
    이벤트를 분류하는 단계는
    계층적 분류 방식으로 상위 레벨과 하위 레벨로 분류하거나, 기계학습 목적으로 치명적 이벤트 그룹과 비치명적 이벤트 그룹으로 분류하는 단계인
    스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법.
  4. 삭제
  5. 제1항에 있어서,
    상관관계 필터링 단계는 선형적 연관 규칙 마이닝에 의해 이뤄지는
    스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법.
  6. 제1항에 있어서,
    상기 데이터의 타입을 분류하는 단계는 X-means 클러스터링에 의해 이뤄지는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법.
KR1020160151746A 2016-11-15 2016-11-15 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법 KR101948634B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160151746A KR101948634B1 (ko) 2016-11-15 2016-11-15 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법
PCT/KR2016/013141 WO2018092924A1 (ko) 2016-11-15 2016-11-15 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160151746A KR101948634B1 (ko) 2016-11-15 2016-11-15 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법

Publications (2)

Publication Number Publication Date
KR20180054992A KR20180054992A (ko) 2018-05-25
KR101948634B1 true KR101948634B1 (ko) 2019-02-18

Family

ID=62145465

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160151746A KR101948634B1 (ko) 2016-11-15 2016-11-15 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법

Country Status (2)

Country Link
KR (1) KR101948634B1 (ko)
WO (1) WO2018092924A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201903592RA (en) * 2018-11-02 2020-06-29 Alibaba Group Holding Ltd Monitoring multiple system indicators
CN111382041B (zh) * 2018-12-29 2023-06-27 阿里巴巴集团控股有限公司 一种故障检测、数据处理方法、装置及设备
KR102011689B1 (ko) * 2019-03-06 2019-08-19 주식회사 위엠비 시계열 데이터의 모니터링 방법, 모니터링 시스템 및 컴퓨터 프로그램
KR102041545B1 (ko) * 2019-03-13 2019-11-06 주식회사 위엠비 딥러닝 모델을 이용한 이벤트 예측 기반의 이벤트 모니터링 방법, 이벤트 모니터링 시스템 및 컴퓨터 프로그램
US11409754B2 (en) 2019-06-11 2022-08-09 International Business Machines Corporation NLP-based context-aware log mining for troubleshooting
US11669754B2 (en) 2020-02-25 2023-06-06 Samsung Electronics Co., Ltd. Data management, reduction and sampling schemes for storage device failure
KR102575037B1 (ko) * 2021-04-30 2023-09-06 주식회사 브이웨이 머신 러닝 기반의 고장 형태 영향 분석 시스템
CN113361208B (zh) * 2021-07-02 2023-07-18 中国科学院空间应用工程与技术中心 基于综合健康指标的固态硬盘剩余寿命评估方法
KR102463732B1 (ko) * 2022-01-03 2022-11-04 주식회사 브이웨이 머신 러닝 기반의 고장 형태 영향 분석 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080250265A1 (en) 2007-04-05 2008-10-09 Shu-Ping Chang Systems and methods for predictive failure management
US20090271657A1 (en) 2008-04-28 2009-10-29 Mccombs Craig C Drive health monitoring with provisions for drive probation state and drive copy rebuild
KR101433045B1 (ko) 2013-11-20 2014-08-27 (주)데이타뱅크시스템즈 사전 장애 탐지 시스템 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101250899B1 (ko) * 2009-08-27 2013-04-04 한국전자통신연구원 응용계층 분산 서비스 거부 공격 탐지 및 차단 장치 및 그 방법
KR101545215B1 (ko) * 2013-10-30 2015-08-18 삼성에스디에스 주식회사 데이터 센터 장애 이벤트 관리 자동화 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080250265A1 (en) 2007-04-05 2008-10-09 Shu-Ping Chang Systems and methods for predictive failure management
US20090271657A1 (en) 2008-04-28 2009-10-29 Mccombs Craig C Drive health monitoring with provisions for drive probation state and drive copy rebuild
KR101433045B1 (ko) 2013-11-20 2014-08-27 (주)데이타뱅크시스템즈 사전 장애 탐지 시스템 및 방법

Also Published As

Publication number Publication date
KR20180054992A (ko) 2018-05-25
WO2018092924A1 (ko) 2018-05-24

Similar Documents

Publication Publication Date Title
KR101948634B1 (ko) 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법
Yang et al. Semi-supervised log-based anomaly detection via probabilistic label estimation
Salfner et al. A survey of online failure prediction methods
Di et al. Logaider: A tool for mining potential correlations of hpc log events
Basak et al. Mechanisms for integrated feature normalization and remaining useful life estimation using lstms applied to hard-disks
Jauk et al. Predicting faults in high performance computing systems: An in-depth survey of the state-of-the-practice
Zhang et al. Minority disk failure prediction based on transfer learning in large data centers of heterogeneous disk systems
Hu et al. A disk failure prediction method based on LSTM network due to its individual specificity
CN112951311A (zh) 一种基于变权重随机森林的硬盘故障预测方法及系统
Wang et al. An attention-augmented deep architecture for hard drive status monitoring in large-scale storage systems
US11561701B2 (en) System and method for survival forecasting of disk drives using semi-parametric transfer learning
Kaur et al. Failure Prediction, Lead Time Estimation and Health Degree Assessment for Hard Disk Drives Using Voting Based Decision Trees.
Alharthi et al. Sentiment analysis based error detection for large-scale systems
Xie et al. Dfpe: Explaining predictive models for disk failure prediction
Liu et al. Incident-aware duplicate ticket aggregation for cloud systems
Zeydan et al. Cloud 2 HDD: large-scale HDD data analysis on cloud for cloud datacenters
Gainaru et al. Errors and faults
Agarwal et al. Discovering rules from disk events for predicting hard drive failures
CN113778792B (zh) 一种it设备的告警归类方法及系统
Shilpika et al. Toward an in-depth analysis of multifidelity high performance computing systems
Hacker et al. A markov random field based approach for analyzing supercomputer system logs
Jain et al. Extracting the textual and temporal structure of supercomputing logs
Liang et al. Disk Failure Prediction Based on SW-Disk Feature Engineering
Han et al. StreamDFP: a general stream mining framework for adaptive disk failure prediction
Georgoulopoulos et al. A survey on hardware failure prediction of servers using machine learning and deep learning

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant