KR101366220B1 - 분산형 저장소 - Google Patents

분산형 저장소 Download PDF

Info

Publication number
KR101366220B1
KR101366220B1 KR1020087028408A KR20087028408A KR101366220B1 KR 101366220 B1 KR101366220 B1 KR 101366220B1 KR 1020087028408 A KR1020087028408 A KR 1020087028408A KR 20087028408 A KR20087028408 A KR 20087028408A KR 101366220 B1 KR101366220 B1 KR 101366220B1
Authority
KR
South Korea
Prior art keywords
server
distributed storage
storage
file
data
Prior art date
Application number
KR1020087028408A
Other languages
English (en)
Other versions
KR20090047393A (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
Priority claimed from EP06114443.2A external-priority patent/EP1860846B1/en
Priority claimed from US11/439,784 external-priority patent/US8255420B2/en
Application filed by 노리안 홀딩 코포레이션 filed Critical 노리안 홀딩 코포레이션
Publication of KR20090047393A publication Critical patent/KR20090047393A/ko
Application granted granted Critical
Publication of KR101366220B1 publication Critical patent/KR101366220B1/ko

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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

복수 개의 저장소 장치를 포함하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버는 분산형 저장소 내에 파일을 저장하도록 하는 요청을 수신하기 위한 파일 서비스 관리자 및 상기 파일을 저장할 때 이용될 분산형 저장소 내의 클러스터를 선택하기 위한 할당 관리자를 포함한다. 할당 관리자는 다른 서버 내의 적어도 하나의 다른 할당 관리자와 통신하여 어떤 할당 관리자가 이용될 클라이언트를 선택할지를 결정하도록 구성된다.

Description

분산형 저장소{Distributed storage}
본 발명은 분산형 저장소 시스템, 분산형 저장소 관리 시스템, 및 분산형 저장소에 대한 액세스를 관리하기 위한 서버에 관련된다.
개인용 및 상용 목적의 데이터 저장소에 대한 수요가 계속 증가한다.
예를 들어, 예컨대 디지털 카메라와 음악 플레이어와 같은 디지털 녹음 및 재생 장치가 점점 인기를 끌수록, 대용량 데이터(예를 들어 10 기가바이트 이상)를 저장하여야 할 필요성이 있는 개인 사용자들의 수가 증가한다. 더 나아가, 이러한 장치가 사용되는 것에 따라, 생성되거나, 다운로드된 컨텐츠의 양은 누적적으로 증가하고, 따라서 저장될 데이터 량이 역시 증가한다.
또한 데이터 저장소에 대한 필요성도 역시 변하고 있다.
전통적으로는, 디지털 사진과 같은 데이터 파일들은 예를 들어 가정용 컴퓨터와 같은 단일 지점에서 예를 들어 자기식 하드 디스크와 같은 저장 장치에 저장되어 왔다. 그러나, 사용자들은 점점 원격으로 그들의 데이터에 액세스하고자 하고, 심지어는 이동 중에도(on-the-move) 액세스하고자 한다. 더욱이, 사용자는 또한 그들의 데이터를 다른 사용자와 공유하고 싶어 할 수 있다.
1개 이상의 저장소 장치를 포함하고, 가상 파일 시스템(virtual file system)을 이용하여 관리될 수 있는 분산형 저장소가 이러한 문제점들에 해결책을 제공할 수 있다.
저장소 장치가 추가적인 용량을 제공하기 위해 추가될 수 있다. 게다가, 사용자에게는, 비록 물리적으로는 이러한 데이터가 다수의 저장소 장치들을 통하여 분리되어 저장되어 있고, 심지어 시간에 따라서 변경될 수 있다고 하더라도 단일의 액세스가능한 "위치(location)"에 저장된 것으로 보이게 된다. 또한, 사용자는 다른 사용자, 예컨대 친구 또는 작업 동료에게 액세스 특권(access privilege)을 허용함으로써, 그들에게 그/그녀의 파일을 읽고, 심지어 업데이트하는 것을 허락할 수 있다.
가상 파일 시스템을 사용하고 있는 종래의 분산형 저장소 시스템은 공지된 바 있다.
US-A-5873085 호는 복수의 서버를 가지고 있는 시스템을 개시하는데, 여기서 각각의 서버는 개별 파일 시스템을 관리하며, 적어도 하나의 서버가 가상 파일 관리 시스템을 동작시킨다. 가상 파일 관리 시스템은 각 가상 파일에 대한 가상 파일 식별자, 서버 명칭 및 실제 파일 명칭을 저장하는 관리 테이블을 포함한다. 서버가 클라이언트로부터 특정 파일을 독출 또는 수정하라는 요청을 수신하고 서버가 해당 파일을 보유하고 있지 않으면, 서버는 다른 어떤 서버가 해당 파일을 저장하고 있는지를 식별하고, 다른 서버로 하여금 클라이언트에게 직접 응답하도록 명령하도록 요청을 수정하며, 수정된 요청을 다른 서버로 전달한다.
이러한 시스템은 서버도 역시 데이터를 저장한다는 단점을 가진다. 이에 의 하여 어느 하나의 서버에 추가될 수 있는 저장소의 용량이 제한될 수 있다. 다른 서버를 추가하면 추가적 저장소를 제공할 수 있는데, 하지만 이것은 추가적 저장소 장치를 단순히 추가하는 것에 비하여 더욱 고가이다.
US-A-20050246393호는 가상 파일 시스템과 복수 개의 지능형 저장소 노드 및 특정 객체 파일을 저장하는 지능형 저장소 노드를 식별하고 액세스하기 위한 복수 개의 제어 노드(또한 "분산형 객체 저장 관리자"라고도 불린다)를 포함하는 저장소 클러스터(storage cluster)를 가지는 네트워크 저장소 시스템을 개시한다. 분산형 객체 저장 관리자 각각은 지능형 저장소 노드 내에 저장된 객체 파일의 위치를 식별하기 위한 룩업 테이블 및 지능형 저장소 노드의 전체 용량 및 견실성(health)에 관련된 정보를 저장하는 상태 테이블을 유지한다. 이러한 상태 테이블은 신규 객체 파일을 저장하기 위한 지능형 저장소 노드를 선택하는데 이용된다. 만일 네트워크 저장소 시스템이 데이터를 신규 객체 파일 내에 저장하라는 요청을 수신하면, 부하 밸런싱 패브릭(load balancing fabric)이 이용 가능성에 기반하여 분산된 객체 저장 관리자들 중 하나를 선택하고, 해당 요청을 선택된 분산형 객체 저장소 관리자로 전달한다. 순서대로, 분산형 객체 저장 관리자는 지능형 저장소 노드를 선택한다.
상이한 분산형 객체 저장소 장치 관리자들이 새로운 객체 파일을 저장하는 것을 담당한다. 그러므로, 각 분산형 객체 저장소 장치 관리자는 적어도 최초에는 그들이 담당하는 파일에 대한 정보만을 저장한다. 그래서, 분산형 객체 저장소 관리자가 그들이 담당하지 않는 주어진 파일에 액세스하라는 요청을 수신하면, 그들은 해당 파일에 대한 요청을 지능형 저장소 노드로 브로드캐스트한다. 그러므로, 분산형 저장소 노드에는 이러한 요청을 처리할 충분한 프로세싱 능력이 제공되어야 한다. 이러한 이유에 의하여 저장소 노드를 추가하는 것이 더욱 어려워진다.
본 발명은 분산형 저장소에 대한 액세스를 관리하기 위한 개선된 서버를 제공하고, 이에 의하여 개선된 분산형 저장소 시스템을 제공하고자 시도한다.
본 발명의 제1 측면에 따르면, 복수 개의 저장소 장치를 포함하는 분산형 저장소(distributed storage)로의 액세스를 관리하기 위한 서버가 제공되는데, 이 서버는 적어도 하나의 다른 서버와 통신하여, 서버들 중 어느 것이 데이터를 저장할 때 이용될 분산형 저장소의 일부를 선택하는지를 결정하도록 구성되는 것을 특징으로 한다.
그러므로, 단일 서버가 데이터의 저장을 제어하고, 이것이 저장소의 동시 할당(concurrent allocation) 문제를 회피하는데 도움을 주고, 데이터에 대한 정보가 단일 메타데이터 서버 내에 순서대로 저장되도록 허용하는데 도움을 준다.
서버는 상기 분산형 저장소 내에 데이터를 저장하도록 하는 요청을 클라이언트로부터 수신하기 위한 제1 제어기 및 상기 데이터를 저장할 때 이용할 분산형 저장소의 일부를 선택하기 위한 제2 제어기를 포함하는데, 제2 제어기는 적어도 하나의 다른 제2 제어기와 통신하여, 제2 제어기 중 어느 것이 이용될 분산형 저장소의 일부를 선택하는지를 결정하도록 구성되는 것을 특징으로 한다.
서버는, 다른 서버가 이용될 분산형 저장소의 일부를 선택한다는 결정에 응답하여, 다른 서버로부터 상기 분산형 저장소의 일부의 신원(identity; ID)을 수신하도록 구성되고, 자신이 이용될 분산형 저장소의 일부를 선택한다는 결정에 응답하여, 상기 분산형 저장소의 일부를 선택하도록 구성되는 것을 특징으로 한다.
서버는 분산형 저장소의 일부 내의 저장소 장치들 중 하나를 선택하도록 구성되는 것을 특징으로 한다.
서버는 상기 제2 제어기로부터의 소정 명령(instruction)에 응답하여, 분산형 저장소의 일부 내의 저장소 장치들 중 하나를 선택하기 위한 제3 제어기를 더 포함하는 것을 특징으로 한다.
서버는 파일이 한 저장소 장치 내에 저장된 이후에, 파일이 상기 분산형 저장소의 일부 내의 다른 저장소 장치들 내에서 복제되도록 야기하도록 구성될 수 있다. 서버는 파일이 저장된 이후에, 상기 파일에 관련된 정보를 메타데이터 서버로 송신하도록 구성될 수 있다. 서버는 메타데이터 서버로부터의 상기 파일에 상응하는 가상 파일 식별자(virtual file identifier)를 수신하고, 상기 가상 파일 식별자를 클라이언트로 송신하도록 구성될 수 있다.
파일을 독출 또는 갱신하라는 요청에 응답하여, 서버는 파일에 관련된 정보에 대한 요청을 적어도 하나의 메타데이터 서버 중 어느 하나로 송신하도록 구성될 수 있다.
저장소 장치들 중 적어도 하나는 저장소 액세스 네트워크와 같은 원격 저장소 시스템에 의하여 제공될 수 있다.
본 발명의 제2 측면에 따르면, 복수 개의 액세스 관리 서버 및 분산형 저장소 내에 저장된 파일에 대한 정보를 저장하기 위한 메타데이터 서버를 포함하는 분산형 저장소 관리 시스템이 제공된다.
메타데이터 서버는 상기 액세스 관리 서버로부터 분리될 수 있다.
분산형 저장소 관리 시스템은 적어도 하나의 다른 메타데이터 서버를 더 포함할 수 있으며, 상기 액세스 관리 서버는 각각 파일에 관련된 정보를 상기 메타데이터 서버로 전송하지만 적어도 하나의 다른 메타데이터 서버로는 전송하지 않도록 구성되는 것을 특징으로 한다. 액세스 관리 서버는 파일에 관련된 정보에 대한 요청을 적어도 하나의 다른 메타데이터 서버로 전송하도록 각각 구성될 수 있다.
본 발명의 제3 측면에 따르면, 분산형 파일 관리 시스템 및 복수 개의 저장소 장치를 포함하는 분산형 저장소를 포함하는 분산형 저장소 시스템이 제공된다.
저장소 장치는 복수 타입의 저장소 장치를 포함할 수 있다.
본 발명의 제4 측면에 따르면, 복수 개의 저장소 장치를 포함하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버를 동작시키기 위한 방법이 제공되는데, 이 방법은 적어도 하나의 다른 서버와 통신하여, 서버들 중 어느 것이 데이터를 저장할 때 이용될 분산형 저장소의 일부를 선택하는지를 결정하는 단계를 포함한다. 이 방법은 분산형 저장소 내에 데이터를 저장하라는 요청을 클라이언트로부터 수신하는 단계를 포함할 수 있다.
이 방법은 제1 제어기가 상기 분산형 저장소 내에 데이터를 저장하도록 하는 요청을 수신하는 단계 및 제2 제어기가 적어도 하나의 다른 제2 제어기와 통신하여, 제2 제어기 중 어느 것이 이용될 분산형 저장소의 일부를 선택하는지를 결정하는 단계를 포함할 수 있다.
이 방법은 다른 서버가 이용될 분산형 저장소의 일부를 선택한다고 결정하는 단계 및 다른 서버로부터 이용될 분산형 저장소의 일부의 신원을 수신하는 단계를 포함할 수 있다. 이 방법은 서버가 이용될 분산형 저장소의 일부를 선택한다고 결정하는 단계 및 이용될 분산형 저장소의 일부를 선택하는 단계를 포함할 수 있다. 이 방법은 이용될 분산형 저장소의 일부 내의 저장소 장치들 중 하나를 선택하는 단계를 포함할 수 있다. 이 방법은 데이터를 분산형 저장소의 선택된 일부 내에 저장하는 단계를 포함할 수 있다.
이 방법은, 파일이 한 저장소 장치 내에 저장된 이후에, 상기 파일이 상기 분산형 저장소의 일부 내의 다른 저장소 장치들에 복제되도록 야기하는 단계를 포함할 수 있다. 이 방법은 파일이 저장된 이후에, 상기 파일에 관련된 정보를 메타데이터 서버로 송신하는 단계를 포함할 수 있다. 이 방법은 상기 메타데이터 서버로부터 상기 파일에 상응하는 가상 파일 식별자(virtual file identifier)를 수신하고 상기 가상 파일 식별자를 클라이언트로 송신하는 단계를 포함할 수 있다.
이 방법은 파일을 독출 또는 갱신하라는 요청을 수신하는 단계 및 상기 파일에 관련된 정보에 대한 요청을 적어도 하나의 메타데이터 서버 중 어느 하나로 송신하는 단계를 더 포함할 수 있다.
본 발명의 제5 측면에 따르면, 컴퓨터에 의하여 실행될 때, 컴퓨터로 하여금 본 발명에 따른 방법을 수행하도록 야기하는 명령어들을 포함하는 컴퓨터 프로그램이 제공된다.
본 발명의 제6 측면에 따르면, 컴퓨터 프로그램을 저장하는 컴퓨터에 의하여 독출가능한 매체가 제공된다.
본 발명의 실시예들이 다음과 같은 첨부 도면을 참조하여 예시적 방법으로 설명될 것이다.
도 1은 본 발명에 따르는 분산형 저장소 시스템의 개념적 블록도이다.
도 2는 도 1에 도시된 서버용 컴퓨터 시스템을 도시하는 도면이다.
도 3은 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 블록도이다.
도 4는 도 1에 도시된 시스템의 블록도이다.
도 5a 및 도 5b는 도 4에 도시된 시스템 내에서 수행되는 파일 기록 프로세스(writing process)를 예시한다.
도 6은 할당 관리자(allocation manager)를 동작시키기 위한 방법의 프로세스 흐름도이다.
도 7a 및 도 7b는 도 4에 도시된 시스템에서 수행되는 파일 갱신 프로세스를 예시한다.
도 8은 도 4에 도시된 시스템에서 수행되는 파일 독출 프로세스를 예시한다.
도 1을 참조하면, 본 발명에 따른 분산형 저장소 시스템(1)이 도시된다. 도시된 실시예에서는 데스크톱 개인용 컴퓨터(2) 및 이동 전화 핸드셋(3)인 클라이언트(2, 3)는 인터넷과 같은 네트워크(4)를 통하여 분산형 저장소 시스템(1)에 액세스할 수 있다. 명료성을 위하여 단 두 개의 클라이언트(2, 3)들만이 도시되었지만, 하나의 클라이언트 또는 두 개 이상의 클라이언트들도 시스템(1)에 액세스할 수 있다는 점이 이해될 것이다. 네트워크(4)는 복수 개의 무선 및 유선 통신 네트워크를 포함할 수 있으며, 여기에는 공중 육상 이동 통신 네트워크(미도시) 또는 무선 근거리 통신 네트워크(미도시)가 포함될 수 있다.
분산형 저장소 시스템(1)은 분산형 저장소에 대한 액세스를 관리하기 위한 제1, 제2, 및 제3 서버(51, 52, 53)를 포함한다(이하, 서버(51, 52, 53)들은 "파일 서비스 제공자"라고 불린다). 시스템(1)은 소수의 파일 서비스 제공자(예를 들어 하나 또는 두 개의 파일 서비스 제공자)를 가지거나 또는 다수의 파일 서비스 제공자를 가질 수 있다. 파일 서비스 제공자(51, 52, 53)들은 국부적으로(locally) 저장소 장치(6)들과 통신하는데, 예컨대, 제3 파일 서비스 제공자(53)에 의하여 제공된 하드 디스크 드라이브의 형태를 가지는 제1 저장소 장치(61)와 통신하거나, 또는 네트워크(4) 또는 인트라넷과 같은 다른 네트워크(7)를 통하여 원격으로 통신한다. 예를 들어, 저장소 영역 네트워크(storage area network, SAN)(8)는 제2 저장소 장치(62)를 제공할 수 있고, 네트워크 부착 저장소(network attached storage, NAS)(9)는 제3 저장소 장치(63)를 제공할 수 있으며, 파일 서버(63)는 제4 저장소 장치(64)를 제공할 수 있다. 저장소 장치(6)들의 개수는 변경될 수 있다. 예를 들어, SAN(8) 또는 NAS(9)는 하나 이상의 저장소 장치를 제공할 수 있고 및/또는 하나 이상의 SAN 또는 NAS가 제공될 수 있는데, 이들 각각이 적어도 하나의 저장소 장치(6)를 제공한다. 저장소 장치(6)를 제공하는 시스템의 다른 형태가 이용될 수 있는데, 즉, 공통 인터넷 파일 시스템(common internet file systems, CIFS, 미도시), 광학 디스크(예를 들어 DVD) 드라이브 및 USB 드라이브들이 이용될 수 있다. 저장소 장치(6)의 개수는 시간에 따라서 변동될 수 있다. 예를 들어, 저장소 장치(6)들은 추가되거나 제거될 수 있다. 저장소 장치(6)의 구성도 역시 변경될 수 있다.
이하에서 더 상세히 설명되겠지만, 저장소 장치(6)는 집합적으로 단일 저장소 볼륨(26)(도 4)을 제공하고, 클러스터(27)(도 4)로 구성된다.
파일 서비스 제공자(5)는 네트워크(7)를 통하여 가상 파일 레퍼런스(virtual file reference) 및 실제 파일 간의 매핑을 위한 제1 메타데이터 서버(111) 및 선택적인 제2 메타데이터 서버(112)와 통신할 수 있다. 파일 서비스 제공자(5)는 제1 메타데이터 서버(111)에 메타데이터를 기록하거나 이로부터 메타데이터를 독출할 수 있다. 그러나, 파일 서비스 제공자(51, 52, 53)들은 오직 제2 메타데이터 서버(112)로부터만 메타데이터를 독출할 수 있다. 제1 및 제2 메타데이터 서버(111, 112)들은 이하 각각 "액티브" 및 "패시브" 메타데이터 서버(111, 112)라고 불린다. 액티브 메타데이터 서버(111)는 메타데이터를 패시브 메타데이터 서버(112)로 복사할 수 있는데, 예를 들어, 주기적으로, 요청에 의하여, 또는 소정 트리거링에 응답하여 메타데이터를 패시브 메타데이터 서버(112)로 복사할 수 있다. 하나 이상의 패시브 메타데이터 서버(112)가 제공될 수 있다. 더 나아가, 각 메타데이터 서버(111, 112)들은 두 개 또는 그 이상의 서버 사이에 분산될 수 있다.
또한, 도 2를 참조하면, 파일 서비스 제공자(5) 및 메타데이터 서버(11)들은 개별 컴퓨터 시스템(12) 상에서 소프트웨어로 구현된다. 각 컴퓨터 시스템(12)은 프로세서(13), 메모리(14) 및 입력/출력(I/O) 인터페이스(15)를 포함할 수 있고, 이들은 버스(16)에 의해 동작 가능하도록 연결된다. 컴퓨터 시스템(12)은 하나 이상의 프로세서를 포함할 수 있다. I/O 인터페이스(15)는 네트워크 인터페이스(17), 하드 디스크 드라이브 또는 드라이브들의 형태인 저장소(18), 및 선택적으로는 착탈식 저장소(19)에 동작 가능하도록 연결된다. 키보드(미도시) 및 디스플레이(미도시)와 같은 주변 장치를 포함하는 다른 요소들이 임시적으로 또는 영구적으로 제공될 수도 있다.
컴퓨터 시스템(12)에 의하여 실행될 때 컴퓨터 시스템(12)으로 하여금 파일 서비스 제공자 또는 메타데이터 서버 프로세스를 제공하도록 야기하는 컴퓨터 프로그램 코드(201, 202)는 하드 디스크 드라이브(18) 상에 기록되고 프로세서(13)에 의하여 실행되도록 메모리(14)로 로드된다. 컴퓨터 프로그램 코드(201, 202)는 착탈식 저장소(19) 상에 기록되어 착탈식 저장소(19)로부터 전달될 수 있으며, 또는 원격 소스(미도시)로부터 네트워크 인터페이스(17)를 통하여 전달될 수 있다.
도 1 및 도 3을 참조하면, 각 파일 서비스 제공자(5)는 클라이언트(2, 3)와 인터페이싱하기 위한 제1 서비스 또는 제어기(21), 저장소 클러스터(27)(도 4)를 선택하기 위한 제2 서비스 또는 제어기(22), 클러스터(27)(도 4) 내의 한 저장소 장치(6)를 선택하기 위한 제3 서비스 또는 제어기(23), 클러스터(27)(도 4) 내 및 클러스터들 사이에서의 데이터의 복제 제어를 위한 제4 서비스 또는 제어기(24), 및 메타데이터 서버(111, 112)와의 인터페이싱을 위한 제5 서비스 또는 제어기(25)를 포함한다.
제1 서비스(21)는 파일로 액세스하려는 요청, 즉, 파일을 독출하고 기록하려는 요청으로서 클라이언트(2, 3)로부터 수신된 요청을 관리하고, 또한 도 3에 도시된 다른 성분들도 관리한다. 제1 서비스(21)는 본 명세서에서 "파일 서비스 관리자(file service manager)"라고 불린다.
제2 서비스(22)는 데이터를 기록할 때 클러스터(27; 도 4)를 선택하고, 본 명세서에서는 "할당 관리자(allocation manager)"라고 불린다. 이하에서 더 상세히 설명되겠지만, 할당 관리자(22)는 다른 할당 관리자(22)들과 통신한다. "마스터 할당 관리자"라고 불리는 한 할당 관리자(22M; 도 4)가 클러스터(27; 도 4)의 선택을 담당하도록 선택되고, 다른 할당 관리자(22)(들)는 해당 마스터 할당 관리자(22M; 도 4)에 대한 프록시(proxies)로서 동작한다. 선택된 할당 관리자(22M)는 변경될 수 있다.
기록하거나 독출하는 프로세스에서, 제3 서비스(23)는 저장소 장치(6)를 선택하고 그 가용성을 검증한다. 본 명세서에서, 제3 서비스(22)는 "클러스터 관리자"라고 불린다. 클러스터 관리자(23)는 한 저장소 장치(6)로부터 다른 저장소 장치(6)(들)로의 파일스트림의 복제를 트리거링한다. 또한, 클러스터 관리자(23)는 저장소 장치(6)들 사이에 독출 프로세스를 분산시킴으로써 스루풋(throughput; 단위시간당 처리량)을 증가시킨다. 클러스터 관리자(23)는 또한 클라이언트-저장소 장치 스루풋에 관련된 데이터를 수집한다. 스루풋 데이터는 기록 또는 독출 프로세스 동안에 클라이언트(2, 3)에 대한 빠른 응답을 가지는 저장소 장치(6)를 선택하는데 이용될 수 있다.
제4 서비스(24)는 본 명세서에서 "복제 서비스(replication service)"라고 불린다. 전술된 바와 같이, 복제 서비스(24)는 클러스터(27; 도 4) 내에의 그리고 클러스터(27; 도 4) 사이에의 데이터의 복제를 제어한다. 클러스터 관리자(23)는 저장소 장치(6)들 중 어느 것도 이용 불가능할 경우에 복제 트랜잭션을 로깅(logging)한다.
제5 서비스(25)는 본 명세서에서 "메타데이터 서버 인터페이스"라고 불린다. 메타데이터 서버 인터페이스(25)는 예를 들어 파일에 대한 정보와 같은 메타데이터를 액티브 메타데이터 서버(111)로 전송하고, 액티브 또는 패시브 메타데이터 서버(111, 112)로부터 메타데이터를 검색한다.
도 4를 참조하면, 저장소 장치(6)는 단일 저장소 볼륨 또는 저장소 공간(26)을 제공한다. 저장소 장치(6)는 클러스터(27)로 구성되는데, 이러한 클러스터(27)에서는 동일한 클러스터(27) 내에 있는 다른 저장소 장치(6)와 동일한 데이터를 저장하는데, 즉, 하나의 클러스터(27) 내에 있는 저장소 장치(6)들은 서로에 대해 미러(mirror) 구조를 갖는다. 명료성을 위하여 두 개의 클러스터(27)들 만이 도시된다. 한 클러스터(27)에서, 저장소 장치(6)는 상이한 액세스 구성, 예를 들어 상이한 네트워크 주소를 가진다. 각 파일 서비스 제공자(5)는 각 클러스터(27) 내의 적어도 하나의 저장소 장치(6)에 액세스할 수 있다.
메타데이터 서버(111, 112)들은 제1, 제2, 제3, 제4 및 제5 메타데이터 테이블(28, 29, 30, 31, 32)을 저장한다. 메타데이터는 (파일 압축 및 바이러스 검사와 같은) 필터들이 적용되기 이전에 가상 파일 레퍼런스를 파일의 실제 파일 레퍼런스 및 속성에 매핑하기 위한 정보를 포함한다. 메타데이터는 폴더 트리, 폴더 컨텐츠 데이터와 같은 다른 정보를 또한 포함하며, 각 파일 및 폴더용 제어 목록에 액세스하기도 한다.
제1 테이블(28)(이하, "가상 파일 시스템 엔티티 테이블"이라고 불림)은 가상 엔티티 식별자(33), 클러스터 식별자(34), 파일 또는 디렉토리와 같은 각 엔티티의 엔티티 타입(35), 및 물리 저장소 식별자(36) 내의 경로를 저장한다.
제2 테이블(29)(이하, "가상 파일 시스템 액세스 제어 목록"이라고 불림)은 가상 엔티티 식별자(37) 및 각 엔티티에 대한 액세스 목록(38)을 저장하고, 클라이언트 사용자와 같은 사용자의 보안 특권을 정의한다. 가상 파일 시스템 액세스 제어 목록(29)은 특정 엔티티에 대한 액세스 특권과 함께 독출, 기록, 생성, 삭제 및 변경 특권과 같은 해당 엔티티에 관련된 액세스 특권의 집합을 가지는 사용자들을 리스트로 나열한다.
클라이언트(2, 3)에 의하여 전송된 엔티티에 액세스하도록 하는 각각의 요청은 사용자의 신원(identity; ID)을 특정한다. 그러므로, 파일 서비스 제공자(5)가 소정 엔티티에 액세스하도록 하는 요청을 수신할 때마다, 이는 가상 파일 시스템 액세스 제어 목록(29)을 조사(interrogation)하는데, 예를 들어 엔티티 및 사용자에 관련된 해당 목록(29)의 일부를 검색하여 사용자의 액세스 특권을 검증한다.
제3 테이블(30)(이하 "가상 파일 시스템 엔티티 공유 목록"이라고 불림)은 가상 엔티티 식별자(39) 및 각 엔티티에 대한 액세스 목록(40)을 저장하고, 파일의 뷰잉(viewing)을 공유하도록 등록된 사용자에 의하여 초대된 미등록 사용자들("공유 뷰어(share viewer)"라고 불림)에 대한 액세스 특권을 정의한다. 가상 파일 시스템 엔티티 공유 목록(30)은, 액세스 특권이 일반적으로 예를 들어 독출만으로 제한된다는 점을 제외하고는 가상 파일 시스템 액세스 제어 목록(29)과 유사하다.
공유 뷰어들은 등록된 사용자들과는 다르게 식별되고 인증된다. 식별 및 인증은, 분산형 저장소 시스템(1)과 함께 확립된 신뢰 관계(trust relationship)를 가지는 외부 시스템(들)(미도시)에 의하여 수행될 수 있다.
가상 파일 시스템 엔티티 공유 목록(30)은, 예를 들어 공유 뷰어들이 분산형 저장소 시스템(1)으로 액세스하도록 허용되지 않는다면 생략될 수 있다.
제4 테이블(31)(이하 "논리 클러스터 메타데이터 테이블"이라고 불림)은 (논리) 클러스터 식별자(41) 및 각 클러스터(27)에 대한 (물리) 저장소 장치 식별자(42)를 저장한다. 논리 클러스터 메타데이터 테이블(31)은 클러스터 관리자(23)로 하여금 클러스터(27) 내의 저장소 장치(6)를 식별하도록 허용한다.
제5 테이블(32)(이하 "논리 클러스터 관련 테이블"이라고 불림)은 제1 클러스터 식별자(43), 제2 클러스터 식별자(44) 및 각 클러스터(27)에 대한 관계 타입(45)을 저장하고, 클러스터(27)들 간의 관계를 기술한다. 예를 들어, 논리 클러스터 관련 테이블(32)은 제1 클러스터(27A)가 제2 클러스터(27B)의 복제본(또는 미러 구조)임을 특정할 수 있다. 변형적으로는, 논리 클러스터 관련 테이블(32)이 제1 클러스터(27A)가 사전에 정의된 기준에 따라 제2 클러스터(27B) 내에 저장된 파일들에 대한 아카이브(archive)임을 특정할 수 있다. 한 아카이브는 거의 액세스되지 않는 파일 또는 특정 일자 전에 생성된 파일을 포함할 수 있다. 그러므로, 제1 클러스터(27A)는 제2 클러스터(27B) 내에 아카이빙된 파일들을 저장할 필요가 없다. 아카이빙된 파일들은 예를 들어 테이프 저장소 시스템 내에 저장될 수 있다.
이하에서 상세히 설명되겠지만, 시스템(1)은 클라이언트(2, 3)에게 파일 서비스를 제공하기 위하여 이용될 수 있다. 요청 및 응답은 세션을 가지지 않고(sessionlessly) 교환되므로, 상이한 파일 서비스 제공자(5)는 동일한 클라이언트(2, 3)로부터의 상이한 요청을 처리할 수 있다. 그러므로, 파일 서비스 제공자(5)는 클라이언트(2, 3)의 상태에 대한 정보를 저장할 필요가 없다. 그 대신에, 클라이언트(2, 3)는 그 상태에 대한 정보를 저장할 수 있고, 요청을 파일 서비스 제공자(5)로 전송할 때 이 정보를 공급할 수 있다. 예를 들어, 요청은 가상 파일 시스템 액세스 제어 목록(29) 내에 저장된 액세스 특권에 대해 사용자를 검증하는데 필요한 인증 정보를 포함할 수 있다.
기록(파일 생성)
도 4, 도 5a 및 도 5b를 참조하여, 지금부터 파일 기록 프로세스가 설명될 것이다.
도시된 실시예에서 개인용 컴퓨터(2)인 클라이언트는 파일 기록 요청(46)을 파일 서비스 제공자(5)의 파일 서비스 관리자(21)에게 전송한다(단계 W1). 파일 서비스 제공자(5)는 라우팅 메커니즘에 따라서 또는 네트워크(4; 도 1) 내의 부하 밸런서(load balancer, 미도시)에 의하여 선택된다. 파일 기록 요청(46)은 파일 데이터(48) 및 파일 타입 및 파일 크기와 같은 파일 속성(49)을 포함하는, 기록하려는 파일(47)을 포함한다.
파일 서비스 관리자(21)는 클러스터 할당 요청(50)을 할당 관리자(22)에게 전달한다(단계 W2). 이 요청(50)은 클러스터(27)를 선택하는데 이용되는 파일 속성(49)을 포함할 수 있다.
마스터 할당 관리자(22M)는 클러스터(27)를 선택하는데, 예를 들어 파일 속성(49) 및/또는 클러스터 속성 및 상태(미도시), 이를테면 가용 공간 및 이용 퍼센트에 기반하거나 또는 라운드 로빈(round robin)과 같은 어떤 다른 방식에 기반하여 클러스터(27)를 선택한다(단계 W3).
클러스터(27)가 선택되기 이전에, 할당 관리자(22)는 이것이 마스터 할당 관리자(22M)인지 여부를 결정한다. 만일 할당 관리자(22)가 마스터 할당 관리자(22M)이라면, 이것은 클러스터(27)를 선택한다. 만일 할당 관리자(22)가 마스터 할당 관리자(22M)가 아니라면, 할당 관리자(22)는 요청을 마스터 할당 관리자(22M)에게 전달하고, 마스터 할당 관리자(22M)가 클러스터(27)를 할당하고 클러스터 식별자를 반환한다.
할당 관리자(22)는 선택된 클러스터(27) 내의 저장소 장치(6)를 선택하도록 하는 명령(51)을 이용하여 클러스터 관리자(23)를 호출한다(단계 W4). 클러스터 관리자(23)는 저장소 장치(6)를 선택한다(단계 W5). 클러스터 관리자(23)는 이러한 선택을 파일 서비스 관리자(21) 및 저장소 장치(6) 사이의 최대 네트워크 가용성(network availability)에 기반하여 수행한다. 네트워크 가용성은 할당 관리자(22) 및 클러스터 관리자(23)에 의하여 예를 들어 주기적으로 소정 시간에 수집된 네트워크 상태 정보를 이용하여 결정될 수 있다.
클러스터 관리자(23)는 소정 경로를 가지는 파일 스트림(53)을 저장소 장치(6) 내에 생성하도록 하는 명령(52)을 저장소 장치(6)에 전송한다(단계 W6). 저장소 장치(6)는 파일 스트림(53)을 생성한다(단계 W7). 고유 파일 핸들러(unique file handler)는 저장소 장치(6)의 파일 스트림(53) 내의 제1 기록가능 블록에 (포인터 P를 이용하여) 포인팅하는 파일 스트림(53)과 관련된다. (파일 스트림(53)을 식별하는) 파일 핸들러의 신원(54)은 클러스터 관리자(23)에게 반환된다(단계 W8).
클러스터 관리자(23)는 파일 핸들러 신원(54), 경로(55) 및 클러스터 신원(56)을 할당 관리자(22)에게 반환하는데(단계 W9), 할당 관리자(22)는 다시금 해당 정보를 파일 서비스 관리자(21)에게 반환한다(단계 W10).
파일 서비스 관리자(21)는 압축 및/또는 바이러스 검사와 같은 기록 필터를 파일 데이터(48)에 적용하고(단계 W11) 필터링된 파일 데이터(57)를 개방 파일 스트림(53)에 기록한다(단계 W12). 파일 스트림(53)에는 필터링된 파일 데이터(57)가 채워진다. 한 블록이 채워지면, 저장소 장치는 후속하는 가용한 빈 블록을 포인팅하도록 포인터 P를 전진(advance)시킨다.
필터링된 파일 데이터(57)가 기록되면, 파일 서비스 관리자(21)는 파일 스트림(53)을 폐쇄하도록 하는 명령(59)을 클러스터 관리자(23)에게 전송한다(단계 W13). 클러스터 관리자(23)는 파일 스트림(53)을 폐쇄하도록 하는 명령(60)을 저장소 장치(6)에 전송한다(단계 W14). 저장소 장치(6)는 파일 종료(end of file; EOF) 마커(61)를 해당 파일 스트림(53)에 기록하고(단계 W15), 해당 포인터를 해제하고(free), 저장소 장치(6)에 의하여 제공된 파일 할당 테이블과 같은 저장소 시스템 할당 테이블(미도시)을 갱신한다.
그러면, 클러스터 관리자(23)는 동일한 클러스터(27) 내의 다른 저장소 장치(6)에 저장된 파일 스트림(53)의 복제를, 복제 서비스(24; 도 2)에 명령(미도시)을 전송함으로써, 트리거링한다(단계 W16).
파일 서비스 관리자(21)는 메타데이터 서버 인터페이스(25)를 통하여 메타데이터를 가상 파일 시스템 엔티티 테이블(28), 가상 파일 시스템 액세스 제어 목록(29), 가상 파일 시스템 엔티티 공유 목록(30), 논리 클러스터 메타데이터 테이블(31) 및 논리 클러스터 관련 테이블(32)에 필요한 경우 기록하도록 하는 명령(62)을 메타데이터 서버(111)로 전송한다(단계 W17). 메타데이터 서버(111)는 파일 정보를 기록하고(단계 W18), 가상 파일 식별자(63)를 해당 파일 서비스 관리자(21)에 반환한다(단계 W19). 파일 서비스 관리자(21)는 해당 파일이 기록되었다는 확인(64)을, 가상 파일 식별자(63)를 포함하여, 클라이언트(2)에 전송한다(단계 W20).
전술된 바와 같이, 할당 관리자(22)는 이 할당 관리자(22)가 마스터 할당 관리자(22M)인지의 여부를 결정한다. 지금부터 이러한 결정이 이루어지는 프로세스가 더 상세히 설명될 것이다.
마스터 할당 관리자의 선택
도 4 및 도 6을 참조하면, 할당 관리자(22)는 클러스터(27)를 할당하도록 하는 요청(48)(도 5a)을 수신한다(단계 S1). 할당 관리자(22)는 마스터 할당 관리자(22M)가 알려져 있는지의 여부를 검사한다(단계 S2).
만일 할당 관리자(22)가 마스터 할당 관리자(22M)의 신원를 알고 있다면, 할당 관리자(22)는 이 할당 관리자(22)가 마스터 할당 관리자(22M)인지의 여부를 결정한다(단계 S3). 만일 이 할당 관리자(22)가 마스터 할당 관리자(22M)이라면, 할당 관리자(22)는 이 요청을 처리하고 전술된 바와 같이 클러스터(27)를 선택한다(단계 S4). 만일 이 할당 관리자(22)가 마스터 할당 관리자(22M)가 아니라면, 할당 관리자(22)는 해당 요청을 마스터 할당 관리자(22M)에 전달한다(단계 S5). 할당 관리자(22)는 마스터 할당 관리자(22M)로부터 클러스터 식별자를 수신한다.
만일 할당 관리자(22)가 마스터 할당 관리자(22M)의 신원을 알지 못한다면, 할당 관리자(22)는 마스터의 신원에 대해 문의하는 쿼리(query; 65)를 다른 할당 관리자(22)(들)에게 전송한다(단계 S6). 할당 관리자(22)는 리플라이(reply)를 대기하고(단계 S7), 이러한 쿼리가 "타임아웃"되는지(즉, 소정 기간이 지나기 전에 응답이 수신되는지)를 검사한다(단계 S8).
만일 질의가 타임아웃되기 전에 할당 관리자(22)가 리플라이(66)를 수신하면, 할당 관리자(22)는 마스터 할당 관리자(22M)의 신원을 저장하고(단계 S9), 해당 요청을 마스터 할당 관리자(22M)에 전달한다(단계 S5).
만일 질의가 타임아웃되기 전에 할당 관리자(22)가 어떠한 리플라이도 수신하지 않으면, 할당 관리자(22)는 이 할당 관리자(22)가 마스터임을 주장하는 메시지(67)를 전송한다(단계 S11). 할당 관리자(22)는 이의제기(objection)를 대기하고(단계 S11), 이러한 메시지(67)가 타임아웃되는지의 여부를 검사한다.
만일 요청이 타임아웃되기 전에 할당 관리자(22)가 어떠한 이의제기도 수신하지 않으면, 할당 관리자(22)는 이 할당 관리자(22) 자신을 마스터 할당 관리자(22M)로서 등록하고(단계 S13), 클러스터를 선택하도록 하는 요청을 수행한다(단계 S4).
그러나, 만일 할당 관리자(22)가 이의제기(68)를 수신한다면, 할당 관리자(22)는 식별 쿼리(identification query; 65)를 다른 할당 관리자(22)에게 다시 전송한다(단계 S6).
할당 관리자(22)는 커리(65) 및 메시지(67)를 계속 리스닝한다.
만일 할당 관리자(22)가 쿼리(65) 또는 메시지(67)를 수신하고, 할당 관리자(22)가 마스터 할당 관리자(22M)이라면, 할당 관리자(22)는 각각 응답(66) 또는 이의제기(68)를 전송한다. 할당 관리자(22)가 다른 할당 관리자(22)로부터 메시지(67)를 수신하거나 파일 서비스 제공자(5)가 비활성화되면(예를 들어 셧다운(shut down)되면) 마스터 할당 관리자(22M)가 퇴거(relegation)될 수 있다.
기록(파일 갱신)
도 4, 도 7a 및 도 7b를 참조하여, 지금부터 파일 갱신 프로세스가 설명될 것이다.
파일 갱신 프로세스는 전술된 파일 기록 프로세스와 유사하다. 간략하게 말하면, 할당 관리자(22)는 파일의 이전 버전에 할당된 공간을 해제하고, 파일의 신규 버전에 대한 공간을 할당하며, 파일의 신규 버전이 새롭게 생성된 파일인 것처럼 파일의 신규 버전을 기록한다.
클라이언트(2)는 파일 갱신 요청(69)을 파일 서비스 제공자(5)의 파일 서비스 관리자(21)에게 전송한다(단계 U1). 파일 기록 요청(69)은, 신규 파일 데이터(71), 신규 파일 속성(72), 및 예를 들어 이전에 저장된 파일(47)과 같은 이전 파일에 대한 가상 파일 식별자(73)를 포함하는 갱신 파일(70)을 포함한다.
파일 서비스 관리자(21)는 어떤 클러스터(27)에 이전 파일이 저장되는지를 알기 위한 쿼리(74)를 액티브 메타데이터 서버(111)에 전송한다(단계 U2). 변형적으로는, 파일 서비스 관리자(21)가 그 쿼리(74)를 패시브 메타데이터 서버(112)에 전송한다. 액티브 메타데이터 서버(111)는 이전 클러스터 식별자(75), 저장소 장치(6) 내의 경로(76) 및 이전 파일 속성(77)을 반환한다(단계 U3).
갱신 프로세스(단계들 U4 내지 U22)는 전술된 기록 프로세스의 단계들 W2 내지 W20과 유사한 방식으로 진행한다.
파일 서비스 관리자(21)는 클러스터 할당 요청(78)을 할당 관리자(22)에게 전달하고(단계 U4), 마스터 할당 관리자(22M)는 클러스터(27)를 선택한다(단계 U5).
할당 관리자(22)는 선택된 클러스터(27) 내의 저장소 장치(6)를 선택하도록 하는 명령(79)을 전송한다(단계 U6). 클러스터 관리자(23)는 저장소 장치(6)를 선택한다(단계 U7). 클러스터 관리자(23)는 소정 경로를 가지는 신규 파일스트림(81)을 저장소 장치(6) 내에 생성하도록 하는 명령(80)을 저장소 장치(6)에 전송한다(단계 U8). 저장소 장치(6)는 파일스트림(81)을 생성하고(단계 U9), 신규 파일 핸들러 식별자(82)를 클러스터 관리자(23)에게 전달한다(단계 U10). 클러스터 관리자(23)는 파일스트림(81), 상응하는 경로(83), 및 클러스터 식별자(84)를 할당 관리자(22)에게 반환한다(단계 U11). 할당 관리자(22)는 이러한 정보를 파일 서비스 관리자(21)에게 전달한다(단계 U12).
파일 서비스 관리자(21)는 기록 필터를 신규 파일 데이터(71)에 적용하고(단계 U13) 필터링된 신규 파일 데이터(85)를 개방 파일스트림(81)에 기록한다(단계 U14).
필터링된 신규 파일 데이터(85)가 기록되면, 파일 서비스 관리자(21)는 개방 파일스트림(81)을 폐쇄하도록 하는 명령(87)을 클러스터 관리자(23)에게 전송한다(단계 U15).
클러스터 관리자(23)는 개방 파일스트림(81)을 폐쇄하도록 하는 명령(88)을 저장소 장치(6)에 전송한다(단계 U16). 저장소 장치(6)는 파일 종료(EOF) 마커(89)를 개방 파일스트림(81)에 기록하고(단계 U17), 포인터를 해제하며, 저장소 장치 파일 시스템 할당 테이블(미도시)을 갱신한다.
클러스터 관리자(23)는 명령(미도시)을 복제 서비스(24)(도 2)에 전송함으로써, 동일한 클러스터(27)의 다른 저장소 장치(6) 내의 개방 파일스트림(81)의 복제를 트리거링한다(단계 U18).
파일 서비스 관리자(21)는 메타데이터 서버 인터페이스(25)를 통하여, 필요할 경우 갱신 메타데이터를 기록하도록 하는 명령(25)을 메타데이터 서버(111)에 전송한다(단계 U19). 메타데이터 서버(111)는 갱신 파일 정보를 기록하고(단계 U20), 신규 가상 파일 식별자(91)를 파일 서비스 관리자(21)에게 반환한다(단계 U21). 파일 서비스 관리자(21)는 해당 파일이 기록되었다는 확인(92)을 클라이언트(2)에 전송한다(단계 U22).
파일 서비스 관리자(21)는 이전 파일을 삭제하도록 하는 명령(93)을 클러스터 관리자(23)에게 전송한다(단계 U23). 할당 관리자(22)는 이전 파일스트림을 저장하고 있는 저장소 장치(6)를 찾아내고(단계 U24) 이전 파일스트림을 삭제하도록 하는 명령(94)을 저장소 장치(6)에 전송한다(단계 U25). 클러스터 관리자(23)는 저장소 장치(6)의 복제 동작을 트리거링한다(단계 U26).
독출
도 4 및 도 8을 참조하여, 지금부터 파일 독출 프로세스가 설명될 것이다.
클라이언트(2)는 파일 독출 요청(95)을 파일 서비스 제공자(5)의 파일 서비스 관리자(21)에게 전송한다(단계 R1). 파일 독출 요청(95)은 파일, 예를 들어 이전에 저장된 파일(42) 또는 갱신 파일(68)에 대한 가상 파일 식별자(96)를 포함한다.
파일 서비스 관리자(21)는 파일이 어느 클러스터(27)에 저장되었는지를 알기 위한 쿼리(97)를 패시브 메타데이터 서버(112)에 전송한다(단계 R2). 파일 서버 관리자(21)는 쿼리(97)를 액티브 메타데이터 서버(111)에 전송할 수 있다.
패시브 메타데이터 서버(112)는 클러스터 식별자(98), 저장소 장치(6) 내의 경로(99) 및 파일 속성(100)을 반환한다(단계 R3).
파일 서비스 관리자(21)는 저장소 장치(6)를 선택하도록 하는 요청(101)을 클러스터 관리자(23)에게 전송한다(단계 R4). 클러스터 관리자(23)는 최대 네트워크 가용성에 따라서 클러스터 식별자(98)에 의하여 식별된 클러스터(27) 내의 저장소 장치(6)를 선택하고(단계 R5), 파일 스트림(103)을 개방하도록 하는 명령(102)을 저장소 장치(6)에 전송한다(단계 R6). 만일 클러스터 관리자(23)가 저장소 장치(6)에 액세스할 수 없으면, 클러스터 관리자(23)는 논리 클러스터 관련 테이블(32)을 참조하여 해당 클러스터(27)가 미러링(mirroring)되거나 또는 아카이빙(archiving)되는 지를 결정한다. 만일 해당 클러스터(27)가 미러링되거나 또는 아카이빙된다면, 클러스터 관리자(23)는 신규 명령(미도시)을 다른 저장소 장치(6)에 전송한다. 저장소 장치(6)는 파일 스트림(99)으로부터 파일 데이터(104)를 검색하고, 이를 클러스터 관리자(23)에게 전달한다(단계 R7). 클러스터 관리자(23)는 파일 데이터(104)를 파일 서비스 관리자(21)에게 전달한다(단계 R8). 파일 서비스 관리자(21)는 독출 필터를 파일 데이터(104)에 적용하고(단계 R9), 필터링된 파일 스트림(105)을 클라이언트(2)에 전달한다(단계 R10).
전술된 바와 같이, 사용자는 액세스 특권을 "공유 뷰어"라고 불리는 다른 사용자에게 부여할 수 있다. 사용자는 공유 뷰어에게 액세스 특권을 부여하여 공유 뷰어에게 메시지를 이메일로 보내거나 문자로 보냄으로써 파일 또는 폴더 위치를 통지할 수 있는데, 여기서 메시지는 파일 또는 폴더에 액세스하기 위한, 파일 서비스 제공자(5) 및 가상 파일을 식별하는 예를 들어 자원 위치 지정자(uniform resource locator; URL)의 형태를 가지는 링크를 포함한다. 공유 뷰어는 해당 링크를 선택하고, 이에 의하여 파일 또는 폴더를 검색하도록 하는 요청을 파일 서비스 제공자(5)에게 전송한다.
본 명세서에 전술된 시스템(1)은 저장소 인프라(storage infrastructure)와 무관하게 파일 서비스를 제공하는데 이용될 수 있다. 이는 중복 사이트들을 통한 플러그가능 스트림 처리로 통합 저장소 공간(consolidated storage space)을 통해 분산된 파일 입력 및 출력을 제공할 수 있다.
파일 서비스는 이동 전화 통신 네트워크 제공자에 의하여 이동 전화 핸드셋을 가진 사용자에게 제공될 수도 있고, 기술 산업화전문가(technology integrator) 및 회사에 의해서도 이동 전화 핸드셋을 가진 사용자에게 제공될 수도 있다.
시스템(1)은 파일 메타데이터를 파일 데이터로부터 분리하고, 실제 파일 시스템(즉, 저장소 장치)을 통합함으로써, 실제 파일 시스템이 단일 저장소 유닛으로 보이도록 한다. 이는, 저장소 용량, 저장소 장치 스루풋 등과 같은 저장소 장치의 한계를 축소하거나 이를 회피하는데 도움을 줄 수 있다.
시스템(1)은 파일 스트림을 처리할 수 있고, 파일 스트림을 처리를 위하여 블록으로 분할하지 않아도 된다.
본 명세서에서 전술된 실시예들에 대한 수정이 다양하게 이루어질 수 있다는 점이 이해될 것이다.
본 발명은 분산형 저장소 시스템, 분산형 저장소 관리 시스템, 및 분산형 저장소에 대한 액세스를 관리하기 위한 서버에 적용될 수 있다.

Claims (32)

  1. 복수 개의 저장소 장치들을 포함하는 분산형 저장소(distributed storage)에 대한 액세스를 관리하기 위한 서버에 있어서, 상기 서버는,
    적어도 하나의 다른 서버와 통신하여, 서버들 중 어느 하나의 서버가 데이터를 저장할 때 이용될 분산형 저장소의 일부를 선택하는지를 결정하도록 구성되며, 상기 서버들은 상기 서버 및 상기 다른 서버들을 포함하는 것을 특징으로 하는 서버.
  2. 제1항에 있어서, 상기 서버는,
    상기 분산형 저장소 내에 데이터를 저장하도록 하는 요청을 클라이언트로부터 수신하기 위한 제1 제어기; 및
    상기 데이터를 저장할 때 이용될 분산형 저장소의 일부를 선택하기 위한 제2 제어기;를 포함하며, 상기 제2 제어기는, 적어도 하나의 다른 제2 제어기와 통신하여, 제2 제어기들 중 어느 하나의 제2 제어기가 이용될 분산형 저장소의 일부를 선택하는지를 결정하도록 구성되고, 상기 제2 제어기들은 상기 제2 제어기 및 상기 다른 제2 제어기들을 포함하는 것을 특징으로 하는 서버.
  3. 제1항에 있어서, 상기 서버는,
    상기 다른 서버들 중 하나가 이용될 분산형 저장소의 일부를 선택할 것임을 결정함에 응답하여, 상기 다른 서버들 중 하나로부터 상기 분산형 저장소의 일부의 신원(identity; ID)을 수신하도록 구성되는 것을 특징으로 하는 서버.
  4. 제1항에 있어서, 상기 서버는,
    상기 서버가 이용될 분산형 저장소의 일부를 선택할 것임을 결정함에 응답하여, 상기 분산형 저장소의 일부를 선택하도록 구성되는 것을 특징으로 하는 서버.
  5. 제1항에 있어서, 상기 서버는,
    상기 분산형 저장소 내의 저장소 장치들 중 하나를 선택하도록 구성되는 것을 특징으로 하는 서버.
  6. 제2항에 있어서, 상기 서버는,
    상기 제2 제어기로부터의 명령(instruction)에 응답하여, 상기 분산형 저장소 내의 저장소 장치들 중 하나를 선택하는 제3 제어기;를 더 포함하는 것을 특징으로 하는 서버.
  7. 제5항에 있어서,
    상기 데이터가 한 저장소 장치 내에 저장된 후에, 상기 데이터가 상기 저장소 장치들 중 하나와는 다른 저장소 장치들에 복제되게 하도록 구성되는 것을 특징으로 하는 서버.
  8. 제1항에 있어서,
    상기 데이터가 저장된 후에, 상기 데이터에 관련된 정보를 메타데이터 서버에 송신하도록 구성되는 것을 특징으로 하는 서버.
  9. 제8항에 있어서, 상기 서버는,
    상기 메타데이터 서버로부터의 상기 데이터에 상응하는 가상 파일 식별자(virtual file identifier)를 수신하도록 구성되는 것을 특징으로 하는 서버.
  10. 제9항에 있어서, 상기 서버는,
    상기 가상 파일 식별자를 클라이언트에 송신하도록 구성되는 것을 특징으로 하는 서버.
  11. 제1항에 있어서,
    파일을 독출 또는 갱신하도록 하는 요청에 응답하여, 상기 파일에 관련된 정보에 대한 요청을 적어도 하나의 메타데이터 서버 중 어느 하나에 송신하도록 구성되는 것을 특징으로 하는 서버.
  12. 제1항에 있어서,
    상기 저장소 장치들 중 적어도 하나는 원격 저장소 시스템에 의하여 제공되는 것을 특징으로 하는 서버.
  13. 제12항에 있어서,
    상기 원격 저장소 시스템은 저장소 액세스 네트워크를 포함하는 것을 특징으로 하는 서버.
  14. 분산형 저장소 관리 시스템에 있어서,
    제1항 내지 제13항 중 어느 한 항에 따른 복수 개의 액세스 관리 서버들; 및
    분산형 저장소 내에 저장된 파일들에 대한 정보를 저장하기 위한 메타데이터 서버;를 포함하는 것을 특징으로 하는 분산형 저장소 관리 시스템.
  15. 제14항에 있어서, 상기 메타데이터 서버는 상기 액세스 관리 서버들로부터 분리되는 것을 특징으로 하는 분산형 저장소 관리 시스템.
  16. 제14항에 있어서, 상기 분산형 저장소 관리 시스템은,
    적어도 하나의 부가적인 메타데이터 서버;를 더 포함하고,
    상기 액세스 관리 서버들은 각각 파일들에 관련된 정보를 상기 메타데이터 서버에 전송하고 적어도 하나의 부가적인 메타데이터 서버에는 전송하지 않도록 구성되는 것을 특징으로 하는 분산형 저장소 관리 시스템.
  17. 제16항에 있어서, 상기 액세스 관리 서버들은 각각 파일들에 관련된 정보에 대한 요청들을 적어도 하나의 부가적인 메타데이터 서버 중 어느 하나에 전송하도록 구성되는 것을 특징으로 하는 분산형 저장소 관리 시스템.
  18. 분산형 저장소 시스템에 있어서,
    제14항에 따른 분산형 저장소 관리 시스템; 및
    복수 개의 저장소 장치들을 포함하는 분산형 저장소;를 포함하는 것을 특징으로 하는 분산형 저장소 시스템.
  19. 제18항에 있어서, 상기 저장소 장치들은 복수의 저장소 장치 타입들을 포함하는 것을 특징으로 하는 분산형 저장소 시스템.
  20. 복수 개의 저장소 장치들을 포함하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버를 동작시키는 방법에 있어서, 상기 방법은,
    적어도 하나의 다른 서버와 통신하여, 서버들 중 어느 하나의 서버가 데이터를 저장할 때 이용될 분산형 저장소의 일부를 선택하는지를 결정하는 단계;를 포함하며, 상기 서버들은 상기 서버 및 상기 다른 서버들을 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  21. 제20항에 있어서, 상기 방법은,
    제1 제어기가 상기 분산형 저장소 내에 데이터를 저장하도록 하는 요청을 수신하는 단계; 및
    제2 제어기가 적어도 하나의 다른 제2 제어기와 통신하여, 제2 제어기들 중 어느 하나의 제2 제어기가 이용될 분산형 저장소의 일부를 선택하는지를 결정하는 단계;를 포함하며, 상기 제2 제어기들은 상기 제2 제어기 및 상기 다른 제2 제어기들을 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  22. 제20항에 있어서, 상기 방법은,
    상기 다른 서버들 중 하나가 이용될 분산형 저장소의 일부를 선택할 것임을 결정하고 상기 다른 서버들 중 하나로부터 이용될 분산형 저장소의 일부의 신원을 수신하는 단계;를 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  23. 제20항에 있어서, 상기 방법은,
    상기 서버가 이용될 분산형 저장소의 일부를 선택할 것임을 결정하고 이용될 분산형 저장소의 일부를 선택하는 단계;를 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  24. 제20항에 있어서, 상기 방법은,
    분산형 저장소 내의 저장소 장치들 중 하나를 선택하는 단계;를 더 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  25. 제24항에 있어서, 상기 방법은,
    상기 데이터가 한 저장소 장치 내에 저장된 후에, 상기 데이터가 상기 저장소 장치들 중 하나와는 다른 저장소 장치들에 복제되게 하는 단계;를 더 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  26. 제20항에 있어서, 상기 방법은,
    상기 데이터가 저장된 후에, 상기 데이터에 관련된 정보를 메타데이터 서버에 송신하는 단계;를 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  27. 제26항에 있어서, 상기 방법은,
    상기 메타데이터 서버로부터 상기 데이터에 상응하는 가상 파일 식별자(virtual file identifier)를 수신하는 단계;를 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  28. 제27항에 있어서, 상기 방법은,
    상기 가상 파일 식별자를 클라이언트에 송신하는 단계;를 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  29. 제20항에 있어서, 상기 방법은,
    파일을 독출 또는 갱신하도록 하는 요청을 수신하고 상기 파일에 관련된 정보에 대한 요청을 적어도 하나의 메타데이터 서버 중 어느 하나에 송신하는 단계;를 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  30. 제20항에 있어서, 상기 방법은,
    상기 데이터를 상기 분산형 저장소의 선택된 일부 내에 저장하는 단계;를 포함하는 것을 특징으로 하는 분산형 저장소에 대한 액세스를 관리하기 위한 서버의 동작 방법.
  31. 삭제
  32. 컴퓨터 프로그램이 기록된 컴퓨터에 의하여 독출가능한 매체로서, 상기 컴퓨터 프로그램은 컴퓨터에 의하여 실행될 때 상기 컴퓨터로 하여금 제20항 내지 제30항 중 어느 한 항에 따른 방법을 수행하도록 하는 컴퓨터 프로그램 명령어들을 포함하는, 컴퓨터에 의하여 독출가능한 매체.
KR1020087028408A 2006-05-23 2007-04-13 분산형 저장소 KR101366220B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP06114443.2 2006-05-23
EP06114443.2A EP1860846B1 (en) 2006-05-23 2006-05-23 Method and devices for managing distributed storage
US11/439,784 2006-05-23
US11/439,784 US8255420B2 (en) 2006-05-23 2006-05-23 Distributed storage
PCT/EP2007/053657 WO2007134918A1 (en) 2006-05-23 2007-04-13 Distributed storage

Publications (2)

Publication Number Publication Date
KR20090047393A KR20090047393A (ko) 2009-05-12
KR101366220B1 true KR101366220B1 (ko) 2014-02-21

Family

ID=38269044

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087028408A KR101366220B1 (ko) 2006-05-23 2007-04-13 분산형 저장소

Country Status (3)

Country Link
JP (1) JP5584910B2 (ko)
KR (1) KR101366220B1 (ko)
WO (1) WO2007134918A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8682845B2 (en) * 2008-07-09 2014-03-25 The Boeing Company Secure high performance multi-level security database systems and methods
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
KR101092658B1 (ko) 2008-12-22 2011-12-13 한국전자통신연구원 분산 파일 시스템 및 그의 메타데이터 서버 선택 방법
KR101312573B1 (ko) * 2009-12-18 2013-09-30 한국전자통신연구원 메타데이터 접근 장치 및 방법
WO2011110534A2 (en) * 2010-03-08 2011-09-15 Universitat Politècnica De Catalunya Virtual shell
EP2387200B1 (en) 2010-04-23 2014-02-12 Compuverde AB Distributed data storage
US9396290B2 (en) 2011-06-09 2016-07-19 Cloudian Holdings, Inc. Hybrid data management system and method for managing large, varying datasets
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US8650365B2 (en) 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210098A1 (en) * 2004-03-16 2005-09-22 Fujitsu Limited Storage management system and method
US20050283649A1 (en) * 2004-06-03 2005-12-22 Turner Bryan C Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332782A (ja) * 1993-03-22 1994-12-02 Hitachi Ltd ファイルサーバシステム及びそのファイルアクセス制御方法
JPH103421A (ja) * 1995-11-20 1998-01-06 Matsushita Electric Ind Co Ltd 仮想ファイル管理システム
JP2000207370A (ja) * 1999-01-20 2000-07-28 Matsushita Electric Ind Co Ltd 分散ファイル管理装置及び分散ファイル管理システム
US6952737B1 (en) * 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US6944785B2 (en) * 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
JP4265245B2 (ja) * 2003-03-17 2009-05-20 株式会社日立製作所 計算機システム
JP4448719B2 (ja) * 2004-03-19 2010-04-14 株式会社日立製作所 ストレージシステム
JP2006113663A (ja) * 2004-10-12 2006-04-27 Nec Fielding Ltd データ保管システム、その方法、ファイルサーバ、端末およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210098A1 (en) * 2004-03-16 2005-09-22 Fujitsu Limited Storage management system and method
US20050283649A1 (en) * 2004-06-03 2005-12-22 Turner Bryan C Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality

Also Published As

Publication number Publication date
JP2009537918A (ja) 2009-10-29
JP5584910B2 (ja) 2014-09-10
KR20090047393A (ko) 2009-05-12
WO2007134918A1 (en) 2007-11-29

Similar Documents

Publication Publication Date Title
KR101366220B1 (ko) 분산형 저장소
US8255420B2 (en) Distributed storage
US11330055B2 (en) Data retrieval in a hybrid cloud
JP5160408B2 (ja) サービス要求を満足するためのリソース・マネージャを選択するための方法、システム、およびコンピュータ・プログラム
KR100974149B1 (ko) 네임스페이스에 대한 정보 유지 방법, 시스템 및 컴퓨터 판독가능 저장 매체
US9122397B2 (en) Exposing storage resources with differing capabilities
US20020103907A1 (en) System and method of storing data to a recording medium
JP2008511881A (ja) インスタントメッセージングプラットフォームに基づきオンラインファイルストレージを実現する通信システム及び方法
JP2015512071A (ja) クラウド・ベースの分散型データ・システム
JP2003248611A (ja) 記憶管理統合システム、および、その記憶管理制御方法
AU2011203246B2 (en) Content processing between locations workflow in content delivery networks
US8627446B1 (en) Federating data between groups of servers
US20200026689A1 (en) Limited deduplication scope for distributed file systems
US20240223655A1 (en) Data processing system, data processing method, and related apparatus
US7539813B1 (en) Methods and apparatus for segregating a content addressable computer system
US11533377B2 (en) Hybrid cloud
KR20030043837A (ko) 피투피 기반의 가상 네트워크 스토리지 방법
EP1860846B1 (en) Method and devices for managing distributed storage
RU2656739C1 (ru) Способ и система хранения данных
US12111946B2 (en) Hybrid cloud
CN116233115B (zh) 一种海量数据文件高效持续受控共享分发方法及系统
KR102540746B1 (ko) 실물 매체를 사용한 미디어 컨텐츠 제공 방법 및 장치
CN117955701A (zh) 实现数据安全交换的方法、系统和电子设备及存储介质
JPH09179771A (ja) ファイリングシステム及びファイリングシステムに適用するオブジェクト検索方法
JP2006251892A (ja) ウェブ・コンテンツ更新履歴管理システム及び方法

Legal Events

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

Payment date: 20170817

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee