KR102153622B1 - 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법 - Google Patents

결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법 Download PDF

Info

Publication number
KR102153622B1
KR102153622B1 KR1020190078732A KR20190078732A KR102153622B1 KR 102153622 B1 KR102153622 B1 KR 102153622B1 KR 1020190078732 A KR1020190078732 A KR 1020190078732A KR 20190078732 A KR20190078732 A KR 20190078732A KR 102153622 B1 KR102153622 B1 KR 102153622B1
Authority
KR
South Korea
Prior art keywords
defect
network
virtual machine
storage device
component
Prior art date
Application number
KR1020190078732A
Other languages
English (en)
Inventor
민덕기
예쉬화
박문학
Original Assignee
건국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 건국대학교 산학협력단 filed Critical 건국대학교 산학협력단
Priority to KR1020190078732A priority Critical patent/KR102153622B1/ko
Application granted granted Critical
Publication of KR102153622B1 publication Critical patent/KR102153622B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/0636Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis based on a decision tree analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/20Network management software packages

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 실시예에 따른 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법이 제공된다. 본 발명의 실시예에 따른 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치는, 유선 또는 무선 네트워크와 연결되어 데이터를 분산 저장하도록 구성된 네트워크 연결 저장 장치로서, 상기 네트워크 연결 저장 장치와 물리적으로 분리된 확장 네트워크 연결 저장 장치와 통신을 하도록 구성된 통신부; 상기 데이터를 분산 저장하도록 구성된 저장부; 및 상기 통신부 및 상기 저장부와 동작 가능하게 연결되고, 적어도 하나의 가상 머신 또는 컨테이너를 구축하는 프로세서를 포함하고, 상기 프로세서는, 상기 네트워크 연결 저장 장치 및 상기 확장 네트워크 연결 저장 장치의 적어도 하나의 하드웨어 및 소프트웨어 리소스에 대한 리소스 사용 정보를 수집하고, 상기 수집된 리소스 사용 정보에 기반하여 하드웨어 및/또는 소프트웨어 컴포넌트에 대한 결함을 감지하고, 상기 감지된 적어도 하나의 결함을 격리 또는 복구함으로써, 시스템의 성능을 보장하면서 신뢰성을 향상시킬 수 있다.

Description

결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법{SCALABLE NETWORK CONNECTED STORAGE APPARATUS AND METHOD FOR HANDLING FAULT}
본 발명은 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법이 제공한다.
디지털 장치의 보급에 따라 음악, 영상, 문서 등과 같은 다양한 컨텐츠들이 디지털 데이터로 제공되고 있으며, 디지털 데이터를 저장하는 저장 장치에 대한 수요도 증가하고 있다. 종래에는 디지털 장치에 내장되거나 유선으로 연결된 저장 장치가 주로 사용되었으나, 최근에는 네트워크 통신을 통해 외부에서도 자유롭게 접속이 가능한 네트워크 연결 저장 장치가 각광을 받고 있다. 네트워크 연결 저장 장치는 데이터 저장을 위한 저장 매체 이외에 중앙 처리 장치(Central Processing Unit; CPU) 및 네트워크 어댑터를 구비하며 네트워크를 통해 접속이 가능한 데이터 서버로 이용된다.
이러한 네트워크 연결 저장 장치는 저장된 파일 또는 관리 웹에 성공적으로 접속하거나, 네트워크 연결 저장 장치의 동작을 정상적으로 작동시키기 위해 결함을 감지하거나 결함 발생을 예측하고, 감지된 결함 또는 예측된 결함에 대한 격리 또는 복구와 같은 처리가 요구된다.
본 발명이 해결하고자 하는 과제는 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법을 제공하는 것이다.
구체적으로, 본 발명이 해결하고자 하는 과제는 네트워크 연결 저장 시스템의 성능을 보장하면서 신뢰성을 향상시키도록 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법을 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 실시예에 따른 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법이 제공된다. 본 발명의 실시예에 따른 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치는, 유선 또는 무선 네트워크와 연결되어 데이터를 분산 저장하도록 구성된 네트워크 연결 저장 장치로서, 상기 네트워크 연결 저장 장치와 물리적으로 분리된 확장 네트워크 연결 저장 장치와 통신을 하도록 구성된 통신부; 상기 데이터를 분산 저장하도록 구성된 저장부; 및 상기 통신부 및 상기 저장부와 동작 가능하게 연결되고, 적어도 하나의 가상 머신 또는 컨테이너를 구축하는 프로세서를 포함하고, 상기 프로세서는, 상기 네트워크 연결 저장 장치 및 상기 확장 네트워크 연결 저장 장치의 적어도 하나의 하드웨어 및 소프트웨어 리소스에 대한 리소스 사용 정보를 수집하고, 상기 수집된 리소스 사용 정보에 기반하여 하드웨어 및/또는 소프트웨어 컴포넌트에 대한 결함을 감지하고, 상기 감지된 적어도 하나의 결함을 격리 또는 복구한다.
본 발명의 실시예에 따른 결함 처리를 위한 확장 가능한 네트워크 연결 저장 방법은, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치의 프로세서에 의해서 수행되는 결함 처리를 위한 확장 가능한 네트워크 연결 저장 방법에 있어서, 유선 또는 무선 네트워크와 연결되어 데이터를 분산 저장하도록 구성된 네트워크 연결 저장 장치에 적어도 하나의 가상 머신 또는 컨테이너를 구축하는 단계; 상기 네트워크 연결 저장 장치 및 상기 확장 네트워크 연결 저장 장치의 적어도 하나의 하드웨어 및 소프트웨어 리소스에 대한 리소스 사용 정보를 수집하는 단계; 상기 수집된 리소스 사용 정보에 기반하여 하드웨어 및/또는 소프트웨어 컴포넌트에 대한 결함을 감지하는 단계; 및 상기 감지된 적어도 하나의 결함을 격리 또는 복구하는 단계를 포함한다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 시스템 결함을 감지하고, 감지된 결함을 빠르게 처리함으로써, 시스템의 성능을 보장하면서 신뢰성을 향상시킬 수 있다.
또한, 본 발명은 시스템 결함을 미리 예측하고, 미리 예측된 시스템 결함에 대한 복구를 수행함으로써, 시스템에 대한 결함 발생율을 줄일 수 있다.
또한, 본 발명은 시스템 결함을 최소시간 및 최소 비용으로 결함 발생 초기에 필요한 조치를 취할 수 있어, 결함에 따른 재해를 예방하고, 재해가 발생하더라도 이를 최소화할 수 있다.
또한, 본 발명은 확장 가능한 네트워크 연결 저장 시스템에서 결함이 발생되거나 결함 발생이 예측된 소프트웨어 및/또는 하드웨어 컴포넌트의 안정성을 보정하고, 지속적인 결함 모니터링이 가능하다.
또한, 본 발명은 소프트웨어 및/또는 하드웨어 컴포넌트에 대한 결함 발생 시 가상 머신을 이용하여 복구함으로써, 가능한 한 데이터 손실 없이 시스템 프로세스를 지속할 수 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 발명 내에 포함되어 있다.
도 1은 본 발명의 실시예에 따른 네트워크 연결 저장 장치를 포함하는 네트워크 연결 저장 시스템의 개략도이다.
도 2는 본 발명의 실시예에 따른 네트워크 연결 저장 장치를 설명하기 위한 블록도이다.
도 3은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에 탑재된 논리적/물리적 자원들을 예시적으로 나타내기 위한 블록도이다.
도 4는 본 발명의 실시예에 따른 결함 발생 여부를 판단하기 위해 사용되는 리소스 사용 정보를 시스템 맵으로 나타낸 예시도이다.
도 5는 본 발명의 실시예에 따른 시스템 맵 중 현재 구동중인 컴포넌트에 대한 정보를 비트맵으로서 나타낸 예시도이다.
도 6은 본 발명의 실시예에 따른 신뢰성 관리 시스템을 설명하기 위한 블록도이다.
도 7은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 네트워크 연결 저장 시스템의 신뢰성을 보장하기 위한 방법을 나타내는 흐름도이다.
도 8은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 결함 감지에 따라 결함 복구를 위한 계획을 생성 및 실행하는 방법을 나타내는 흐름도이다.
도 9는 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 결함 예측에 따라 결함 복구를 위한 계획을 생성 및 실행하는 방법을 나타내는 흐름도이다.
도 10a, 10b, 10c 및 10d는 본 발명의 실시예에 따른 가상 머신의 특징 모델을 나타내는 예시도들이다.
도 11은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 가상 머신에 관한 복구를 실행하기 위한 방법을 나타내는 흐름도이다.
도 12는 본 발명의 실시예에 따른 시스템 결함에 대한 결함수를 나타내는 예시도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
본 명세서에서 네트워크 연결 저장 시스템은 데이터를 저장하기 위한 저장 매체가 인터넷(internet) 또는 인트라넷(intranet)과 같은 컴퓨터 네트워크에 연결되어 장소에 구속되지 않고 데이터 접근이 가능하도록 구성된 시스템을 의미한다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 네트워크 연결 저장 장치를 포함하는 네트워크 연결 저장 시스템의 개략도이다.
도 1을 참조하면, 네트워크 연결 저장 시스템(100)은 게이트웨이(110), 네트워크 연결 저장 장치(120) 및 확장 네트워크 연결 저장 장치(130)를 포함한다.
게이트웨이(110)는 네트워크 연결 저장 장치(120) 및 확장 네트워크 연결 저장 장치(130)와 무선 또는 유선으로 연결되며, 네트워크 연결 저장 장치(120) 및 확장 네트워크 연결 저장 장치(130)를 인터넷 또는 인트라넷과 같은 컴퓨터 네트워크에 연결한다. 이 경우, 사용자는 인터넷 또는 인트라넷에 접속 가능한 휴대용 단말기, 스마트 TV, PC(Personal Computer), 노트북 등과 같은 다양한 컴퓨팅 장치(140)를 통해 네트워크 연결 저장 장치(120) 또는 확장 네트워크 연결 저장 장치(130)에 저장된 데이터에 접근할 수 있다. 예를 들어, 사용자는 네트워크 연결 저장 장치(120) 또는 확장 네트워크 연결 저장 장치(130)에 저장된 영상, 음악 또는 문서 컨텐츠를 컴퓨팅 장치(140)를 통해 시청할 수 있다.
다양한 실시예에서 게이트웨이(110)는 컴퓨팅 장치(140)에 제공되는 컨텐츠를 데이터화하여 네트워크 연결 저장 장치(120) 또는 확장 네트워크 연결 저장 장치(130)에 전송할 수 있다. 예를 들어, 게이트웨이(110)는 컴퓨팅 장치(140)에 전송되는 동영상 또는 음악 컨텐츠 데이터를 패킷(packet) 단위로 분리하여 네트워크 연결 저장 장치(120) 또는 확장 네트워크 연결 저장 장치(130)에 전송할 수 있다.
네트워크 연결 저장 장치(120)는 데이터 저장 서버로서, 적어도 하나의 가상 머신(virtual machine) 또는 컨테이너가 구축되고, 구축된 적어도 하나의 가상 머신 또는 컨테이너를 통해 확장 네트워크 연결 저장 장치(130)와 데이터를 분산 저장하도록 제어할 수 있다. 예를 들어, 네트워크 연결 저장 장치(120)는 적어도 하나의 가상 머신 또는 컨테이너를 통해 확장 네트워크 연결 저장 장치(130)의 연결을 감지하여 확장 네트워크 연결 저장 장치(130)와 데이터를 분산 저장하도록 설정을 원격으로 변경할 수 있다. 여기서, 컨테이너는 LXD, LXC 또는 도커(Docker) 하이퍼바이저 등에 의해 구현될 수 있다.
가상 머신이 구축되는 경우 네트워크 연결 저장 장치(120)는 네트워크 연결 저장 장치(120)에 새로운 저장부가 장착되면 새로운 저장부의 장치 정보를 획득하고, 획득된 장치 정보를 기반하여 새로운 저장부의 용도를 결정할 수 있다. 여기서, 장치 정보는 새로운 저장부의 종류, 연결 방식, 용량, 읽기 속도, 쓰기 속도 등을 포함할 수 있다. 네트워크 연결 저장 장치(120)는 용도가 결정된 새로운 저장부에, 결정된 용도에 대응하는 적어도 하나의 가상 머신을 배치할 수 있다. 적어도 하나의 가상 머신의 배치가 완료되면 네트워크 연결 저장 장치(120)는 새로운 저장부에 기반하여 분산 저장을 위한 시스템 구성을 업데이트하고, 새로운 저장부의 저장 공간을 네트워크 연결 저장 시스템(100)의 분산 저장을 위한 저장 공간에 추가할 수 있다.
다양한 실시예에서 네트워크 연결 저장 시스템(100)에 새로운 확장 네트워크 연결 저장 장치가 연결되면 네트워크 연결 저장 장치(120)는 새로운 확장 네트워크 연결 저장 장치로부터 장치 정보를 수신할 수 있다. 예를 들어, 새로운 확장 네트워크 연결 저장 장치는 도 1의 확장 네트워크 연결 저장 장치(130)일 수 있다. 확장 네트워크 연결 저장 장치(130)의 장치 정보는 확장 네트워크 연결 저장 장치(130)에 장착된 저장부의 종류, 연결 방식, 용량, 읽기 속도, 쓰기 속도 등과 같은 저장부 정보, 확장 네트워크 연결 저장 장치(130)의 CPU 성능, 메모리 용량, 네트워크 어댑터의 성능 등과 같은 성능 정보, 및 확장 네트워크 연결 저장 장치(130)의 IP 주소, 식별자 등과 같은 네트워크 정보를 포함할 수 있다.
네트워크 연결 저장 장치(120)는 수신된 장치 정보에 기반하여 확장 네트워크 연결 저장 장치(130)에 필요한 운영 시스템 및 가상 머신 템플릿(virtual machine template)을 결정할 수 있다. 네트워크 연결 저장 장치(120)는 결정된 운영 시스템을 복사하고, 결정된 가상 머신 템플릿에 대한 이미지를 생성하여 복사된 운영 시스템 및 가상 머신 템플릿 이미지를 확장 네트워크 연결 저장 장치(130)에 전달할 수 있다. 이와 같이 생성된 가상 머신 템플릿 이미지는 새로운 확장 네트워크 연결 저장 장치의 가상 머신 템플릿으로서 네트워크 연결 저장 장치(120)의 템플릿 저장소에 저장될 수 있다. 이러한 템플릿 저장소는 네트워크 연결 저장 장치(120)의 저장부에 저장될 수 있다. 확장 네트워크 연결 저장 장치(130)에 대한 가상 머신의 부팅이 완료되면 네트워크 연결 저장 장치(120)는 확장 네트워크 연결 저장 장치(130)의 구동 상태 정보를 수집하고, 수집된 구동 상태 정보에 기반하여 분산 저장을 위한 시스템 구성을 업데이트할 수 있다. 네트워크 연결 저장 장치(120)는 확장 네트워크 연결 저장 장치(130)의 저장 공간을 네트워크 연결 저장 시스템(100)의 분산 저장을 위한 저장 공간에 추가할 수 있다.
네트워크 연결 저장 시스템(100)의 신뢰성을 보장하기 위해 네트워크 연결 저장 장치(120)는 하드웨어 컴포넌트(또는 모듈) 및/또는 소프트웨어 컴포넌트에 대한 결함(fault)을 감지하거나 예측하고, 감지 또는 예측된 결함에 대한 격리 또는 복구 동작을 수행할 수 있다. 여기서, 하드웨어 컴포넌트에 대한 결함은 디스크 및/또는 네트워크 카드 등에 대한 결함을 포함하고, 소프트웨어 컴포넌트에 대한 결함은 시스템 컴포넌트 및/또는 서비스 컴포넌트 등에 대한 결함을 포함할 수 있다. 또한, 하드웨어 컴포넌트에 대한 결함은 네트워크 스위치 등과 같은 네트워크 연결 장치에 대한 결함을 더 포함할 수 있다.
구체적으로, 네트워크 연결 저장 장치(120)는 CPU, IO(input/output) 및/또는 네트워크 등과 같은 하드웨어 리소스 및/또는 소프트웨어 리소스에 대한 사용 정보를 수집하고, 수집된 사용 정보에 기반하여 하드웨어 결함 및/또는 소프트웨어 결함 중 적어도 하나를 감지 또는 예측할 수 있다. 여기서, 하드웨어 결함은 하드웨어 컴포넌트의 결함 및 네트워크 연결 스위치와 같은 네트워크 연결을 위한 컴포넌트에 대한 결함 등을 포함하고, 소프트웨어 결함은 소프트웨어 컴포넌트의 결함을 의미할 수 있다.
하드웨어 결함 및/또는 소프트웨어 결함 중 적어도 하나가 감지 또는 예측되면 네트워크 연결 저장 장치(120)는 감지 또는 예측된 결함을 처리하기 위한 실행 계획을 생성할 수 있다. 네트워크 연결 저장 장치(120)는 생성된 실행 계획에 따라 결함이 발생된 컴포넌트를 격리하거나, 다른 가상 머신 컴포넌트를 재사용하여 결함이 발생된 컴포넌트를 복구할 수 있다.
결함을 감지 또는 예측하기 위해 사용되는 하드웨어 및/또는 소프트웨어 리소스들에 대한 사용 정보는 시스템 맵(system map)으로서 네트워크 연결 저장 시스템(100)의 모든 장치들과 공유될 수 있다. 예를 들어, 이러한 시스템 맵은 네트워크 연결 저장 시스템(100)을 구성하는 호스트(예: 네트워크 연결 저장 장치(120) 또는 확장 네트워크 연결 저장 장치(130)) 이름(예: Host1, Host2 등), 호스트를 구성하는 노드의 종류(예: Dom0, CnS node, Service node, storage node 등), 노드를 구성하는 특징 모델에 대한 식별 정보, 가상 머신 네트워크 카드 및 물리적 머신 네트워크 카드 간의 맵핑 정보를 나타내는 NIC(Network Interface Controller) 정보, 가상 머신 디스크 정보를 나타내는 디스크 정보, 현재 구동중인 가상 머신을 비트맵으로 나타낸 현재 구동중인 컴포넌트 정보, 가상 머신의 헬스 정보를 나타내는 현재 상태 정보 및 현재 기록의 버전 정보 등 중 적어도 일부를 포함할 수 있다. 여기서, 호스트는 네트워크 연결 저장 장치(120) 또는 확장 네트워크 연결 저장 장치(130)일 수 있으며, 이에 한정되지 않고, 네트워크 연결 저장 시스템(100)을 구성하는 포함된 어떠한 장치일 수 있다.
이와 같이 네트워크 연결 저장 장치(120)는 네트워크 연결 저장 시스템(100)의 모든 장치들에 대한 하드웨어 컴포넌트 및/또는 소프트웨어 컴포넌트에 대한 결함을 감지 또는 예측함으로써, 네트워크 연결 저장 시스템(100)에 대한 신뢰성을 향상시킬 수 있다.
확장 네트워크 연결 저장 장치(130)는 데이터 저장 서버로서, 네트워크 연결 저장 장치(120)에 의해 적어도 하나의 가상 머신 또는 컨테이너가 구축되고, 구축된 적어도 하나의 가상 머신 또는 컨테이너를 통해 네트워크 연결 저장 장치(120)와 데이터를 분산 저장하도록 제어될 수 있다.
컨테이너 또는 가상 머신이 구축되는 경우, 확장 네트워크 연결 저장 장치(130)는 네트워크 연결 저장 시스템(100)에 연결되면 네트워크 연결 저장 장치(120)로 장치 정보를 전달할 수 있다. 네트워크 연결 저장 장치(120)로부터 운영 시스템 및 가상 머신 템플릿 이미지가 수신되면 확장 네트워크 연결 저장 장치(130)는 수신된 운영 시스템 및 가상 머신 템플릿 이미지에 기반하여 가상 머신을 부팅할 수 있다. 이와 같이 가상 머신의 부팅이 완료되면 확장 네트워크 연결 저장 장치(130)는 구동 상태 정보를 네트워크 연결 저장 장치(120)로 전달할 수 있다.
하기에서는 네트워크 연결 저장 장치(120)에 대해서 도 2를 참조하여 보다 상세하게 설명하도록 한다.
도 2는 본 발명의 실시예에 따른 네트워크 연결 저장 장치를 설명하기 위한 블록도이다.
도 2를 참조하면, 네트워크 연결 저장 장치(120)는 통신부(122), 저장부(124) 및 프로세서(126)를 포함한다.
통신부(122)는 네트워크 연결 저장 장치(120)가 외부 장치와 통신 가능하도록 연결한다. 통신부(122)는 유선 또는 무선 통신을 이용하여 확장 네트워크 연결 저장 장치(130) 또는 컴퓨팅 장치(140)와 연결될 수 있다. 구체적으로, 통신부(122)는 네트워크 연결 저장 장치(120)와 연결된 확장 네트워크 연결 저장 장치(130)로부터 장치 정보, 성능 정보 또는 네트워크 정보를 수신할 수 있다. 통신부(122)는 컴퓨팅 장치(140)로부터 데이터를 수신할 수 있다. 다양한 실시예에서 통신부(122)는 확장 네트워크 연결 저장 장치(130)로부터 하드웨어 및/또는 소프트웨어 리소스들에 대한 사용 정보를 수신할 수 있다.
저장부(124)는 데이터를 저장하기 위한 매체로서, 하드 디스크 드라이브(Hard Disk Drive; HDD), SSD(Solid State Drive), SD(Secure Digital) 카드, CD(Compact Disk), DVD(Digital Video Disc) 등과 같은 다양한 저장 매체로 구성될 수 있다. 상기 저장부(124)는 다이렉트 커넥션(direct connection)을 통해 네트워크 연결 저장 장치(120)의 호스트(host)에 직접 연결될 수 있다.
저장부(124)는 확장 네트워크 연결 저장 장치(130)로부터 수신된 장치 정보, 성능 정보 또는 네트워크 정보를 저장하고, 컴퓨팅 장치(140)로부터 수신된 데이터를 저장할 수 있다. 다양한 실시예에서 저장부(124)는 생성된 가상 머신별 가상 머신 템플릿 이미지를 저장하는 템플릿 저장소를 더 포함할 수 있다.
저장부(124)는 확장 네트워크 연결 저장 장치(130)로부터 수신된 하드웨어 및/또는 소프트웨어 리소스들에 대한 사용 정보를 저장할 수 있다.
프로세서(126)는 통신부(122) 및 저장부(124)와 동작 가능하게 연결되며, 적어도 하나의 가상 머신(Virtual Machine, VM)(127) 및 데이터 분산 저장을 위한 분산 처리 시스템(Distributed File System, DFS)(128)이 구축될 수 있다. 프로세서(126)는 적어도 하나의 가상 머신(127)이 구축되고, 구축된 적어도 하나의 가상 머신(127)을 통해 네트워크 연결 저장 장치(120)의 동작을 제어할 수 있다. 프로세서(126)는 적어도 하나의 가상 머신(127) 상에 구축된 분산 파일 시스템(128)을 이용하여 네트워크 연결 저장 장치(120) 및 확장 네트워크 연결 저장 장치(130)를 하나의 저장 장치로 사용될 수 있도록 데이터 분산 저장을 제어할 수 있다. 여기선 프로세서(126)는 물리적 구성으로서 동작하나, 가상 머신(127) 및 분산 처리 시스템(128)은 프로레서(126)에 의해 구현되는 논리적 구성일 수 있다. 도 2에서는 설명의 편의를 위해 각각의 블록으로 표시된다. 제시된 실시예에서는 적어도 하나의 가상 머신이 구축되는 경우를 설명하였으나, 이에 한정되지 않으며, 적어도 하나의 컨테이너가 구축되는 경우에도 적용될 수 있다.
네트워크 연결 저장 시스템(100)의 신뢰성을 보장하기 위해 프로세서(126)는 네트워크 연결 저장 장치(120) 및/또는 확장 네트워크 연결 저장 장치(130)의 하드웨어 리소스 및 소프트웨어 리소스 중 적어도 하나에 대한 사용 정보를 획득할 수 있다. 프로세서(126)는 획득된 사용 정보에 기반하여 하드웨어 결함 및 소프트웨어 결함 중 적어도 하나를 감지하고, 감지된 적어도 하나의 결함을 격리 또는 복구하기 위한 동작을 수행할 수 있다.
각 리소스에 대한 결함을 감지하고, 이를 격리 또는 복구하기 위해 프로세서(126)는 네트워크 연결 저장 시스템(100)에 포함된 네트워크 연결 저장 장치(120) 및/또는 확장 네트워크 연결 저장 장치(130) 등의 리소스 사용 정보를 수집할 수 있다. 리소스 사용 정보는 네트워크 연결 저장 시스템(100)을 구성하는 네트워크 연결 저장 장치(120) 및/또는 확장 네트워크 연결 저장 장치(130)에 대한 이름, 네트워크 연결 저장 장치(120) 및/또는 확장 네트워크 연결 저장 장치(130)를 구성하는 노드의 종류, 노드의 특징 모델에 대한 식별 정보, NIC 정보, 디스크 정보, 현재 구동중인 컴포넌트 정보, 현재 상태 정보 및 현재 기록의 버전 정보 등 중 적어도 일부를 포함할 수 있다.
수집된 리소스 사용 정보에 기반하여 현재 구동하지 않은 컴포넌트가 확인되면 프로세서(126)는 확인된 컴포넌트를 결함이 발생되었다고 판단할 수 있다. 구체적으로, 프로세서(126)는 시스템 노드의 특징 모델에 대한 식별 정보와 현재 구동중인 컴포넌트 정보를 비교하여 현재 구동하지 않은 컴포넌트를 확인할 수 있다. 현재 구동하지 않은 컴포넌트가 확인되면 프로세서(126)는 해당 컴포넌트에 결함이 발생되었다고 판단하거나, 해당 컴포넌트에 의해서 발생 가능한 결함을 예측할 수 있다.
감지된 적어도 하나의 결함을 격리 또는 복구하기 위해 프로세서(126)는 결함이 발생된 컴포넌트가 하드웨어 컴포넌트인 경우 해당 하드웨어 컴포넌트 이외에 동일 기능을 수행할 수 있는 다른 하드웨어 컴포넌트가 존재하면 결함이 발생된 하드웨어 컴포넌트의 동작을 중지시키고, 다른 하드웨어 컴포넌트가 결함이 발생된 하드웨어 컴포넌트의 동작을 함께 수행하도록 설정할 수 있다. 결함이 발생된 컴포넌트가 소프트웨어 컴포넌트인 경우 프로세서(126)는 현재 존재하는 가상 머신 중 결함이 발생된 컴포넌트와 매칭되는 가상 머신이 존재하면 이를 복사하여 복사된 가상 머신 이미지 및 해당 가상 머신에 대한 구성 파일을 이용하여 결함이 발생된 소프트웨어 컴포넌트를 복구할 수 있다. 다양한 실시예에서 현재 존재하는 가상 머신 중 결함이 발생된 컴포넌트와 매칭되는 가상 머신이 존재하지 않으면 새로운 가상 머신을 생성하고, 생성된 새로운 가상 머신을 이용하여 결함이 발생된 소프트웨어 컴포넌트를 복구할 수 있다. 제시된 실시예에서는 가상 머신을 이용한 소프트웨어 컴포넌트 복구를 설명하였으나, 이에 한정되지 않으며, 컨테이너를 이용하여 소프트웨어 컴포넌트를 복구할 수도 있다. 이러한 경우, 프로세서(126)는 결함이 발생된 컴포넌트와 매칭되는 컨테이너를 실행하기 위해 해당 컨테이너에 관련된 이미지를 획득하고, 획득된 이미지를 이용하여 컨테이너를 실행하여 결함이 발생된 소프트웨어 컴포넌트를 복구할 수 있다.
다양한 실시예에서 프로세서(126)는 각 리소스에 대한 결함이 발생되기 이전에 결함을 예측하고, 예측된 결함을 격리 또는 예방하기 위해 결함수 분석(fault tree analysis)을 이용할 수 있다. 구체적으로, 프로세서(126)는 소프트웨어 결함 및/또는 하드웨어 결함에 따른 결함 증상을 나타내는 결함수(fault tree, FT)를 생성하고, 생성된 결함수를 이용하여 시스템의 결함 확률을 산출한 후 이에 기반하여 시스템의 취약 부분을 찾아내어 시스템의 신뢰성을 개선할 수 있다. 예를 들어, FTA 분석 결과 소프트웨어 컴포넌트들 중 타겟 소프트웨어 컴포넌트의 결함이 발생될 확률이 기 설정된 임계 확률 이상이면 프로세서(126)는 타겟 소프트웨어 컴포넌트에 대한 결함 발생 확률이 높다고 판단하고, 타겟 소프트웨어 컴포넌트를 격리시키거나, 타겟 소프트웨어 컴포넌트를 복구할 수 있다. 타겟 소프트웨어 컴포넌트를 복구하기 위해 프로세서(126)는 현재 존재하는 가상 머신 중 타겟 소프트웨어 컴포넌트에 대응하는 가상 머신 이미지를 복사하고, 복사된 가상 머신 이미지를 이용하여 타겟 소프트웨어 컴포넌트에 대한 새로운 가상 머신을 생성할 수 있다.
이를 통해서 본 발명은 시스템 결함을 감지하고, 감지된 결함을 빠르게 처리함으로써, 시스템의 신뢰성을 향상시킬 수 있다.
또한, 본 발명은 시스템 결함을 미리 예측하고, 미리 예측된 시스템 결함에 대한 복구를 수행함으로써, 시스템에 대한 결함 발생율을 줄일 수 있다.
도 3은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에 탑재된 논리적/물리적 자원들을 예시적으로 나타내기 위한 블록도이다. 도 3에 도시된 논리적/물리적 자원들은 도 2에서 상술한 통신부(122), 저장부(124) 및 프로세서(126) 중 적어도 일부에 포함되도록 구현될 수 있다.
도 3을 참조하면, 네트워크 연결 저장 장치(120)는 라우팅(Routing) 파트(300), 서비스(Service) 파트(304), RPC(Remote Procedure Call) 파트(324), 코어(Core) 파트(326), 메시지 큐(Message Queue) 파트(340), 모니터링(monitoring) 파트(342), 분산 파일 시스템(DFS) 파트(352), 제어 O/S(Operating System) 파트(360), 하이퍼바이저(Hypervisor) 파트(364) 및 하드웨어(Hardware) 파트(366)를 포함할 수 있다.
라우팅 파트(300)는 사용자에 의해 컴퓨팅 장치(140)가 네트워크 연결 저장 장치(120)에 연결될 경우 컴퓨팅 장치(140)와 직접적으로 연결될 수 있다. 라우팅 파트(300)는 사용자를 위한 가상 IP(Internet Protocol)로서 동작하는 LVS(Liunx Virtual Server)(302) 상에 구동될 수 있다. 다양한 실시예에서 라우팅 파트(300)는 웹 서비스 리디렉션(web service redirection)을 지원하는 HAproxy 상에서 구동될 수도 있다. 여기서, HAproxy는 선택적으로 포함될 수 있다.
서비스 파트(304)는 네트워크 연결 저장 장치(120)에 대한 파일 공유 서비스(file sharing services) 및 시스템 관리 서비스(system management services)를 제공할 수 있다. 서비스 파트(304)는 System Administration 서비스(306), DFS 서비스(308), FDT(Fast Data Transferring Protocol) 서비스(310), SSH(Secure Shell) 서비스(312), FTP(File Transfer Protocol) 서비스(314), TFTP(Trivial FTP) 서비스(316), NFS(Network File System) 서비스(318), SMB(Server Message Block)/CIFS(Common Internet File System) 서비스(320) 및 RSync(Remote Sync) 서비스(322)와 같은 파일 공유 서비스를 지원할 수 있다. 서비스 파트(304)는 System Administration 서비스(306)에 의해 관리 서비스를 지원하고, RPC 파트(324)를 통해 코어 파트(326)와 협력할 수 있다.
RPC 파트(324)는 서비스 파트(304)와 코어 파트(326) 간의 통신을 처리할 수 있다. RPC 파트(324)는 System Administration 서비스(306)를 위해 동작하고, 다른 서비스들에 의해 코어 파트(326)로부터 최신 서비스 정보를 획득할 수 있다. 예를 들어, RPC 파트(324)는 PHP 엔진(Hypertext Preprocessor engine) 상에서 구동될 수 있다. System Administration 서비스(306)를 통해 요청이 수신되면 PHP 어플리케이션을 통해 요청이 획득되고, 데이터 획득 또는 설정을 위해 RPC 파트(324)가 코어 파트(326)로 호출될 수 있다.
코어 파트(326)는 네트워크 연결 저장 장치(120)의 시스템 관리를 수행할 수 있다. 코어 파트(326)는 모든 물리적 가상 머신의 전체 시스템 구성 및 상태를 유지할 수 있다. 코어 파트(326)는 확장성 관리 컴포넌트(Scalability Management component)(328), 시스템 신뢰성 관리 컴포넌트(System Reliability Management component)(330), 데이터 비-거부 관리 컴포넌트(Data non-repudiation Management component)(332), 패키지 관리 컴포넌트(Package Management component)(334), 사용자 관리 컴포넌트(User Management component)(336) 및 네트워크 관리 컴포넌트(Network Management component)(338)를 포함할 수 있다.
확장성 관리 컴포넌트(328)는 스케일 업(scale-up), 스케일 아웃(scale-out), 스케일 다운(scale-down) 및 스케일 인(scale-in)과 같은 물리적 장치 확장성 동작을 처리할 수 있다.
시스템 신뢰성 관리 컴포넌트(330)는 최종 사용자(end user)가 네트워크 연결 저장 시스템(100)의 각 장치를 계속적으로 사용할 수 있도록 신뢰성을 유지하기 위해 동작할 수 있다. 신뢰성 유지를 위해 시스템 신뢰성 관리 컴포넌트(330)는 확장성 관리 컴포넌트(328)와 함께 네트워크 연결 저장 시스템(100)의 물리적 장치 정보, 가상 머신 상태, 소프트웨어 런타임 정보, 런타임 프로세스 정보, 디스크 헬스 정보, 네트워크 연결 정보 및 분산 파일 시스템 상태 정보 등과 같은 시스템 데이터를 획득하기 위해 모니터링 파트(342)와 협동할 수 있다.
모니터링 파트(342)를 통해서 물리적 장치 정보, 가상 머신 상태 및 소프트웨어 런타임 정보 등이 획득되면 시스템 신뢰성 관리 컴포넌트(330)는 획득된 정보를 이용하여 시스템 맵을 생성하고, 생성된 시스템 맵에 기반하여 하드웨어 및 소프트웨어 중 적어도 하나에 대한 결함을 감지할 수 있다. 적어도 하나의 결함이 감지되면 시스템 신뢰성 관리 컴포넌트(330)는 결함이 발생된 컴포넌트를 격리 또는 복구할 수 있다. 예를 들어, 네트워크 연결 저장 장치(120)의 NIC가 2개인 경우 그중 하나의 NIC에 대한 결함이 감지되면 시스템 신뢰성 관리 컴포넌트(330)는 결함이 감지된 NIC로의 프로세스를 중지하고, 결함이 발생되지 않은 NIC로의 프로세스를 수행하도록 할 수 있다. 다양한 실시예에서 특정 가상 머신에 대한 결함이 감지되면 시스템 신뢰성 관리 컴포넌트(330)는 특징 모델을 이용하여 결함이 감지된 가상 머신을 복구할 수 있다.
데이터 비-거부 관리 컴포넌트(332)는 사용자 파일 동작의 프로프(proof)를 저장 및 제공하도록 지원할 수 있다.
패키지 관리 컴포넌트(334)는 시스템 패키지 설치 및 비설치 기능을 제공할 수 있다. 사용자 관리 컴포넌트(336)는 사용자 계정 관리 및 제어 리스트 접근을 지원할 수 있다. 네트워크 관리 컴포넌트(338)는 물리적 가상 머신의 네트워크 구성을 관리하기 위해 사용될 수 있다. 패키지 관리 컴포넌트(334), 사용자 관리 컴포넌트(336) 및 네트워크 관리 컴포넌트(338)는 결함 허용(fault tolerant)을 지원하기 위해 시스템 신뢰성 관리 컴포넌트(330)와 동작하도록 최적화될 수 있다.
메시지 큐 파트(340)는 로컬 큐(local queue) 및 글로벌 큐(global queue)와 같은 2개의 큐들을 포함할 수 있다. 로컬 큐는 로컬적으로(locally) 처리해야 하는 이벤트들을 포함하고, 글로벌 큐는 글로벌 이벤트를 위해 동작될 수 있다. 큐 가용성을 제공하기 위해 글로벌 큐는 모니터링 파트(342)와 함께 배치될 수 있다.
모니터링 파트(342)는 시스템 하드웨어 정보, 소프트웨어 정보 및 하이퍼바이저 정보를 수집할 수 있다. 모니터링 파트(342)는 프로세스 모니터링 컴포넌트(Process Monitoring component)(344), 디스크 모니터링 컴포넌트(Disk Monitoring component)(346), 네트워크 모니터링 컴포넌트(Network Monitoring component)(348) 및 분산 파일 시스템 모니터링 컴포넌트(DFS Monitoring component)(350)를 포함할 수 있다. 프로세스 모니터링 컴포넌트(344)는 네트워크 연결 저장 장치(120)의 런타임 프로세스 정보를 수집할 수 있다. 디스크 모니터링 컴포넌트(346)는 디스크 헬스(health)(또는 상태) 정보를 수집할 수 있다. 예를 들어, 디스크 헬스 정보는 디스크 자가 모니터링 분석 및 리포팅 기술(disk Self-Monitoring Analysis and Reporting Technology, S.M.A.R.T.) 데이터로부터 수집될 수 있다. S.M.A.R.T. 데이터를 통해 디스크 하드웨어 상태 및 사용 정보가 확인되고, 하드웨어 상태 또는 사용이 오버헤드되면 상위 계층 어플리케이션에 경고가 전달될 수 있다. 네트워크 모니터링 컴포넌트(348)는 네트워크 인터페이스를 통해 데이터를 수집할 수 있다. 네트워크 연결 저장 장치(120)가 가상 머신 상에 동작되므로, 네트워크 모니터링 컴포넌트(348)에 의해 수집된 데이터는 가상 머신의 가상 머신 인터페이스를 나타낼 수 있다. 분산 파일 시스템 모니터링 컴포넌트(350)는 분산 파일 시스템(352)의 상태 정보를 수집할 수 있다.
다양한 실시예에서 모니터링 파트(342)는 하이퍼바이저 모니터링 컴포넌트(Hypervisor Monitoring component)를 더 포함하고, 하이퍼바이저 모니터링 컴포넌트는 하이퍼바이저(364)로부터 데이터를 수집할 수 있다. 하이퍼바이저 모니터링 컴포넌트는 하이퍼바이저가 부팅시 동작시키는 초기 도메인(Dom0)에서 동작하고, 하이퍼바이저에 접속할 수 있다.
분산 파일 시스템 파트(352)는 도 2에서 상술한 바와 같이 네트워크 연결 저장 장치(120) 및 확장 네트워크 연결 저장 장치(130)에 데이터를 분산 저장하기 위한 기능을 제공할 수 있다. 상기 분산 파일 시스템 파트(352)는 데이터를 청크 단위로 나누어 네트워크 연결 저장 장치(120) 및 확장 네트워크 연결 저장 장치(130)에 각각 장착된 저장 매체(예: 저장부(124))에 분산 저장하도록 지원할 수 있다.
분산 파일 시스템 파트(352)는 분산 파일 시스템 메타 데이터 관리 컴포넌트(DFS Meta data Management component)(354), 분산 파일 시스템 객체 데이터 관리 컴포넌트(DFS Object Data Management component)(356) 및 분산 파일 시스템 헬스 관리 컴포넌트(DFS Health Management component)(358)를 포함할 수 있다.
분산 파일 시스템 메타 데이터 관리 컴포넌트(354)는 메타 데이터를 관리하고, 분산 파일 시스템 객체 데이터 관리 컴포넌트(356)는 데이터를 객체 수준으로 저장하고 관리하며, 분산 파일 시스템 헬스 관리 컴포넌트(358)는 전체 시스템 상태를 제어할 수 있다.
제어 O/S 파트(360)는 적어도 하나의 가상 머신에 하드웨어(366)의 물리적인 자원을 할당할 수 있다. 이에 따라, 적어도 하나의 가상 머신이 하나의 하드웨어에 탑재되어 가상화되더라도, 주어진 자원에 기초한 예측된 시간 내에 작업이 완료될 수 있어, 실시간성이 구현될 수 있다. 제어 O/S 파트(360)는 커널(Kernel)(362)을 포함할 수 있다. 커널(362)은 디스크 없이 가상 머신을 구동하는 사용자 지정 커널(customized kernel)이 사용되며, 사용자 지정 커널은 Dom0 및 Dom0에 의해서 관리되는 다른 도메인(DomU)에서 사용될 수 있다.
하이퍼바이저 파트(364)는 적어도 하나의 가상 머신을 생성 및 관리하기 위해 도 2의 프로세서(126)에 의해서 실행되는 프로그램일 수 있다. 하이퍼바이저 파트(364)는 하드웨어(366)의 물리적인 자원을 할당하기 위한 적어도 하나의 가상 머신을 생성할 수 있다.
하드웨어 파트(366)는 적어도 하나의 물리적 디스크, 적어도 하나의 물리적 디바이스, 적어도 하나의 물리적 프로세서 및 적어도 하나의 물리적 메모리를 포함할 수 있다. 예를 들어, 하드웨어 파트(366)는 도 2에서 상술한 통신부(122), 저장부(124) 및 프로세서(126) 중 적어도 일부를 포함할 수 있다.
하기에서는 결함 발생 여부를 판단하기 위해 사용되는 리소스 사용 정보에 대해서 도 4를 참조하여 보다 상세하게 설명하도록 한다.
도 4는 본 발명의 실시예에 따른 결함 발생 여부를 판단하기 위해 사용되는 리소스 사용 정보를 시스템 맵으로 나타낸 예시도이다.
도 4를 참조하면, 시스템 맵은 네트워크 연결 저장 시스템(100)을 구성하는 호스트(Host), 호스트를 구성하는 노드(Node), 노드를 구성하는 특징 모델에 대한 식별 정보(Feature Model ID), 가상 머신 네트워크 카드 및 물리적 머신 네트워크 카드 간의 맵핑 정보를 나타내는 NICs, 가상 머신 디스크 정보를 나타내는 디스크(disks), 현재 구동중인 가상 머신을 비트맵으로 나타낸 현재 구동중인 컴포넌트(Current Running Components), 가상 머신의 헬스 정보를 나타내는 현재 상태(Current State) 및 현재 기록의 버전(Version)에 대한 정보 중 적어도 일부를 포함할 수 있다. 이와 같이 생성된 시스템 맵을 이용하여 프로세서(126)는 현재 구동되지 않은 하드웨어 컴포넌트 및/또는 소프트웨어 컴포넌트를 확인할 수 있다.
하기에서는 생성된 시스템 맵 중 현재 구동중인 컴포넌트를 나타내는 비트맵에 대해서 도 5를 참조하여 보다 상세하게 설명하도록 한다.
도 5는 본 발명의 실시예에 따른 시스템 맵 중 현재 구동중인 컴포넌트에 대한 정보를 비트맵으로서 나타낸 예시도이다.
도 5를 참조하면, 현재 구동중인 컴포넌트에 대한 비트맵은 현재 구동중인 가상 머신을 나타내는 8 바이트를 포함하고, 각 비트는 네트워크 연결 저장 장치(120)의 논리적/물리적 자원을 나타낼 수 있다. 모든 8 비트들은 같은 파트에 속하는 컴포넌트들의 그룹을 나타낼 수 있다. 예를 들어, 라우팅 파트의 LVS 및 HAProxy는 6비트 및 7비트에 위치할 수 있다.
하기에서는 시스템 신뢰성을 위해 동작하는 적어도 하나의 논리적/물리적 자원에 대해서 도 6을 참조하여 보다 상세하게 설명하도록 한다.
도 6은 본 발명의 실시예에 따른 신뢰성 관리 시스템을 설명하기 위한 블록도이다.
도 6을 참조하면 신뢰성 관리 시스템은 모니터링 모듈(600), 분석 모듈(610), 계획 모듈(620), 실행 모듈(630) 및 저장 모듈(640)을 포함한다. 예를 들어, 모니터링 모듈(600)은 상술한 도 3의 모니터링 파트(342)에 해당하고, 분석 모듈(610), 계획 모듈(620) 및 실행 모듈(630)은 상술한 도 3의 시스템 신뢰성 관리 컴포넌트(330)에 해당하며, 저장 모듈(640)은 상술한 도 3의 분산 파일 시스템 파트(352)에 해당할 수 있다. 다양한 실시예에서 분석 모듈(610) 및 계획 모듈(620)은 도 3의 시스템 신뢰성 관리 컴포넌트(330)에 해당하고, 실행 모듈(630)은 하이퍼바이저(364) 및 하드웨어(366)에 해당할 수도 있다. 도 4의 각 모듈은 도 3에서 상술한 각 구성과 동일한 동작을 수행할 수 있다.
먼저, 모니터링 모듈(600)은 데이터 수집부(data collector)(601)를 포함하고, 데이터 수집부(601)는 시스템 데이터(system data)(602)를 수집할 수 있다. 여기서, 시스템 데이터(602)는 물리적 장치 정보, 가상 머신 상태, 소프트웨어 런타임 정보, 런타임 프로세스 정보, 디스크 헬스 정보, 네트워크 연결 정보 및 분산 파일 시스템 상태 정보 등 중 적어도 일부를 포함할 수 있다.
수집된 시스템 데이터(602)는 데이터 수집부(601)에 등록된 분석 모듈(610)의 결함 트리거(fault trigger)(611) 또는 결함 예측부(fault predictor)(612)로 전달될 수 있다. 여기서, 분석 모듈(610)은 결함 트리거(611), 결함 예측부(612), 결함 이벤트 전달부(fault event emitter)(613), 결함 이벤트 디스패처(dispatcher)(616), 결함 이벤트 분석부(fault event analyzer)(617) 및 계획 생성 이벤트 전달부(plan generation event emitter)(618)를 포함할 수 있다.
결함 트리거(611)는 시스템 데이터(602)에 기반하여 결함을 감지하고, 감지된 결함에 대한 결함 이벤트를 결함 이벤트 글로벌 큐(fault event global queue)(614) 또는 결함 이벤트 로컬 큐(fault event local queue)(615)로 전달하기 위해 결함 이벤트 전달부(613)를 호출할 수 있다. 다양한 실시예에서 결함 예측부(612)는 시스템 데이터(602)에 기반하여 결함을 예측하고, 예측된 결함에 대한 결함 예측 이벤트를 결함 이벤트 글로벌 큐(614) 또는 결함 이벤트 로컬 큐(615)로 전달하기 위해 결함 이벤트 전달부(613)를 호출할 수 있다. 결함 이벤트 글로벌 큐(614) 또는 결함 이벤트 로컬 큐(615)로 전달된 결함 이벤트는 결함 이벤트 디스패처(616)에 의해서 결함 이벤트 분석부(617)로 전달될 수 있다.
결함 이벤트 분석부(617)는 결함에 대한 처리 여부를 결정하고, 결함 처리가 결정되면 결함 처리를 위한 계획 생성 이벤트를 계획 생성 이벤트 큐(plan generation event queue)(619)로 전달하기 위해 계획 생성 이벤트 전달부(618)를 호출할 수 있다.
계획 생성 이벤트 큐(619)로 전달된 계획 생성 이벤트는 계획 모듈(620)의 계획 생성 이벤트 디스패처(plan generation event dispatcher)(621)로 전달될 수 있다. 여기서, 계획 모듈(620)은 계획 생성 이벤트 디스패처(621), 실행 계획 생성부(execution event generator)(622) 및 계획 실행 이벤트 전달부(plan execution event emitter)(623)를 포함할 수 있다.
계획 생성 이벤트 디스패처(621)는 계획 생성 이벤트를 실행 계획 생성부(622)로 전달하고, 실행 계획 생성부(622)는 결함을 처리(예: 격리 또는 복구)하기 위한 계획을 생성할 수 있다. 계획이 생성되면 실행 계획 생성부(622)는 계획 실행 이벤트 큐(plan execution event queue)(624)로 계획 실행 이벤트를 전달하기 위해 계획 실행 이벤트 전달부(623)를 호출할 수 있다.
계획 실행 이벤트 큐(624)로 전달된 계획 실행 이벤트는 실행 모듈(630)의 계획 실행 이벤트 디스패처(plan execution event dispatcher)(631)로 전달될 수 있다. 여기서, 실행 모듈(630)은 계획 실행 이벤트 디스패처(631) 및 계획 실행부(plan executor)(632)를 포함할 수 있다.
계획 실행 이벤트 디스패처(631)는 계획 실행 이벤트를 계획 실행부(632)로 전달하고, 계획 실행부(632)는 계획을 실행할 수 있다.
이를 통해서 본 발명은 시스템 결함을 감지하고, 감지된 결함을 빠르게 처리함으로써, 시스템의 신뢰성을 향상시킬 수 있다. 또한, 본 발명은 시스템 결함을 미리 예측하고, 미리 예측된 시스템 결함에 대한 복구를 수행함으로써, 시스템에 대한 결함 발생율을 줄일 수 있다.
도 7은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 네트워크 연결 저장 시스템의 신뢰성을 보장하기 위한 방법을 나타내는 흐름도이다.
도 1 및 도 7을 참조하면, 네트워크 연결 저장 장치(120)는 네트워크 연결 저장 시스템(100)의 사용 정보를 수집한다(S700). 구체적으로, 네트워크 연결 저장 장치(120)는 네트워크 연결 저장 시스템(100)을 구성하는 네트워크 연결 저장 장치(120) 및 추가 네트워크 연결 저장 장치(130)의 리소스 사용 정보를 수집한다. 여기서, 리소스 사용 정보는 하드웨어 리소스 및/또는 소프트웨어 리소스에 대한 사용 정보를 의미한다.
네트워크 연결 저장 장치(120)는 수집된 사용 정보를 이용하여 하드웨어 및 소프트웨어에 대한 결함 중 적어도 하나를 감지한다(S710). 구체적으로, 네트워크 연결 저장 장치(120)는 수집된 사용 정보를 이용하여 시스템 맵을 생성하고, 생성된 시스템 맵에 기반하여 현재 구동되지 않은 컴포넌트를 확인할 수 있다. 예를 들어, 네트워크 연결 저장 장치(120)는 노드의 특징 모델에 대한 식별 정보와 현재 구동중인 컴포넌트 정보를 비교하여 현재 구동하지 않은 컴포넌트를 확인할 수 있다. 현재 구동되지 않은 컴포넌트가 확인되면 네트워크 연결 저장 장치(120)는 확인된 컴포넌트가 결함이 발생되었다고 판단할 수 있다.
네트워크 연결 저장 장치(120)는 감지된 적어도 하나의 결함을 격리 또는 복구한다(S720). 예를 들어, 둘 이상의 동일 하드웨어 컴포넌트 중 어느 하나의 하드웨어 컴포넌트에 대한 결함이 발생되면 네트워크 연결 저장 장치(120)는 결함이 발생된 하드웨어 컴포넌트의 동작을 중단하고, 다른 하나의 하드웨어 컴포넌트가, 동작이 중단된 하드웨어 컴포넌트의 동작을 함께 수행하도록 제어할 수 있다. 다양한 실시예에서 소프트웨어 컴포넌트의 결함이 발생되면 네트워크 연결 저장 장치(120)는 결함이 발생된 소프트웨어 컴포넌트를 중단시키고, 현재 존재하는 가상 머신을 재사용하여 해당 소프트웨어 컴포넌트를 복구할 수 있다.
이를 통해서 본 발명은 시스템 결함을 감지하고, 감지된 결함을 빠르게 처리함으로써, 시스템의 신뢰성을 향상시킬 수 있다.
도 8은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 결함 감지에 따라 결함 복구를 위한 계획을 생성 및 실행하는 방법을 나타내는 흐름도이다. 하기에서 설명되는 동작들은 상술한 도 6의 모니터링 모듈(600), 분석 모듈(610), 계획 모듈(620) 및 실행 모듈(630)에 의해서 수행될 수 있다. 제시된 실시예에서는 가상 머신을 이용하여 결함을 복구하는 경우에 대해서 설명하도록 한다.
도 1, 도 6 및 도 8을 참조하면, 네트워크 연결 저장 장치(120)는 시스템에서 현재 구동중인 프로세스 리스트를 확인하고(S800), 확인된 프로세스 리스트에서 타겟 프로세스가 존재하는지를 확인할 수 있다(S805). 여기서, 현재 구동중인 프로세스 리스트는 도 6에서 서술한 모니터링 모듈(600)에서 수집하는 시스템 데이터 중 런타임 프로세스 정보에 해당할 수 있으며, 소프트웨어 컴포넌트 및/또는 하드웨어 컴포넌트에서 수행되는 적어도 하나의 프로세스를 포함할 수 있다. 구체적으로, 모니터링 모듈(600)의 데이터 수집부(601)는 시스템에서 현재 구동중인 프로세스 리스트를 수집하고, 수집된 프로세스 리스트를 분석 모듈(610)의 결함 트리거(611)로 전달할 수 있다. 결함 트리거(611)는 프로세스 리스트를 확인하여 확인된 프로세스 리스트 중 타겟 프로세스가 존재하는지를 확인할 수 있다. 예를 들어, 결함 트리거(611)는 시스템 노드의 특징 모델에 대한 식별 정보와 현재 구동중인 프로세스 리스트를 비교하여 현재 구동하지 않은 프로세스를 확인할 수 있다. 여기서, 타겟 프로세서는 현재 구동하는 않은 프로세스일 수 있다.
확인된 프로세스 리스트 중 타겟 프로세스가 존재하지 않으면 네트워크 연결 저장 장치(120)는 타겟 프로세스에 대한 결함 이벤트를 생성한다(S810). 구체적으로, 현재 구동하지 않은 프로세스가 확인되면 결함 트리거(611)는 결함이 발생된 것으로 판단하고, 발생된 결함에 대한 결함 이벤트를 생성하여 생성된 결함 이벤트를 결함 이벤트 전달부(613) 및 결함 이벤트 디스패처(616)를 통해서 결함 이벤트 분석부(617)로 전달할 수 있다.
확인된 프로세스 리스트 중 타겟 프로세스가 존재하면 네트워크 연결 저장 장치(120)는 시스템에서 현재 구동중인 프로세스 리스트를 확인하고(S800), 확인된 프로세스 리스트 중 타겟 프로세스가 존재하는지 확인하여(S805) S810 내지 S850 동작들 중 적어도 일부를 수행할 수 있다.
네트워크 연결 저장 장치(120)는 생성된 결함 이벤트에 따른 결함을 처리할지를 판단하여(S815) 결함을 처리한다고 판단하면 현재 존재하는 가상 머신 중 타겟 프로세스에 대응하는 가상 머신이 존재하는지를 판단한다(S820).
타겟 프로세스에 대응하는 가상 머신이 존재하면 네트워크 연결 저장 장치(120)는 타겟 프로세스에 대응하는 가상 머신을 이용하여 타겟 프로세스에 대한 결함을 처리하기 위한 복구 계획 생성 이벤트를 생성하고(S825), 생성된 복구 계획 생성 이벤트에 따라 복구 실행 계획을 생성한다(S830). 네트워크 연결 저장 장치(120)는 생성된 복구 실행 계획에 따라 타겟 프로세스에 대한 복구를 실행한다(S835).
구체적으로, 결함 이벤트 분석부(617)는 발생된 결함에 대한 처리 여부를 결정하고, 결함을 처리한다고 판단되면 결함 처리를 위한 계획 생성 이벤트를 생성할 수 있다. 이를 위해 결함 이벤트 분석부(617)는 결함수 및/또는 시스템 맵을 이용하여 결함이 발생된 타겟 프로세스에 대한 프로세스 실패율을 산출하고, 산출된 프로세스 실패율이 기 설정된 임계 실패율 이상이면 결함을 처리한다고 판단할 수 있다. 결함 이벤트 분석부(617)는 생성된 계획 생성 이벤트를 계획 생성 이벤트 전달부(618) 및 계획 생성 이벤트 디스패처(621)를 통해서 실행 계획 생성부(622)로 전달할 수 있다. 계획 생성 이벤트를 수신한 실행 계획 생성부(622)는 결함 복구를 위한 계획을 생성할 수 있다.
예를 들어, 실행 계획 생성부(622)는 저장 모듈(640)에 포함된 특징 모델(641) 및 시스템 맵(643)에 기반하여 현재 존재하는 가상 머신 중 타겟 프로세스를 복구하기 위해 사용 가능한 가상 머신이 존재하는지 판단하고, 해당 가상 머신을 이용하여 타겟 프로세스를 복구하기 위한 복구 계획을 생성할 수 있다. 생성된 복구 계획은 계획 실행 이벤트 전달부(623) 및 계획 실행 이벤트 디스패처(631)를 통해서 계획 실행부(632)로 전달될 수 있다. 계획 실행부(632)는 복구 계획에 따라 타겟 프로세스에 대한 복구를 실행할 수 있다.
실행 계획 생성부(622)는 타겟 프로세스를 복구하기 위해 사용되는 가상 머신 이미지를 복사하여 복구 계획과 함께 복사된 가상 머신 이미지 및 구성 파일을 계획 실행 이벤트 전달부(623) 및 계획 실행 이벤트 디스패처(631)를 통해서 계획 실행부(632)로 전달하고, 계획 실행부(632)는 복사된 가상 머신 이미지 및 구성 파일을 이용하여 타겟 프로세스를 복구할 수 있다. 다양한 실시예에서 네트워크 연결 저장 장치(120)는 결함이 발생된 타겟 프로세스에 대한 프로세스 실패율이 산출되면 산출된 프로세스 실패율을 결함수 분석(642) 및 시스템 맵(643)에 업데이트할 수 있다.
결함을 처리하지 않는다고 판단되면 네트워크 연결 저장 장치(120)는 해당 결함 이벤트를 무시하고(S840), 동작을 종료할 수 있다. 구체적으로, 산출된 프로세스 실패율이 임계치 미만이면 결함 이벤트 분석부(617)는 결함 이벤트를 무시할 수 있다.
타겟 프로세스에 대응하는 가상 머신이 존재하지 않으면 네트워크 연결 저장 장치(120)는 타겟 프로세스에 대응하는 새로운 가상 머신을 생성하기 위한 생성 이벤트를 생성하고(S845), 생성된 생성 이벤트에 따라 복구 실행 계획을 생성한다(S850). 네트워크 연결 저장 장치(120)는 생성된 복구 실행 계획에 따라 타겟 프로세스에 대한 복구를 실행한다(S835).
구체적으로, 실행 계획 생성부(622)는 현재 존재하는 가상 머신 중 타겟 프로세스를 복구하기 위해 사용 가능한 가상 머신이 존재하지 않으면 새로운 가상 머신을 생성할 수 있다. 예를 들어, 실행 계획 생성부(622)는 현재 존재하는 가상 머신의 각 컴포넌트를 이용하거나 특징 모델(641) 및 시스템 맵(643)을 이용하여 새로운 가상 머신을 생성할 수 있다. 실행 계획 생성부(622)는 새로운 가상 머신을 이용하여 타겟 프로세스를 복구하기 위한 복구 계획을 생성하고, 생성된 복구 계획과 함께 타겟 프로세스를 복구하기 위해 새롭게 생성된 가상 머신 이미지 및 구성 파일을 계획 실행 이벤트 전달부(623) 및 계획 실행 이벤트 디스패처(631)를 통해서 계획 실행부(632)로 전달하고, 계획 실행부(632)는 새로운 가상 머신 이미지 및 구성 파일을 이용하여 타겟 프로세스를 복구할 수 있다.
이를 통해서 시스템 결함을 미리 예측하고, 미리 예측된 시스템 결함에 대한 복구를 수행함으로써, 시스템에 대한 결함 발생율을 줄일 수 있다.
도 9는 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 결함 예측에 따라 결함 복구를 위한 계획을 생성 및 실행하는 방법을 나타내는 흐름도이다. 하기에서 설명되는 동작들은 상술한 도 6의 모니터링 모듈(600), 분석 모듈(610), 계획 모듈(620) 및 실행 모듈(630)에 의해서 수행될 수 있다. 제시된 실시예에서는 가상 머신을 이용하여 결함을 복구하는 경우에 대해서 설명하도록 한다.
도 1, 도 6 및 도 9를 참조하면, 네트워크 연결 저장 장치(120)는 이전 프로세스 리스트와 현재 구동중인 프로세스 리스트를 비교하여(S900) 결함 발생이 예측되는 타겟 프로세스가 존재하는지 확인한다(S905).
구체적으로, 모니터링 모듈(600)의 데이터 수집부(601)는 시스템에서 현재 구동중인 프로세스 리스트를 수집하고, 수집된 프로세스 리스트와 함께 이전에 구동된 프로세스 리스트를 분석 모듈(610)의 결함 예측부(612)로 전달할 수 있다. 이전에 구동된 프로세스 리스트는 모니터링 모듈(600)의 버퍼(미도시)에 시스템 데이터(602)로서 임시로 저장될 수 있다. 결함 예측부(612)는 이전에 구동된 프로세스 리스트 및 현재 구동중인 프로세스 리스트를 비교하여 결함 발생이 예측되는 타겟 프로세스를 확인할 수 있다. 예를 들어, 결함 예측부(612)는 이전에 구동된 프로세스 리스트 및 현재 구동중인 프로세스 리스트에 기반하여 타겟 프로세스가 10초간 다운(down)되었다가 다시 업(up)되고, 다시 10초간 다운되는 등의 동작이 확인되면 해당 타겟 프로세스에 대한 결함 발생이 예측된다고 판단할 수 있다. 여기서, 타겟 프로세스는 도 8에서 설명한 타겟 프로세스와는 다르게 결함 발생이 예측되는 프로세스일 수 있다.
결함 발생이 예측되는 타겟 프로세스가 존재하면 네트워크 연결 저장 장치(120)는 타겟 프로세스에 대한 결함 예측 이벤트를 생성한다(S910). 구체적으로, 결함 발생이 예측되는 타겟 프로세스가 확인되면 결함 예측부(612)는 예측된 결함에 대한 결함 예측 이벤트를 생성하고, 생성된 결함 예측 이벤트를 결함 이벤트 전달부(613) 및 결함 이벤트 디스패처(616)를 통해 결함 이벤트 분석부(617)로 전달할 수 있다.
결함 발생이 예측되는 타겟 프로세스가 존재하지 않으면 네트워크 연결 저장 장치(120)는 이전 프로세스 리스트와 현재 구동중인 프로세스 리스트를 비교하고(S900), 결함 발생이 예측되는 타겟 프로세스가 존재하는지 확인하여(S905), S910 내지 S950 동작들 중 적어도 일부를 수행할 수 있다.
결함 발생이 예측되는 타겟 프로세스가 존재하면 네트워크 연결 저장 장치(120)는 타겟 프로세스에 대한 결함 예측 이벤트를 생성한다(S910). 네트워크 연결 저장 장치(120)는 생성된 결함 예측 이벤트에 따라 예측된 결함을 처리할지를 판단하여(S915) 결함을 처리한다고 판단하면 현재 존재하는 가상 머신 중 타겟 프로세스에 대응하는 가상 머신이 존재하는지를 판단한다(S920).
타겟 프로세스에 대응하는 가상 머신이 존재하면 네트워크 연결 저장 장치(120)는 타겟 프로세스에 대응하는 가상 머신을 이용하여 타겟 프로세스에 대한 결함을 처리하기 위한 복구 계획 생성 이벤트를 생성하고(S925), 생성된 복구 계획 생성 이벤트에 따라 복구 실행 계획을 생성한다(S930). 네트워크 연결 저장 장치(120)는 생성된 복구 실행 계획에 따라 타겟 프로세스에 대한 복구를 실행한다(S935).
구체적으로, 결함 이벤트 분석부(617)는 예측된 결함에 대한 처리 여부를 결정하고, 결함을 처리한다고 판단되면 결함 처리를 위한 계획 생성 이벤트를 생성할 수 있다. 결함 이벤트 분석부(617)는 생성된 계획 생성 이벤트를 계획 생성 이벤트 전달부(618) 및 계획 생성 이벤트 디스패처(621)를 통해서 실행 계획 생성부(622)로 전달할 수 있다.
결함을 처리하지 않는다고 판단되면 네트워크 연결 저장 장치(120)는 해당 결함 예측 이벤트를 무시하고(S940), 동작을 종료할 수 있다. 구체적으로, 산출된 프로세스 실패율이 임계치 미만이면 결함 이벤트 분석부(617)는 결함 예측 이벤트를 무시할 수 있다.
타겟 프로세스에 대응하는 가상 머신이 존재하지 않으면 네트워크 연결 저장 장치(120)는 타겟 프로세스에 대응하는 새로운 가상 머신을 생성하기 위한 생성 이벤트를 생성하고(S945), 생성된 생성 이벤트에 따라 복구 실행 계획을 생성한다(S950). 네트워크 연결 저장 장치(120)는 생성된 복구 실행 계획에 따라 타겟 프로세스에 대한 복구를 실행한다(S935).
구체적으로, 실행 계획 생성부(622)는 현재 존재하는 가상 머신 중 타겟 프로세스를 복구하기 위해 사용 가능한 가상 머신이 존재하지 않으면 새로운 가상 머신을 생성할 수 있다. 예를 들어, 실행 계획 생성부(622)는 현재 존재하는 가상 머신의 각 컴포넌트를 이용하거나 특징 모델(641) 및 시스템 맵(643)을 이용하여 새로운 가상 머신을 생성할 수 있다. 실행 계획 생성부(622)는 새로운 가상 머신을 이용하여 타겟 프로세스를 복구하기 위한 복구 계획을 생성하고, 생성된 복구 계획과 함께 타겟 프로세스를 복구하기 위해 새롭게 생성된 가상 머신 이미지 및 구성 파일을 계획 실행 이벤트 전달부(623) 및 계획 실행 이벤트 디스패처(631)를 통해서 계획 실행부(632)로 전달하고, 계획 실행부(632)는 새로운 가상 머신 이미지 및 구성 파일을 이용하여 타겟 프로세스를 복구할 수 있다.
이를 통해서 본 발명은 시스템 결함을 미리 예측하고, 미리 예측된 시스템 결함에 대한 복구를 수행함으로써, 시스템에 대한 결함 발생율을 줄일 수 있다. 또한, 본 발명은 소프트웨어 컴포넌트에 대한 결함 발생 시 가상 머신을 이용하여 복구함으로써, 가능한 한 데이터 손실 없이 시스템 프로세스를 지속할 수 있다.
도 10a, 10b, 10c 및 10d는 본 발명의 실시예에 따른 가상 머신의 특징 모델을 나타내는 예시도들이다.
도 10a, 10b, 10c 및 10d를 참조하면, 확장 가능한 네트워크 연결 저장 시스템은 복수의 가상 머신들이 존재하는데, 이러한 가상 머신들은 다른 가상 머신들을 제어하는 제어 머신으로서 동작하는 Dom0, 시스템을 관리하는 관리 머신으로서 동작하는 CnS 노드, 저장을 위한 저장 노드 및 서비스를 위한 서비스 노드(Service node) 등을 포함할 수 있다.
먼저, 도 10a는 본 발명의 실시예에 따른 Dom0의 특징 모델을 나타내는 예시도이다. Dom0의 특징 모델은 RabbitMQ를 포함하는 메시지 큐(Message Queue) 파트, 프로세스 모니터링, 디스크 모니터링, 네트워크 모니터링, 하이퍼바이저 모니터링을 포함하는 모니터링(Monitoring) 파트, Deban 및 커널(Kernel)을 포함하는 OS(Operating System) 파트, 및 NIC 및 디스크(Disk)를 포함하는 하드웨어(Hardware) 파트를 포함한다.
도 10b는 본 발명의 실시예에 따른 CnS 노드의 특징 모델을 나타내는 예시도이다. CnS 노드의 특징 모델은 라우팅(Routing) 파트, RPC 파트, 서비스(Service) 파트, 코어(Core) 파트, 메시지 큐(Message Queue) 파트, 모니터링(Monitoring) 파트, DFS 파트 및 OS 파트를 포함한다. 각 파트의 구체적인 컴포넌트들은 도 3에서 상술한 컴포넌트 구성과 동일할 수 있다.
도 10c는 본 발명의 실시예에 따른 저장 노드의 특징 모델을 나타내는 예시도이다. 저장 노드(Storage Node)의 특징 모델은 프로세스 모니터링, 디스크 모니터링 및 네트워크 모니터링을 포함하는 모니터링 파트, 및 메타 데이터 관리, 오브젝트 데이터 관리 및 헬스 데이터 관리를 포함하는 DFS 파트를 포함한다.
도 10d는 본 발명의 실시예에 따른 서비스 노드의 특징 모델을 나타내는 예시도이다. 서비스 노드(Service node)의 특징 모델은 System Administration 및 NFS를 포함하는 서비스 파트, 및 프로세스 모니터링, 디스크 모니터링 및 네트워크 모니터링을 포함하는 모니터링 파트를 포함한다.
이와 같은 특징 모델을 이용하여 네트워크 연결 저장 장치(120)는 도 4와 같은 시스템 맵을 생성할 수 있다. 또한, 네트워크 연결 저장 장치(120)는 이와 같이 특징 모델을 이용하여 시스템에서 타겟 프로세스에 해당하는 가상 머신의 결함을 감지하거나, 가상 머신의 결함을 예측하고, 이에 대한 복구를 실행할 수 있다. 예를 들어, 네트워크 연결 저장 장치(120)는 시스템 노드의 특징 모델에 대한 식별 정보와 현재 구동중인 컴포넌트 정보를 비교하여 현재 구동하지 않은 컴포넌트를 확인할 수 있다. 시스템 노드가 서비스 노드인 경우 네트워크 연결 저장 장치(120)는 현재 구동중인 컴포넌트 정보를 이용하여 서비스 노드의 서비스 파트에 포함된 System Administration 및 NFS, 모니터링 파트에 포함된 프로세스 모니터링, 디스크 모니터링 및 네트워크 모니터링 중 현재 구동하지 않은 컴포넌트를 확인할 수 있다. 현재 구동중인 컴포넌트 정보가 System Administration, NFS 및 프로세스 모니터링의 정보를 포함하는 경우 네트워크 연결 저장 장치(120)는 디스크 모니터링 및 네트워크 모니터링을 현재 구동하지 않은 컴포넌트로서 확인할 수 있다.
도 11은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 가상 머신에 관한 복구를 실행하기 위한 방법을 나타내는 흐름도이다. 제시된 실시예에서는 가상 머신을 이용하여 결함을 복구하는 경우에 대해서 설명하도록 한다.
도 1 및 도 11을 참조하면, 네트워크 연결 저장 장치(120)는 타겟 가상 머신의 특징 모델을 확인하고(S1100), 현재 존재하는 가상 머신이 확인된 타겟 가상 머신의 특징 모델과 매칭되는지를 확인한다(S1105). 여기서, 타겟 가상 머신은 결함이 발생되거나, 결함 발생이 예측되는 가상 머신일 수 있다. 구체적으로, 네트워크 연결 저장 장치(120)는 메모리에 기 저장된 특징 모델에 대한 정보를 이용하여 타겟 가상 머신의 특징 모델을 확인하고, 확인된 특징 모델과 현재 존재하는 가상 머신을 비교하여 서로 매칭되는지를 확인할 수 있다. 예를 들어, 타겟 가상 머신이 Dom0인 경우 Dom0의 특징 모델을 확인하고, 확인된 특징 모델과 현재 존재하는 가상 머신이 매칭되는지를 확인할 수 있다.
현재 존재하는 가상 머신이 타겟 가상 머신의 특징 모델과 매칭되면 네트워크 연결 저장 장치(120)는 현재 존재하는 가상 머신 이미지를 복사하고(S1110), 복사된 가상 머신 이미지 및 구성 파일을 이용하여 타겟 가상 머신에 대한 복구를 실행한다(S1115). 예를 들어, 현재 존재하는 가상 머신이 결함이 발생된 Dom0의 특징 모델과 매칭되면 네트워크 연결 저장 장치(120)는 현재 존재하는 가상 머신 이미지를 복사하고, 복사된 가상 머신 이미지와 해당 가상 머신의 구성 파일을 이용하여 Dom0를 복구할 수 있다.
현재 존재하는 가상 머신이 타겟 가상 머신의 특징 모델과 매칭되지 않으면 네트워크 연결 저장 장치(120)는 현재 존재하는 가상 머신을 이용하여 타겟 가상 머신에 대한 복구를 실행한다(S1120). 예를 들어, 네트워크 연결 저장 장치(120)는 현재 존재하는 가상 머신 중 결함이 발생된 Dom0의 특징 모델에 관련된 프로세스를 획득하여 획득된 프로세스를 통해 Dom0를 복구할 수 있다. 다양한 실시예에서 네트워크 연결 저장 장치(120)는 새로운 가상 머신을 생성하기 위한 기본 가상 머신 이미지를 저장하고, 저장된 가상 머신 이미지를 이용하여 새로운 Dom0를 생성할 수도 있다. 예를 들어, 네트워크 연결 저장 장치(120)는 CnS 노드에 대한 이미지를 기본 가상 머신 이미지로서 저장하고, 이를 이용하여 결함이 발생된 Dom0를 복구할 수 있다.
이와 같이 본 발명은 기존에 존재하는 가상 머신 이미지를 이용하여 결함이 발생되거나 결함이 예측되는 가상 머신에 대한 복구를 실행함으로써, 시스템 결함을 최소시간 및 최소 비용으로 결함 발생 초기에 필요한 조치를 취할 수 있어, 결함에 따른 재해를 예방하고, 재해가 발생하더라도 이를 최소화할 수 있다.
도 12는 본 발명의 실시예에 따른 시스템 결함에 대한 결함수를 나타내는 예시도이다.
도 1 및 도 12를 참조하면, 네트워크 연결 저장 장치(120)는 시스템 결함을 발생시키는 원인과 결과와의 관계를 트리 형태로 만든 결함수를 생성할 수 있다. 예를 들어, 결함수는 하기의 <표 1> 내지 <표 10>과 같이 결함 종류, 결함 이름 및 결함 증상을 나타내는 결함 정보를 이용하여 생성될 수 있다.
결합 종류 (Fault Type) 결함 이름 (Fault Name) 결함 증상 (Fault Symptom)
소프트웨어 결함 (Software Fault) 라우팅 파트 결함 (Routing Fault) LVS 미동작 (LVS Not Working) 1. 시스템 프로세스 리스트에서 LVS 프로세스가 보이지 않음
2. LVS 무응답
3. LVS가 잘못된 결과를 리턴
HAProxy 미동작 (HAProxy Not Working) 1. 시스템 프로세스 리스트에서 HAProxy 프로세스가 보이지 않음
2. HAProxy 무응답
3. HAProxy가 잘못된 결과를 리턴
결합 종류 (Fault Type) 결함 이름 (Fault Name) 결함 증상 (Fault Symptom)
소프트웨어 결함 (Software Fault) 서비스 파트 결함 (Service Fault) System Administration 웹 서비스 미실행 (System Administration Web Service Not Running) 1. Admin 웹 서비스 접속 실패
2. 시스템 프로세스 리스트에서 Admin 서비스 프로세스가 보이지 않음
3. Admin 서비스가 잘못된 결과를 리턴
FDT 서비스 데몬 미실행 (FDT Service Daemon Not Running) 1. 시스템 프로세스 리스트에서 fdtd 프로세스가 보이지 않음
SSH 서비스 데몬 미실행 (SSH Service Daemon Not Running) 1. 시스템 프로세스 리스트에서 sshd 프로세스가 보이지 않음
FTP 서비스 데몬 미실행 (FTP Service Daemon Not Running) 1. 시스템 프로세스 리스트에서 ftpd 프로세스가 보이지 않음
TFPT 서비스 데몬 미실행 (TFPT Service Daemon Not Running) 1. 시스템 프로세스 리스트에서 tftpd 프로세스가 보이지 않음
NFS 서비스 데몬 미실행 (NFS Service Daemon Not Running) 1. 시스템 프로세스 리스트에서 nfsd 프로세스가 보이지 않음
SMB/CIFS 서비스 데몬 미실행 (SMB/CIFS Service Daemon Not Running) 1. 시스템 프로세스 리스트에서 smbd 프로세스가 보이지 않음
2. 시스템 프로세스 리스트에서 cifsd 프로세스가 보이지 않음
Rsync 서비스 데몬 미실행 (Rsync Service Daemon Not Running) 1. 시스템 프로세스 리스트에서 rsyncd 프로세스가 보이지 않음
결합 종류 (Fault Type) 결함 이름 (Fault Name) 결함 증상 (Fault Symptom)
소프트웨어 결함 (Software Fault) DFS 파트 결함 (DFS Fault) DFS 서비스 접속 거절 (DFS Service Access Deneid) 1. DFS 장착 실패
2. DFS에서 데이터 읽기 실패
3. DFS로 데이터 쓰기 실패
결합 종류 (Fault Type) 결함 이름 (Fault Name) 결함 증상 (Fault Symptom)
소프트웨어 결함 (Software Fault) RPC 파트 결함 (RPC Fault) RPC 실패 (Remote Procedure Call Fail) 1. 시스템 프로세스 리스트에서 PHP 서버가 보이지 않음
2. RPC 파일이 디렉토리에 존재하지 않음
결합 종류 (Fault Type) 결함 이름 (Fault Name) 결함 증상 (Fault Symptom)
소프트웨어 결함 (Software Fault) 코어 파트 결함 (Core Fault) 확장성 관리 프로세스 미실행 (Scalability Management Process Not Running) 1. 시스템 프로세스 리스트에서 smmgr 프로세스가 보이지 않음
시스템 신뢰성 관리 프로세스 미실행 (System Reliability Management Process Not Running) 1. 시스템 프로세스 리스트에서 srmngr 프로세스가 보이지 않음
데이터 비-거부 관리 프로세스 미실행 (Data non-repudiation Management Process Not Running) 1. 시스템 프로세스 리스트에서 dnrmngr 프로세스가 보이지 않음
패키지 관리 프로세스 미실행 (Package Management Process Not Running) 1. 시스템 프로세스 리스트에서 pmngr 프로세스가 보이지 않음
사용자 관리 프로세스 미실행 (User Management Process Not Running) 1. 시스템 프로세스 리스트에서 umngr 프로세스가 보이지 않음
네트워크 관리 프로세스 미실행 (Network Management Process Not Running) 1. 시스템 프로세스 리스트에서 nmngr 프로세스가 보이지 않음
결합 종류 (Fault Type) 결함 이름 (Fault Name) 결함 증상 (Fault Symptom)
소프트웨어 결함 (Software Fault) 메시지 큐 파트 결함 (Message Queue Fault) RabbitMQ 미실행 (RabbitMQ Not Running) 1. 시스템 프로세스 리스트에서 rabbirmq 프로세스가 보이지 않음
메시지 전송 실패 (Message Send Fail) 1. 메시지를 전송할 수 없음
결합 종류 (Fault Type) 결함 이름 (Fault Name) 결함 증상 (Fault Symptom)
소프트웨어 결함 (Software Fault) 모니터링 파트 결함 (Monitoring Fault) 프로세스 모니터링 프로세스 미실행 (Process Monitoring Process Not Running) 1. 시스템 프로세스 리스트에서 pmonr 프로세스가 보이지 않음
디스크 모니터링 프로세스 미실행 (Disk Monitoring Process Not Running) 1. 시스템 프로세스 리스트에서 dmonr 프로세스가 보이지 않음
네트워크 모니터링 미실행 (Network Monitoring Process Not Running) 1. 시스템 프로세스 리스트에서 nmonr 프로세스가 보이지 않음
DFS 모니터링 미실행 (DFS Monitoring Process Not Running) 1. 시스템 프로세스 리스트에서 dfsmonr 프로세스가 보이지 않음
하이퍼바이저 모니터링 미실행 (Hypervisor Monitoring Process Not Running) 1. 시스템 프로세스 리스트에서 hmonr 프로세스가 보이지 않음
결합 종류 (Fault Type) 결함 이름 (Fault Name) 결함 증상 (Fault Symptom)
소프트웨어 결함 (Software Fault) DomU 결함 (DomU Fault) DomU가 비정상 상태 1. DomU가 xl 리스트에서 보이지 않음
2. xl 리스트에 보이는 DomU가 비정상 상태임
3. DomU 부트 실패
4. DomU 정지 (무응답)
결합 종류 (Fault Type) 결함 이름 (Fault Name) 결함 증상 (Fault Symptom)
하드웨어 결함 (Hardware Fault) 디스크 결함 (Disk Fault) 읽기만 가능 (Read only) 1. 장치가 읽기만 가능하고 쓰기가 불가능
IO 이용 불가 (IO Unavailable) 1. 장치가 장착되었으나 모든 IO 동작이 실패
장치 미존재 (Device Not Exist) 1. 장치가 /dev에서 보이지 않음
캐패시티(capacity)가 임계치에 도달 (Reach Capacity Threshold) 1. 장치 내 데이터가 기 설정된 임계치에 도달함
S.M.A.R.T. 데이터 비정상 (S.M.A.R.T. Data Abnormal) 1. 장치의 S.M.A.R.T. 데이터가 비정상
결합 종류 (Fault Type) 결함 이름 (Fault Name) 결함 증상 (Fault Symptom)
하드웨어 결함 (Hardware Fault) 네트워크 결함 (Network Fault) 네트워크 도착 불가 (Network Unreachable) 1. 다른 노드로 핑(ping)이 도착하지 않음
NIC 장치 미존재 (NIC Device Not Exist) 1. 네트워크 장치가 ifconfig -a에서 보이지 않음
호스트 미해결 (Host Not Resolved) 1. 핑 도메인명 실패
링크 다운 (Link Down) 1. 네트워크 장치 다운
상기의 <표 1> 내지 <표 10>을 참조하면, 시스템 결함은 소프트웨어 결함 및 하드웨어 결함을 포함할 수 있다. 소프트웨어 결함은 라우팅 파트 결함, 서비스 파트 결함, DFS 파트 결함, RPC 파트 결함, 코어 파트 결함 및 메시지 큐 파트 결함, 모니터링 파트 결함 및 DomU 결함을 포함할 수 있다. 하드웨어 결함은 디스크 결함 및 네트워크 결함을 포함할 수 있다.이와 같이 네트워크 연결 저장 장치(120)는 상술한 <표 1> 내지 <표 10>의 결함 정보를 이용하여 도 12와 같이 호스트 오프라인에 관련된 결함수(1200)를 생성할 수 있다.
예를 들어, 호스트 오프라인(1205)은 CnS 노드 오프라인(1210) 및 Dom0 오프라인(1215)이 원인이 되어 발생되는 결함이며, CnS 노드 오프라인(1210)은 CnS 노드 디스크 하드웨어 결함(1220) 및 CnS 노드 네트워크 하드웨어 결함(1225) 중 적어도 하나가 원인이 되어 발생되는 결함일 수 있다.
CnS 노드 디스크 하드웨어 결함(1220)은 CnS 노드 디스크 IO 불가능, CnS 디스크 장치 미존재, CnS 노드 디스크 S.M.A.R.T. 데이터 비정상(1240)이 원인이 되어 발생되고, CnS 노드 네트워크 하드웨어 결함(1225)은 CnS 노드 네트워크 도착 불가, CnS 노드 NIC 장치 미존재 및 CnS 노드 네트워크 링크 다운(1245)이 원인이 되어 발생될 수 있다.
Dom0 오프라인(1215)은 Dom0 디스크 하드웨어 결함(1230) 및 Dom0 네트워크 하드웨어 결함(1235) 중 적어도 하나가 원인이 되어 발생될 수 있다.
Dom0 디스크 하드웨어 결함(1230)은 Dom0 디스크 IO 불가능, Dom0 장치 미존재, Dom0 디스크 S.M.A.R.T. 데이터 비정상(1250)이 원인이 되어 발생되고, Dom0 네트워크 하드웨어 결함(1235)은 Dom0 네트워크 도착 불가, Dom0 NIC 장치 미존재 및 Dom0 네트워크 링크 다운(1255)이 원인이 되어 발생될 수 있다.
이와 같이 생성된 결함수를 이용하여 네트워크 연결 저장 장치(120)는 각 결함의 발생 빈도, 결함율 및/또는 프로세스 실패율 등을 산출할 수 있고, 산출된 결함 발생 빈도, 결함율 및/또는 프로세스 실패율 등에 기반하여 결함 발생을 예측할 수 있다.
이를 통해서 본 발명은 시스템 결함을 감지하고, 감지된 결함을 빠르게 처리함으로써, 시스템의 신뢰성을 향상시킬 수 있다.
또한, 본 발명은 시스템 결함을 미리 예측하고, 미리 예측된 시스템 결함에 대한 복구를 수행함으로써, 시스템에 대한 결함 발생율을 줄일 수 있다.
또한, 본 발명은 시스템 결함을 최소시간 및 최소 비용으로 결함 발생 초기에 필요한 조치를 취할 수 있어, 결함에 따른 재해를 예방하고, 재해가 발생하더라도 이를 최소화할 수 있다.
또한, 본 발명은 확장 가능한 네트워크 연결 저장 시스템에서 결함이 발생되거나 결함 발생이 예측된 소프트웨어 및/또는 하드웨어 컴포넌트의 안정성을 보정하고, 지속적인 결함 모니터링이 가능하다.
또한, 본 발명은 소프트웨어 컴포넌트에 대한 결함 발생 시 가상 머신을 이용하여 복구함으로써, 가능한 한 데이터 손실 없이 시스템 프로세스를 지속할 수 있다.
본 발명의 실시예에 따른 장치 및 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 네트워크 연결 저장 시스템
110: 게이트웨이
120: 네트워크 연결 저장 장치
130: 확장 네트워크 연결 저장 장치
140: 컴퓨팅 장치

Claims (17)

  1. 유선 또는 무선 네트워크와 연결되어 데이터를 분산 저장하도록 구성된 네트워크 연결 저장 장치로서,
    상기 네트워크 연결 저장 장치와 물리적으로 분리된 확장 네트워크 연결 저장 장치와 통신을 하도록 구성된 통신부;
    상기 데이터를 분산 저장하도록 구성된 저장부; 및
    상기 통신부 및 상기 저장부와 동작 가능하게 연결되고, 적어도 하나의 가상 머신 또는 컨테이너를 구축하는 프로세서를 포함하고,
    상기 프로세서는,
    상기 네트워크 연결 저장 장치 및 상기 확장 네트워크 연결 저장 장치의 적어도 하나의 하드웨어 및 소프트웨어 리소스에 대한 리소스 사용 정보를 수집하고,
    상기 수집된 리소스 사용 정보에 기반하여 하드웨어 또는 소프트웨어 컴포넌트에 대한 결함을 감지하고,
    상기 감지된 적어도 하나의 결함을 격리 또는 복구하도록 구성되고,
    상기 리소스 사용 정보는,
    상기 네트워크 연결 저장 장치 및 상기 확장 네트워크 연결 저장 장치를 구성하는 노드의 특징 모델에 대한 식별 정보 및 현재 구동 중인 컴포넌트 정보를 포함하고,
    상기 프로세서는, 상기 노드의 특징 모델에 대한 식별 정보와 상기 현재 구동 중인 컴포넌트 정보를 비교하여 현재 구동하지 않은 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나를 확인하고, 상기 확인된 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나를 상기 결함이 발생된 컴포넌트로 판단하고, 상기 결함이 발생된 컴포넌트가 소프트웨어 컴포넌트인 경우 현재 존재하는 가상머신을 재사용하여 상기 결함이 발생된 소프트웨어 컴포넌트를 복구하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치.
  2. 제1항에 있어서, 상기 리소스 사용 정보는,
    상기 네트워크 연결 저장 장치 및 상기 확장 네트워크 연결 저장 장치에 대한 이름, NIC(Network Interface Controller) 정보, 디스크 정보, 현재 상태 정보 및 현재 기록의 버전 정보 중 적어도 일부를 포함하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치.
  3. 삭제
  4. 제1항에 있어서, 상기 프로세서는,
    상기 하드웨어 컴포넌트에 대한 결함이 감지되면 상기 결함이 감지된 하드웨어 컴포넌트의 기능을 수행하는 다른 하드웨어 컴포넌트가 존재하는지를 판단하고,
    상기 다른 하드웨어 컴포넌트가 존재하면 상기 다른 하드웨어 컴포넌트가 상기 결함이 감지된 하드웨어 컴포넌트의 기능을 수행하도록 제어하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치.
  5. 제1항에 있어서, 상기 프로세서는,
    상기 소프트웨어 컴포넌트에 대한 결함이 감지되면 상기 컨테이너를 이용하여 상기 결함이 감지된 소프트웨어 컴포넌트에 대한 복구를 수행하도록 구성된, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치.
  6. 제5항에 있어서, 상기 프로세서는, 상기 현재 존재하는 가상 머신을 재사용하여 상기 결함이 감지된 소프트웨어 컴포넌트에 대한 복구를 수행하는 경우, 상기 결함이 감지된 소프트웨어 컴포넌트에 해당하는 타겟 가상 머신의 특징 모델을 확인하고,
    상기 현재 존재하는 가상 머신이 상기 타겟 가상 머신의 특징 모델과 매칭되는지를 확인하고,
    상기 현재 존재하는 가상 머신이 상기 타겟 가상 머신의 특징 모델과 매칭되면 상기 현재 존재하는 가상 머신의 가상 머신 이미지를 복사하고,
    상기 복사된 가상 머신 이미지 및 상기 현재 존재하는 가상 머신의 구성 파일을 이용하여 상기 소프트웨어 컴포넌트를 복구하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치.
  7. 제6항에 있어서, 상기 프로세서는,
    상기 현재 존재하는 가상 머신이 상기 타겟 가상 머신의 특징 모델과 매칭되지 않으면 새로운 가상 머신을 생성하기 위해 기 저장된 기본 가상 머신 이미지를 이용하여 상기 소프트웨어 컴포넌트에 대응하는 새로운 가상 머신을 생성하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치.
  8. 제1항에 있어서, 상기 프로세서는,
    상기 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나의 결함이 발생되는 원인 및 결과와의 관계를 트리 형태로 나타내는 결함수(Fault tree)를 생성하고,
    상기 생성된 결함수를 이용하여 상기 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나의 결함이 발생할 확률을 산출하고,
    상기 산출된 확률에 기반하여 결함 발생이 예측되는 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나의 결함을 격리 또는 복구하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치.
  9. 제8항에 있어서, 상기 프로세서는,
    상기 산출된 확률이 기 설정된 임계 확률 이상이면 상기 결함 발생이 예측된다고 판단하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치.
  10. 제8항에 있어서, 상기 프로세서는,
    상기 리소스 사용 정보 및 상기 결함수를 이용하여 상기 결함 발생이 예측되는 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나의 프로세스 실패율을 산출하고,
    상기 산출된 프로세스 실패율이 기 설정된 임계 실패율 이상이면 상기 결함 발생이 예측되는 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나를 격리 또는 복구하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치.
  11. 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치의 프로세서에 의해서 수행되는 결함 처리를 위한 확장 가능한 네트워크 연결 저장 방법에 있어서,
    유선 또는 무선 네트워크와 연결되어 데이터를 분산 저장하도록 구성된 네트워크 연결 저장 장치에 적어도 하나의 가상 머신 또는 컨테이너를 구축하는 단계;
    상기 네트워크 연결 저장 장치 및 상기 확장 가능한 네트워크 연결 저장 장치의 적어도 하나의 하드웨어 및 소프트웨어 리소스에 대한 리소스 사용 정보를 수집하는 단계;
    상기 수집된 리소스 사용 정보에 기반하여 하드웨어 및 소프트웨어 컴포넌트 중 적어도 하나에 대한 결함을 감지하는 단계; 및
    상기 감지된 적어도 하나의 결함을 격리 또는 복구하는 단계를 포함하고,
    상기 리소스 사용 정보는,
    상기 네트워크 연결 저장 장치 및 상기 확장 가능한 네트워크 연결 저장 장치를 구성하는 노드의 특징 모델에 대한 식별 정보 및 현재 구동 중인 컴포넌트 정보를 포함하고,
    상기 하드웨어 및 소프트웨어 컴포넌트 중 적어도 하나에 대한 결함을 감지하는 단계는,
    상기 노드의 특징 모델에 대한 식별 정보와 상기 현재 구동 중인 컴포넌트 정보를 비교하여 현재 구동하지 않은 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나를 확인하는 단계; 및
    상기 확인된 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나를 상기 결함이 발생된 컴포넌트로 판단하는 단계를 포함하고,
    상기 감지된 적어도 하나의 결함을 격리 또는 복구하는 단계는,
    상기 결함이 발생된 컴포넌트가 소프트웨어 컴포넌트인 경우 현재 존재하는 가상머신을 재사용하여 상기 결함이 발생된 소프트웨어 컴포넌트를 복구하는 단계인, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 방법.
  12. 삭제
  13. 제11항에 있어서, 상기 감지된 적어도 하나의 결함을 격리 또는 복구하는 단계는,
    상기 하드웨어 컴포넌트에 대한 결함이 감지되면 상기 결함이 감지된 하드웨어 컴포넌트의 기능을 수행하는 다른 하드웨어 컴포넌트가 존재하는지를 판단하는 단계; 및
    상기 다른 하드웨어 컴포넌트가 존재하면 상기 다른 하드웨어 컴포넌트가 상기 결함이 감지된 하드웨어 컴포넌트의 기능을 수행하도록 제어하는 단계를 포함하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 방법.
  14. 제11항에 있어서, 상기 감지된 적어도 하나의 결함을 격리 또는 복구하는 단계는,
    상기 소프트웨어 컴포넌트에 대한 결함이 감지되면 상기 컨테이너를 이용하여 상기 결함이 감지된 소프트웨어 컴포넌트를 복구하는 단계인, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 방법.
  15. 제14항에 있어서, 상기 감지된 적어도 하나의 결함을 격리 또는 복구하는 단계는,
    상기 현재 존재하는 가상 머신을 재사용하여 상기 결함이 감지된 소프트웨어 컴포넌트에 대한 복구를 수행하는 경우, 상기 결함이 감지된 소프트웨어 컴포넌트에 해당하는 타겟 가상 머신의 특징 모델을 확인하는 단계;
    상기 현재 존재하는 가상 머신이 상기 타겟 가상 머신의 특징 모델과 매칭되는지를 확인하는 단계;
    상기 현재 존재하는 가상 머신이 상기 타겟 가상 머신의 특징 모델과 매칭되면 상기 현재 존재하는 가상 머신의 가상 머신 이미지를 복사하는 단계; 및
    상기 복사된 가상 머신 이미지 및 상기 현재 존재하는 가상 머신의 구성 파일을 이용하여 상기 소프트웨어 컴포넌트를 복구하는 단계를 포함하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 방법.
  16. 제15항에 있어서, 상기 감지된 적어도 하나의 결함을 격리 또는 복구하는 단계는,
    상기 현재 존재하는 가상 머신이 상기 타겟 가상 머신의 특징 모델과 매칭되지 않으면 새로운 가상 머신을 생성하기 위해 기 저장된 기본 가상 머신 이미지를 이용하여 상기 소프트웨어 컴포넌트에 대응하는 새로운 가상 머신을 생성하는 단계를 포함하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 방법.
  17. 제11항에 있어서,
    상기 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나의 결함이 발생되는 원인 및 결과와의 관계를 트리 형태로 나타내는 결함수(Fault tree)를 생성하는 단계;
    상기 생성된 결함수를 이용하여 상기 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나의 결함이 발생할 확률을 산출하는 단계; 및
    상기 산출된 확률에 기반하여 결함 발생이 예측되는 소프트웨어 및 하드웨어 컴포넌트 중 적어도 하나의 결함을 격리 또는 복구하는 단계를 포함하는, 결함 처리를 위한 확장 가능한 네트워크 연결 저장 방법.
KR1020190078732A 2019-07-01 2019-07-01 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법 KR102153622B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190078732A KR102153622B1 (ko) 2019-07-01 2019-07-01 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190078732A KR102153622B1 (ko) 2019-07-01 2019-07-01 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102153622B1 true KR102153622B1 (ko) 2020-09-09

Family

ID=72451521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190078732A KR102153622B1 (ko) 2019-07-01 2019-07-01 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102153622B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080096547A (ko) * 2006-03-08 2008-10-30 항조우 에이치3씨 테크놀로지스 코., 엘티디. 가상 네트워크 저장 시스템, 네트워크 저장 장치 및 가상 방법
KR20170105946A (ko) * 2016-03-11 2017-09-20 건국대학교 산학협력단 네트워크 연결 저장 장치, 이를 포함하는 네트워크 연결 저장 시스템, 네트워크 연결 저장 장치의 저장 노드 확장 검출 방법 및 네트워크 연결 저장 장치의 저장 매체 확장 검출 방법
KR101943848B1 (ko) * 2018-02-07 2019-01-31 주식회사 한성정보시스템 Nas 통합관리 서버

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080096547A (ko) * 2006-03-08 2008-10-30 항조우 에이치3씨 테크놀로지스 코., 엘티디. 가상 네트워크 저장 시스템, 네트워크 저장 장치 및 가상 방법
KR20170105946A (ko) * 2016-03-11 2017-09-20 건국대학교 산학협력단 네트워크 연결 저장 장치, 이를 포함하는 네트워크 연결 저장 시스템, 네트워크 연결 저장 장치의 저장 노드 확장 검출 방법 및 네트워크 연결 저장 장치의 저장 매체 확장 검출 방법
KR101943848B1 (ko) * 2018-02-07 2019-01-31 주식회사 한성정보시스템 Nas 통합관리 서버

Similar Documents

Publication Publication Date Title
US11741124B2 (en) Data ingestion by distributed-computing systems
US8615676B2 (en) Providing first field data capture in a virtual input/output server (VIOS) cluster environment with cluster-aware vioses
US9031917B2 (en) Efficient backup and restore of virtual input/output server (VIOS) cluster
CN106528327B (zh) 一种数据处理方法以及备份服务器
US8910172B2 (en) Application resource switchover systems and methods
US8533164B2 (en) Method and tool to overcome VIOS configuration validation and restoration failure due to DRC name mismatch
US8726274B2 (en) Registration and initialization of cluster-aware virtual input/output server nodes
US8839031B2 (en) Data consistency between virtual machines
CN110603524A (zh) 用于编排的工作负载的依赖性分析的方法和***
US9996425B2 (en) System and method for agentless backup of virtual machines
US11706080B2 (en) Providing dynamic serviceability for software-defined data centers
US9223606B1 (en) Automatically configuring and maintaining cluster level high availability of a virtual machine running an application according to an application level specified service level agreement
WO2014076838A1 (ja) 仮想マシン同期システム
JP6623692B2 (ja) ログ情報採取システム、ログ情報採取プログラムおよびログ情報採取方法
US20120151095A1 (en) Enforcing logical unit (lu) persistent reservations upon a shared virtual storage device
US11604806B2 (en) System and method for highly available database service
CN105740049B (zh) 一种控制方法及装置
US8661089B2 (en) VIOS cluster alert framework
CN112035062B (zh) 云计算的本地存储的迁移方法、计算机设备及存储介质
KR102153622B1 (ko) 결함 처리를 위한 확장 가능한 네트워크 연결 저장 장치 및 방법
WO2017054643A1 (zh) 一种数据抢救方法及文件服务器
US20140380089A1 (en) Method and apparatus for recovering failed disk in virtual machine
US11405277B2 (en) Information processing device, information processing system, and network communication confirmation method
CN114661420A (zh) 基于Kubernetes容器平台的应用保护方法、装置及***
US9535806B1 (en) User-defined storage system failure detection and failover management

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant