KR20240070391A - 스토리지 장치의 오류 예측 방법 및 장치 - Google Patents
스토리지 장치의 오류 예측 방법 및 장치 Download PDFInfo
- Publication number
- KR20240070391A KR20240070391A KR1020230114179A KR20230114179A KR20240070391A KR 20240070391 A KR20240070391 A KR 20240070391A KR 1020230114179 A KR1020230114179 A KR 1020230114179A KR 20230114179 A KR20230114179 A KR 20230114179A KR 20240070391 A KR20240070391 A KR 20240070391A
- Authority
- KR
- South Korea
- Prior art keywords
- attribute information
- information
- attribute
- storage devices
- storage device
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000010801 machine learning Methods 0.000 claims abstract description 42
- 238000013528 artificial neural network Methods 0.000 claims description 24
- 238000013527 convolutional neural network Methods 0.000 claims description 14
- 238000007637 random forest analysis Methods 0.000 claims description 14
- 230000000306 recurrent effect Effects 0.000 claims description 13
- 238000005516 engineering process Methods 0.000 claims description 11
- 230000007787 long-term memory Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 95
- 230000007774 longterm Effects 0.000 description 13
- 238000012549 training Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 239000000872 buffer Substances 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006403 short-term memory Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 101150104728 GPR88 gene Proteins 0.000 description 1
- 102100038404 Probable G-protein coupled receptor 88 Human genes 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Computational Biology (AREA)
- Medical Informatics (AREA)
- Debugging And Monitoring (AREA)
Abstract
스토리지 장치의 오류 예측 방법 및 장치가 제공된다. 방법은 동작 중인 기억 장치의 복수의 스토리지 장치에 대한 복수의 속성의 속성 정보를 획득하는 단계, 현재 시간 이전의 제1 시간 창 내에서 획득된 상기 복수의 속성의 상기 속성 정보에 기초하여 상기 복수의 스토리지 장치의 각각에 대한 전역 속성 정보를 획득하는 단계, 및 상기 현재 시간 이전의 제2 시간 창 내에서 획득된 상기 복수의 스토리지 장치의 상기 각각의 상기 복수의 속성의 속성 정보 및 상기 복수의 스토리지 장치의 상기 각각의 상기 전역 속성 정보에 기초하여 훈련된 기계 학습 모델을 사용하여 상기 복수의 스토리지 장치에 대한 오류를 예측하는 단계를 포함한다.
Description
본 개시는 스토리지 기술 분야에 관한 것으로, 보다 상세하게는 스토리지 장치의 오류 예측 방법 및 장치에 관한 것이다.
데이터 스토리지 기술이 발달함에 따라, 솔리드 스테이트 드라이브(SSD)는 데이터 센터와 같은 스토리지 시스템에서 널리 사용된다. SSD에 오류가 발생하면 데이터 센터 다운타임 또는 영구적인 데이터 손실이 발생할 수 있기 때문에, 사전에 오류가 발생할 SSD를 예측하고 오류가 발생하기 전에 교체하면 SSD의 오류가 데이터 센터에 미치는 영향을 최소화할 수 있다.
기존의 SSD 오류 예측 방법은 SSD에 대해 주로 최근에 획득한 자체 모니터링 분석 및 보고 기술(SMART, Self Monitoring Analysis and Reporting Technology) 데이터에 기반하여 SSD의 오류를 예측한다. 그러나, 미래에 발생하게 될 일부 오류는 장기적 SMART 데이터의 추세와 분포에 의해서만 반영될 수 있기 때문에, 단기 SMART 데이터를 기반으로 SSD의 오류를 예측하는 기존의 방법은 이러한 오류를 예측할 수 없고, 결과적으로 SSD에 대한 오류 예측 정확도가 떨어진다.
본 발명이 해결하고자 하는 과제는 스토리지 장치의 오류 예측 정확도를 향상시켜, 데이터 보안 향상시킬 수 있는 스토리지 장치의 오류 예측 방법 및 장치를 제공하는 것이다.
본 개시의 예시적 실시 예의 일 측면에 따르면, 스토리지 장치의 오류 예측 방법이 제공되고, 상기 방법은 동작 중인 기억 장치의 복수의 스토리지 장치에 대한 복수의 속성의 속성 정보를 획득하는 단계, 현재 시간 이전의 제1 시간 창 내에서 획득된 상기 복수의 속성의 상기 속성 정보에 기초하여 상기 복수의 스토리지 장치의 각각에 대한 전역 속성 정보를 획득하는 단계로, 상기 전역 속성 정보는 상기 각 스토리지 장치에 대한 상기 복수의 속성의 각각의 속성 정보의 분포 특성, 상기 각 스토리지 장치에 대한 상기 각 속성의 속성 정보의 경향 특성 및 호스트 속성 정보 중 적어도 하나를 포함하고, 상기 호스트 속성 정보는 상기 제1 시간 창 내에서 획득된 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 속성 정보의 통계 정보에 의해 표시되는 단계, 및 상기 현재 시간 이전의 제2 시간 창 내에서 획득된 상기 복수의 스토리지 장치의 상기 각각의 상기 복수의 속성의 속성 정보 및 상기 복수의 스토리지 장치의 상기 각각의 상기 전역 속성 정보에 기초하여 훈련된 기계 학습 모델을 사용하여 상기 복수의 스토리지 장치에 대한 오류를 예측하는 단계를 포함하고, 이 때 상기 제1 시간 창 중 적어도 하나는 상기 제2 시간 창 전에 시작하거나, 또는 상기 제1 시간 창의 제1 지속시간은 상기 제2 시간 창의 제2 지속시간보다 더 길다.
본 개시의 실시 예에 따르면, 짧은 시간 창에서 획득한 스토리지 장치의 속성 정보와 긴 시간 창에서 획득한 스토리지 장치의 속성 정보를 기반으로 스토리지 장치에 대한 오류가 예측되기 때문에, 스토리지 장치의 단기 속성 정보와 장기 속성 정보 모두에 의해 반영된 미래 가능한 오류를 예측할 수 있고, 이에 의해 스토리지 장치의 오류 예측 정확도를 높여 데이터 스토리지 보안을 더 잘 보호할 수 있다.
대안적으로, 상기 각 속성의 속성 정보의 상기 분포 특성은 상기 각 속성의 속성 정보의 히스토그램 특성을 포함하고, 각 속성의 속성 정보의 경향 특성은 상기 각 속성의 속성 정보의 통계적 특성을 포함하고, 상기 복수의 스토리지 장치에 대한 상기 각 속성의 상기 속성 정보에 대응하는 상기 통계 정보는 상기 복수의 스토리지 장치에 대한 상기 각 속성의 속성 정보의 평균, 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 각 속성의 속성 정보의 분포 특성의 평균 및 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 각 속성의 속성 정보의 경향 특성의 평균 중 적어도 하나로 표현된다.
본 개시의 실시 예에 따르면, 스토리지 장치에 대해 전역 속성 정보를 사용하여 스토리지 장치의 오류를 예측하게 되면, 스토리지 장치에 대한 속성 정보의 분포 특성 및/또는 속성 정보의 경향 특성에 의해서만 반영될 수 있는 오류를 효과적으로 예측할 수 있다.
대안적으로, 상기 동작 중인 기억 장치의 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 속성 정보는 상기 복수의 스토리지 장치의 상기 각각에 대한 SMART(Self Monitoring Analysis and Reporting Technology) 정보, 및/또는 상기 복수의 스토리지 장치의 상기 각각에 대한 RAM 관련 정보 및 상기 복수의 스토리지 장치의 각각에 대한 성능 통계 정보를 포함한다.
본 개시의 실시 예에 따르면, 일부 오류는 SMART 정보만으로는 반영될 수 없기 때문에, SMART 정보뿐만 아니라 스토리지 장치의 다른 속성 정보를 기반으로 더 많은 미래 가능한 오류를 예측할 수 있다.
대안적으로, 상기 현재 시간 이전의 제2 시간 창 내에서 획득된 상기 복수의 스토리지 장치의 상기 각각의 상기 복수의 속성의 속성 정보 및 상기 복수의 스토리지 장치의 상기 각각의 상기 전역 속성 정보에 기초하여 훈련된 기계 학습 모델을 사용하여 상기 복수의 스토리지 장치에 대한 오류를 예측하는 단계는: 상기 학습된 기계 학습 모델의 국부 예측 모듈에 상기 제2 시간 창 내에서 획득된 상기 스토리지 장치의 각각에 대한 상기 복수의 속성의 속성 정보를 입력하여 상기 각 스토리지 장치에 대한 국부 오류 예측 정보를 획득하는 단계, 상기 각 스토리지 장치에 대한 상기 전역 속성 정보를 상기 훈련된 기계 학습 모델의 전역 예측 모듈에 입력하여 상기 각 스토리지 장치에 대한 전역 오류 예측 정보를 획득하는 단계, 및 상기 각 스토리지 장치에 대한 상기 국부 오류 예측 정보 및 상기 전역 오류 예측 정보를 상기 훈련된 기계 학습 모델의 결정 모듈에 입력하여 상기 각 스토리지 장치에 대한 다음 오류 정보: 상기 각 스토리지 장치에 대한 오류 발생 여부, 상기 각 스토리지 장치에 대해 발생할 상기 오류의 유형 및 상기 각 스토리지 장치의 남은 수명 중 적어도 하나를 출력하는 단계를 포함한다.
본 개시의 실시 예에 따르면, 상기 스토리지 장치의 국부 오류 예측 정보 및 전역 오류 예측 정보를 기반으로 상기 스토리지 장치의 오류 정보를 출력함으로써 단기 속성 정보에 반영된 오류 및 장기 속성 정보에 반영된 오류를 예측할 수 있으며, 이에 따라 오류 예측 정확도를 향상시킬 수 있다.
대안적으로, 상기 국부 예측 모듈, 상기 전역 예측 모듈 및 상기 결정 모듈 각각은 랜덤 포레스트(RF), 컨벌루션 신경망(CNN), 순환 신경망(RNN), 순환 신경망(RNN)의 장단기 메모리(LSTM) 중 어느 하나이다.
본 개시의 예시적 실시 예의 다른 측면에 따르면, 스토리지 장치의 오류 예측 장치가 제공되고, 상기 장치는 동작 중인 기억 장치의 복수의 스토리지 장치에 대한 복수의 속성의 속성 정보를 획득하도록 구성된 제1 획득 유닛, 현재 시간 이전의 제1 시간 창 내에서 획득된 상기 복수의 속성의 상기 속성 정보에 기초하여 상기 복수의 스토리지 장치의 각각에 대한 전역 속성 정보를 획득하도록 구성된 제2 획득 유닛으로, 상기 전역 속성 정보는 상기 각 스토리지 장치에 대한 상기 복수의 속성의 각각의 속성 정보의 분포 특성, 상기 각 스토리지 장치에 대한 상기 각 속성의 속성 정보의 경향 특성 및 호스트 속성 정보 중 적어도 하나를 포함하고, 상기 호스트 속성 정보는 상기 제1 시간 창 내에서 획득된 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 속성 정보의 통계 정보에 의해 표시되는 제2 획득 유닛, 및 상기 현재 시간 이전의 제2 시간 창 내에서 획득된 상기 복수의 스토리지 장치의 상기 각각의 상기 복수의 속성의 속성 정보 및 상기 복수의 스토리지 장치의 상기 각각의 상기 전역 속성 정보에 기초하여 훈련된 기계 학습 모델을 사용하여 상기 복수의 스토리지 장치에 대한 오류를 예측하도록 구성된 예측 유닛을 포함하고, 이 때 상기 제1 시간 창 중 적어도 하나는 상기 제2 시간 창 전에 시작하거나, 또는, 상기 제1 시간 창의 제1 지속시간은 상기 제2 시간 창의 제2 지속시간보다 더 길다.
대안적으로, 상기 각 속성의 속성 정보의 상기 분포 특성은 상기 각 속성의 속성 정보의 히스토그램 특성을 포함하고, 각 속성의 속성 정보의 경향 특성은 상기 각 속성의 속성 정보의 통계적 특성을 포함하고, 상기 복수의 스토리지 장치에 대한 상기 각 속성의 상기 속성 정보에 대응하는 상기 통계 정보는 상기 복수의 스토리지 장치에 대한 상기 각 속성의 속성 정보의 평균, 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 각 속성의 속성 정보의 분포 특성의 평균 및 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 각 속성의 속성 정보의 경향 특성의 평균 중 적어도 하나로 표현된다.
대안적으로, 상기 동작 중인 기억 장치의 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 속성 정보는 상기 복수의 스토리지 장치의 상기 각각에 대한 SMART 정보, 및/또는 상기 복수의 스토리지 장치의 상기 각각에 대한 RAM 관련 정보 및 상기 복수의 스토리지 장치의 각각에 대한 성능 통계 정보를 포함한다.
대안적으로, 상기 오류 예측 유닛은, 상기 학습된 기계 학습 모델의 국부 예측 모듈에 상기 제2 시간 창 내에서 획득된 상기 스토리지 장치의 각각에 대한 상기 복수의 속성의 속성 정보를 입력하여 상기 각 스토리지 장치에 대한 국부 오류 예측 정보를 획득하고, 상기 각 스토리지 장치에 대한 상기 전역 속성 정보를 상기 훈련된 기계 학습 모델의 전역 예측 모듈에 입력하여 상기 각 스토리지 장치에 대한 전역 오류 예측 정보를 획득하고, 상기 각 스토리지 장치에 대한 상기 국부 오류 예측 정보 및 상기 전역 오류 예측 정보를 상기 훈련된 기계 학습 모델의 결정 모듈에 입력하여 상기 각 스토리지 장치에 대한 다음 오류 정보: 상기 각 스토리지 장치에 대한 오류 발생 여부, 상기 각 스토리지 장치에 대해 발생할 상기 오류의 유형 및 상기 각 스토리지 장치의 남은 수명 중 적어도 하나를 출력하도록 구성된다.
대안적으로, 상기 국부 예측 모듈, 상기 전역 예측 모듈 및 상기 결정 모듈의 각각은 랜덤 포레스트(RF), 컨벌루션 신경망(CNN), 장단기 메모리 네트워크(LSTM) 및 순환 신경망(RNN) 중 어느 하나이다.
본 개시의 예시적인 실시 예의 다른 측면에 따르면, 메인 프로세서, 메모리, 및 복수의 스토리지 장치를 포함하는, 스토리지 장치가 적용되는 시스템이 제공되고, 이 때 메모리는 메인 프로세서에 의해 실행될 때, 메인 프로세서가 상술한 바와 같은 스토리지 장치에 대한 오류 예측 방법을 실행하도록 하는 컴퓨터 프로그램을 저장한다.
본 개시의 예시적인 실시 예의 다른 측면에 따르면, 호스트, 및 복수의 스토리지 장치를 포함하는, 호스트 스토리지 시스템이 제공되고, 이 때 상기 호스트는 상술한 바와 같은 스토리지 장치에 대한 오류 예측 방법을 수행하도록 구성된다.
본 개시의 예시적인 실시 예의 다른 측면에 따르면, UFS 호스트, UFS 장치, 및 UFS 호스트와 UFS 장치 간의 통신에 사용되는 UFS 인터페이스를 포함하는, 범용 플래시 스토리지(UFS) 시스템을 제공하고 있고, 이 때 상기 UFS 호스트는 상술한 바와 같은 스토리지 장치에 대한 오류 예측 방법을 수행하도록 구성된다.
본 개시의 예시적인 실시 예의 다른 측면에 따르면, 복수의 애플리케이션 서버, 및 복수의 스토리지 서버, 복수의 스토리지 장치를 포함하는, 데이터 센터 시스템을 제공하고 있고, 이 때 각 스토리지 서버는 복수의 스토리지 장치를 포함하고, 상기 복수의 애플리케이션 서버 및 상기 복수의 스토리지 서버 중 적어도 하나는 상술한 바와 같은 스토리지 장치에 대한 오류 예측 방법을 수행하도록 구성된다.
본 개시의 예시적인 실시 예의 다른 측면에 따르면, 프로세서에 의해 실행될 때, 상술한 바와 같은 스토리지 장치에 대한 오류 예측 방법을 구현하는, 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 저장 매체를 제공하고 있다.
본 개시의 예시적인 실시 예의 다른 측면에 따르면, 프로세서, 프로세서에 의해 실행될 때, 상술한 바와 같은 스토리지 장치에 대한 오류 예측 방법을 구현하는 컴퓨터 프로그램을 저장하는 메모리를 포함하는, 전자 장치를 제공하고 있다.
본 개시의 예시적인 실시 예의 상기 및 기타 목적 및 특징은 실시 예를 개략적으로 예시하는 도면과 함께 이루어진 다음의 설명을 통해 보다 명확해질 것이다.
도 1은 본 개시의 실시 예에 따른 스토리지 장치의 오류 예측 방법의 흐름도를 도시한다,
도 2는 본 개시의 실시 예에 따른, 두 개의 원본 오류 샘플을 결합하여 새로운 오류 샘플을 생성하는 방법의 개략도를 도시한다,
도 3은 본 개시의 일 실시 예에 따른 스토리지 장치의 오류 예측 장치의 구조를 도시하는 블록도이다,
도 4는 본 개시의 실시 예에 따른 스토리지 장치가 적용되는 시스템의 개략도이다,
도 5는 본 개시의 일 실시 예에 따른 호스트 스토리지 시스템의 블록도이다,
도 6은 일 실시 예에 따른 UFS 시스템의 블록도이다.
도 7은 본 개시의 일 실시 예에 따른 스토리지 장치가 적용된 데이터 센터의 도면이다.
도 1은 본 개시의 실시 예에 따른 스토리지 장치의 오류 예측 방법의 흐름도를 도시한다,
도 2는 본 개시의 실시 예에 따른, 두 개의 원본 오류 샘플을 결합하여 새로운 오류 샘플을 생성하는 방법의 개략도를 도시한다,
도 3은 본 개시의 일 실시 예에 따른 스토리지 장치의 오류 예측 장치의 구조를 도시하는 블록도이다,
도 4는 본 개시의 실시 예에 따른 스토리지 장치가 적용되는 시스템의 개략도이다,
도 5는 본 개시의 일 실시 예에 따른 호스트 스토리지 시스템의 블록도이다,
도 6은 일 실시 예에 따른 UFS 시스템의 블록도이다.
도 7은 본 개시의 일 실시 예에 따른 스토리지 장치가 적용된 데이터 센터의 도면이다.
이하, 첨부된 도면을 참조하여 본 개시의 다양한 실시 예를 설명하되, 동일 또는 유사한 구성요소, 특징 및 구조에 대해서는 유사한 참조번호를 부여한다. 그러나, 본 개시는 본 명세서에서 설명하는 다양한 실시 예에 의해 특정 실시 예로 한정되는 것은 아니고 본 개시내용은 첨부된 청구범위 및 그 균등물의 범위 내에 있는 한 본 개시내용의 모든 수정, 등가물 및/또는 대안을 포함하는 것으로 의도된다. 이하의 설명 및 특허청구범위에 사용된 용어 및 단어는 사전적 의미에 한정되는 것이 아니고, 단지 본 개시의 명확하고 일관된 이해를 가능하게 하기 위해 사용된다. 따라서, 본 개시의 다양한 실시 예에 대한 다음의 설명은 첨부된 특허청구범위 및 그 등가물에 의해 정의된 바와 같이 본 개시를 제한할 목적이 아니라 예시 목적으로만 제공된다는 것이 당업자에게 명백해야 한다.
단수형은 문맥상 명백하게 다르게 지시하지 않는 한 복수형을 포함하는 것으로 이해되어야 한다. 본 명세서에서 "포함하다", "구비하다", "가지다" 등의 용어는 개시된 기능, 동작 또는 구성요소의 존재를 나타내지만, 다른 기능, 동작 또는 구성요소를 배제하는 것은 아니다.
예를 들어, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나"라는 표현은 A 및 B, A 또는 B를 나타낼 수 있다. 예를 들어, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나"라는 표현은 (1) A, (2) B 또는 (3) A와 B 모두를 나타낼 수 있다.
본 개시의 다양한 실시 예에서, 구성 요소(예: 제1 구성 요소)가 다른 구성 요소(예: 제2 구성 요소)와 "결합된" 또는 "연결된" 것으로 언급될 때, 상기 구성요소는 다른 구성요소에 직접 연결되거나, 다른 구성요소(예: 제3의 구성요소)를 통하여 연결될 수 있다. 반대로, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)와 "직접 결합" 또는 "직접 연결"되었다고 표현하는 경우, 다른 구성 요소(예: 세 번째 구성 요소)가 구성 요소와 다른 구성 요소 사이에 존재하지 않는다.
본 개시의 다양한 실시 예를 설명하는데 사용되는 "하도록 구성된"이라는 표현은, 예를 들어, 상황에 따라. "에 적합한", "할 능력이 있는", "하도록 설계된", "에 적응된", "하도록 만들어진", 및 "할 수 있는" 등의 표현과 혼용될 수 있다. "구성된"이라는 용어는 반드시 하드웨어 측면에서 "특정하게 설계된"을 나타내지 않을 수 있다. 대신, 일부 상황에서 "하도록 구성된 장치"라는 표현은 해당 장치와 다른 장치 또는 부품이 "할 수 있다"는 것을 나타낼 수 있다. 예를 들어, "A, B, C를 수행하도록 구성된 프로세서"라는 표현은 해당 동작을 수행하는 전용 프로세서(예: 임베디드 프로세서), 또는 범용 프로세서(예: 중앙 처리 장치(CPU) 또는 메모리 장치에 저장된 적어도 하나의 소프트웨어 프로그램을 실행하여 해당 동작을 수행하는 애플리케이션 프로세서(AP)를 의미할 수 있다.
본 명세서에서 사용한 용어는 본 개시의 어떤 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아니다. 본 명세서에서 달리 명시되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 일반적으로, 사전에 정의된 용어는 관련 기술의 문맥적 의미와 동일한 의미로 간주되어야 하며, 본 명세서에서 명확하게 정의되지 않는 한, 다르게 이해되거나 지나치게 형식적인 의미를 갖는 것으로 이해되어서는 안 된다. 어쨌든, 본 문서에서 정의된 용어라도 본 문서의 실시 예들을 배제하는 것으로 해석되지 않는다.
본 개시 내용을 더 잘 이해하기 위하여, 관련 기술의 스토리지 장치에 대한 오류 예측 방법을 먼저 설명한다.
기존의 스토리지 장치에 대한 오류 예측 방법은 주로 스토리지 장치의 SMART(Self Monitoring Analysis and Reporting Technology) 속성 정보를 기반으로 스토리지 장치의 오류 여부를 예측한다. SMART 속성 정보를 기반으로 스토리지 장치의 오류 여부를 예측하는 방법은 1) 인공신경망(ANN; Artificial Neural Network) 기반 SSD 오류 예측 방법과, 2) 순환 신경망(RNN)의 장단기 메모리(LSTM; Long Short-Term Memory) 기반 SSD 오류 예측 방법을 포함할 수 있다.
1) 인공신경망(ANN; Artificial Neural Network) 기반 SSD 오류 예측 방법
이 오류 예측 방법은 작은 시간 창에서 얻은 단일 SMART 속성 정보 또는 여러 SMART 속성 정보(예를 들어, 현재 수집된 단일 SMART 속성 정보 또는 최근 기간 내에 수집된 여러 SMART 속성 정보)에 기반하는 ANN을 사용하여 스토리지 장치의 오류 여부를 예측한다. 특히 이 방법은 주요 구성요소 분석(PCA; Principal Component Analysis) 방법을 사용하여 원본 SMART 데이터에 대한 기능 변환을 수행하고, ANN을 기반으로 변환된 기능을 기반으로 SSD의 오류 여부를 예측한다. 게다가, ANN 훈련 중, 이 방법은 합성 소수 클래스 오버샘플링 기술(SMOTE; Synthetic Minority class Oversampling TEchnique)을 사용하여 보다 합리적인 방식으로 ANN을 훈련하기 위해 오류 샘플 수를 늘린다.
그러나, SMART 로그의 SSD에 대한 기능 수는 제한되어 있고, 작은 시간 창 내에서 SMART 데이터를 기반으로 SSD의 오류 여부에 대한 예측은 오류 SSD와 정상 SSD의 속성 변동 추세 간의 차이를 반영할 수 있는 시간 정보를 무시하고, 따라서 이 방법은 SSD의 오류 여부만 예측할 수 있지만, 발생할 특정 유형의 오류와 SSD의 남은 수명을 결정할 수는 없다.
2) RNN의 장단기 메모리(LSTM; Long Short-Term Memory) 기반 SSD 오류 예측 방법
이 방법은 더 큰 시간 창 내의 SMART 데이터를 획득 시간에 따라 임시 데이터로 정렬하고, 시간 데이터를 사용하여 LSTM을 기반으로 스토리지 장치의 오류 여부를 예측한다.
그러나, 이 방법은 시간적 정보를 포착하여 오류 예측의 정확도를 향상시키지만, 단기 속성 정보에 반영된 미래 가능한 오류를 효과적으로 예측할 수 없다.
도 1은 본 개시의 실시 예에 따른 스토리지 장치의 오류 예측 방법(11)의 흐름도를 도시한다.
도 1을 참조하면, 단계 S101에서, 동작 중인 기억 장치의 복수의 스토리지 장치에 대한 복수의 속성의 속성 정보(attribute information)가 획득된다.
예로서, 데이터 기억 장치는 복수의 스토리지 장치(예: SSD)를 포함할 수 있으며, 스토리지 장치의 작동 중에, 각 스토리지 장치에 대한 복수의 속성의 속성 정보, 예를 들어 각 스토리지 장치에 대한 SMART 데이터 및/또는 원격 측정 데이터가 획득될 수 있다. 이 때 NVMe 기본 사양(예: NVMe 1.3)에서 정의된 바와 같이, SMART 데이터는 스토리지 장치의 획득한 동작 상태 데이터를 나타내고, 원격 측정 데이터는 원격 측정 기술을 통해 얻은 스토리지 장치에 대한 벤더 정의 속성 정보를 나타낸다.
예로서, 스토리지 장치에 대한 벤더 정의 속성 정보는 스토리지 장치(예를 들어, SSD)의 내부 상태를 반영하는 속성 정보, 예를 들어, 스토리지 장치의 RAM 관련 정보, 스토리지 장치의 성능 통계 정보 등일 수 있다.
예로서, 작동 중인 기억 장치의 복수의 스토리지 장치에 대한 복수의 속성의 속성 정보는 복수의 스토리지 장치 각각에 대한 SMART 정보, 및/또는 복수의 스토리지 장치 각각에 대한 RAM 관련 정보, 복수의 스토리지 장치 각각에 대한 성능 통계 정보를 포함한다.
본 개시의 실시 예에 따르면, 스토리지 장치의 내부 RAM 관련 정보와 스토리지 장치의 성능 통계 정보는 스토리지 장치의 내부 상태를 잘 반영할 수 있으므로, 스토리지 장치의 오류가 상기 두 유형의 정보를 포함하는 속성 정보를 기반으로 예측되면 스토리지 장치의 오류 예측 정확도가 향상될 수 있다.
단계 S102에서, 상기 복수의 스토리지 장치 각각에 대한 전역 속성 정보(global attribute information)는 현재 시간 이전의 제1 시간 창 내에서 획득된 복수의 속성의 속성 정보에 기초하여 획득되며, 상기 전역 속성 정보는 각 스토리지 장치에 대한 복수의 속성 각각의 속성 정보의 분포 특성, 각 스토리지 장치에 대한 각 속성의 속성 정보의 경향 특성 및 호스트 속성 정보 중 적어도 하나를 포함하고, 여기서 호스트 속성 정보는 제1 시간 창 내에서 획득된 복수의 스토리지 장치에 대한 복수의 속성의 속성 정보의 통계 정보에 의해 표시된다.
예로서, 각 속성의 속성 정보의 분포 특성은 각 속성의 속성 정보의 히스토그램 특성을 포함하고, 각 속성의 속성 정보의 경향 특성은 각 속성의 속성 정보의 통계적 특성을 포함하고, 복수의 스토리지 장치에 대한 각각의 속성의 속성 정보에 대응하는 통계 정보는 복수의 스토리지 장치에 대한 각 속성의 속성 정보의 평균, 복수의 스토리지 장치에 대한 복수의 속성의 각 속성의 속성 정보의 평균 분포 특성 및 복수의 스토리지 장치에 대한 복수의 속성의 각 속성의 속성 정보의 경향 특성의 평균 중 적어도 하나로 표현된다.
일 예로서, 각 스토리지 장치에 대한 각 속성의 속성 정보의 통계적 특성은 범위, 분산, 변동 요인, 제1 시간 창 내에 수집된 각 스토리지 장치에 대한 각 속성 값의 변화율 중 적어도 하나를 포함한다.
당업자라면 스토리지 장치의 속성 정보의 장기적 변화 추이 및 장기 속성 정보의 분포를 반영할 수 있는 임의의 통계적 특성이 전역 속성 정보로 사용될 수 있다는 것이 이해될 것이다.
예로, 기억 장치가 M개의 SSD를 포함할 때, 83개 속성 중 제1 속성에 해당하는 N개의 속성 값이 각 SSD의 제1 시간 창 내에서 획득되면, 제1 속성에 대한 M*N개의 속성 값이 M개의 SSD에 대해 획득될 수 있으며, M*N개의 속성 값의 평균이 각 스토리지 장치의 제1 속성에 해당하는 호스트 속성 정보로 사용된다. 유사하게, 각 스토리지 장치에 대한 다른 속성에 대응하는 호스트 속성 정보가 획득될 수 있다.
다른 예로, 복수의 스토리지 장치에 대한 각 속성의 속성 정보에 대응하는 통계 정보는 복수의 스토리지 장치에 대한 각 속성의 속성 정보의 다른 통계적 특성(예: 값의 범위, 분산, 변동 요인 및/또는 변화율)으로 표현될 수 있다.
단계 S103에서, 복수의 스토리지 장치에 대한 오류는 현재 시간 이전의 제2 시간 창 내에서 획득된 복수의 스토리지 장치 각각의 복수의 속성의 속성 정보 및 복수의 스토리지 장치 각각의 전역 속성 정보에 기초하여 훈련된 기계 학습 모델을 사용함으로써 예측된다.
제1 시간 창은 제2 시간 창과 다를 수 있다. 설명된 바와 같이, 제1 시간 창은 제2 시간 창보다 먼저 시작될 수 있으나, 실시예들이 이에 한정되지는 않는다. 예를 들어, 제1 시간 창과 제2 시간 창이 겹치는 경우, 이들은 서로 다른 시간에 시작하여 실질적으로 동일한 시간에 종료되거나, 실질적으로 동일한 시간에 시작하여 서로 다른 시간에 종료되거나, 또는 이에 제한되지 않고 서로 다른 시간에 시작하여 서로 다른 시간에 종료될 수 있다. 또한, 제1 시간 창의 기간이 제2 시간 창의 기간보다 길거나 그 반대의 경우도 가능하다.
본 개시의 실시 예에 따르면, 스토리지 장치의 단기 속성 정보와 장기 속성 정보를 모두 기반으로 스토리지 장치의 오류를 예측하므로, 단기 속성 정보와 장기 속성 정보 모두에 반영된 오류를 효과적으로 예측할 수 있다.
본 개시의 실시 예에 따르면, 훈련된 기계 학습 모델은 전역 속성 정보를 입력하기 위한 전역 입력 채널과 국소 입력 채널을 포함할 수 있으며, 두 채널을 통해 입력되는 데이터에 기초할 수 있다. 단기 속성 정보에 반영된 제1 오류 정보와 장기 속성 정보에 반영된 제2 오류 정보를 각각 획득할 수 있으며, 그런 다음 제1 오류 정보 및 제2 오류 정보에 기초하여 최종 오류 예측이 이루어진다. 다중 채널 입력 구조는 오류 관련 작업에 대한 보다 정확한 예측을 위해 장기 속성 정보와 단기 속성 정보를 결합할 수 있다.
본 개시의 실시 예에 따르면, 훈련된 기계 학습 모델은 스토리지 장치의 오류에 대한 더 많은 정보를 예측할 수 있는 다중 작업 예측 모델일 수 있다.
예로서, 훈련된 기계 학습 모델은 전역 예측 모듈, 국부 예측 모듈 및 결정 모듈을 포함한다.
예로서, 국부 예측 모듈, 전역 예측 모듈, 결정 모듈 각각은 랜덤 포레스트(RF; Random Forest), 인공 신경망(ANN; Artificial Nerual Network), 컨벌루션 신경망(CNN; Convolution Neural Network), 순환 신경망(RNN; Recurrent Nerual Network), RNN의 장단기 메모리(LSTM) 중 어느 하나이다.
예로서, 현재 시간 이전의 제2 시간 창 내에서 획득된 복수의 스토리지 장치 각각의 복수의 속성의 속성 정보 및 복수의 스토리지 장치 각각의 전역 속성 정보에 기초하여 훈련된 기계 학습 모델을 사용하여 복수의 스토리지 장치에 대한 오류를 예측하는 단계는: 상기 제2 시간 창 내에서 획득된 각 스토리지 장치에 대한 복수의 속성의 속성 정보를 학습된 기계 학습 모델의 국부 예측 모듈에 입력하여 각 스토리지 장치에 대한 국부 오류 예측 정보를 획득하는 단계, 각 스토리지 장치에 대한 전역 속성 정보를 훈련된 기계 학습 모델의 전역 예측 모듈에 입력하여 각 스토리지 장치에 대한 전역 오류 예측 정보를 획득하는 단계, 및 각 스토리지 장치에 대한 국부 오류 예측 정보 및 전역 오류 예측 정보를 훈련된 기계 학습 모델의 결정 모듈에 입력하여 각 스토리지 장치에 대한 다음 오류 정보: 각 스토리지 장치에 대한 오류 발생 여부, 각 스토리지 장치에 대해 발생하게 될 오류 유형, 및 각 스토리지 장치의 남은 수명 중 적어도 하나를 출력하는 단계를 포함한다.
본 개시의 실시 예에 따르면, 스토리지 장치의 미래 가능한 오류는 스토리지 장치에 대한 단기 속성 정보 및/또는 장기 속성 정보에 반영될 수 있고, 단기 속성 정보와 장기 속성 정보의 변화 추세 및 분포를 기반으로 스토리지 장치의 오류를 예측하는 단계는 스토리지 장치의 가능한 오류를 보다 효과적으로 예측할 수 있게 한다.
본 개시의 실시 예에 따르면, 스토리지 장치의 속성 정보를 기반으로 오류에 대한 보다 자세한 정보를 예측할 수 있으므로, 사용자가 오류가 발생한 SSD를 처리할 수 있도록 더 많은 참조 데이터가 제공될 수 있으며, 예를 들어, 보다 자세한 오류 정보는 사용자가 오류 원인을 분석하는 것을 용이하게 하고, 이에 의해 운영자와 유지 보수자가 SSD 오류를 처리하고 예방하는 데에 도움을 줄 수 있다.
예로서, 스토리지 장치에 오류가 발생할지의 여부는 스토리지 장치에 대한 오류 위험 점수 및/또는 스토리지 장치가 오류 날 확률로 나타낼 수 있다.
예로서, 스토리지 장치의 예상되는 잔여 수명은 잔여 수명이 속하는 기간 구간으로 표현될 수 있으며, 예를 들어 기간 구간은 하루, 일주일, 및 1주일보다 긴 기간으로 설정될 수 있으며, 즉 미리 예측된 남은 수명은 하루, 1주일 또는 1주일보다 길다.
학습된 기계 학습 모델을 이용하여 스토리지 장치의 오류 정보를 예측하는 방법은 상술되었다. 기계 학습 모델의 학습 과정은 다음과 같다.
기계 학습 모델을 훈련하기 위해서는 많은 양의 학습 샘플 데이터가 필요하지만, 훈련 세트는 SSD의 낮은 오류율로 인해 오류 샘플의 수가 정상 샘플의 수보다 훨씬 적다는 문제를 겪고 있다. 이러한 불균형 데이터 세트에 대한 훈련에 의해 획득한 오류 예측 모델은 일반적으로 성능이 좋지 않다.
예로서, 학습 샘플 데이터의 불균형 문제를 해결하기 위해, 두 개의 원본 오류 샘플을 결합하여 많은 수의 새로운 오류 샘플을 생성할 수 있다.
예로서, 상기 머신 러닝 모델의 학습에 사용되는 오류 샘플 학습 데이터는 오류를 예측하고자 하는 복수의 스토리지 장치(이하 설명의 편의를 위해 제1 복수의 스토리지 장치라 함)와 동일한 유형의 복수의 스토리지 장치(이하 설명의 편의를 위해 제2 복수의 스토리지 장치라 함)에 대응하는 원본 오류 샘플, 및 원본 오류 샘플을 결합하여 획득한 증가된 오류 샘플이다.
예로서, 증가된 오류 샘플은 제2 복수의 스토리지 장치 중 적어도 하나의 원본 오류 샘플의 일부분의 데이터를 제2 복수의 스토리지 장치의 다른 스토리지 장치의 원본 오류 샘플의 해당 부분의 데이터로 대체함으로써 획득된다.
도 2는 본 개시의 일 실시 예에 따라 두 개의 원본 오류 샘플(22, 26)을 결합하여 새로운 오류 샘플을 생성하는 방법(20)의 개략도를 나타낸다.
도 2를 참조하면, 두 개의 오류 샘플(22, 26)이 먼저 원본 데이터에서 무작위로 선택된 다음에, 두 샘플 중 하나의 임의 영역(24)을 다른 샘플의 해당 영역(28)으로 대체하여 새로운 샘플(30)을 생성한다.
상기 데이터 강화 방법을 통해, 훈련 세트의 오류 샘플 수 대 정상 샘플 수의 비율을 증가시키는 것이 가능하다. 예를 들어 데이터 향상을 사용하지 않고, 훈련 세트의 오류 샘플 수 대 정상 샘플 수의 비율은 1:1000이고, 본 개시의 일 실시 예에 따른 데이터 향상 방법을 사용하여 훈련 세트의 오류 샘플 수와 정상 샘플 수의 비율을 1:10으로 증가시킬 수 있다. 데이터 세트에서 오류 샘플의 수와 정상 샘플의 수가 상대적으로 균형을 이루므로, 이러한 데이터 세트에서 훈련된 예측 모델은 오류 예측 정확도를 향상시킬 수 있다.
당업자라면 기계 학습 모델을 훈련시킬 때의 입력 데이터와 출력 데이터의 형태는 훈련된 기계 학습 모델을 사용할 때의 입력 데이터와 출력 데이터의 형태와 동일하는 것이 이해될 것이다.
예를 들어, 기계 학습 모델이 스토리지 장치의 전역 속성 정보와 국부 속성 정보를 기반으로 학습되어 스토리지 장치가 오류나는지의 여부 및 오류나는 스토리지 장치의 남은 수명을 예측하는 경우, 기계 학습 모델에 입력되는 입력 데이터는 스토리지 장치의 전역 속성 정보 및 국부 속성 정보이고, 출력 데이터는 훈련된 기계 학습 모델이 예측에 사용될 때 스토리지 장치가 오류나는지의 여부 및 스토리지 장치의 남은 수명을 나타낸다.
예로서, 기계 학습 모델에 포함된 전역 예측 모듈, 국부 예측 모듈 및 결정 모듈 각각은 랜덤 포레스트(RF)와 같은 결정 트리 집합 중 어느 하나이거나, 컨벌루션 신경망(CNN), 순환 신경망(RNN), 순환 신경망(RNN)의 장단기 메모리 (LSTM)에 기반하는 기계학습 모델일 수 있다. 훈련 데이터셋에 기반하는 기계 학습 모델을 학습시키는 방법은 기존의 기술이므로, 여기서는 설명하지 않는다.
예를 들어, 전역 예측 모듈, 국부 예측 모듈 및 결정 모듈은 개별적으로 또는 공동으로 학습될 수 있다.
예를 들어, 전역 예측 모듈, 국부 예측 모듈 및 결정 모듈의 출력 정보 형태는 동일할 수 있다. 예를 들어, 전역 예측 모듈이 훈련 세트에서 추출한 전역 속성 정보를 기반으로 스토리지 장치의 오류 여부, 스토리지 장치에서 발생할 오류의 종류, 스토리지 장치의 남은 수명 등을 예측하면, 국부 예측 모듈은 제2 시간 창과 동일한 크기의 시간 창 내에서 속성 정보를 기반으로 스토리지 장치의 오류 여부, 스토리지 장치에서 발생할 오류 유형 및 스토리지 장치의 남은 수명을 예측하고, 결정 모듈은 전역 예측 모듈과 국부 예측 모듈의 예측 정보를 기반으로 스토리지 장치의 오류 여부, 스토리지 장치에서 발생할 오류 유형 및 스토리지 장치의 남은 수명을 예측한다.
이상에서는 도 1 및 도 2를 참조하여 본 개시의 실시 예에 따른 스토리지 장치의 오류 예측 방법에 대해 설명하였다. 본 개시의 실시 예에 따른 스토리지 장치의 오류 예측 장치, 데이터 저장 시스템 및 데이터 기억 장치는 이하 도 3 내지 도 7을 참조하여 설명한다.
도 3은 본 개시의 일 실시 예에 따른 스토리지 장치의 오류 예측 장치(300)의 구조를 나타내는 블록도이다.
도 3을 참조하면, 오류 예측 장치(300)는 제1 획득 유닛(310), 제2 획득 유닛(320) 및 예측 유닛(330)을 포함할 수 있다. 당업자라면 오류 예측 장치(300)는 다른 구성요소를 추가적으로 포함할 수 있으며, 오류 예측 장치(300)의 구성요소 중 적어도 하나는 분할 또는 결합될 수 있다는 것이 이해될 것이다.
예로서, 제1 획득 유닛(310)은 동작 중인 기억 장치의 복수의 스토리지 장치에 대한 복수의 속성의 속성 정보를 획득하도록 구성될 수 있다.
예로서, 제2 획득 유닛(320)은 현재 시간 이전의 제1 시간 창 내에서 획득된 복수의 속성의 속성 정보에 기초하여 복수의 스토리지 장치 각각에 대한 전역 속성 정보를 획득하도록 구성될 수 있고, 전역 속성 정보는 각 스토리지 장치에 대한 복수의 속성 각각의 속성 정보의 분포 특성, 각 스토리지 장치에 대한 각 속성의 속성 정보의 경향 특성 및 호스트 속성 정보 중 적어도 하나를 포함하고, 여기서 상기 호스트 속성 정보는 상기 제1 시간 창 내에서 획득된 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 속성 정보의 통계 정보로 표시된다.
예로서, 예측 유닛(330)은 현재 시간 이전의 제2 시간 창 내에서 획득된 복수의 스토리지 장치 각각의 복수의 속성의 속성 정보 및 복수의 스토리지 장치 각각의 전역 속성 정보에 기초하여 훈련된 기계 학습 모델을 사용하여 복수의 스토리지 장치에 대한 오류를 예측하도록 구성될 수 있으며, 여기서 상기 제1 시간 창의 지속시간은 상기 제2 시간 창의 지속시간보다 더 길다.
예로서, 각 속성의 속성 정보의 분포 특성은 각 속성의 속성 정보의 히스토그램 특성을 포함하고, 각 속성의 속성 정보의 경향 특성은 각 속성의 속성 정보의 통계적 특성을 포함하고, 복수의 스토리지 장치에 대한 각각의 속성의 속성 정보에 대응하는 통계 정보는 복수의 스토리지 장치에 대한 각 속성의 속성 정보의 평균, 복수의 스토리지 장치에 대한 복수의 속성 각각의 속성 정보의 분포 특성의 평균, 및 상기 복수의 스토리지 장치에 대한 상기 복수의 속성 각각의 속성 정보의 경향 특성의 평균 중 적어도 하나로 표현된다.
예로서, 동작 중인 기억 장치의 복수의 스토리지 장치에 대한 복수의 속성의 속성 정보는 복수의 스토리지 장치 각각에 대한 SMART 정보 및/또는 복수의 스토리지 장치 각각에 대한 RAM 관련 정보 및 복수의 스토리지 장치 각각에 대한 성능 통계 정보를 포함한다.
예로서, 오류 예측 유닛(330)은 제2 시간 창 내에서 획득된 각 스토리지 장치에 대한 복수의 속성의 속성 정보를 훈련된 기계 학습 모델의 국부 예측 모듈에 입력하여 각 스토리지 장치에 대한 국부 오류 예측 정보를 획득하는 단계, 각 스토리지 장치에 대한 전역 속성 정보를 학습된 기계 학습 모델의 전역 예측 모듈에 입력하여 각 스토리지 장치에 대한 전역 오류 예측 정보를 획득하는 단계, 각 스토리지 장치에 대한 국부 오류 예측 정보 및 전역 오류 예측 정보를 훈련된 기계 학습 모델의 결정 모듈에 입력하여 각 스토리지 장치에 대한 다음 오류 정보: 각 스토리지 장치에 대한 오류 발생 여부, 각 스토리지 장치에 대해 발생할 오류의 유형 및 각 스토리지 장치의 남은 수명 중 적어도 하나를 출력하도록 구성될 수 있다.
예로서, 국부 예측 모듈, 전역 예측 모듈 및 결정 모듈 각각은, 랜덤 포레스트(RF)와 같은 결정 트리 집합 중 어느 하나이거나, 컨벌루션 신경망(CNN), 순환 신경망(RNN), 순환 신경망(RNN)의 장단기 메모리 (LSTM)와 같은 신경망 중 어느 하나이다.
도 4는 본 개시의 일 실시 예에 따른 스토리지 장치가 적용된 시스템(1000)의 개략도이다.
도 4의 시스템(1000)은 기본적으로 휴대형 통신 단말(예를 들어, 휴대폰), 스마트폰, 태블릿 PC(개인용 컴퓨터), 웨어러블 기기, 헬스케어 기기, 사물 인터넷(IOT) 기기 등과 같은 모바일 시스템일 수 있다. 그러나, 도 4의 시스템(1000)은 모바일 시스템에 반드시 한정되는 것은 아니고 PC, 랩톱 컴퓨터, 서버, 미디어 플레이어 또는 자동차 장치(예를 들어, 내비게이션 장치)일 수 있다.
도 4를 참조하면, 시스템(1000)은 메인 프로세서(1100), 메모리(예를 들어, 1200a 및 1200b), 스토리지 장치(예를 들어, 1300a 및 1300b)를 포함할 수 있다. 또한, 시스템(1000)은 이미지 캡처 장치(1410), 사용자 입력 장치(1420), 센서(1430), 통신 장치(1440), 디스플레이(1450), 스피커(1460), 전원 공급 장치(1470) 및 연결 인터페이스(1480) 중 적어도 하나를 포함할 수 있다.
메인 프로세서(1100)는 시스템(1000)의 모든 동작, 더욱 구체적으로 시스템(1000)에 포함된 다른 구성요소들의 동작을 제어할 수 있다. 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서로 구현될 수 있다.
메인 프로세서(1100)는 적어도 하나의 CPU 코어(1110)를 포함할 수 있고, 메모리(1200a 및 1200b) 및/또는 스토리지 장치(1300a 및 1300b)를 제어하도록 구성된 컨트롤러(1120)를 더 포함할 수 있다. 일부 실시 예에서, 메인 프로세서(1100)는 인공 지능(AI) 데이터 연산과 같은 고속 데이터 연산을 위한 전용 회로인 가속기(1130)를 더 포함할 수 있다. 가속기(1130)는 그래픽 처리 유닛(GPU), 신경 처리 유닛(NPU) 및/또는 데이터 처리 유닛(DPU)을 포함할 수 있으며, 메인 프로세서(1100)의 다른 구성요소와 물리적으로 분리된 칩으로 구현될 수 있다.
메모리(1200a 및 1200b)는 시스템(1000)의 주기억 장치로 사용될 수 있다. 메모리(1200a 및 1200b) 각각은 정적 랜덤 액세스 메모리(SRAM) 및/또는 동적 랜덤 액세스 메모리(DRAM)과 같은 휘발성 메모리를 포함할 수 있지만, 메모리(1200a 및 1200b) 각각은 플래시 메모리, 단-변경 RAM(PRAM) 및/또는 저항성 PRAM(PRAM)과 같은 비휘발성 메모리를 포함할 수 있다. 메모리(1200a 및 1200b)는 메인 프로세서(1100)와 동일한 패키지에 구현될 수 있다.
스토리지 장치(1300a 및 1300b)는 전원 공급 여부에 관계없이 데이터를 저장하는 비휘발성 스토리지 장치로서, 메모리(1200a 및 1200b)보다 큰 저장 용량을 가질 수 있다. 스토리지 장치(1300a 및 1300b)는 각각 스토리지 컨트롤러(1310a, 1310b)의 제어를 통해 데이터를 저장하도록 구성된 스토리지 컨트롤러(STRG CTRL)(1310a, 1310b)와 비휘발성 메모리(NVM)(1320a 및 1320b)을 포함할 수 있다. NVM(1320a 및 1320b)이 2차원(2D) 구조 또는 3차원(3D) V-NAND 구조를 갖는 플래시 메모리를 포함할 수 있지만, NVM(1320a 및 1320b)는 PRAM 및/또는 RRAM과 같은, 다른 유형의 NVM을 포함할 수도 있다.
스토리지 장치(1300a 및 1300b)는 메인 프로세서(1100)와 물리적으로 분리되거나 시스템(1000)에 포함되거나 메인 프로세서(1100)와 동일한 패키지로 구현될 수 있다. 게다가, 스토리지 장치(1300a 및 1300b)는 솔리드 스테이트 장치(SSD) 또는 메모리 카드의 유형을 가질 수 있으며, 후술되는 연결 인터페이스(1480)와 같은 인터페이스를 통해 시스템(100)의 다른 구성요소와 착탈 가능하게 결합될 수 있다. 스토리지 장치(1300a 및 1300b)는 범용 플래시 스토리지 장치(UFS), 임베디드 멀티미디어 카드(eMMC), 비휘발성 메모리 익스프레스(NVMe) 등의 표준 프로토콜이 적용되는 장치이지만, 이에 한정되지 않는다.
이미지 캡처 장치(1410)는 정지 이미지 또는 동영상 이미지를 캡처할 수 있다. 이미지 캡처 장치(1410)는 카메라, 캠코더 및/또는 웹캠을 포함할 수 있다.
사용자 입력 장치(1420)는 시스템(1000)의 사용자로부터 입력되는 각종 데이터를 수신할 수 있으며, 터치 패드, 키패드, 키보드, 마우스 및/또는 마이크로폰을 포함할 수 있다.
센서(1430)는 시스템(1000) 외부로부터 획득될 수 있는 다양한 유형의 물리적 수량을 검출할 수 있고, 감지된 물리적 수량을 전기 신호로 변환한다. 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서 및/또는 자이로스코프 센서를 포함할 수 있다.
통신 장치(1440)는 다양한 통신 프로토콜에 따라 시스템(1000) 외부의 다른 장치들 간에 신호를 송수신할 수 있다. 통신 장치(1440)는 안테나, 송수신기 및/또는 모뎀을 포함할 수 있다.
디스플레이(1450) 및 스피커(1460)는 시스템(1000)의 사용자에게 시각 정보 및 청각 정보를 각각 출력하도록 구성된 출력 장치로서 기능할 수 있다.
전원 공급 장치(1470)는 시스템(1000)에 내장된 배터리(비도시) 및/또는 외부 전원으로부터 공급되는 전원을 적절하게 변환할 수 있고, 변환된 전력을 시스템(1000)의 각 구성요소에 공급할 수 있다.
연결 인터페이스(1480)는 시스템(1000)과 시스템(1000)에 연결되어 시스템(1000)과 데이터를 송수신할 수 있는 외부 장치 간에 연결을 제공할 수 있다. 연결 인터페이스(1480)는 첨단 기술 부착(ATA), 직렬 ATA(SATA), 외부 SATA(e-SATA), 스몰 컴퓨터 스몰 인터페이스(SCSI), 직렬 연결 SCSI(SAS), 주변 부품 상호 연결(PCI), PCI 익스프레스(PCIe), NVMe, IEEE 1394, 범용 직렬 서브(USB) 인터페이스, 시큐어 디지털(SD) 카드 인터페이스, 멀티미디어 카드(MMC) 인터페이스, eMMC 인터페이스, UFS 인터페이스, 임베디드 UFS(eUFS) 인터페이스 및 컴팩트 플래시(CF) 카드 인터페이스와 같은, 다양한 인터페이스 방식으로 구현될 수 있다.
예를 들어, 메인 프로세서(예를 들어, 1100), 메모리(예를 들어, 1200a 및 1200b), 및 스토리지 장치(예를 들어, 1300a 및 1300b)를 포함하는, 스토리지 장치가 적용되는 시스템을 제공하고 있고, 여기서 메모리는 메인 프로세서에 의해 실행될 때, 메인 프로세서로 하여금 상술된 바와 같이 스토리지 장치에 대한 오류 예측 방법을 수행하도록 하는 컴퓨터 프로그램을 저장한다.
도 5는 본 개시의 일 실시 예에 따른 호스트 저장 시스템(10)의 블록도이다.
호스트 저장 시스템(10)은 호스트(100) 및 스토리지 장치(200)를 포함할 수 있다. 또한, 스토리지 장치(200)는 스토리지 컨트롤러(210) 및 NVM(220)을 포함할 수 있다. 일 실시 예에 따르면, 호스트(100)는 호스트 컨트롤러(110) 및 호스트 메모리(120)를 포함할 수 있다. 호스트 메모리(120)는 스토리지 장치(200)로 전송될 데이터 또는 스토리지 장치(200)로부터 수신한 데이터를 임시로 저장하도록 구성된 버퍼 메모리로 기능할 수 있다.
스토리지 장치(200)는 호스트(100)로부터의 요청에 응답하여 데이터를 저장하도록 구성된 저장 매체를 포함할 수 있다. 일 예로, 스토리지 장치(200)는 SSD, 임베디드 메모리 및 착탈식 외부 메모리 중 적어도 하나를 포함할 수 있다. 스토리지 장치(200)가 SSD인 경우, 스토리지 장치(200)는 NVMe 표준을 따르는 장치일 수 있다. 스토리지 장치(200)가 임베디드 메모리 또는 외부 메모리인 경우, 스토리지 장치(200)는 UFS 표준 또는 eMMC 표준을 따르는 장치일 수 있다. 호스트(100) 및 스토리지 장치(200) 각각은 채택된 표준 프로토콜에 따라 패킷을 생성하여 전송할 수 있다.
스토리지 장치(200)의 NVM(220)이 플래시 메모리를 포함하는 경우, 플래시 메모리는 2D NAND 메모리 어레이 또는 3D(또는 수직) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 다른 예로서, 스토리지 장치(200)는 다양한 다른 종류의 NVM을 포함할 수 있다. 예를 들어, 스토리지 장치(200)는 자기 RAM(MRAM), 스핀-전달 토크(MRAM), 전도성 브리징 RAM(CBRAM), 강유전체 RAM(FRAM), PRAM, RRAM 및 기타 다양한 종류의 메모리를 포함할 수 있다.
일 실시 예에 따르면, 호스트 컨트롤러(110)와 호스트 메모리(120)는 별도의 반도체 칩으로 구현될 수 있다. 대안적으로, 일부 실시 예에서, 호스트 컨트롤러(110)와 호스트 메모리(120)는 동일한 반도체 칩에 집적될 수 있다. 예로서, 호스트 컨트롤러(110)는 애플리케이션 프로세서(AP)에 포함된 복수의 모듈 중 어느 하나일 수 있다. AP는 시스템 온 칩(SoC)으로 구현될 수 있다. 또한, 호스트 메모리(120)는 AP에 포함된 임베디드 메모리이거나 AP 외부에 위치하는 NVM 또는 메모리 모듈일 수 있다.
호스트 컨트롤러(110)는 호스트 메모리(120)의 버퍼 영역의 데이터(예를 들어, 기록 데이터)를 NVM(220)에 저장하는 동작 또는 NVM(220)의 데이터(예를 들어, 판독 데이터)를 버퍼 영역에 저장하는 동작을 관리할 수 있다.
스토리지 컨트롤러(210)는 호스트 인터페이스(211), 메모리 인터페이스(212) 및 CPU(213)를 포함할 수 있다. 또한, 스토리지 컨트롤러(210)는 플래시 변환 계층(FTL)(214), 패킷 관리자(215), 버퍼 메모리(216), 오류 정정 코드(ECC) 엔진(217), 및 고급 암호화 표준(AES) 엔진(218)을 더 포함할 수 있다. 스토리지 컨트롤러(210)는 FTL(214)이 로딩되는 작업 메모리(비도시)를 더 포함할 수 있다. CPU(213)는 FTL(214)을 실행하여 NVM(220)에 대한 데이터 기록 및 판독 동작을 제어할 수 있다.
호스트 인터페이스(211)는 호스트(100)와 패킷을 송수신할 수 있다. 호스트(100)에서 호스트 인터페이스(211)로 전송되는 패킷은 NVM(220)에 기록하기 위한 명령 또는 데이터를 포함할 수 있다. 호스트 인터페이스(211)에서 호스트(100)로 전송되는 패킷은 NVM(220)으로부터 판독된 명령 또는 데이터에 대한 응답을 포함할 수 있다. 메모리 인터페이스(212)는 NVM(220)에 기록될 데이터를 NVM(220)으로 전송하거나 NVM(220)으로부터 판독된 데이터를 수신할 수 있다. 메모리 인터페이스(212)는 토글(Toggle) 또는 개방형 NAND 플래시 인터페이스(ONFI)와 같은 표준 프로토콜을 따르도록 구성될 수 있다.
FTL(214)은 주소 매핑 동작, 웨어 레벨링(wear-leveling) 동작, 가비지 컬렉션 동작과 같은 다양한 기능을 수행할 수 있다. 주소 매핑 동작은 호스트(100)로부터 수신한 논리 주소를 NVM(220)에 데이터를 실재로 저장하는데 사용되는 물리 주소로 변환하는 동작일 수 있다. 웨어 레벨링(wear0leveling)은 NVM(220)의 블록을 균일하게 사용하여 특정 블록의 과도한 열화를 방지하는 기술일 수 있다. 예로서, 웨어 레벨링 동작은 물리적 블록의 소거 카운트의 균형을 맞추는 펌웨어 기술을 사용하여 구현될 수 있다. 가비지 컬렉션 동작은 기존 블록의 유효한 데이터를 새 블록에 복사한 후 기존 블록을 삭제함으로써 NVM(220)에서 가용 용량을 확보하기 위한 기술일 수 있다. .
패킷 매니저(215)는 호스트(100)에 따르는 인터페이스의 프로토콜에 따라 패킷을 생성하거나, 호스트(100)로부터 수신한 패킷에서 각종 정보를 파싱할 수 있다. 또한, 버퍼 메모리(216)는 NVM(220)에 기록될 데이터 또는 NVM(220)으로부터 판독할 데이터를 임시로 저장할 수 있다. 버퍼 메모리(216)는 스토리지 컨트롤러(210)에 포함되는 구성요소일 수 있지만, 버퍼 메모리(216)는 저장 컨트롤러(210) 외부에 있을 수 있다.
ECC 엔진(217)은 NVM(220)으로부터 판독된 판독 데이터에 대해 오류 검출 및 정정 동작을 수행할 수 있다. 더 구체적으로, ECC 엔진(217)은 NVM(220)에 기록될 기록 데이터에 대한 패리티 비트를 생성할 수 있고, 생성된 패리티 비트는 기록 데이터와 함께 NVM(220)에 저장될 수 있다. NVM(220)에서 데이터를 판독하는 동안, ECC 엔진(217)은 판독 데이터와 함께, NVM(220)으로부터 판독된 패리티 비트를 이용하여 판독 데이터의 오류를 정정하여, 오류 정정 판독 데이터를 출력할 수 있다.
AES 엔진(218)은 대칭 키 알고리즘을 이용하여 스토리지 컨트롤러(210)에 입력되는 데이터에 대해 암호화 동작 및 복호화 동작 중 적어도 하나를 수행할 수 있다.
본 개시의 일 실시 예에 따르면, 호스트(예를 들어, 100) 및 복수의 스토리지 장치(예를 들어, 200)를 포함하는 호스트 저장 시스템이 제공되고, 여기서 호스트 메모리는 전술한 바와 같이 스토리지 장치의 오류 예측 방법을 수행하도록 구성된다.
도 6은 본 개시의 일 실시 예에 따른 UFS 시스템(2000)의 블록도이다.
UFS 시스템(2000)은 합동 전자 장치 엔지니어링 협의회(JEDEC)에 의해 발표된 UFS 표준을 따르는 시스템일 수 있으며 UFS 호스트(2100), UFS 장치(2200) 및 UFS 인터페이스(2300)를 포함한다. 도 4의 시스템(1000)에 대한 상기 설명은 도 6의 다음 설명과 충돌하지 않는 범위 내에서 도 6의 UFS 시스템(2000)에도 적용될 수 있다.
도 6을 참조하면, UFS 호스트(2100)는 UFS 인터페이스(2300)를 통해 UFS 장치(2200)와 연결될 수 있다. 도 4의 메인 프로세서(1100)가 AP이면, UFS 호스트(2100)는 AP의 일부로 구현될 수 있다. UFS 호스트 컨트롤러(2110) 및 호스트 메모리(2140)는 각각 도 4의 메인 프로세서(1100) 및 메모리(1200a 및 1200b)의 컨트롤러(1120)에 대응할 수 있다. UFS 장치(2200)는 도 4의 스토리지 장치(1300a 및 1300b)에 대응할 수 있다. UFS 장치 컨트롤러(2210) 및 NVM(2220)은 각각 도 4의 스토리지 컨트롤러(1310a, 1310b) 및 NVM(1320a 및 1320b)에 대응할 수 있다.
UFS 호스트(2100)는 UFS 호스트 컨트롤러(2110), 애플리케이션(2120), UFS 드라이버(2130), 호스트 메모리(2140) 및 UFS 인터커넥트(UIC) 계층(2150)을 포함할 수 있다. UFS 장치(2200)는 UFS 장치 컨트롤러(2210), NVM(2220), 스토리지 인터페이스(2230), 장치 메모리(2240), UIC 계층(2250), 조정기(2260)를 포함할 수 있다. NVM(2220)은 복수의 메모리 유닛(2221)을 포함할 수 있다. 각각의 메모리 유닛(2221)은 2차원 구조 또는 3차원 구조를 갖는 V-낸드 플래시 메모리를 포함할 수 있지만, 메모리 유닛(2221) 각각은 PRAM 및/또는 RRAM과 같은 다른 종류의 NVM을 포함할 수 있다. UFS 장치 컨트롤러(2210)는 스토리지 인터페이스(2230)를 통해 NVM(2220)에 연결될 수 있다. 저장 인터페이스(2230)는 토글 또는 ONFI와 같은 표준 프로토콜을 따르도록 구성될 수 있다.
애플리케이션(2120)은 UFS 장치(2200)의 기능을 사용하기 위해 UFS 장치(2200)와 통신하고자 하는 프로그램을 의미할 수 있다. 애플리케이션(2120)은 UFS 장치(2200)에 대한 입출력(I/O) 동작을 위해 UFS 드라이버(2130)에 입출력 요청(IOR)을 전송할 수 있다. IOR은 데이터 판독 요청, 데이터 저장(또는 기록) 요청 및/또는 데이터 소거(또는 폐기) 요청을 의미할 수 있으며, 이에 제한되지 않는다.
UFS 드라이버(2130)는 UFS 호스트 컨트롤러 인터페이스(UFS-HCI)를 통해 UFS 호스트 컨트롤러(2110)를 관리할 수 있다. UFS 드라이버(2130)는 애플리케이션(2120)에 의해 생성된 IOR을 UFS 표준에 의해 정의된 UFS 명령로 변환하고, UFS 명령을 UFS 호스트 컨트롤러(2110)로 전송할 수 있다. 하나의 IOR은 복수의 UFS 명령으로 변환될 수 있다. UFS 명령은 기본적으로 SCSI 표준에 의해 정의될 수 있지만, UFS 명령은 UFS 표준 전용의 명령일 수 있다.
UFS 호스트 컨트롤러(2110)는 UFS 드라이버(2130)에 의해 변환된 UFS 명령을 UIC 계층(2150) 및 UFS 인터페이스(2300)를 통해 UFS 장치(2200)의 UIC 계층(2250)으로 전송할 수 있다. UFS 명령의 전송 동안, UFS 호스트 컨트롤러(2110)의 UFS 호스트 레지스터(2111)는 명령 큐(CQ)의 역할을 할 수 있다.
UFS 호스트(2100) 측의 UIC 계층(2150)은 모바일 인더스트리 프로세서 인터페이스((MIPI) M-PHY(2151) 및 MIPI UniPro(2152)를 포함할 수 있으며, UFS 장치(2200) 측의 UIC 계층(2250)은 또한 MIPI M-PHY(2251) 및 MIPI UniPro(2252)를 포함할 수 있다.
UFS 인터페이스(2300)는 기준 클럭 신호(REF_CLK)를 전송하도록 구성되는 라인, UFS 장치(2200)에 대해 하드웨어 리셋 신호(RESET_n)를 전송하도록 구성된 라인, 한 쌍의 차동 입력 신호(DIN_t 및 DIN_c)를 전송하도록 구성된 한 쌍의 라인, 및 한 쌍의 차동 출력 신호(DOUT_t 및 DOUT_c)를 전송하도록 구성된 한 쌍의 라인을 포함할 수 있다.
UFS 호스트(2100)로부터 UFS 장치(2200)로 제공되는 기준 클럭 신호(REF_CLK)의 주파수는 19.2MHz, 26MHz, 38.4MHz, 52MHz 중 하나일 수 있으나, 이에 한정되는 것은 아니다. UFS 호스트(2100)는 동작 중, 즉 UFS 호스트(2100)와 UFS 장치(2200) 사이의 데이터 송수신 동작 중, 기준 클럭 신호(REF_CLK)의 주파수를 변경할 수 있다. UFS 장치(2200)는 위상 고정 루프(PLL)을 이용하여 UFS 호스트(2100)로부터 제공되는 기준 클럭 신호(REF_CLK)로부터 다양한 주파수를 갖는 클록 신호를 생성할 수 있다. 또한, UFS 호스트(2100)는 기준 클럭 신호(REF_CLK)의 주파수를 이용하여 UFS 호스트(2100)와 UFS 장치(2200) 간의 데이터 속도를 설정할 수 있다. 즉, 데이터 속도는 기준 클럭 신호(REF_CLK)의 주파수에 따라 결정될 수 있다.
UFS 인터페이스(2300)는 복수의 레인을 지원할 수 있으며, 각각의 레인은 한 쌍의 차동 라인으로 구현될 수 있다. 예를 들어, UFS 인터페이스(2300)는 적어도 하나의 수신 레인과 적어도 하나의 전송 레인을 포함할 수 있다. 도 6에서, 한 쌍의 차동 입력 신호(DIN_T 및 DIN_C)를 전송하도록 구성된 한 쌍의 라인은 수신 레인을 구성할 수 있고, 한 쌍의 차동 출력 신호(DOUT_T, DOUT_C)를 전송하도록 구성된 한 쌍의 라인은 전송 레인을 구성할 수 있다. 하나의 전송 레인과 하나의 수신 레인이 도 6에 도시되어 있지만, 전송 레인의 수 및 수신 레인의 수는 변경될 수 있다.
수신 레인과 전송 레인은 직렬 통신 방식에 따라 데이터를 전송할 수 있다. 수신 레인과 전송 레인이 분리된 구조로 인해 UFS 호스트(2100)와 UFS 장치(2200) 간의 전이중 통신이 가능해질 수 있다. 즉, 수신 레인을 통해 UFS 호스트(2100)로부터 데이터를 수신하면서, UFS 장치(2200)는 전송 레인을 통해 UFS 호스트(2100)로 데이터를 전송할 수 있다. 게다가, UFS 호스트(2100)에서 UFS 장치(2200)로의 제어 데이터(예를 들어, 명령) 및 UFS 호스트(2100)가 UFS 장치(2200)의 NVM(2220)에 저장되거나 이로부터 판독될 사용자 데이터는 동일한 레인을 통해 전송될 수 있다. 따라서, UFS 호스트(2100)와 UFS 장치(2200) 사이에, 한 쌍의 수신 레인과 한 쌍의 전송 레인 외에 데이터 전송을 위한 별도의 레인을 더 제공할 필요가 없다.
UFS 장치(2200)의 UFS 장치 컨트롤러(2210)는 UFS 장치(2200)의 모든 동작을 제어할 수 있다. UFS 장치 컨트롤러(2210)는 논리 데이터 스토리지 장치인, 논리 유닛(LU)(2211)를 이용하여 NVM(2220)을 관리할 수 있다. LU(2211)의 개수는 8개일 수 있지만, 이에 제한되지 않는다. UFS 장치 컨트롤러(2210)는 FTL을 포함하고 FTL의 주소 매핑 정보를 사용하여 UFS 호스트(2100)로부터 수신된 논리 데이터 주소(예를 들어, 논리 블록 주소(LBA))를 물리 데이터 주소(예를 들어, 물리 블록 주소(PBA))로 변환할 수 있다. UFS 시스템(2000)에서 사용자 데이터를 저장하는 논리 블록은 소정 범위의 크기를 가질 수 있다. 예를 들어, 논리 블록의 최소 크기는 4Kbyte로 설정될 수 있다.
UFS 호스트(2100)로부터의 명령이 UIC 계층(2250)을 통해 UFS 장치(2200)로 인가되면, UFS 장치 컨트롤러(2210)는 명령에 응답하여 동작을 수행하고, 동작이 완료되면 완료 응답을 UFS 호스트(2100)에 전송할 수 있다.
예를 들어, UFS 호스트(2100)가 UFS 장치(2200)에 사용자 데이터를 저장하고자 하는 경우, UFS 호스트(2100)는 UFS 장치(2200)로 데이터 저장 명령을 전송할 수 있다. UFS 호스트(2100)가 사용자 데이터를 수신할 준비가 되었음을 나타내는 응답('전송 준비' 응답)이 UFS 장치(2200)로부터 수신되면, UFS 호스트(2100)는 사용자 데이터를 UFS 장치(2200)로 전송할 수 있다. UFS 장치 컨트롤러(2210)는 상기 수신된 사용자 데이터를 장치 메모리(2240)에 임시로 저장하고, 장치 메모리(2240)에 임시로 저장된 사용자 데이터를 FTL의 주소 매핑 정보에 기초하여 NVM(2220)의 선택된 위치에 저장할 수 있다.
다른 예로, UFS 호스트(2100)가 UFS 장치(2200)에 저장된 사용자 데이터를 판독하려는 경우, UFS 호스트(2100)는 데이터 판독 명령을 UFS 장치(2200)로 전송할 수 있다. 명령을 수신한 UFS 장치 컨트롤러(2210)는, 데이터 판독 명령에 기초하여 NVM(2220)으로부터 사용자 데이터를 판독하고, 판독한 사용자 데이터를 장치 메모리(2240)에 임시 저장할 수 있다. 판독 동작 동안, UFS 장치 컨트롤러(2210)는 내부에 내장된 ECC 엔진(비도시)을 이용하여 판독된 사용자 데이터의 오류를 검출하여 정정할 수 있다. 보다 구체적으로, ECC 엔진은 NVM(2220)에 기록될 기록 데이터에 대한 패리티 비트를 생성할 수 있으며, 생성된 패리티 비트는 기록 데이터와 함께 NVM(2220)에 저장될 수 있다. NVM(2220)로부터 데이터를 판독하는 동안, ECC 엔진은 판독 데이터와 함께 NVM(2220)으로부터 판독된 패리티 비트를 사용하여 판독 데이터의 오류를 정정하여 오류 정정된 판독 데이터를 출력할 수 있다.
또한, UFS 장치 컨트롤러(2210)는 장치 메모리(2240)에 임시로 저장된 사용자 데이터를 UFS 호스트(2100)로 전송할 수 있다. 또한, UFS 장치 컨트롤러(2210)는 AES 엔진(비도시)을 더 포함할 수 있다. AES 엔진은 대칭 키 알고리즘을 이용하여 UFS 장치 컨트롤러(2210)로 전송되는 데이터에 대해 암호화 동작 및 복호화 동작 중 적어도 하나를 수행할 수 있다.
UFS 호스트(2100)는 공통 큐 역할을 할 수 있는 UFS 호스트 레지스터(2111)에 UFS 장치(2200)로 전송될 명령을 순차적으로 저장하고, 이 명령을 UFS 장치(2200)로 순차적으로 전송할 수 있다. 이 경우, 이전에 전송된 명령이 아직 UFS 장치(2200)에 의해 처리되고 있는 동안, 즉 이전에 전송된 명령이 UFS 장치(2200)에 의해 처리되었다는 알림을 수신하기 전에, UFS 호스트(2100)는 CQ에서 대기 중인 다음 명령을 UFS 장치(2200)로 전송할 수 있다. 따라서, UFS 장치(2200)는 이전에 전송된 명령을 처리하는 동안 UFS 호스트(2100)로부터 다음 명령을 수신할 수도 있다. CQ에 저장할 수 있는 명령의 최대 수(또는 큐 깊이)는 예를 들어 32일 수 있다. 또한, CQ는 큐에 저장된 명령 라인의 시작과 끝이 헤드 포인터와 테일 포인터로 표시되는 순환 큐로 구현될 수 있다.
복수의 메모리 유닛(2221) 각각은 메모리 셀 어레이(비도시) 및 메모리 셀 어레이의 동작을 제어하도록 구성된 제어 회로(비도시)를 포함할 수 있다. 메모리 셀 어레이는 2D 메모리 셀 어레이 또는 3D 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 복수의 메모리 셀을 포함할 수 있다. 각 메모리 셀은 1비트 정보를 저장하도록 구성된 단일 레벨 셀(SLC)이지만, 각각의 메모리 셀은 다단계 셀(MLC), 트리플 레벨 셀(TLC) 및 4중 레벨 셀(QLC)과 같은, 2비트 이상의 정보를 저장하도록 구성된 셀일 수 있다. 3차원 메모리 셀 어레이는 적어도 하나의 메모리 셀이 수직으로 배향되어 다른 메모리 셀 상에 위치하는 수직 낸드 스트링을 포함할 수 있다.
UFS 장치(2200)에 전원 전압으로 전압 VCC, VCCQ, VCCQ2이 인가될 수 있다. 전압 VCC은 UFS 장치(2200)의 주 전원 전압으로 2.4V 내지 3.6V의 범위일 수 있다. 전압 VCCQ은 UFS 장치 컨트롤러(2210)에 저전압을 주로 공급하기 위한 전원 전압으로 1.14V 내지 1.26V의 범위일 수 있다. 전압 VCCQ2은 전압 VCC 보다 낮고 전압 VCCQ 보다 높은 전압을 MIPI M-PHY(2251)와 같은 I/O 인터페이스에 주로 공급하기 위한 전원 전압일 수 있으며, 1.7V 내지 1.95V의 범위에 있다. 전원 전압은 조정기(2260)를 통해 UFS 장치(2200)의 각 구성 요소에 공급될 수 있다. 조정기(2260)는 전술한 서로 다른 전원 전압에 각각 연결된 단위 조정기의 세트로 구현될 수 있다.
본 개시의 일 실시 예에 따르면, UFS 호스트(예를 들어, 2100), UFS 장치(예를 들어, 2200), 및 UFS 장치와 UFS 호스트 간의 통신에 사용되는 UFS 인터페이스(예를 들어, 2300)를 포함하는 UFS 시스템이 제공된다. UFS 호스트는 상술된 바와 같이 오류 예측 방법을 실행하도록 구성된다.
도 7은 본 개시의 일 실시 예에 따른 스토리지 장치가 적용된 데이터 센터(3000)를 나타내는 도면이다.
도 7을 참조하여, 데이터 센터(3000)는 각종 데이터를 수집하고 서비스를 제공하는 시설일 수 있으며 데이터 저장 센터로 지칭될 수 있다. 데이터 센터(3000)는 검색 엔진 및 데이터베이스를 동작하기 위한 시스템일 수 있으며, 은행과 같은 기업이나 정부 기관에 의해 사용되는 컴퓨팅 시스템일 수 있다. 데이터 센터(3000)는 애플리케이션 서버(3100~3100n) 및 스토리지 서버(3200~3200m)를 포함할 수 있다. 애플리케이션 서버(3100~3100n)의 수와 스토리지 서버(3200~3200m)의 수는 실시 예에 따라서 다양하게 선택될 수 있다. 애플리케이션 서버(3100~3100n)의 수는 스토리지 서버(3200~3200m)의 수와 다를 수 있다.
애플리케이션 서버(3100) 또는 스토리지 서버(3200)는 프로세서(3110, 3210) 및 메모리(3120, 3220) 중 적어도 하나를 포함할 수 있다. 이하 스토리지 서버(3200)를 예로 들어 설명한다. 프로세서(3210)는 스토리지 서버(3200)의 모든 동작을 제어하고, 메모리(3220)에 액세스하고, 메모리(3220)에 로드된 명령어 및/또는 데이터를 실행할 수 있다. 메모리(3220)는 이중 데이터 속도 동기 DRAM(DDR SDRAM), 고대역폭 메모리(HBM), 하이브리드 메모리 큐브(HMC), 듀얼 인라인 메모리 모듈(DIMM), Optane DIMM 및/또는 비휘발성 DIMM(NVMDIMM)일 수 있다. 일부 실시 예에서, 스토리지 서버(3200)에 포함되는 프로세서(3210) 및 메모리(3220)의 개수는 다양하게 선택될 수 있다. 일 실시 예에서, 프로세서(3210) 및 메모리(3220)는 프로세서-메모리 쌍을 제공할 수 있다. 일 실시 예에서, 프로세서(3210)의 개수는 메모리(3220)의 개수와 다를 수 있다. 프로세서(3210)는 싱글 코어 프로세서 또는 멀티 코어 프로세서를 포함할 수 있다. 스토리지 서버(3200)에 대한 전술한 설명은 애플리케이션 서버(3100)에도 유사하게 적용될 수 있다. 일부 실시 예에서, 애플리케이션 서버(3100)는 스토리지 장치(3150)를 포함하지 않을 수 있다. 저장 서버(3200)는 적어도 하나의 스토리지 장치(3250)를 포함할 수 있다. 저장 서버(3200)에 포함되는 스토리지 장치(3250)의 개수는 실시 예에 따라 다양하게 선택될 수 있다.
애플리케이션 서버(3100~3100n)는 네트워크(3300)를 통해 스토리지 서버(3200~3200m)와 통신할 수 있다. 네트워크(3300)는 파이버 채널(FC) 또는 이더넷을 이용하여 구현될 수 있다. 이 경우, FC는 비교적 고속의 데이터 전송에 사용되는 매체로서 고성능 및 고가용성을 갖는 광 스위치를 사용할 수 있다. 스토리지 서버(3200~3200m)는 네트워크(3300)의 액세스 방식에 따라 파일 스토리지 장치, 블록 스토리지 장치 또는 오브젝트 스토리지 장치로 제공될 수 있다.
일 실시 예에서, 네트워크(3300)는 스토리지 영역 네트워크(SAN)과 같은 스토리지 전용 네트워크일 수 있다. 예를 들어, SAN은 FC 네트워크를 사용하고 FC 프로토콜(FCP)에 따라 구현되는 FC-SAN일 수 있다. 다른 예로, SAN은 전송 제어 프로토콜(TCP)/IP 네트워크를 사용하고 TCP/IP 또는 인터넷 SCSI(iSCSI) 프로토콜을 통한 SCSI에 따라 구현되는 인터넷 프로토콜(IP)-SAN일 수 있다. 다른 실시 예에서, 네트워크(3300)는 TCP/IP 네트워크와 같은 일반적인 네트워크일 수 있다. 예를 들어, 네트워크(3300)는 이더넷을 통한 FC(FCoE), 네트워크 연결 스토리지 장치(NAS), 패브릭을 통한 NVMe(NVMe-oF)와 같은 프로토콜에 따라 구현될 수 있다.
이하, 애플리케이션 서버(3100) 및 스토리지 서버(3200)에 대해 주로 설명한다. 애플리케이션 서버(3100)에 대한 설명은 다른 애플리케이션 서버(3100n)에 적용될 수 있고, 스토리지 서버(3200)에 대한 설명은 다른 스토리지 서버(3200m)에 적용될 수 있다.
애플리케이션 서버(3100)는 네트워크(3300)를 통해 스토리지 서버(3200 내지 3200m) 중 하나에서 저장되도록 사용자 또는 클라이언트에 의해 요청된, 데이터를 저장할 수 있다. 또한, 애플리케이션 서버(3100)는 네트워크(3300)를 통해 스토리지 서버(3200 내지 3200m) 중 하나로부터 사용자 또는 클라이언트에 의해 판독되도록 요청된 데이터를 획득할 수 있다. 예를 들어, 애플리케이션 서버(3100)는 웹 서버 또는 데이터베이스 관리 시스템(DBMS)으로 구현될 수 있다.
애플리케이션 서버(3100)는 네트워크(3300)를 통해 다른 애플리케이션 서버(3100n)에 포함된 메모리(3120n) 또는 스토리지 장치(3150n)에 액세스할 수 있다. 또는, 애플리케이션 서버(3100)는 네트워크(3300)를 통해 스토리지 서버(3200~3200m)에 포함된 메모리(3220~3220m) 또는 스토리지 장치(3250~3250m)에 액세스할 수 있다. 따라서, 애플리케이션 서버(3100)는 애플리케이션 서버(3100~3100n) 및/또는 스토리지 서버(3200~3200m)에 저장된 데이터에 대해 다양한 동작을 수행할 수 있다. 예를 들어, 애플리케이션 서버(3100)는 애플리케이션 서버(3100 내지 3100n) 및/또는 스토리지 서버(3200 내지 3200m) 사이에서 데이터를 이동 또는 복사하기 위한 명령을 실행할 수 있다. 이 경우, 데이터는 스토리지 서버(3200~3200m)의 스토리지 장치(3250~3250m)에서 애플리케이션 서버(3100~3100n)의 메모리(3120~3120n)로 직접적으로 또는 스토리지 서버(3200~3200~3200m)의 메모리(3220~3220m)를 통해 이동될 수 있다. 네트워크(3300)를 통해 이동되는 데이터는 보안 또는 개인 정보 보호를 위해 암호화된 데이터일 수 있다.
이하, 스토리지 서버(3200)를 예로 들어 설명한다. 인터페이스(3254)는 프로세서(3210)와 컨트롤러(3251) 사이의 물리적 연결 및 네트워크 인터페이스 카드(NIC)(3240)와 컨트롤러(3251) 간의 물리적 연결을 제공할 수 있다. 예를 들어, 인터페이스(3254)는 스토리지 장치(3250)가 전용 케이블에 직접 연결되는 직접 연결 스토리지 장치(DAS) 방식으로 구현될 수 있다. 예를 들어, 인터페이스(3254)는 ATA, SATA, e-SATA, SCSI, SAS, PCI, PCIe, NVMe, IEEE 1394, USB 인터페이스, SD 카드 인터페이스, MMC 인터페이스, eMMC 인터페이스, UFS 인터페이스, eUFS 인터페이스, 및/또는 CF 카드 인터페이스와 같은, 다양한 인터페이스 방식을 사용하여 구현될 수 있다.
스토리지 서버(3200)는 스위치(3230) 및 네트워크 인터커텍트(NIC)(3240)를 더 포함할 수 있다. 스위치(3230)는 프로세서(3210)의 제어를 통해 프로세서(3210)를 스토리지 장치(3250)에 선택적으로 연결하거나 NIC(3240)를 스토리지 장치(3250)에 선택적으로 연결할 수 있다.
일 실시 예에서, NIC(3240)는 네트워크 인터페이스 카드 및 네트워크 어댑터를 포함할 수 있다. NIC(3240)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 또는 광 인터페이스를 통해 네트워크(3300)에 연결될 수 있다. NIC(3240)는 내부 메모리, 디지털 신호 프로세서(DSP) 및 호스트 버스 인터페이스를 포함할 수 있으며 호스트 버스 인터페이스를 통해 프로세서(3210) 및/또는 스위치(3230)에 연결될 수 있다. 호스트 버스 인터페이스는 전술한 인터페이스(3254)의 예시 중 하나로 구현될 수 있다. 일 실시 예에서, NIC(3240)는 프로세서(3210), 스위치(3230) 및 스토리지 장치(3250) 중 적어도 하나와 통합될 수 있다.
스토리지 서버(3200 내지 3200m) 또는 애플리케이션 서버(3100 내지 3100n)에서, 프로세서는 스토리지 장치(3150~3150n 및 3250~3250m) 또는 메모리(3120~3120n 및 3220~3220m)에 명령을 전송하고 데이터를 프로그램하거나 판독할 수 있다. 이 경우, 데이터는 ECC 엔진에 의해 오류가 정정된 데이터일 수 있다. 상기 데이터는 데이터 버스 인버전(DBI) 연산 또는 데이터 마스킹(DM) 연산이 수행된 데이터일 수 있으며, 순환 중복 코드(CRC) 정보를 포함할 수 있다. 데이터는 보안 또는 개인 정보 보호를 위해 암호화된 데이터일 수 있다.
스토리지 장치(3150~3150n 및 3250~3250m)는 프로세서로부터 수신된 판독 명령에 대한 응답으로 낸드 플래시 메모리 장치(3252~3252m)에 제어 신호 및 명령/주소 신호를 전송할 수 있다. 따라서, 낸드 플래시 메모리 장치(3252~3252m)로부터 데이터가 판독되면 데이터 출력 제어 신호로서 판독 인에이블(RE) 신호가 입력되어 DQ 버스로 출력될 수 있다. RE 신호를 이용하여 데이터 스트로브 신호(DQS)가 생성될 수 있다. 명령 및 주소 신호는 기록 인에이블(WE) 신호의 상승 에지 또는 하강 에지에 따라 페이지 버퍼에 래치될 수 있다.
컨트롤러(3251)는 스토리지 장치(3250)의 모든 동작을 제어할 수 있다. 일 실시 예에서, 컨트롤러(3251)는 SRAM을 포함할 수 있다. 컨트롤러(3251)는 기록 명령에 응답하여 NAND 플래시 메모리 장치(3252)에 데이터를 기록하거나 판독 명령에 응답하여 NAND 플래시 메모리 장치(3252)로부터 데이터를 판독할 수 있다. 예를 들어, 기록 명령 및/또는 판독 명령은 스토리지 서버(3200)의 프로세서(3210), 다른 스토리지 서버(3200m)의 프로세서(3210m), 또는 애플리케이션 서버(3100 및 3100n)의 프로세서(3110 및 3110n)로부터 제공될 수 있다. DRAM(3253)은 NAND 플래시 메모리 장치(3252)에 기록될 데이터 또는 NAND 플래시 메모리 장치(3252)로부터 판독된 데이터를 일시적으로 저장(또는 버퍼링)할 수 있다. 또한, DRAM(3253)은 메타데이터를 저장할 수 있다. 여기서, 메타데이터는 사용자 데이터 또는 낸드 플래시 메모리 장치(3252)를 관리하기 위해 컨트롤러(3251)에 의해 생성된 데이터일 수 있다. 스토리지 장치(3250)는 보안 또는 개인 정보 보호를 위한 보안 요소(SE)를 포함할 수 있다.
본 개시의 일 실시 예에 따르면, 다수의 애플리케이션 서버(예를 들어, 3100-3100n), 및 복수의 스토리지 서버(예를 들어, 3200-3200m)을 포함하는 데이터 센터 시스템(예를 들어, 3000)이 제공되고, 여기서 각각의 스토리지 서버는 복수의 스토리지 장치, 및 복수의 애플리케이션 서버 중 적어도 하나를 포함하고, 복수의 스토리지 서버는 상술한 바와 같은 오류 예측 방법을 수행하도록 구성된다.
본 개시의 일 실시 예에 따르면, 프로세서에 의해 실행될 때, 상술된 바와 같이 스토리지 장치의 오류 예측 방법을 구현하는 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 저장 매체가 제공된다.
본 개시의 일 실시 예에 따르면, 프로세서, 및 프로세서에 의해 실행될 때 상술된 바와 같이 스토리지 장치의 오류 예측 방법을 구현하는 컴퓨터 프로그램을 저장하는 메모리를 포함하는 전자 장치가 제공된다.
본 개시의 일 실시 예에 따르면, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금 본 개시에 따른 스토리지 장치의 오류 예측 방법을 실행하도록 하는 명령을 저장하는 컴퓨터 판독 가능 저장 매체가 또한 제공될 수 있다. 본 명세서의 컴퓨터 판독 가능 저장 매체의 예는: 컴퓨터 프로그램 및 관련 데이터, 데이터 파일 및 데이터 구조를 비일시적 방식으로 저장하여 컴퓨터 프로그램 및 관련 데이터, 데이터 파일 및 데이터 구조를 프로세서 또는 컴퓨터에 제공하여 프로세서 또는 컴퓨터가 컴퓨터 프로그램을 실행할 수 있도록 구성된, 판독 전용 메모리(ROM), 랜덤 액세스 프로그래밍 가능 판독 전용 메모리(PROM), 전기적으로 삭제 가능한 프로그래밍 가능 판독 전용 메모리(EEPROM), 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 플래시 메모리, 비휘발성 메모리, CD-ROM, CD-R, CD+R, CD-RW, CD+RW, DVD-ROM, DVD-R, DVD+R, DVD-RW, DVD+RW, DVD- RAM, BD-ROM, BD-R, BD-R LTH, BD-RE, Blu-ray 또는 광 디스크 스토리지 장치, 하드 디스크 드라이브(HDD), 솔리드 스테이트 하드 디스크(SSD), 카드 스토리지 장치(멀티미디어 카드, 보안 디지털(SD) 카드 또는 익스트림 디지털(XD) 카드 등), 자기 테이프, 플로피 디스크, 광자기 데이터 스토리지 장치, 광 데이터 스토리지 장치, 하드 디스크, 솔리드 스테이트 디스크 및 기타 장치를 포함한다. 상술한 컴퓨터 판독 가능한 저장 매체에 포함된 컴퓨터 프로그램은 클라이언트, 호스트, 에이전트 장치, 서버 등과 같은 컴퓨팅 장비에 배치된 환경에서 실행될 수 있다. 또한, 일 예에서, 컴퓨터 프로그램 및 모든 관련 데이터, 데이터 파일 및 데이터 구조는 네트워크로 연결된 컴퓨터 시스템에 배포되므로, 컴퓨터 프로그램 및 관련 데이터, 데이터 파일 및 데이터 구조가 하나 이상의 프로세서 또는 컴퓨터를 통해 분산 방식으로 저장, 액세스 및 실행되도록 한다.
당업자라면 명세서를 참조하고 본 명세서에 서술된 개시를 실행한다면 본 개시의 다른 실시 예를 용이하게 생각할 수 있을 것이다. 본 개시는 본 개시 내용의 임의의 변형, 사용 또는 적응적 변경을 커버하도록 의도된다. 이러한 변형, 사용 또는 적응적 변경은 본 개시의 일반 원칙을 따르고 본 개시에 개시되지 않은 기술 분야의 상식 또는 종래 기술 수단을 포함한다. 명세서 및 실시 예는 단지 예시적인 것으로 간주되어야 하고 본 개시의 실제 범위 및 사상은 다음의 청구범위에 의해 정의된다.
310: 제1 획득 유닛
320: 제2 획득 유닛
330: 예측 유닛
320: 제2 획득 유닛
330: 예측 유닛
Claims (10)
- 스토리지 장치의 오류 예측 방법으로,
동작 중인 기억 장치의 복수의 스토리지 장치에 대한 복수의 속성의 속성 정보를 획득하는 단계;
현재 시간 이전의 제1 시간 창 내에서 획득된 상기 복수의 속성의 상기 속성 정보에 기초하여, 상기 복수의 스토리지 장치의 각각에 대한 전역 속성 정보를 획득하는 단계로서, 상기 전역 속성 정보는, 상기 각 스토리지 장치에 대한 상기 복수의 속성의 각각의 속성 정보의 분포 특성, 상기 각 스토리지 장치에 대한 상기 각 속성의 속성 정보의 경향 특성 및 호스트 속성 정보 중 적어도 하나를 포함하고, 상기 호스트 속성 정보는 상기 제1 시간 창 내에서 획득된 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 속성 정보의 통계 정보에 의해 표시되는 단계; 및
상기 현재 시간 이전의 제2 시간 창 내에서 획득된 상기 복수의 스토리지 장치의 상기 각각의 상기 복수의 속성의 속성 정보 및 상기 복수의 스토리지 장치의 상기 각각의 상기 전역 속성 정보에 기초하여 훈련된 기계 학습 모델을 사용하여 상기 복수의 스토리지 장치에 대한 오류를 예측하는 단계를 포함하고,
상기 제1 시간 창 중 적어도 하나는 상기 제2 시간 창 전에 시작하거나, 또는,
상기 제1 시간 창의 제1 지속시간은 상기 제2 시간 창의 제2 지속시간보다 더 긴, 방법. - 제1항에 있어서,
상기 각 속성의 속성 정보의 상기 분포 특성은, 상기 각 속성의 속성 정보의 히스토그램 특성을 포함하고,
각 속성의 속성 정보의 경향 특성은, 상기 각 속성의 속성 정보의 통계적 특성을 포함하고,
상기 복수의 스토리지 장치에 대한 상기 각 속성의 상기 속성 정보에 대응하는 상기 통계 정보는, 상기 복수의 스토리지 장치에 대한 상기 각 속성의 속성 정보의 평균, 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 각 속성의 속성 정보의 분포 특성의 평균 및 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 각 속성의 속성 정보의 경향 특성의 평균 중 적어도 하나로 표현되는, 방법. - 제1항에 있어서,
상기 동작 중인 기억 장치의 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 속성 정보는,
상기 복수의 스토리지 장치의 상기 각각에 대한 SMART(Self Monitoring Analysis and Reporting Technology) 정보, 상기 복수의 스토리지 장치의 상기 각각에 대한 RAM 관련 정보, 또는 상기 복수의 스토리지 장치의 각각에 대한 성능 통계 정보 중 적어도 하나를 포함하는, 방법. - 제1항에 있어서,
상기 복수의 스토리지 장치에 대한 오류를 예측하는 단계는,
상기 학습된 기계 학습 모델의 국부 예측 모듈에, 상기 제2 시간 창 내에서 획득된 상기 스토리지 장치의 각각에 대한 상기 복수의 속성의 속성 정보를 입력하여, 상기 각 스토리지 장치에 대한 국부 오류 예측 정보를 획득하는 단계;
상기 각 스토리지 장치에 대한 상기 전역 속성 정보를 상기 훈련된 기계 학습 모델의 전역 예측 모듈에 입력하여, 상기 각 스토리지 장치에 대한 전역 오류 예측 정보를 획득하는 단계; 및
상기 각 스토리지 장치에 대한 상기 국부 오류 예측 정보 및 상기 전역 오류 예측 정보를 상기 훈련된 기계 학습 모델의 결정 모듈에 입력하여, 상기 각 스토리지 장치에 대한 오류 정보 중 적어도 하나를 출력하는 단계로, 상기 오류 정보는 상기 각 스토리지 장치에 대한 오류 발생 여부, 상기 각 스토리지 장치에 대해 발생할 상기 오류의 유형 및 상기 각 스토리지 장치의 남은 수명을 포함하는 단계를 포함하는, 방법. - 제4항에 있어서,
상기 국부 예측 모듈, 상기 전역 예측 모듈 및 상기 결정 모듈 각각은 랜덤 포레스트(RF), 컨벌루션 신경망(CNN), 순환 신경망(RNN), 순환 신경망(RNN)의 장단기 메모리(LSTM) 중 어느 하나인, 방법. - 동작 중인 기억 장치의 복수의 스토리지 장치에 대한 복수의 속성의 속성 정보를 획득하도록 구성된 제1 획득 유닛;
현재 시간 이전의 제1 시간 창 내에서 획득된 상기 복수의 속성의 상기 속성 정보에 기초하여 상기 복수의 스토리지 장치의 각각에 대한 전역 속성 정보를 획득하도록 구성된 제2 획득 유닛으로, 상기 전역 속성 정보는 상기 각 스토리지 장치에 대한 상기 복수의 속성의 각각의 속성 정보의 분포 특성, 상기 각 스토리지 장치에 대한 상기 각 속성의 속성 정보의 경향 특성 및 호스트 속성 정보 중 적어도 하나를 포함하고, 상기 호스트 속성 정보는 상기 제1 시간 창 내에서 획득된 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 속성 정보의 통계 정보에 의해 표시되는 제2 획득 유닛; 및
상기 현재 시간 이전의 제2 시간 창 내에서 획득된 상기 복수의 스토리지 장치의 상기 각각의 상기 복수의 속성의 속성 정보 및 상기 복수의 스토리지 장치의 상기 각각의 상기 전역 속성 정보에 기초하여 훈련된 기계 학습 모델을 사용하여 상기 복수의 스토리지 장치에 대한 오류를 예측하도록 구성된 예측 유닛을 포함하고,
상기 제1 시간 창 중 적어도 하나는 상기 제2 시간 창 전에 시작하거나, 또는,
상기 제1 시간 창의 제1 지속시간은 상기 제2 시간 창의 제2 지속시간보다 더 긴, 스토리지 장치의 오류 예측 장치. - 제6항에 있어서,
상기 각 속성의 속성 정보의 상기 분포 특성은 상기 각 속성의 속성 정보의 히스토그램 특성을 포함하고,
각 속성의 속성 정보의 경향 특성은 상기 각 속성의 속성 정보의 통계적 특성을 포함하고,
상기 복수의 스토리지 장치에 대한 상기 각 속성의 상기 속성 정보에 대응하는 상기 통계 정보는 상기 복수의 스토리지 장치에 대한 상기 각 속성의 속성 정보의 평균, 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 각 속성의 속성 정보의 분포 특성의 평균 및 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 각 속성의 속성 정보의 경향 특성의 평균 중 적어도 하나로 표현되는, 스토리지 장치의 오류 예측 장치. - 제6항에 있어서,
상기 동작 중인 기억 장치의 상기 복수의 스토리지 장치에 대한 상기 복수의 속성의 상기 속성 정보는,
상기 복수의 스토리지 장치의 상기 각각에 대한 SMART 정보, 상기 복수의 스토리지 장치의 상기 각각에 대한 RAM 관련 정보, 또는 상기 복수의 스토리지 장치의 각각에 대한 성능 통계 정보 중 적어도 하나를 포함하는, 스토리지 장치의 오류 예측 장치. - 제6항에 있어서,
상기 오류 예측 유닛은,
상기 학습된 기계 학습 모델의 국부 예측 모듈에 상기 제2 시간 창 내에서 획득된 상기 스토리지 장치의 각각에 대한 상기 복수의 속성의 속성 정보를 입력하여, 상기 각 스토리지 장치에 대한 국부 오류 예측 정보를 획득하고,
상기 각 스토리지 장치에 대한 상기 전역 속성 정보를 상기 훈련된 기계 학습 모델의 전역 예측 모듈에 입력하여, 상기 각 스토리지 장치에 대한 전역 오류 예측 정보를 획득하고,
상기 각 스토리지 장치에 대한 상기 국부 오류 예측 정보 및 상기 전역 오류 예측 정보를 상기 훈련된 기계 학습 모델의 결정 모듈에 입력하여, 상기 각 스토리지 장치에 대한 오류 정보 중 적어도 하나를 출력하되, 상기 오류 정보는 상기 각 스토리지 장치에 대한 오류 발생 여부, 상기 각 스토리지 장치에 대해 발생할 상기 오류의 유형 및 상기 각 스토리지 장치의 남은 수명을 포함하는, 스토리지 장치의 오류 예측 장치. - 제9항에 있어서,
상기 국부 예측 모듈, 상기 전역 예측 모듈 및 상기 결정 모듈 각각은 랜덤 포레스트(RF), 컨벌루션 신경망(CNN), 순환 신경망(RNN), 순환 신경망(RNN)의 장단기 메모리 (LSTM) 중 어느 하나인, 스토리지 장치의 오류 예측 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211424591.6A CN115774848A (zh) | 2022-11-14 | 2022-11-14 | 存储装置的故障预测方法和装置 |
CN202211424591.6 | 2022-11-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240070391A true KR20240070391A (ko) | 2024-05-21 |
Family
ID=85389068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230114179A KR20240070391A (ko) | 2022-11-14 | 2023-08-30 | 스토리지 장치의 오류 예측 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240160511A1 (ko) |
KR (1) | KR20240070391A (ko) |
CN (1) | CN115774848A (ko) |
-
2022
- 2022-11-14 CN CN202211424591.6A patent/CN115774848A/zh active Pending
-
2023
- 2023-08-17 US US18/451,460 patent/US20240160511A1/en active Pending
- 2023-08-30 KR KR1020230114179A patent/KR20240070391A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
CN115774848A (zh) | 2023-03-10 |
US20240160511A1 (en) | 2024-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11921629B1 (en) | Method and device for data storage | |
US20220179724A1 (en) | Method for operating storage device and host device, and storage device | |
KR20230126036A (ko) | 스토리지 컨트롤러의 동작방법 및 그 스토리지 시스템 | |
EP4383059A1 (en) | Data storage method and device for data storage | |
KR20240025451A (ko) | 데이터 캐싱을 위한 방법 및 장치 | |
US20240037027A1 (en) | Method and device for storing data | |
US11994934B2 (en) | Failure prediction method and device for a storage device | |
US12056381B2 (en) | Data processing method and data processing device | |
US20240160511A1 (en) | Failure prediction apparatus and method for storage devices | |
US20230409200A1 (en) | Method and device for data storage | |
US20230393749A1 (en) | Method and device of storage data | |
EP4386557A1 (en) | Method and device for log structured merge-tree based key-value data storage | |
EP4332773A1 (en) | Storage server and operation method of storage server | |
CN118113506A (zh) | 存储装置的故障预测方法和装置 | |
EP4177758A1 (en) | A storage device and an operating method of a storage controller thereof | |
CN116756106A (zh) | 有序字符串表文件的压缩方法和装置 | |
CN117008826A (zh) | 数据压缩方法和装置 | |
CN114327254A (zh) | 存储数据的方法和装置 | |
KR20240030021A (ko) | 스토리지 서버 및 스토리지 서버의 동작 방법 | |
CN117055816A (zh) | 配置zns ssd的区域的方法和装置 | |
CN117033320A (zh) | 碎片整理方法、设备、电子设备和计算机可读存储介质 | |
CN116168748A (zh) | 存储设备、存储设备的操作方法以及控制器的操作方法 | |
CN117406918A (zh) | 数据处理方法、数据处理装置、电子设备以及存储介质 |