KR102024934B1 - 분산 파일 시스템 및 이의 파일 연산 처리 방법 - Google Patents

분산 파일 시스템 및 이의 파일 연산 처리 방법 Download PDF

Info

Publication number
KR102024934B1
KR102024934B1 KR1020150189376A KR20150189376A KR102024934B1 KR 102024934 B1 KR102024934 B1 KR 102024934B1 KR 1020150189376 A KR1020150189376 A KR 1020150189376A KR 20150189376 A KR20150189376 A KR 20150189376A KR 102024934 B1 KR102024934 B1 KR 102024934B1
Authority
KR
South Korea
Prior art keywords
server
metadata
address
client
file
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020150189376A
Other languages
English (en)
Other versions
KR20170079141A (ko
Inventor
박정숙
김영창
김영균
김홍연
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020150189376A priority Critical patent/KR102024934B1/ko
Publication of KR20170079141A publication Critical patent/KR20170079141A/ko
Application granted granted Critical
Publication of KR102024934B1 publication Critical patent/KR102024934B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • H04L61/2007
    • H04L67/42

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따른 토러스 망 기반의 분산 파일 시스템은 파일의 메타데이터를 저장하는 복수의 메타데이터 서버, 데이터를 분할하여 분산 저장하는 복수의 데이터 서버 및 상기 메타데이터 서버 및 데이터 서버를 관리하는 하나 이상의 관리 서버를 포함하되, 상기 복수의 메타데이터 서버 및 복수의 데이터 서버는 각각 복수의 노드로 구성된 제 1 내지 제 n 평면 상에 배치되고, 상기 제 1 내지 제 n 평면에 포함된 복수의 노드에는 평면 주소, 행 주소, 열 주소, 소스 포트, 목적지 포트 및 상대 위치 정보를 포함하는 복수의 IP 주소가 할당된다.

Description

분산 파일 시스템 및 이의 파일 연산 처리 방법{DISTRIBUTED FILE SYSTEM AND METHOD FOR PROCESSING FILE OPERATION THE SAME}
본 발명은 분산 파일 시스템 및 이의 파일 연산 처리 방법에 관한 것이다.
최근 스마트폰, 태블릿, 웨어러블 기기 등이 널리 보급됨에 따라, 고품질, 비정형 데이터가 지속적으로 증가하여 클라우드 스토리지 용량 증가 문제에 직면하게 되었다. 그리고 사물들이 서로 연결되어 가상화되는 사물 인터넷 통신에서 생산되는 많은 데이터량 또한 클라우드 스토리지에 저장되어야 함으로써 비용 효율적인 대용량 클라우드 스토리지 기술 개발의 필요성이 강하게 대두되고 있다.
한편, 2020년경 데이터 생산 규모가 약 44,000EB로 예측되는 시점에서 엑사바이트급 클라우드 스토리지의 개발은 반드시 해결해야 할 이슈 중의 하나다. 이미 페타바이트급 규모의 클라우드 스토리지는 구축 사례도 드물지 않게 있는 반면에, 엑사바이트급 규모의 클라우드 스토리지 구축 기술은 종래의 기술로는 풀기 어려운 난제일 수 있다.
엑사바이트급 규모를 제공하기 위해서는 필요로 하는 스토리지 서버의 수도 상당히 많을 뿐만 아니라, 기존에 네트워크 구축을 위해 많이 사용하던 스위치를 이용한 팻-트리(fat-tree) 네트워크 방식은 비용 및 고가용성을 지원하기 위한 구성 복잡성 측면에서 한계가 있다.
이러한 한계를 극복하기 위해 서버와 서버를 스위치 없이 직접 연결하는 토러스(Torus) 네트워크를 활용할 수 있으며, 일본의 K-Computer나 Titan/Cray 등의 계산용 슈퍼 컴퓨터는 토러스 네트워크 구조를 사용하고 있으나, 스토리지 노드들에 대한 구체적인 구축 예는 아직 존재하지 않는 실정이다.
이와 관련하여, 한국공개특허공보 제10-2011-0142500호(발명의 명칭: 온칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법)는 토큰을 이용한 교착상태 복구(Deadlock Recovery with Tokens, DRT)를 이용하여 2D 토러스 토폴로지가 제공하는 풍부한 와이어(wire)를 활용하면서도 추가적인 버퍼(가상 채널)의 크기를 최소화할 수 있는 내용을 개시하고 있다.
본 발명의 실시예는 스토리지 서버들은 스위치 없이 서로 직접 연결하여 토러스 토폴로지를 구성하고, 클라이언트들은 스위치에 연결하되, 평면, 행, 열로 구성되는 좌표값을 이용하여 각 노드의 토러스 망 내 위치 정보를 표현함으로써 엑사바이트급 분산 파일 시스템을 제공할 수 있는 분산 파일 시스템 및 그 운영 방법을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 토러스 망 기반의 분산 파일 시스템은 파일의 메타데이터를 저장하는 복수의 메타데이터 서버, 데이터를 분할하여 분산 저장하는 복수의 데이터 서버 및 상기 메타데이터 서버 및 데이터 서버를 관리하는 하나 이상의 관리 서버를 포함한다. 이때, 상기 복수의 메타데이터 서버 및 복수의 데이터 서버는 각각 복수의 노드로 구성된 제 1 내지 제 n 평면 상에 배치되고, 상기 제 1 내지 제 n 평면에 포함된 복수의 노드에는 평면 주소, 행 주소, 열 주소, 소스 포트, 목적지 포트 및 상대 위치 정보를 포함하는 복수의 IP 주소가 할당된다.
또한, 본 발명의 제 2 측면에 따른 복수의 노드로 구성된 제 1 내지 제 n 평면 상에 배치된 복수의 메타데이터 서버, 복수의 데이터 서버 및 하나 이상의 관리 서버를 포함하는 분산 파일 시스템의 파일 연산 처리 방법은 상기 관리 서버가 상기 클라이언트로부터 접속하고자 하는 볼륨 정보가 포함된 마운트 요청을 수신하는 단계; 상기 관리 서버가 상기 볼륨 정보에 포함된 루트 디렉토리 정보에 대응하는 메타데이터 서버를 검색하는 단계 및 상기 관리 서버가 상기 검색된 메타데이터 서버의 IP 주소를 상기 클라이언트로 전송하는 단계를 포함한다. 이때, 상기 제 1 내지 제 n 평면에 포함된 복수의 노드에는 평면 주소, 행 주소, 열 주소, 소스 포트, 목적지 포트 및 상대 위치 정보를 포함하는 복수의 IP 주소가 할당되고, 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버는 상기 제 2 내지 제 n 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버와 각각 상기 스위치의 연결없이 상호 직접 연결되며, 상기 관리 서버는 상기 클라이언트로 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버의 IP 주소를 함께 전송하고, 상기 클라이언트는 상기 검색된 메타데이터 서버의 IP 주소 및 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버의 IP 주소를 로컬 스토리지에 언마운트 때까지 저장한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 토러스 망 기반으로 연결된 메타데이터 또는 데이터 서버의 위치 정보를 좌표값으로 표현함으로써, 최단 경로 선택을 통한 가장 짧은 시간의 정보 송수신 성능을 확보할 수 있다.
또한, 파일 시스템의 토폴로지 모니터링을 보다 효율적으로 할 수 있게 된다.
또한, 스위치를 사용한 계층적인 fat-tree 방식의 종래 기술로 풀기 힘든 엑사바이트급의 용량을 지원하는 문제를 해결할 수 있다.
또한, 스토리지 서버들은 스위치 없이 서로 직접 연결하여 토러스 토폴로지를 구성하고, 클라이언트들은 스위치에 연결함으로써 시스템의 복잡도를 최소화시킬 수 있다.
또한, 기존에 사용되던 분산 파일 시스템의 많은 수정 없이 엑사바이트급 스토리지 제공이 가능하다.
도 1은 본 발명의 일 실시예에 따른 분산 파일 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 분산 파일 시스템의 서버의 위치 정보 표기법 및 3차원 토러스 구조에서의 각 노드의 위치 정보의 일 예시를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 분산 파일 시스템에서의 각 노드가 가지는 포트의 구성의 일 예시를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 분산 파일 시스템에서 노드의 포트별 IP 주소 구성 방법의 일 예시를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 분산 파일 시스템에서 좌표값과 관련하여 관리 서버, 메타데이터 서버 및 클라이언트에서 관리되어야 할 정보 구조의 일 예시를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 분산 파일 시스템의 파일 연산 처리 방법 중 마운트 단계의 순서도이다.
도 7은 본 발명의 일 실시예에 따른 분산 파일 시스템의 파일 연산 처리 방법 중파일 오픈 단계의 순서도이다.
도 8은 본 발명의 일 실시예에 따른 분산 파일 시스템의 파일 연산 처리 방법 중 파일 읽기 단계의 순서도이다.
도 9는 본 발명의 일 실시예에 따른 분산 파일 시스템의 파일 연산 처리 방법 중 파일 쓰기 단계의 순서도이다.
도 10은 본 발명의 일 실시예에 따른 분산 파일 시스템의 파일 연산 처리 방법 중 중계 서버의 장애 발생 및 처리 단계의 순서도이다.
도 11은 본 발명의 일 실시예에 따른 분산 파일 시스템의 파일 연산 처리 방법 중 메타데이터 서버 또는 데이터 서버의 장애 발생 및 처리 단계의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하에서는 도 1 내지 도 5를 참조하여 본 발명의 일 실시예에 따른 분산 파일 시스템(100)에 대하여 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 분산 파일 시스템(100)의 블록도이다. 도 2는 본 발명의 일 실시예에 따른 분산 파일 시스템(100)의 서버의 위치 정보 표기법 및 3차원 토러스 구조에서의 각 노드의 위치 정보의 일 예시를 도시한 도면이다. 도 3은 본 발명의 일 실시예에 따른 분산 파일 시스템(100)에서의 각 노드가 가지는 포트의 구성의 일 예시를 도시한 도면이다.
본 발명의 일 실시예에 따른 토러스 망 기반의 분산 파일 시스템(100)은 하나 이상의 관리 서버(110), 복수의 메타데이터 서버(120) 및 복수의 데이터 서버(130) 및 복수의 클라이언트(140)를 포함한다.
복수의 메타데이터 서버(120)는 파일의 메타데이터를 저장한다. 이때, 복수의 메타데이터 서버(120)는 모두 액티브 상태로 동작하면서, 고가용성 제공을 위해 복수 개의 메타데이터 서버(120), 예를 들어 두 개 또는 세 개의 메타데이터 서버(110)가 그룹화되어 그들 간에는 액티브-스탠바이(active-standby) 모드로 운영된다.
이러한, 메타데이터 서버(120)는 하나의 메타데이터 서버(120)가 미리 설정된 개수로 그룹화된 메타데이터 서버(120)의 그룹을 관리할 수 있다. 이 경우 하나의 메타데이터 서버(120)는 복수 개의 그룹 중 어느 한 그룹에 대해서는 액티브 모드로 동작할 수 있으며, 다른 한 그룹에 대해서는 스탠바이 모드로 동작할 수도 있다.
복수의 데이터 서버(130)는 데이터를 분할하여 분산 저장한다. 즉, 데이터 서버(130)는 실제 파일 또는 데이터를 일정 크기의 청크로 나누어 분산 저장한다.
관리 서버(110)는 복수의 메타데이터 서버(120) 및 복수의 데이터 서버(130)를 관리한다. 관리 서버(110)는 메타데이터 서버(120), 데이터 서버(130)뿐만 아니라 복수의 클라이언트(140)도 함께 모니터링하고, 메타데이터 서버(120)의 장애 발생시 회복 절차를 수행한다. 이러한 관리 서버(130)는 토러스 네트워크 내부에 존재하거나, 도 1에 도시된 바와 같이 토러스 네트워크 밖에 존재하면서 스위치(150)에 직접 연결되는 형태로 독립적으로 배치될 수 있다. 이때, 관리 서버(130)가 토러스 네트워크 내부에 존재하는 경우에는 제 1 평면에 존재하여, 스위치(150)를 통해 클라이언트(140)와 통신할 수 있다.
한편, 관리 서버(110)는 하나 이상이 구비될 수 있으나, 본 발명의 일 실시예에서는 두 개의 관리 서버(110)를 구비하는 것이 바람직하다. 또한, 관리 서버(110) 역시 고가용성을 제공하기 위하여 액티브-스탠바이(active-standby) 모드로 운영된다.
하나 이상의 클라이언트(140)는 분산 파일 시스템(100)에 접근하여 파일 오퍼레이션을 수행한다. 본 발명의 일 실시예에서의 클라이언트(140)는 라우팅 기능이 활성화되지 않은 경우 스위치(150)를 통해 메타데이터 서버(120) 또는 데이터 서버(130)와 좌표값을 이용한 최단 경로를 통해 각 정보의 송수신이 가능하다.
한편, 복수의 메타데이터 서버(120), 복수의 데이터 서버(130), 관리 서버(110) 및 클라이언트(140)는 각각 통신 모듈(미도시), 메모리(미도시) 및 프로세서(미도시)로 구성될 수 있다.
이때, 통신 모듈은 유선 통신 모듈 및 무선 통신 모듈을 모두 포함할 수 있다. 유선 통신 모듈은 전력선 통신 장치, 전화선 통신 장치, 케이블 홈(MoCA), 이더넷(Ethernet), IEEE1294, 통합 유선 홈 네트워크 및 RS-485 제어 장치로 구현될 수 있다. 또한, 무선 통신 모듈은 WLAN(wireless LAN), Bluetooth, HDR WPAN, UWB, ZigBee, Impulse Radio, 60GHz WPAN, Binary-CDMA, 무선 USB 기술 및 무선 HDMI 기술 등으로 구현될 수 있다.
메모리에는 객체 검출 프로그램이 저장된다. 여기에서, 메모리(120)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 휘발성 저장장치를 통칭하는 것이다.
예를 들어, 메모리는 콤팩트 플래시(compact flash; CF) 카드, SD(secure digital) 카드, 메모리 스틱(memory stick), 솔리드 스테이트 드라이브(solid-state drive; SSD) 및 마이크로(micro) SD 카드 등과 같은 낸드 플래시 메모리(NAND flash memory), 하드 디스크 드라이브(hard disk drive; HDD) 등과 같은 마그네틱 컴퓨터 기억 장치 및 CD-ROM, DVD-ROM 등과 같은 광학 디스크 드라이브(optical disc drive) 등을 포함할 수 있다.
또한, 메모리에 저장된 프로그램은 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 형태로 구현될 수 있으며, 소정의 역할들을 수행할 수 있다.
그리고 관리 서버(110), 복수의 메타데이터 서버(120), 복수의 데이터 서버(130) 및 클라이언트(140)는 네트워크(network)를 통해 연결될 수 있다. 네트워크는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(network)의 일 예에는 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크, WiFi 등이 포함되나 이에 한정되지는 않는다.
한편, 본 발명의 일 실시예에 따른 분산 파일 시스템(100)은 엑사바이트 규모의 스토리지를 제공하기 위하여, 많은 서버들이 사용되는바 기존의 fat-tree 구조로 연결된 네트워크를 이용할 경우 네트워크 연결망 구축 비용이 증가하게 되고 구성의 복잡도도 증가하는 문제가 있다.
따라서, 본 발명의 일 실시예의 경우 메타데이터 서버(120)들과 데이터 서버(130)들은 스위치(150) 없이 3차원 토러스 토폴로지로 구성되고, 각 서버에서의 라우팅 기능에 의해 서로 연결되는 구조를 가진다. 또한, 클라이언트(140)들은 스위치(150)에 연결되어 분산 파일 시스템(100)에 접근하는 구조를 가진다.
또한, 토러스 구조에서는 서버의 위치에 따라 홉 수 등에 의해 액세스 성능에 차이가 날 수 있다. 이에 따라, 본 발명의 일 실시예의 경우 평면의 개념을 도입하고 워크로드의 요구 특성(성능, 용량, 액세스 속도 등)에 따라 다른 평면에 배치 또는 재배치함으로써 스토리지 성능을 최적화시킬 수 있다.
이를 위해, 본 발명의 일 실시예에 따른 분산 파일 시스템(100)에서 복수의 메타데이터 서버(120) 및 복수의 데이터 서버(130)는 각각 복수의 노드로 구성된 제 1 내지 제 n 평면 상에 배치된다.
이때, 제 1 평면에 포함된 각 노드들은 복수의 클라이언트(140)와 스위치(150)를 통해 fat-tree 형태로 연결된다. 제 1 평면에 포함된 복수의 메타데이터 서버(120) 및 복수의 데이터 서버(130)들은 외부와의 인터페이스를 위하여, 스위치(150)를 통해 클라이언트(140)와 연결된다.
그리고 제 1 평면에 포함된 복수의 메타데이터 서버(120) 및 복수의 데이터 서버(130)는 제 2 내지 제 n 평면에 포함된 복수의 메타데이터 서버(120) 및 복수의 데이터 서버(130)와 각각 스위치(150)의 연결없이 토러스 망을 기반으로 상호 직접 연결될 수 있다. 즉, 제 1 평면에 포함된 노드들은 제 2 내지 제 n 평면에 포함된 노드들과 스위치(150) 없이 서로 직접적인 네트워크 케이블 연결을 통하여 토러스 네트워크 형태로 구성되어 상호 연결될 수 있다.
이와 같은 구조를 가지는 본 발명의 일 실시예의 경우, 제 1 내지 제 n 평면에 포함된 각 노드들은 2차원 토러스 구조에서는 4개의 IP 주소, 3차원 토러스 구조에서는 6개의 IP 주소를 가질 수 있다.
이때, IP 주소는 평면 주소, 행 주소, 열 주소, 소스 포트, 목적지 포트 및 상대 위치 정보를 포함하도록 구성될 수 있다.
도 2의 (a)를 참조하면, 토러스로 연결되어 있는 서버들은 평면(p), 행(x), 열(y) 값의 조합으로 위치 정보가 표현된다. 즉, (p, x, y) 좌표값에 의해 각 노드의 정보를 표현할 수 있다. 이에 따라 4×4×4로 구성되는 3차원 토러스 구조의 좌표값은 도 2의 (b)와 같이 표현될 수 있다.
한편, 본 발명의 일 실시예에 따른 분산 파일 시스템(100)이 3차원 토러스 구조인 경우, 도 3의 (a)에 도시된 바와 같이 각 서버 별로 총 6개의 IP 주소(ip1, ip2, ip3, ip4, ip5, ip6)를 사용할 수 있다. 이때, 스위치(150)를 통해 클라이언트(140)와 연결되는 제 1 평면에 포함된 복수의 메타데이터 서버(120) 및 복수의 데이터 서버(130)는 도 3의 (b)에 도시된 바와 같이, IP 주소(ip1, ip2, ip3, ip4, ip5, ip6)에 클라이언트(140)와 연결되는 스위치(150)의 주소(pip)를 더 포함할 수 있다.
이하에서는 도 4 및 도 5를 참조하여 본 발명의 일 실시예에 따른 분산 파일 시스템(100)에서의 IP 주소의 구성 방법 및 좌표값과 관련하여 관리되어야 할 정보 구조에 대하여 설명하도록 한다.
도 4는 본 발명의 일 실시예에 따른 분산 파일 시스템(100)에서 노드의 포트별 IP 주소 구성 방법의 일 예시를 도시한 도면이다.
본 발명의 일 실시예에 따른 분산 파일 시스템(100)에서 제 1 내지 제 n 평면에 포함된 복수의 노드에 할당된 IP 주소는 첫번째 바이트에는 평면 주소(410), 두번째 바이트에는 행 주소(420), 세번째 바이트에는 열 주소(430), 그리고 나머지 바이트에는 소스 포트(440), 목적지 포트(450) 및 1 또는 2로 표현되는 상대 위치 정보(460)를 포함한다.
이와 같은 IP 주소는 토러스 구조에서 해당 노드의 상대적인 위치를 쉽게 이해할 수 있도록 표현되는 것이 바람직하다. 그리고 IP 주소의 표현 규칙은 평면, 행, 열 값 중 작은 것의 번호를 따르도록 규정할 수 있다.
한편, IP 주소 자체만으로도 해당 서버의 상대적인 위치를 알고자 하는 경우, 마지막 바이트에 있는 소스 포트(440), 목적지 포트(450) 및 1 또는 2로 표현되는 상대 위치 정보(460) 분석을 통하여 확인할 수 있다.
구체적으로 제 1 내지 제 n 평면에 포함된 복수의 노드에 할당된 IP 주소에 포함된 상대 위치 정보(460)의 값이 1인 경우, 평면 주소(410), 행 주소(420) 및 열 주소(430)가 자신의 위치값에 맞는 좌표값임을 알 수 있다.
이와 반대로, 상대 위치 정보(460)의 값이 2인 경우, 평면 주소(410), 행 주소(420) 및 열 주소(430)가 자신의 위치값이 아닌 좌표값임을 알 수 있다. 이 경우에는 소스 포트(440) 및 목적지 포트(450) 값을 분석함으로써, 평면 주소(410), 행 주소(420) 및 열 주소(430) 중 어느 것이 바뀌어야 하는지를 확인할 수 있다.
이와 같은 IP 주소의 구조는 토폴로지의 상태 등을 표현하는데 유용하게 사용될 수 있다.
도 5는 본 발명의 일 실시예에 따른 분산 파일 시스템(100)에서 좌표값과 관련하여 관리 서버(110), 메타데이터 서버(120) 및 클라이언트에서 관리되어야 할 정보 구조의 일 예시를 도시한 도면이다.
먼저, 도 5의 (a)는 관리 서버(110)에 저장되는 제 1 내지 제 n 평면에 포함된 복수의 노드에 대응하는 서버 관리 테이블을 도시한 것이다. 서버 관리 테이블은 각 서버의 식별자 역할을 하는 호스트 이름(510), 평면 주소, 행 주소, 열 주소(520) 및 복수의 IP 주소(530)를 포함한다.
이때, 제 1 평면에 배치된 복수의 메타데이터 서버(120) 및 데이터 서버(130)의 경우 클라이언트(140)와 연결되는 스위치(150)의 주소(540)를 더 포함한다.
다음으로, 도 5의 (b)는 메타데이터 서버(120)에 저장되어 있는 파일별 파일 레이아웃을 도시한 것이다. 파일 레이아웃은 inode 정보(550) 및 하나 이상의 청크별 식별 정보(560a,…,560n)를 포함한다. 이때, inode 정보 다음으로 청크별 식별 정보(560a,…,560n)가 연속적으로 구성될 수 있다.
한편, 청크별 식별 정보(560a,…,560n)는 IP 주소 정보를 포함할 수 있다. 이와 같은 IP 주소는 실시간, 임의적으로 할당되는 것이 아니고, 최적의 청크 접근 경로로 선택된 IP 주소가 할당될 수 있다. 이때, 최적의 청크 접근 경로는 청크로 접근하기 위한 최단 경로일 수 있다.
그리고 이와 같이 할당된 IP 주소는 청크 접근 경로에 장애가 발생한 경우에 한해 변경될 수 있다.
다음으로, 도 5의 (c)는 클라이언트(140)에 저장되어 있는 중계 서버 정보 테이블(570) 및 메타데이터 서버의 IP 주소 정보(580)를 도시한 것이다.
클라이언트(140)는 제 1 평면에 포함된 각 노드에 대응하는 중계 서버 정보 테이블(570)을 포함하고 있다. 즉, 중계 서버 정보 테이블(570)에는 제 1 평면에 있는 서버들의 정보가 모두 저장된다. 제 1 평면에 있는 서버들은 클라이언트(140)와 스토리지 서버 사이의 통신을 위한 중계 역할을 수행한다.
클라이언트(140)는 중계 서버 정보 테이블에 포함된 서버 중 오퍼레이션을 요청할 메타데이터 서버(120) 또는 데이터 서버(130)의 좌표값에 기초하여 최단 거리에 위치한 어느 하나의 서버를 중계 서버로 선택할 수 있다. 즉, 클라이언트(140)는 어떤 스토리지 서버로 접근하기 위해, 해당 스토리지 서버의 좌표값 정보에 기초하여 가장 최적의 경로가 될 수 있는 제 1 평면의 서버를 중계 서버로 선택할 수 있다.
또한, 클라이언트(140)는 마운트한 볼륨의 루트 디렉토리 정보를 보관하고 있는 메타데이터 서버(120)의 IP 주소 정보(580)를 포함하고 있다. 이에 따라, 클라이언트(140)는 메타데이터 서버(120)에 접근할 때 가장 최적인 IP 주소, 즉 최단 거리로 접근 가능한 IP 주소를 선택할 수 있다.
그리고 메타데이터 서버(120)의 IP 주소 정보에 포함된 IP 주소는 IP 주소에 대응하는 경로에 장애가 발생한 경우, 복수의 IP 주소 중에서 차선의 IP 주소가 할당될 수 있다. 즉, 3차원 토러스 망 구조에서 클라이언트(140)가 가지고 있는 메타데이터 서버(120)의 IP 주소 정보에 대응하는 IP 주소에 대응하는 경로에 장애가 발생한 경우, 장애가 발생된 경로에 대응하는 IP 주소를 제외한 나머지 5개의 IP 주소 중에서 차선의 IP 주소, 즉 두번째로 최단 거리를 가지는 경로에 대응하는 IP 주소를 선택할 수 있다.
참고로, 본 발명의 실시예에 따른 도 1에 도시된 구성 요소들은 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 형태로 구현될 수 있으며, 소정의 역할들을 수행할 수 있다.
그렇지만 '구성 요소들'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 각 구성 요소는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 구성 요소는 소프트웨어 구성 요소들, 객체지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다.
구성 요소들과 해당 구성 요소들 안에서 제공되는 기능은 더 작은 수의 구성 요소들로 결합되거나 추가적인 구성 요소들로 더 분리될 수 있다.
한편, 본 발명의 일 실시예에 따른 분산 파일 시스템(100)은 마운트 절차, 파일 오픈 절차, 파일 읽기 절차, 파일 쓰기 절차, 장애 발생 및 처리 절차를 수행할 수 있는바, 이에 대한 내용은 도 6 내지 도 11에서 보다 구체적으로 설명하도록 한다.
도 6은 본 발명의 일 실시예에 따른 분산 파일 시스템(100)의 파일 연산 처리 방법 중 마운트 단계의 순서도이다.
본 발명의 일 실시예에 따른 마운트 단계는 먼저, 관리 서버(110)가 클라이언트(140)로부터 접속하고자 하는 볼륨 정보가 포함된 마운트 요청을 수신하면(S610), 관리 서버(110)는 볼륨 정보에 포함된 루트 디렉토리 정보에 대응하는 메타데이터 서버(120)를 검색한다(S620). 그리고 검색된 메타데이터 서버(120)의 IP 주소를 클라이언트로 전송한다(S630).
한편, 관리 서버(110)는 클라이언트(140)로 검색된 메타데이터 서버(120)의 IP 주소 뿐만 아니라, 볼륨 정보, 제 1 평면에 포함된 복수의 메타데이터 서버(120) 및 복수의 데이터 서버(130)의 IP 주소를 함께 전송할 수 있다. 이에 따라, 클라이언트(140)는 볼륨 정보, 검색된 메타데이터 서버(120)의 IP 주소, 제 1 평면에 포함된 복수의 노드에 대응하는 IP 주소를 로컬 스토리지에 언마운트 때까지 저장할 수 있으며, 이를 통신에 활용할 수 있다.
도 7은 본 발명의 일 실시예에 따른 분산 파일 시스템(100)의 파일 연산 처리 방법 중 파일 오픈 단계의 순서도이다.
본 발명의 일 실시예에 따른 파일 오픈 절차는 제 1 중계 서버가 클라이언트(140)로부터 파일 오픈 요청을 수신한다(S710). 이때, 제 1 중계 서버는 클라이언트(140)에 의해 선택될 수 있다. 즉, 클라이언트(140)는 제 1 평면에 포함된 복수의 메타데이터 서버(120) 및 데이터 서버(130) 중 볼륨 정보에 포함된 루트 디렉토리 정보에 대응하는 검색된 메타데이터 서버(120)의 행 주소 및 열 주소(x, y)와 동일한 주소를 가지는 서버를 제 1 중계 서버로 선택할 수 있다.
다음으로, 제 1 중계 서버는 검색된 메타데이터 서버(120)로 파일 오픈 요청을 전달하고(S720), 메타데이터 서버(120)에 의해 검색된 파일 오픈 요청에 대응하는 파일의 메타데이터를 수신하여(S730), 수신한 메타데이터를 클라이언트(140)로 전송한다(S740).
도 8은 본 발명의 일 실시예에 따른 분산 파일 시스템(100)의 파일 연산 처리 방법 중 파일 읽기 단계의 순서도이다.
본 발명의 일 실시예에 따른 파일 읽기 절차는, 제 1 중계 서버가 클라이언트(140)로부터 파일 레이아웃 요청을 수신하면(S810), 제 1 중계 서버는 볼륨 정보에 포함된 루트 디렉토리 정보에 대응하는 검색된 메타데이터 서버(120)로 파일 레이아웃 정보를 요청한다(S820).
다음으로, 검색된 메타데이터 서버(120)가 파일 레이아웃 정보 요청에 따라, 파일 레이아웃을 검색하여 제 1 중계 서버로 전송하면(S830), 제 1 중계 서버는 이를 수신하여 클라이언트(140)로 전송한다(S840).
다음으로, 제 2 중계 서버가 클라이언트(140)로부터 데이터 서버(130)로의 파일 읽기 요청을 수신하면(S850), 제 2 중계 서버는 파일 읽기 요청을 데이터 서버(130)로 전송한다. 이에 따라 데이터 서버(130)가 파일 읽기 요청에 대응하는 요청된 파일을 수신하면(S860), 요청된 파일을 클라이언트(140)로 전송한다(S870).
이와 같이 클라이언트(140)가 요청된 파일을 제 2 중계 서버로부터 수신하면, 클라이언트(140)는 수신한 파일을 사용자에게 반환할 수 있다.
한편, 제 2 중계 서버는 클라이언트(140)에 의해 선택될 수 있다. 즉, 클라이언트(140)는 제 1 평면에 포함된 복수의 메타데이터 서버(120) 및 데이터 서버(130) 중 읽고자 하는 파일 이 저장된 데이터 서버(130)의 행 주소 및 열 주소(x, y)와 동일한 주소를 가지는 서버를 제 2 중계 서버로 선택할 수 있다.
도 9는 본 발명의 일 실시예에 따른 분산 파일 시스템(100)의 파일 연산 처리 방법 중 파일 쓰기 단계의 순서도이다.
본 발명의 일 실시예에 따른 파일 쓰기 절차는 먼저, 볼륨의 루트 디렉토리 정보를 관리하는 것으로 검색된 메타데이터 서버(120)가 제 1 중계 서버를 통해 클라이언트(130)로부터 파일 레이아웃 정보 요청을 수신한다(S910).
다음으로, 메타데이터 서버(120)는 파일 쓰기를 위한 청크 공간을 할당한 뒤(S920), 파일 레이아웃 정보를 제 1 중계 서버를 통해 클라이언트(140)로 전송한다(S930).
다음으로, 데이터 서버(130)는 제 2 중계 서버를 통해 클라이언트(140)로부터 파일 쓰기 요청을 수신하고(S940), 파일 쓰기 요청에 대응하여 파일 쓰기 동작을 수행한다(S950).
파일 쓰기 절차가 완료되면 데이터 서버(130)는 제 2 중계 서버로 파일 쓰기 결과를 반환하고, 제 2 중계 서버는 이를 클라이언트(140)에 반환한다. 이에 따라, 클라이언트(140)는 파일 쓰기 결과를 사용자에게 반환할 수 있다.
도 10은 본 발명의 일 실시예에 따른 분산 파일 시스템(100)의 파일 연산 처리 방법 중 중계 서버의 장애 발생 및 처리 단계의 순서도이다.
본 발명의 일 실시예에 따른 분산 파일 시스템(100)의 파일 연산 처리 방법은 중계 서버에 장애가 발생한 경우 이를 처리하는 과정을 수행할 수 있다.
먼저, 클라이언트(140)가 제 1 평면에 포함된 각 노드에 대응하는 중계 서버 중 어느 하나의 중계 서버로 오퍼레이션을 요청한 뒤(S1010), 기 설정된 시간 내에 응답을 수신한 경우에는 정상적인 후속 동작을 처리한다(S1030).
이와 달리, 기 설정된 시간 동안 오퍼레이션 요청에 대한 응답을 수신하지 못한 경우(S1020), 관리 서버(110)로 중계 서버 정보 테이블(570)을 다시 요청하여 수신한다(S1040).
그리고 클라이언트(140)는 관리 서버(110)로부터 수신한 중계 서버의 상태 정보가 포함된 중계 서버 테이블(570)에 기초하여, 정상 동작하는 중계 서버 중 응답을 수신하지 못한 중계 서버와 최단 거리에 있는 중계 서버로 오퍼레이션을 다시 요청할 수 있다(S1050).
도 11은 본 발명의 일 실시예에 따른 분산 파일 시스템(100)의 파일 연산 처리 방법 중 메타데이터 서버(120) 또는 데이터 서버(130)의 장애 발생 및 처리 단계의 순서도이다.
본 발명의 일 실시예에 따른 분산 파일 시스템(100)의 파일 연산 처리 방법은 메타데이터 서버(120) 또는 데이터 서버(130)로의 IP 접근에 장애가 발생한 경우 이를 처리하는 과정을 수행할 수 있다.
먼저, 제 1 평면에 포함된 각 노드에 대응하는 중계 서버는 클라이언트(140)로부터의 오퍼레이션 요청에 대응하여 데이터 서버(130) 또는 메타데이터 서버(120)의 IP 주소로 접속을 시도한다(S1110).
다음으로, 중계 서버가 데이터 서버(130) 또는 메타데이터 서버(120)로부터 기 설정된 시간 내에 오퍼레이션 요청에 대한 응답을 수신한 경우에는 정상적인 후속 동작을 처리한다(S1130).
이와 달리, 중계 서버가 데이터 서버(130) 또는 메타데이터 서버(120)로부터 기 설정된 시간동안 오퍼레이션 요청에 대한 응답을 수신하지 못한 경우(S1120), 중계 서버가 데이터 서버(130) 또는 메타데이터 서버(120)의 복수의 IP 주소 중 접속을 시도한 IP 주소를 제외한 나머지 IP 주소에 접속을 시도한다(S1140). 그리고 모든 IP 주소에 대한 접속을 실패하면(S1150), 클라이언트(140)로 접속 실패 결과를 반환한다(S1170).
한편, 중계 서버가 접속을 시도함에 따라 접속을 성공한 IP 주소가 있는 경우, 접속을 성공한 IP 주소를 클라이언트(140)로 반환한다(S1160). 그리고 클라이언트(140)는 접속을 성공한 IP 주소를 저장하고, 저장한 IP 주소를 다음 접속 시도시 사용할 수 있다(S1165).
한편, 상술한 설명에서, 단계 S610 내지 S1170는 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. 아울러, 기타 생략된 내용이라 하더라도 도 1 내지 도 5에서의 분산 파일 시스템(100)에 관하여 이미 기술된 내용은 도 6 내지 도 11의 파일 연산 처리 방법에도 적용된다.
전술한 본 발명의 일 실시예 중 어느 하나에 의하면, 토러스 망 기반으로 연결된 메타데이터 서버(120) 또는 데이터 서버(130)의 위치 정보를 좌표값으로 표현함으로써, 최단 경로 선택을 통한 가장 짧은 시간의 정보 송수신 성능을 확보할 수 있다.
또한, 분산 파일 시스템(100)의 토폴로지 모니터링을 보다 효율적으로 할 수 있게 된다.
또한, 스위치를 사용한 계층적인 fat-tree 방식의 종래 기술에서 풀기 힘든 엑사바이트급의 용량을 지원하는 문제를 해결할 수 있다.
또한, 스토리지 서버들은 스위치 없이 서로 직접 연결하여 토러스 토폴로지를 구성하고, 클라이언트(140)들은 스위치(150)에 연결함으로써 시스템의 복잡도를 최소화시킬 수 있다.
또한, 기존에 사용되던 분산 파일 시스템(100)의 많은 수정 없이 엑사바이트급 스토리지 제공이 가능하다.
본 발명의 일 실시예에 따른 분산 파일 시스템(100)에서의 파일 연산 처리 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 분산 파일 시스템 110: 관리 서버
120: 메타데이터 서버 130: 데이터 서버
140: 클라이언트 150: 스위치
510: 호스트 이름 520: 평면, 행, 열 주소
530: IP 주소 540: 스위치 주소
550: inode 정보 560a~560n: 청크별 식별 정보
570: 중계 서버 정보 테이블 580: 메타데이터 서버 ip 주소 정보

Claims (20)

  1. 토러스 망 기반의 분산 파일 시스템에 있어서,
    파일의 메타데이터를 저장하는 복수의 메타데이터 서버,
    데이터를 분할하여 분산 저장하는 복수의 데이터 서버 및
    상기 메타데이터 서버 및 데이터 서버를 관리하는 하나 이상의 관리 서버를 포함하되,
    상기 복수의 메타데이터 서버, 상기 복수의 데이터 서버 및 상기 하나 이상의 관리 서버는 각각 복수의 노드로 구성된 3차원의 제 1 내지 제 n 평면 상에 배치되고,
    상기 제 1 평면에 포함된 각 노드들은 복수의 클라이언트와 스위치를 통해 fat-tree 형태로 연결되며,
    상기 제 1 내지 제 n 평면에 포함된 복수의 노드에는 평면 주소, 행 주소, 열 주소, 소스 포트, 목적지 포트 및 상대 위치 정보를 포함하는 복수의 IP 주소가 할당되는 것인 분산 파일 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버는 상기 제 2 내지 제 n 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버와 각각 상기 스위치의 연결없이 상호 직접 연결되는 것인 분산 파일 시스템.
  3. 제 2 항에 있어서,
    상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버는 상기 클라이언트와 연결되는 스위치의 주소를 더 포함하는 상기 IP 주소가 할당되는 것인 분산 파일 시스템.
  4. 제 1 항에 있어서,
    상기 제 1 내지 제 n 평면에 포함된 복수의 노드에 할당된 IP 주소에 포함된 상기 상대 위치 정보의 값이 1인 경우 상기 평면 주소, 행 주소 및 열 주소가 자신의 위치값에 해당하고,
    상기 상대 위치 정보의 값이 2인 경우 상기 평면 주소, 행 주소 및 열 주소가 자신의 위치값과 상이한 것인 분산 파일 시스템.
  5. 제 1 항에 있어서,
    상기 관리 서버는 상기 제 1 내지 제 n 평면에 포함된 복수의 노드에 대응하는 서버 관리 테이블을 포함하되,
    상기 서버 관리 테이블은 각 서버의 호스트 이름, 상기 평면 주소, 상기 행 주소, 상기 열 주소 및 상기 복수의 IP 주소를 포함하고,
    상기 제 1 평면에 배치된 복수의 메타데이터 서버 및 데이터 서버의 경우 상기 클라이언트와 연결되는 스위치의 주소를 더 포함하는 것인 분산 파일 시스템.
  6. 제 1 항에 있어서,
    상기 메타데이터 서버는 파일별 파일 레이아웃을 포함하되,
    상기 파일 레이아웃은 inode 정보 및 하나 이상의 청크별 식별 정보를 포함하고,
    상기 청크별 식별 정보에 포함된 IP 주소는 최적의 청크 접근 경로로 선택된 IP 주소가 할당되고, 상기 할당된 IP 주소는 상기 청크 접근 경로에 장애가 발생한 경우 변경되는 것인 분산 파일 시스템.
  7. 제 1 항에 있어서,
    상기 클라이언트는 상기 제 1 평면에 포함된 각 노드에 대응하는 중계 서버 정보 테이블 및 마운트한 볼륨의 루트 디렉토리 정보를 포함하는 메타데이터 서버의 IP 주소 정보를 포함하되,
    상기 클라이언트는 상기 중계 서버 정보 테이블에 포함된 서버 중 오퍼레이션을 요청할 메타데이터 서버 또는 데이터 서버와 최단 거리에 위치한 어느 하나의 서버를 중계 서버로 선택하고,
    상기 메타데이터 서버의 주소 정보에 포함된 IP 주소는 상기 복수의 IP 주소 중 상기 메타데이터 서버와 최단 거리로 접근 가능한 IP 주소인 것인 분산 파일 시스템.
  8. 제 7 항에 있어서,
    상기 메타데이터 서버의 IP 주소 정보에 포함된 IP 주소는 상기 IP 주소에 대응하는 경로에 장애가 발생된 경우, 상기 복수의 IP 주소 중에서 차선의 IP 주소가 할당되는 것인 분산 파일 시스템.
  9. 제 1 항에 있어서,
    상기 관리 서버는 상기 클라이언트로부터 접속하고자 하는 볼륨 정보가 포함된 마운트 요청을 수신하면, 상기 볼륨 정보에 포함된 루트 디렉토리 정보에 대응하는 메타데이터 서버를 검색하고, 상기 검색된 메타데이터 서버의 IP 주소를 상기 클라이언트로 전송하는 것인 분산 파일 시스템.
  10. 제 9 항에 있어서,
    상기 관리 서버는 상기 클라이언트로 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버의 IP 주소를 함께 전송하고,
    상기 클라이언트는 상기 검색된 메타데이터 서버의 IP 주소 및 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버의 IP 주소를 로컬 스토리지에 언마운트 때까지 저장하는 것인 분산 파일 시스템.
  11. 제 10 항에 있어서,
    상기 클라이언트는 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버 중 상기 검색된 메타데이터 서버의 행 주소 및 열 주소와 동일한 주소를 가지는 서버를 제 1 중계 서버로 선택하고, 상기 선택한 제 1 중계 서버로 파일 오픈을 요청하면,
    상기 제 1 중계 서버는 상기 검색된 메타데이터 서버로 상기 파일 오픈 요청을 전달하고, 상기 메타데이터 서버에 의해 검색된 상기 파일 오픈 요청에 대응하는 파일의 메타데이터를 수신하여, 상기 클라이언트로 전송하는 것인 분산 파일 시스템.
  12. 제 11 항에 있어서,
    상기 제 1 중계 서버는 상기 클라이언트로부터 파일 레이아웃 정보 요청을 수신하면, 상기 검색된 메타데이터 서버로 상기 파일 레이아웃 정보를 요청하고,
    상기 검색된 메타데이터 서버는 상기 파일 레이아웃 정보 요청에 따라, 상기 파일 레이아웃 정보를 검색하여 상기 제 1 중계 서버를 통해 상기 클라이언트로 전송하며,
    상기 클라이언트가 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버 중, 상기 클라이언트에 의해 읽고자 하는 파일이 저장된 데이터 서버의 행 주소 및 열 주소와 동일한 주소를 가지는 서버를 제 2 중계 서버로 선택하고, 상기 선택한 제 2 중계 서버를 통해 상기 데이터 서버로 파일 읽기 요청을 전송하면, 상기 파일 읽기 요청에 대응하여 상기 데이터 서버로부터 상기 제 2 중계 서버를 통해 요청된 파일을 수신하는 것인 분산 파일 시스템.
  13. 제 12 항에 있어서,
    상기 검색된 메타데이터 서버는 상기 제 1 중계 서버를 통해 상기 클라이언트로부터 파일 레이아웃 정보 요청을 수신하면, 파일 쓰기를 위한 청크 공간을 할당한 뒤 파일 레이아웃 정보를 상기 제 1 중계 서버를 통해 상기 클라이언트로 전송하고,
    상기 데이터 서버는 상기 제 2 중계 서버를 통해 상기 클라이언트로부터 파일 쓰기 요청을 수신함에 따라, 파일 쓰기 동작을 수행하는 것인 분산 파일 시스템.
  14. 제 1 항에 있어서,
    상기 클라이언트는 상기 제 1 평면에 포함된 각 노드에 대응하는 중계 서버 중 어느 하나의 중계 서버로부터 기 설정된 시간 동안 오퍼레이션 요청에 대한 응답을 수신하지 못한 경우, 상기 관리 서버로 중계 서버 정보 테이블을 요청하여 수신하고,
    상기 수신한 중계 서버 테이블에 기초하여 정상 동작하는 중계 서버 중 상기 응답을 수신하지 못한 중계 서버와 최단 거리에 있는 중계 서버로 상기 오퍼레이션을 요청하는 것인 분산 파일 시스템.
  15. 제 1 항에 있어서,
    상기 제 1 평면에 포함된 각 노드에 대응하는 중계 서버는 상기 클라이언트로부터의 오퍼레이션 요청에 대응하여 데이터 서버 또는 메타데이터 서버의 IP 주소로 접속을 시도하고,
    상기 데이터 서버 또는 메타데이터 서버로부터 기 설정된 시간 동안 상기 오퍼레이션 요청에 대한 응답을 수신하지 못한 경우,
    상기 중계 서버는 상기 데이터 서버 또는 메타데이터 서버의 복수의 IP 주소 중 상기 접속을 시도한 IP 주소를 제외한 나머지 IP 주소에 접속을 시도하고, 모든 IP 주소에 대한 접속을 실패하면 상기 클라이언트로 접속 실패 결과를 반환하는 것인 분산 파일 시스템.
  16. 제 15 항에 있어서,
    상기 중계 서버는 상기 접속 시도에 따라 접속을 성공한 IP 주소가 있는 경우, 상기 접속을 성공한 IP 주소를 상기 클라이언트로 반환하고,
    상기 클라이언트는 상기 접속을 성공한 IP 주소를 저장하고, 상기 저장한 IP 주소를 다음 접속 시도시 사용하는 것인 분산 파일 시스템.
  17. 복수의 노드로 구성된 3차원의 제 1 내지 제 n 평면 상에 배치된 복수의 메타데이터 서버, 복수의 데이터 서버 및 하나 이상의 관리 서버를 포함하는 분산 파일 시스템의 파일 연산 처리 방법에 있어서,
    상기 관리 서버가 클라이언트로부터 접속하고자 하는 볼륨 정보가 포함된 마운트 요청을 수신하는 단계;
    상기 관리 서버가 상기 볼륨 정보에 포함된 루트 디렉토리 정보에 대응하는 메타데이터 서버를 검색하는 단계 및
    상기 관리 서버가 상기 검색된 메타데이터 서버의 IP 주소를 클라이언트로 전송하는 단계를 포함하되,
    상기 제 1 평면은 복수의 클라이언트와 스위치를 통해 fat-tree 형태로 연결되고,
    상기 제 1 내지 제 n 평면에 포함된 복수의 노드에는 평면 주소, 행 주소, 열 주소, 소스 포트, 목적지 포트 및 상대 위치 정보를 포함하는 복수의 IP 주소가 할당되고,
    상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버는 상기 제 2 내지 제 n 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버와 각각 상기 스위치의 연결없이 상호 직접 연결되며,
    상기 관리 서버는 상기 클라이언트로 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버의 IP 주소를 함께 전송하고,
    상기 클라이언트는 상기 검색된 메타데이터 서버의 IP 주소 및 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버의 IP 주소를 로컬 스토리지에 언마운트 때까지 저장하는 것인 파일 연산 처리 방법.
  18. 제 17 항에 있어서,
    상기 클라이언트에 의해 선택된 제 1 중계 서버가 상기 클라이언트로부터 파일 오픈 요청을 수신하는 단계;
    상기 제 1 중계 서버가 상기 검색된 메타데이터 서버로 상기 파일 오픈 요청을 전달하는 단계;
    상기 제 1 중계 서버가 상기 메타데이터 서버에 의해 검색된 상기 파일 오픈 요청에 대응하는 파일의 메타데이터를 수신하는 단계 및
    상기 제 1 중계 서버가 상기 수신한 파일의 메타데이터를 상기 클라이언트로 전송하는 단계를 더 포함하되,
    상기 제 1 중계 서버는 상기 클라이언트에 의하여, 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버 중 상기 검색된 메타데이터 서버의 행 주소 및 열 주소와 동일한 주소를 가지는 서버로 선택되는 것인 파일 연산 처리 방법.
  19. 제 18 항에 있어서,
    상기 제 1 중계 서버가 상기 클라이언트로부터 파일 레이아웃 정보 요청을 수신하는 단계;
    상기 제 1 중계 서버가 상기 검색된 메타데이터 서버로 상기 파일 레이아웃 정보를 요청하는 단계;
    상기 제 1 중계 서버가 상기 검색된 메타데이터 서버로부터 검색된 파일 레이아웃 정보를 수신하는 단계;
    상기 제 1 중계 서버가 상기 파일 레이아웃 정보를 상기 클라이언트로 전송하는 단계;
    상기 클라이언트에 의해 선택된 제 2 중계 서버가 상기 클라이언트로부터 상기 클라이언트에 의해 읽고자 하는 파일이 저장된 데이터 서버로의 파일 읽기 요청을 수신하는 단계;
    상기 제 2 중계 서버가 상기 데이터 서버로부터 상기 파일 읽기 요청에 대응하는 요청된 파일을 수신하는 단계 및
    상기 제 2 중계 서버가 상기 요청된 파일을 상기 클라이언트로 전송하는 단계를 더 포함하되,
    상기 제 2 중계 서버는 상기 클라이언트에 의하여, 상기 제 1 평면에 포함된 복수의 메타데이터 서버 및 복수의 데이터 서버 중 상기 읽고자 하는 파일이 저장된 데이터 서버의 행 주소 및 열 주소와 동일한 주소를 가지는 서버로 선택되는 것인 파일 연산 처리 방법.
  20. 제 19 항에 있어서,
    상기 검색된 메타데이터 서버가 상기 제 1 중계 서버를 통해 상기 클라이언트로부터 파일 레이아웃 정보 요청을 수신하는 단계;
    상기 검색된 메타데이터 서버가 파일 쓰기를 위한 청크 공간을 할당하는 단계;
    상기 검색된 메타데이터 서버가 상기 파일 레이아웃 정보를 상기 제 1 중계 서버를 통해 상기 클라이언트로 전송하는 단계;
    상기 데이터 서버가 상기 제 2 중계 서버를 통해 상기 클라이언트로부터 파일 쓰기 요청을 수신하는 단계 및
    상기 데이터 서버가 상기 파일 쓰기 요청에 대응하여 파일 쓰기 동작을 수행하는 단계를 더 포함하는 것인 파일 연산 처리 방법.
KR1020150189376A 2015-12-30 2015-12-30 분산 파일 시스템 및 이의 파일 연산 처리 방법 Active KR102024934B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150189376A KR102024934B1 (ko) 2015-12-30 2015-12-30 분산 파일 시스템 및 이의 파일 연산 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150189376A KR102024934B1 (ko) 2015-12-30 2015-12-30 분산 파일 시스템 및 이의 파일 연산 처리 방법

Publications (2)

Publication Number Publication Date
KR20170079141A KR20170079141A (ko) 2017-07-10
KR102024934B1 true KR102024934B1 (ko) 2019-11-04

Family

ID=59355642

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150189376A Active KR102024934B1 (ko) 2015-12-30 2015-12-30 분산 파일 시스템 및 이의 파일 연산 처리 방법

Country Status (1)

Country Link
KR (1) KR102024934B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102178740B1 (ko) * 2017-11-22 2020-11-13 한국전자통신연구원 토러스 네트워크 기반의 분산 파일 시스템을 위한 서버 및 이를 이용한 방법
KR102252199B1 (ko) * 2018-12-17 2021-05-14 한국전자통신연구원 토러스 네트워크 기반 분산 파일 시스템 볼륨 성능 최적화 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015194937A1 (en) * 2014-06-19 2015-12-23 Mimos Berhad System and method for distributed secure data storage in torus network topology

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3980488B2 (ja) * 2001-02-24 2007-09-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 超並列コンピュータ・システム
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015194937A1 (en) * 2014-06-19 2015-12-23 Mimos Berhad System and method for distributed secure data storage in torus network topology

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Paolo Costa, "Bridging the Gap Between Applications and Networks in Data Centers", ACM SIGOPS, Jan 2013*

Also Published As

Publication number Publication date
KR20170079141A (ko) 2017-07-10

Similar Documents

Publication Publication Date Title
US11354039B2 (en) Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11042311B2 (en) Cluster system with calculation and storage converged
KR101995056B1 (ko) 분산 파일 시스템 및 이의 운영방법
US20180288152A1 (en) Storage dynamic accessibility mechanism method and apparatus
US10466935B2 (en) Methods for sharing NVM SSD across a cluster group and devices thereof
WO2018222236A1 (en) Managing i/o operations in a storage network
US8996803B2 (en) Method and apparatus for providing highly-scalable network storage for well-gridded objects
US9961145B1 (en) Multi-tier storage system having front-end storage tier implemented utilizing software-defined storage functionality
US9690492B2 (en) Random read performance of optical media library
US10003648B2 (en) Mechanism for universal parallel information access
US20070150492A1 (en) Method and system for allocating file in clustered file system
US12335340B2 (en) Scalable autonomous storage networks
KR102024934B1 (ko) 분산 파일 시스템 및 이의 파일 연산 처리 방법
US10157003B1 (en) Storage system with distributed tiered parallel file system comprising software-defined unified memory cluster
US9648103B2 (en) Non-uniform file access in a distributed file system
KR102025801B1 (ko) 분산 파일 시스템 및 이의 데이터 내결함성 지원 방법
US10447585B2 (en) Programmable and low latency switch fabric for scale-out router
KR102001572B1 (ko) 분산 파일 시스템 및 이의 데이터 관리 방법
CN114265869B (zh) 数据报文的转发方法及装置、存储介质及电子设备
US20150363346A1 (en) Sata initiator addressing and storage device slicing
US10223025B1 (en) Reconfigurable multi-tier storage system comprising replicated storage units
TW201807603A (zh) 分散式資料存取系統及方法
JP2022522840A (ja) サブピクチャー識別子を信号伝達するための方法、システムおよびプログラム
Vallée et al. End-to-end data movement using MPI-IO over routed terabits infrastructures
CN116263789A (zh) 节点资源的快速检索方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20151230

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20170802

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20151230

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20190121

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20190619

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20190918

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20190919

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20220825

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20240823

Start annual number: 6

End annual number: 6