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

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

Info

Publication number
WO2018092924A1
WO2018092924A1 PCT/KR2016/013141 KR2016013141W WO2018092924A1 WO 2018092924 A1 WO2018092924 A1 WO 2018092924A1 KR 2016013141 W KR2016013141 W KR 2016013141W WO 2018092924 A1 WO2018092924 A1 WO 2018092924A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
failure
prediction
learning
events
Prior art date
Application number
PCT/KR2016/013141
Other languages
English (en)
French (fr)
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 (주) 글루시스
Publication of WO2018092924A1 publication Critical patent/WO2018092924A1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention relates to a method of predicting failure of system resources for smart computing.
  • the present invention proposes a design of a failure prediction framework applicable to various fields together with a method for predicting a system failure.
  • Preprocessing data including smart information and system logs
  • the failure prediction method of system resources for smart computing according to the present invention can provide an uninterrupted service of a computer system.
  • FIG. 1 is a diagram illustrating a process of changing a fault of a computer system from fault to failure.
  • 3 is a graph showing the disk failure rate according to the usage period.
  • 5 is a graph showing the disk failure rate according to the average temperature.
  • 6 is a graph showing the disk failure rate according to the temperature of each use time.
  • FIG. 9 is a diagram illustrating an example of a Blue Gene / L system record sequence.
  • Fig. 10 is a diagram showing an example of results obtained by digitizing Syslog data of a Linux system as an input value.
  • 11 is a graph showing the distribution of log files according to tag values.
  • Fig. 12 is a diagram showing a change when ten tags enter a window in order.
  • FIG. 13 is a diagram illustrating an exemplary classification state of a message through word matching when predicting a real-time failure in a cloud data center.
  • FIG. 14 is a diagram illustrating an example of failure prediction learning through word matching when predicting failure in real time in a cloud data center.
  • 15 shows the structure of an artificial neuron.
  • 16 shows the structure of a neural network.
  • 17 is an example of the result of the convolution operation in the CNN sentence classification method.
  • 19 shows a CNN structure in image classification.
  • 21 is an example of a TensorFlow example code and data flow graph.
  • 22 is a diagram showing the overall configuration of a framework for predicting failure of system resources for smart computing according to the present invention.
  • FIG. 23 is a diagram showing the configuration of a learning framework according to the present invention.
  • 24 is a diagram showing the configuration of a prediction framework according to the present invention.
  • 25 is a class relationship diagram constituting a failure prediction framework of system resources for smart computing according to the present invention.
  • Preprocessing data including smart information and system logs
  • preprocessing the data comprises: parsing and classifying the event with a regular expression; Filtering the event to delete the duplicate event; And a correlation filtering step of identifying and filtering a set of co-occurring fatal events.
  • categorizing the events is categorized into a high level and a low level in a hierarchical classification manner, or categorized into fatal event groups and non-fatal event groups for machine learning purposes.
  • the filtering of the event may include: temporal filtering to remove the same kind of events occurring at the same location for a predetermined time T; And a spatial filtering step of removing the same kind of events occurring at different locations for a predetermined time T.
  • said correlation filtering step is by linear association rule mining.
  • classifying the type of data is by X-means clustering.
  • Failure Defined as "event that occurs when providing a service out of normal service”. Failure also means an error that can be observed by a user who may be a human or other computer system. Problems internal to the system Even if the state does not produce a problematic output, it is not called failure. (The same is true for no output.)
  • Error "Problem condition" refers to the situation in which the system's situation flows in a different direction than expected under the correct condition. This is called error. An error is part of a system state that can later lead to failure. An error is divided into a detected error and an undetected error.
  • Faults The root cause of error. In most cases, faults create a time when operation stops, and an error occurs once a fault occurs.
  • Symptom In addition to causing failure, error also causes abnormal behavior of the system. This abnormal behavior is called symptom.
  • FIG. 1 is a diagram illustrating a process of changing a fault of a computer system from fault to failure.
  • FIG. 2 is a diagram showing time for online failure prediction, wherein at the current time t, the occurrence of a failure is based on the current system state evaluated by system monitoring within a data window of length ⁇ t d .
  • Lead time ( ⁇ t l ) is predicted.
  • Lead time ( ⁇ t l ) refers to the time at which fault prediction is performed using the data in the data window ⁇ t d at the current time t.
  • ⁇ t p refers to the time when the prediction is valid. Disorders predicted during ⁇ t 1 are valid only within the prediction period ⁇ t p . If the prediction period ⁇ t p is too large, the occurrence of a failure can be predicted but the prediction is useless since it is not clear exactly when the failure will occur.
  • Table 1 defines four situations in a computer system. The failure prediction is to predict only true positive (TP) within the prediction period from the prediction results in Table 1. If a warning occurs but does not actually fail, this is called a false positive (FP). If the failure has not been predicted, it is called false negative (FN). The case where there is no failure and no warning is called true negative (TN).
  • Evaluation Scale The evaluation scale is presented based on Table 1. The precision and recall shown in Table 2 are frequently used measures of failure prediction.
  • Syslog is divided into auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0, local1, ..., local7, depending on the originator of the message. It is divided into emergency, alert, critical, error, warning, notice, info, and debug according to the priority or severity of log messages. With simple settings, you can change the subject and severity to your desired log policy, and you can easily transfer these logs to a remote location.
  • the logging system used may vary depending on the syslog system, but is generally similar because it is a protocol standard.
  • Figure 3 shows the disk failure rate according to the period of use. Discs that have been around for three or four years are more affected by the make and model than by the age. Infant mortality phenomena occurred in 3, 6, and 1 year discs. Disability rates vary by manufacturer, model, and location and date of manufacture.
  • the present invention preprocesses the system RAS (Reliability, Availability, Serviceability) log, which is an input value used for the supercomputer Cray XT4 and the fault prediction system implemented based on IBM Blue Gene / L. And a method for improving the compression ratio.
  • RAS Reliability, Availability, Serviceability
  • the RAS log of the Cray XT4 does not provide a severity level for each event, so in consultation with the Oak Ridge National Laboratory (ORNL) system administrator, 10 critical events link failure fault (LFF), nod hearbeat fault (NFF), and NFF (nod failed fault), service failed fault (SFF), seastar hearbeat fault (SHF), node health check fault (NHC), YERTY health check fault (VHC), RX messge CRC error (RXM), RX message head CRC error) and L0V (L0 valtage fault) has been checked.
  • ORNL Oak Ridge National Laboratory
  • the system RAS log preprocessing according to the present invention includes event categorization, event filtering, and correlation-related filtering.
  • Event Classification classifies RAS events by parsing them with regular expressions. If there are two or more events with similar syntax, they are grouped into one category for data analysis.
  • Cray XT is divided into nine high-level categories based on the CRMS Event Type field, and the lower level is divided into 52 event types.
  • Blue Gene / L it is classified into 10 upper level categories based on Facility field and divided into 293 event types in lower level.
  • Non-fatal event groups are grouped into system warnings and informational messages during a fatal crash in the system or application, and fatal event groups are grouped into 10 fatal events in Cray XT4 and 83 by Blue Gene / L. .
  • Event Filtering Deleting duplicate event records, which records are largely duplicated? What information should I keep? Resolve these two questions.
  • the first question looks at two perspectives to eliminate record duplication.
  • the second question is, what information should be left and deleted during the above filtering.
  • Conventional filtering methods keep the first record and remove subsequent records to make sure duplicate records are deleted. This can eliminate important information in analyzing correlations between events.
  • the filtering mentioned in the first question has been improved.
  • the event start time, last time, the number of times occurred in between, and event location information are recorded.
  • Correlation Filtering Failures are reported to different subsystems in different formats, which may have the same semantics but with different syntax. This is called semantic redundancy in the present invention, and semantic redundancy cannot be removed by the existing filtering method and the event filtering described in the previous item. This can mean less time between failed events, and also hides the source of the problem, which cannot be solved decisively due to misinterpretations. For example, if the record of FIG. 9 is subjected to the above-described visual filtering and spatial filtering, # 786429 and # 786438 remain independent of each other, and in worse cases, the threshold T of the visual filtering and spatial filtering is 900 seconds.
  • the present invention uses linear association rule mining.
  • Linear association rule mining identifies and filters sets of fatal events that occur in common. Wow Are defined as the start and end times between fatal events A and B, and W f is the interval between fatal events A and B, respectively.
  • a and B are considered to be one transaction.
  • the equation for measuring the correlation between A and B in all transactions If the value of lift (A, B) is greater than the specified threshold for jointly occurring events A and B, it is recognized that A and B are not coincidental, and that A and B are correlated. .
  • A. Numericalization It is a process of creating a Tag value by using Severity (Level), which is information on facility, syslog severity, and type. As shown in Fig. 10, the produced Tag value means that the lower the number, the more important the message.
  • Level Severity
  • syslog severity information on facility
  • type syslog severity
  • a Tag converts values from 0 to 50 into 1, groups 2 from 50 to 100, and groups 3 from 100 to 150.
  • FIG. 12 shows a window size of 5 using 10 Syslog messages, and 239, 233, 215, and 160 obtained as a specific value according to a sequence within the window size (239: 2, 233: 1, 215: 2, 160: 1) to convert the vector to SVM.
  • the red arrow in FIG. 12 represents a change in the window queue each time a message enters the window queue one by one.
  • SVM Learning Based on vectorized input values, learn if a sequence of Syslogs occurs at a certain frequency or not. The higher the number of messages in a vector, the higher the probability of prediction. This means that the more data there is, the higher the prediction rate.
  • Message classification The message is divided into words, and the largest number of words among the messages in the message dictionary are classified into matching messages.
  • I. Learning Categorizes message types by matching logs from the system with words in the message dictionary. Typed messages are stacked in the message window, which is constantly updated. As shown in Fig. 14, if fault A occurs, the message types in the window at that moment are stored in the message pattern dictionary as an indication for fault A. Learning about any disorder T is based on Bayesian inference, and the probability of occurrence for disorder T is as follows.
  • the message pattern dictionary stores the difference between the time when the message pattern P occurred, the time when the failure T occurred, and the probability of occurrence of the failure T.
  • the message can be classified independently of the message type.
  • the cloud environment produces various types of messages.
  • Other types of messages can be categorized by using the coincidence of the words composing the messages. It can be classified automatically without the process of interpreting the meaning, and it is convenient because there is no human adjustment of the message dictionary.
  • the message pattern can be generated independently of the order of message occurrence. In a cloud environment, the order of messages is not guaranteed. Because the message types use a pattern of messages that make up a set, even if the message order is not correct, the learning and prediction results are not affected.
  • Markov Model is a theory widely used in NLP field. It calculates probability based on what happened in the past and calculates the probability of what will happen in the future. For example, suppose you have historical data to know the probability that some weather will occur tomorrow. Also, assume that the current state is only affected by the yesterday's weather. Then we can predict future weather only through the conditional probabilities of each step.
  • Hidden Markov Model The Hidden Markov Model looks at each state (e.g. weather) when it doesn't know (hidden state, when it is hidden). guess the sequence (guess the probability of transitioning to sunny-> rainy, guessing the probability of a sequence like sunny-> rainy-> ...-> cloudy)
  • Dynamic Syslog Mining for Network Failure Monitoring This method uses syslog for failure prediction. Since the syslog constitutes a time series, we must consider the time correlation for each event. This is defined as Syslog behavior, and Syslog behavior is trained in real time using a dynamic model. Dynamic Syslog behavior is expressed using the finite mixture of HMMs and is called the HMM mixture. The parameters of the HMM mixture are learned dynamically using an on-line discounting learning algorithm. The on-line discounting learning algorithm is a model of forgetting old data. The HMM mixture consists of several HMMs and the appropriate number of mixture elements is selected based on the theory of dynamic model selection. In addition, anomalies are scored to warn of failure, which is calculated based on universal test statistics. Anomalous scores are calculated in real time and alert when a threshold is exceeded.
  • the type of raw data is classified using X-means clustering.
  • K-means clustering K-means clustering is one of the unsupervised learning algorithms that learns without specifying the class of each data. Labeling of each data is necessary for classification of data, but since it is often impossible to know what the label or category of data is, the types of data are classified by clustering given data. K-means clustering defines that data in close proximity belongs to the same cluster and performs clustering using the following algorithm.
  • BIC Bayesian information criterion
  • Neural Network For the prediction of failure of system resources, we used the Neural Network, which has recently achieved significant achievements in machine learning, and the Convolutional Neural Network (CNN), which has achieved remarkable results in sentence classification. Neural Network will use the preprocessed data to predict failures. In addition, we will use the CNN Sentence Classification to understand the meaning of Syslog messages and use them as data.
  • CNN Convolutional Neural Network
  • This machine learning model has achieved breakthroughs in image recognition and natural language processing that could not be solved by stacking and learning artificial neurons in multiple layers that mimic neurons in the human brain.
  • 15 and 16 illustrate a process in which one artificial neuron operates.
  • These artificial neurons (hereinafter referred to as neurons) are commonly used in machine learning without distinguishing them from neurons.
  • Each neuron multiplies several input values by the weight and adds them to the activation function. If the value of the activation function exceeds the threshold, the neuron is activated and produces output. You can simply learn yes / no through one neuron.
  • these neurons are stacked in multiple layers to form a network as below, it can be called a neural network.
  • the Neural Network learns the weights to multiply the values going into the input of each neuron. By learning the weight value, which neuron's result is activated is adjusted. As a result, you learn to activate a particular Output node based on the value of that particular Input node.
  • CNN is basically a convolution layer with an activate function.
  • the pooling layer is applied to perform the operation efficiently.
  • the convolution operation an operation of multiplying a filter matrix with respect to each part of a matrix input as an input value as illustrated in FIG. 17 is performed.
  • Image processing for example, can only detect borders as a result of applying certain filters, or blur the original picture.
  • Learning CNN means learning the values of these filters.
  • the pooling operation creates subsamples of the results of convolution operations on input values. For example, the max operation of FIG.
  • the Convolution of the first layer detects edges from pixels, extracts shapes from the second Pooling layer, the Convolution of the third layer detects high level features from the shape, and then identifies the important features in the Pooling layer. Selected and used for classification at the last Fully Connected layer (Neural Network).
  • Word2Vec Refers to expressing words in vector for natural language processing. In order to convert words into vectors, we have trained 100 billion words of Google News through Neural Network of two structures and provide them as a tool to express words in vector through the learned model. Word2Vec is not learned through deep neural networks, but because it is learned through a lot of data, it is used in preprocessing steps in many natural language processing studies. In addition, natural language processing measures the similarity of words through the cosine similarity of words represented by a vector. Using this tool, the cosine similarity can be used by expressing the words in a meaningful vector. For example, the word most similar to Sweden results in “Norway, Denmark, Finland”.
  • TensorFlow is an open source software library for machine learning created by the Google Brain team for the purpose of research and product development in Google.
  • TensorFlow uses the Data Flow Graph method, and the nodes of the graph perform mathematical calculations, tensor I / O, tensor reading and storage, and edges are used for the output of each node. Connect the input.
  • Tensors are arrays containing multidimensional data, and all work in TensorFlow is done in tensor units.
  • Equation (1) with the TensorFlow API, a data flow graph with two 10x10 matrices is generated as shown in FIG. 21, and a tensorflow session is opened instead of immediately performing calculations. Run the data flow graph together to get the resulting value Y.
  • Using tensorboard makes it easy to visually understand the huge computational processes occurring in a session and to plot quantitative graphs of the results, making debugging equations easier.
  • Data used to predict computer system failure uses SMART information and Syslog.
  • the framework also includes preprocessing of data and prediction using it.
  • the present invention is to implement a failure prediction framework that can be used in various fields in the future, as well as failure prediction of computer system resources, the overall system configuration of the program according to the present invention is shown in FIG.
  • Pre-processing First, the parameters of each data are extracted through preprocessing of raw data. This process is assumed to be performed separately by the user using the framework as a work outside the framework.
  • Data used in the failure prediction program according to the present invention are SMART information and Syslog.
  • SMART information contains information that each specific attribute will cause failure, so it is used for monitoring and alerting when there is room for failure.
  • Clustering It is divided into several types through clustering learning through parameters extracted from each data. The number of clusters and types divided here is the number of input nodes of the neural network used for prediction. In the case of learning, the number and center of types are calculated and stored based on the given learning data. In the prediction process, the distance between the data given to the framework and the center of each type is calculated through the preprocessing process, and the given data type is classified and transferred to the data window queue.
  • Prediction A data window queue exists, so the data is updated in the form of the above-defined type. If a fault A occurs at time t, the window queue at that moment contains the data before a certain time (t ⁇ ). The frequency of the types in this queue is given as input to each Neural Network's input node and learned as a failure. In prediction, the data in the window queue is periodically input to the Neural Network to predict the failure. If it is determined that the prediction will occur, t-t ⁇ Warn you that a failure will occur after some time.
  • Framework composition consists of data classification and failure prediction part.
  • structure of the learning framework and the prediction framework are different.
  • the framework is implemented in Python3 and uses TensorFlow as a machine learning API.
  • the learning framework of FIG. 23 receives data to be used for prediction in a data classification step and generates a classification learning model according to a machine learning algorithm defined by a user.
  • the input data classified according to the classification learning model is stored in a data store.
  • a predictive learning model is generated according to a user-defined machine learning algorithm according to the input type classified in the data classification.
  • the input data for learning the prediction model may use data stored in a data store, or a user may separately input classified data.
  • Prediction When predicting after learning, it forms a framework structure as shown in Fig. 24, which is similar in structure to learning.
  • the data to be used for prediction are received as input values, classified by type using the learned machine learning model, and stored in the data store.
  • There is a queue of a specific window size in the data store and the data is periodically predicted at a predetermined time by using a predictive model trained through an input create interface.
  • the predictions are stored in the data store, providing the user with forecasts through the user interface.
  • each component of the framework according to the present invention will be described by dividing it into learning and prediction steps.
  • each item is divided into data classification and failure prediction stages, and the role of each item is presented according to the data flow.
  • A) Raw Data Pre-processed data used for failure prediction, which is input value of data classification, and contains various data for system failure prediction.
  • the priority information using the facility and severity information of the syslog and the type information of the sentence classification of the message part of the syslog are arranged as input values for prediction.
  • A) Data Abstract Interface User can define the data format to use for classification. First of all, during type classification learning, raw data is not received as it is, and unnecessary overlapping parts are filtered out. It receives the filtered raw data and changes the data format according to the user-defined function, and uses the changed data format as the input value of the classification interface.
  • Classification Interface User-defined machine learning algorithm, which generates a classification model by learning according to the defined algorithm.
  • X-means is used.
  • Classification Model A model created by learning according to the defined classification algorithm. Data for the model is stored in the data store. In the case of X-means, the center value of the cluster and the number of clusters are stored.
  • A) Classified Data Input data type to be used for prediction. It is a data type obtained through data classification. In the learning process, the data can be classified and stored in the data store. In addition, the user can immediately input input values for prediction.
  • Input Create Interface User can specify the data format to use for prediction.
  • the data is sent to the input generation interface.
  • the number of input values for each type in the window size is counted and represented as a vector. Send the generated vector as input to the prediction algorithm.
  • Prediction Interface A user-defined machine learning algorithm, which generates a prediction model by learning according to the defined algorithm.
  • Neural Network is used.
  • Prediction Model A model created by learning according to the defined prediction algorithm. Data for the model is stored in the data store.In the case of Neural Network, the structure of input layer, hidden layer, output layer and weight of neuron Are stored.
  • Prediction Predictive components are similar to those in learning. Raw Data, Data Abstract Interface, and Input Create Interface are the same as in the case of learning, and the Classified Data, which is the input value of the prediction part, is omitted, and the Classify Interface and the Prediction Interface ( It works based on what the Prediction Interface has learned and stores the results in a data store. In addition, prediction information is provided to the user through a user interface.
  • Raw Data to be used for prediction is entered as input value, converted into appropriate data format through Data Abstract Interface, and then entered as input value of trained classification model.
  • the sorted values are stored in a window size queue in the data store.
  • Fault Prediction Periodically, data about the type classified by window size enters the Input Create Interface and is given as the input value of the prediction model.
  • the predictions are stored in the data store, and the user can view this information through the user interface.
  • the data store also stores information about the input values as well as the predicted results, so that the user knows what data has detected an error and what needs to be corrected.
  • the data store component keeps the data for the current queue in memory, and stores the input data previously used for prediction in a file.
  • the failure prediction framework of system resources for smart computing according to the present invention is implemented using Python3 as a development language and TensorFlow as a machine learning library.
  • Python3 as a development language
  • TensorFlow as a machine learning library.
  • Each class constituting the failure prediction framework according to the present invention has a relationship as shown in FIG. 25, and each class is as follows.

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

스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법
본 발명은 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법에 관한 것이다.
< 참고 문헌 >
[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
컴퓨터 시스템이 점차 복잡하고 성장함에 따라, 시스템에 대한 장애 대응은 더욱 중요한 사안이 되어 가고 있다. 복잡한 시스템에서 하나의 시스템 자원의 장애로 인해 전체 시스템에 장애를 유발시킬 수 있다. 이에 따라 주요 시스템 자원에 대한 모니터링과 고가용성에 대한 연구 개발은 과거부터 현재까지 활발히 진행되어왔다. 그러나, 장애 예측은 기술적 난이도, 분석적 접근 방법의 필요, 반복적/지속적인 테스트 등의 이슈로 쉽게 접근하지 못하는 기술이다(F. Salfner et al.: A survey of Online Failure Prediction Methods. ACM Comput. Surv. Vol. 42, No 3, pp. 10:1=10:42(2010).
컴퓨터 시스템의 무중단 서비스를 위해 장애를 사전에 예방할 수 있는 방법이 요구된다.
본 발명에서는 시스템 장애 예측을 위한 방법과 함께 다양한 분야에 적용 가능한 장애 예측 프레임워크에 대한 설계를 제안한다.
본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법은,
스마트 정보와 시스템 로그를 포함하는 데이터를 전처리하는 단계;
상기 데이터로부터 추출된 파라미터에 의해 상기 데이터의 타입을 분류하는 단계;
분류된 타입의 데이터를 네트워크에 입력 노드로서 입력하여 장애로서 학습하는 단계; 및
윈도우 큐에 있는 데이터를 주기적으로 네트워크에 입력하여 장애를 예측하는 단계를 포함하는 것을 구성적 특징으로 한다.
본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법은 컴퓨터 시스템의 무중단 서비스를 제공할 수 있다.
본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법은 입력 값인 컴퓨터 시스템 로그(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는 본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 프레임워크를 구성하는 클래스 관계도이다.
본 발명에 따르는 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법은
스마트 정보와 시스템 로그를 포함하는 데이터를 전처리하는 단계;
상기 데이터로부터 추출된 파라미터에 의해 상기 데이터의 타입을 분류하는 단계;
분류된 타입의 데이터를 네트워크에 입력 노드로서 입력하여 장애로서 학습하는 단계; 및
윈도우 큐에 있는 데이터를 주기적으로 네트워크에 입력하여 장애를 예측하는 단계를 포함한다.
바람직하게는, 데이터를 전처리하는 단계는, 정규 표현식으로 이벤트의 구문을 분석하여 분류하는 단계; 중복된 이벤트를 삭제하기 위해 이벤트를 필터링하는 단계; 및 공동적으로 발생하는 치명적 이벤트 셋을 식별하고 필터링하는 상관관계 필터링 단계를 포함한다.
바람직하게는, 이벤트를 분류하는 단계는 계층적 분류 방식으로 상위 레벨과 하위 레벨로 분류하거나, 기계학습 목적으로 치명적 이벤트 그룹과 비치명적 이벤트 그룹으로 분류하는 단계이다.
바람직하게는, 이벤트를 필터링하는 단계는, 일정시간(T) 동안 동일한 위치에서 발생하는 이벤트 중 같은 종류를 제거하는 시간적 필터링 단계; 및 일정시간(T) 동안 다른 위치에서 발생하는 이벤트 중 같은 종류를 제거하는 공간적 필터링 단계를 포함한다.
바람직하게는, 상기 상관관계 필터링 단계는 선형적 연관 규칙 마이닝에 의해 이뤄진다.
바람직하게는, 상기 데이터의 타입을 분류하는 단계는 X-means 클러스터링에 의해 이뤄진다.
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(Δtw)보다는 커야 한다. Δtp는 예측이 유효한 시간을 말한다. Δt동안에 예측된 장애는 예측 기간(Δtp) 이내에만 유효하다. 예측 기간(Δtp)이 너무 크면, 장애의 발생 여부는 예측할 수 있지만 정확히 언제 장애가 발생할지가 명확하지 않기 때문에 예측은 쓸모없다.
나. 평가 척도
1) 장애 예측 결과 케이스 : 표 1은 컴퓨터 시스템의 네 가지 상황에 대해 정의한다. 장애 예측은 표1의 예측 결과 중에서 예측 기간 이내에 true positive(TP)만을 예측하는 것이다. 경고는 발생했지만, 실제로 장애가 일어나지 않는다면, 이것을 false positive(FP)라 한다. 만약 발생한 장애를 예측하지 못했다면, false negative(FN)라 부른다. 장애가 발생하지도 않았고, 아무런 경고를 하지 않는 경우를 true negative(TN)라 부른다.
[표 1]
Figure PCTKR2016013141-appb-I000001
2) 평가 척도 : 평가 척도는 표1을 기반으로 제시한다. 표2에 제시된 precision과 recall은 장애 예측 분야에서 자주 이용되는 평가 척도이다.
[표 2]
Figure PCTKR2016013141-appb-I000002
*하지만, 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).
[표 3]
Figure PCTKR2016013141-appb-I000003
나. 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 장애와 관련 있는 속성으로 분류할 수 있었다.
[표 4]
Figure PCTKR2016013141-appb-I000004
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 PCTKR2016013141-appb-I000005
Figure PCTKR2016013141-appb-I000006
을 각각 치명적 이벤트 A와 B 사이의 시작, 마지막 시간이라 정의하고, Wf는 치명적 이벤트 A와 B의 사이 간격이라 정의할 때,
만약
Figure PCTKR2016013141-appb-I000007
이 성립하면 A와 B는 한 트랜잭션으로 간주한다.
즉,
Figure PCTKR2016013141-appb-I000008
Figure PCTKR2016013141-appb-I000009
식이 모두 성립한다면 치명적 이벤트 A와 B는 하나의 트랜잭션으로 간주한다.
n이 트랜잭션, m이 A 이벤트를 포함하는 트랜잭션, r이 이벤트 A, B를 포함하는 트랜잭션이라 가정할 때, P(A)=m/n, P(AB)=r/n이며, 두 이벤트가 공동으로 발생하는지 여부를 판단하는 식은
Figure PCTKR2016013141-appb-I000010
이 되고, confidence(A->B)는 A가 발생할 때 B가 발생할 확률이 된다.
모든 트랜잭션에서 A와 B사이의 상관관계를 측정하는 식은
Figure PCTKR2016013141-appb-I000011
이며, 공동적으로 발생한 이벤트 A, B에 대해서 lift(A,B)의 값이 지정한 임계값보다 크면 A와 B는 우연의 일치가 아니라는 것을 파악하고, A와 B는 상관관계가 있음을 인지한다. 상관관계 필터링의 조건은
Figure PCTKR2016013141-appb-I000012
가 성립하거나 confidence(A->B)=1과, lift(A,B)>2 가 성립하거나 confidence(B->A)=1와 lift(A,B)>2가 성립한다면 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 PCTKR2016013141-appb-I000013
다. 장애 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
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)를 사용하여 세션에서 일어나는 거대한 계산과정을 시각적으로 쉽게 이해하고, 결과에 대한 정량적인 그래프를 그려볼 수 있어, 수식에 대한 디버깅이 쉽다.
y=(x1 × x2) + x2 식(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 클래스
[표 5]
Figure PCTKR2016013141-appb-I000014
나. framework 클래스
[표 6]
Figure PCTKR2016013141-appb-I000015
다. data_interface 클래스
[표 7]
Figure PCTKR2016013141-appb-I000016
라. classification class
[표 8]
Figure PCTKR2016013141-appb-I000017
마. input_create class
[표 9]
Figure PCTKR2016013141-appb-I000018
바. prediction class
[표 10]
Figure PCTKR2016013141-appb-I000019
사. data_store class
[표 11]
Figure PCTKR2016013141-appb-I000020

Claims (6)

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

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2018092924A1 true WO2018092924A1 (ko) 2018-05-24

Family

ID=62145465

Family Applications (1)

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

Country Status (2)

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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111382041A (zh) * 2018-12-29 2020-07-07 阿里巴巴集团控股有限公司 一种故障检测、数据处理方法、装置及设备
CN113361208A (zh) * 2021-07-02 2021-09-07 中国科学院空间应用工程与技术中心 基于综合健康指标的固态硬盘剩余寿命评估方法
US11409754B2 (en) 2019-06-11 2022-08-09 International Business Machines Corporation NLP-based context-aware log mining for troubleshooting
KR102463732B1 (ko) * 2022-01-03 2022-11-04 주식회사 브이웨이 머신 러닝 기반의 고장 형태 영향 분석 시스템
KR20220149066A (ko) * 2021-04-30 2022-11-08 주식회사 브이웨이 머신 러닝 기반의 고장 형태 영향 분석 시스템
US11669754B2 (en) 2020-02-25 2023-06-06 Samsung Electronics Co., Ltd. Data management, reduction and sampling schemes for storage device failure
US12141024B2 (en) 2022-01-03 2024-11-12 Vway Co., Ltd Failure mode and effect analysis system based on machine learning

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021508096A (ja) 2018-11-02 2021-02-25 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 複数のシステムインジケータの監視
KR102011689B1 (ko) * 2019-03-06 2019-08-19 주식회사 위엠비 시계열 데이터의 모니터링 방법, 모니터링 시스템 및 컴퓨터 프로그램
KR102041545B1 (ko) * 2019-03-13 2019-11-06 주식회사 위엠비 딥러닝 모델을 이용한 이벤트 예측 기반의 이벤트 모니터링 방법, 이벤트 모니터링 시스템 및 컴퓨터 프로그램

Citations (5)

* 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
KR20110022141A (ko) * 2009-08-27 2011-03-07 한국전자통신연구원 응용계층 분산 서비스 거부 공격 탐지 및 차단 장치 및 그 방법
KR101433045B1 (ko) * 2013-11-20 2014-08-27 (주)데이타뱅크시스템즈 사전 장애 탐지 시스템 및 방법
KR20150049541A (ko) * 2013-10-30 2015-05-08 삼성에스디에스 주식회사 데이터 센터 장애 이벤트 관리 자동화 시스템 및 방법

Patent Citations (5)

* 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
KR20110022141A (ko) * 2009-08-27 2011-03-07 한국전자통신연구원 응용계층 분산 서비스 거부 공격 탐지 및 차단 장치 및 그 방법
KR20150049541A (ko) * 2013-10-30 2015-05-08 삼성에스디에스 주식회사 데이터 센터 장애 이벤트 관리 자동화 시스템 및 방법
KR101433045B1 (ko) * 2013-11-20 2014-08-27 (주)데이타뱅크시스템즈 사전 장애 탐지 시스템 및 방법

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111382041A (zh) * 2018-12-29 2020-07-07 阿里巴巴集团控股有限公司 一种故障检测、数据处理方法、装置及设备
CN111382041B (zh) * 2018-12-29 2023-06-27 阿里巴巴集团控股有限公司 一种故障检测、数据处理方法、装置及设备
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
KR20220149066A (ko) * 2021-04-30 2022-11-08 주식회사 브이웨이 머신 러닝 기반의 고장 형태 영향 분석 시스템
KR102575037B1 (ko) * 2021-04-30 2023-09-06 주식회사 브이웨이 머신 러닝 기반의 고장 형태 영향 분석 시스템
CN113361208A (zh) * 2021-07-02 2021-09-07 中国科学院空间应用工程与技术中心 基于综合健康指标的固态硬盘剩余寿命评估方法
CN113361208B (zh) * 2021-07-02 2023-07-18 中国科学院空间应用工程与技术中心 基于综合健康指标的固态硬盘剩余寿命评估方法
KR102463732B1 (ko) * 2022-01-03 2022-11-04 주식회사 브이웨이 머신 러닝 기반의 고장 형태 영향 분석 시스템
WO2023128090A1 (ko) * 2022-01-03 2023-07-06 주식회사 브이웨이 머신 러닝 기반의 고장 형태 영향 분석 시스템
US12141024B2 (en) 2022-01-03 2024-11-12 Vway Co., Ltd Failure mode and effect analysis system based on machine learning

Also Published As

Publication number Publication date
KR20180054992A (ko) 2018-05-25
KR101948634B1 (ko) 2019-02-18

Similar Documents

Publication Publication Date Title
WO2018092924A1 (ko) 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법
Meng et al. Loganomaly: Unsupervised detection of sequential and quantitative anomalies in unstructured logs.
KR101545215B1 (ko) 데이터 센터 장애 이벤트 관리 자동화 시스템 및 방법
Fu et al. Digging deeper into cluster system logs for failure prediction and root cause diagnosis
Jauk et al. Predicting faults in high performance computing systems: An in-depth survey of the state-of-the-practice
Fujino et al. Discovering similar malware samples using API call topics
Zheng et al. A practical failure prediction with location and lead time for blue gene/p
Xiao et al. Hindbr: Heterogeneous information network based duplicate bug report prediction
Nikulin et al. Application of machine learning methods for automated classification and routing in ITIL
Jia et al. Robust and transferable log-based anomaly detection
Botezatu et al. Multi-view incident ticket clustering for optimal ticket dispatching
Xie et al. Domain adaptive log anomaly prediction for hadoop system
Xie et al. Dfpe: Explaining predictive models for disk failure prediction
Gu et al. Online failure forecast for fault-tolerant data stream processing
Alharthi et al. Clairvoyant: a log-based transformer-decoder for failure prediction in large-scale systems
Shah et al. Automated log analysis and anomaly detection using machine learning
Zhang et al. Posbert: Log classification via modified bert based on part-of-speech weight
WO2023146237A1 (ko) 지능형 데이터 관리 및 저장 장치 및 이를 이용한 지능형 데이터 관리 및 저장 방법
Bhanage et al. Robust Analysis of IT Infrastructure’s Log Data with BERT Language Model
CN113778792B (zh) 一种it设备的告警归类方法及系统
Yeh et al. System error prediction for business support systems in telecommunications networks
Ülkü et al. Software log classification in telecommunication industry
CN113296994A (zh) 一种基于国产计算平台的故障诊断系统及方法
Liu et al. The runtime system problem identification method based on log analysis
CN115048345A (zh) 异常日志检测方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16921562

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16921562

Country of ref document: EP

Kind code of ref document: A1