[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20090047393A - 분산형 저장소 - Google Patents

분산형 저장소 Download PDF

Info

Publication number
KR20090047393A
KR20090047393A KR1020087028408A KR20087028408A KR20090047393A KR 20090047393 A KR20090047393 A KR 20090047393A KR 1020087028408 A KR1020087028408 A KR 1020087028408A KR 20087028408 A KR20087028408 A KR 20087028408A KR 20090047393 A KR20090047393 A KR 20090047393A
Authority
KR
South Korea
Prior art keywords
file
storage
server
distributed storage
distributed
Prior art date
Application number
KR1020087028408A
Other languages
English (en)
Other versions
KR101366220B1 (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 US11/439,784 external-priority patent/US8255420B2/en
Priority claimed from EP06114443.2A external-priority patent/EP1860846B1/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
    • 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
    • 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
    • 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)를 수신하도록 구성되고, 자신이 이용될 분산형 저장소의 일부를 선택한다는 결정에 응답하여, 상기 분산형 저장소의 일부를 선택하도록 구성되는 것을 특징으로 한다.
서버는 분산형 저장소의 일부 내의 저장소 장치들 중 하나를 선택하도록 구성되는 것을 특징으로 한다.
서버는 상기 제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) 및 실제 파일 간의 매핑을 위한 파일 메타데이터 서버(111) 및 선택적 제2 메타데이터 서버(112)와 통신할 수 있다. 파일 서비스 제공자(5)는 제1 메타데이터 서버(111)에 메타데이터를 기록하거나 이로부터 독출할 수 있다. 그러나, 파일 서비스 제공자(51, 52, 53)들은 오직 제2 메타데이터 서버(112)로부터만 메타데이터를 독출할 수 있다. 제1 및 제2 메타데이터 서버(111, 112)들은 이하 각각 "액티브" 및 "패시브" 메타데이터 서버(111, 112)라고 불린다. 액티 브 메타데이터 서버(111)는 메타데이터를 패시브 메타데이터 서버(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)가 클러스터(27, 도 4)를 담당하도록 선택되고, 다른 할당 관리자(22)(들)는 해당 마스터 할당 관리자(22M)에 대한 대리인(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)들 중 어느 것이 이용 불가능할 경우에 복제 트랜젝션의 로그 정보를 생성한다.
제5 서비스(25)는 본 명세서에서 "메타데이터 서버 인터페이스"라고 불린다. 메타데이터 서버 인터페이스(25)는 예를 들어 파일에 대한 정보와 같은 메타데이터를 액티브 메타데이터 서버(111)로 전송하고, 액티브 또는 패시브 메타데이터 서버(111, 112)로부터 메타데이터를 검색한다.
도 4를 참조하면, 저장소 장치(6)는 단일 저장소 볼륨 또는 저장소 공간(26) 을 제공한다. 저장소 장치(6)는 클러스터(27)내에 구현되는데, 이러한 클러스터(27)에서는 동일한 클러스터(27) 내에 있는 다른 저장소 장치(6)와 동일한 데이터를 저장하는데, 즉, 하나의 클러스터(27) 내에 있는 저장소 장치(6)들은 서로에 대해 미러이다. 명료성을 위하여 두 개의 클러스터(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)을 특정한다. 그러므로, 파일 서비스 제공자(5)가 주어진 엔티티로의 액세스에 대한 요청을 수신할 때마다, 이것은 가상 파일 시스템 액세스 제어 목록(29)에 질의(interrogate)하는데, 예를 들어 엔티티 및 사용자에 관련된 해당 목록(29)의 일부를 검색하여 사용자의 액세스 특권을 검증한다.
제3 테이블(30)(이하 "가상 파일 시스템 엔티티 공유 목록"이라고 불림)은 가상 엔티티 식별자(39) 및 각 엔티티에 대한 액세스 목록(40)을 저장하고, 파일의 보기를 공유하도록 등록된 사용자에 의하여 초대된 미등록 사용자들("공유 뷰어(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)과 같은 다른 방식에 기반하여 선택한다(단계 W3).
클러스터(27)가 선택되기 이전에, 할당 관리자(22)는 이것이 마스터 할당 관리자(22M)인지 여부를 결정한다. 만일 할당 관리자(22)가 마스터 할당 관리자(22M)이라면, 이것은 클러스터(27)를 선택한다. 그렇지 않다면, 할당 관리자(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). 고유 파일 핸들러(file handler)는 저장소 장치(6) 내의 파일 스트림(53) 내의 제1 쓰기가능 블록에 포인팅하는(포인터 P를 이용하여) 파일 스트림(53)과 관련된다. 파일 핸들러의 신원(54)(파일 스트림(53)을 식별하는 것)은 클러스터 관리자(23)로 반환된다(단계 W8).
클러스터 관리자(23)는 파일 핸들러 신원(54), 경로(55) 및 클러스터 신원(56)을 할당 관리자(22)로 반환하는데(단계 W9), 이것은 그러면 해당 정보를 파일 서비스 관리자(21)로 반환한다(단계 W10).
파일 서비스 관리자(21)는 쓰기 필터, 이를 테면 압축 및/또는 바이러스 체크를 파일 데이터(48)에 적용하고(단계 W11) 필터링된 파일 데이터(57)를 오픈 파일 스트림(53)으로 기록한다(단계 W12). 파일 스트림(53)에는 필터링된 파일 데이터(57)가 가득 차게 된다. 블록이 가득 차면, 저장 장치는 해당 포인터 P를 증가시켜 후속하는 가용한 빈 블록을 포인팅하도록 한다.
필터링된 파일 데이터(57)가 기록되면, 파일 서비스 관리자(21)는 파일 스트림(53)을 닫도록 하는 명령(59)을 클러스터 관리자(23)로 전송한다(단계 W13). 클러스터 관리자(23)는 파일 스트림(53)을 닫도록 하는 명령(60)을 저장소 장치(6)로 전송한다(단계 W14). 저장소 장치(6)는 파일 종료(EOF) 마커(61)를 해당 파일 스트림(52)으로 기록하고(단계 W15), 해당 포인터를 해제하고(free), 저장소 장치(6)에 의하여 제공된 바와 같은 파일 할당 테이블과 같은 저장소 시스템 할당 테이블(미도시)을 갱신한다.
그러면, 클러스터 관리자(23)는 저장된 파일 스트림(53)의 동일한 클러스터(27) 내의 다른 저장소 장치(6) 내의 복제 동작을 복제 서비스(24)(도 2)로 명령(미도시)을 전송함으로써 트리거링한다(단계 W16).
파일 서비스 관리자(21)는 메타데이터 서버 인터페이스(25)를 통하여 메타데이터를 가상 파일 시스템 엔티티 테이블(28), 가상 파일 시스템 액세스 제어 목 록(29), 가상 파일 시스템 엔티티 공유 목록(30), 논리적 클러스터 메타데이터 테이블(31) 및 논리적 클러스터 관련성 테이블(32)로 필요에 따라서 기록하도록 하는 명령(62)을 메타데이터 서버(111)로 전송한다(단계 W17). 메타데이터 서버(111)는 파일 정보를 기록하고(단계 W18), 가상 파일 식별자(63)를 해당 파일 서비스 관리자(21)로 반환한다(단계 W19). 파일 서비스 관리자(21)는 해당 파일이 기록되었음에 대한 확인(64)을 가상 파일 식별자(63)를 포함하여 클라이언트(2)로 전송한다(단계 W20).
전술된 바와 같이, 할당 관리자(22)는 이것이 마스터 할당 관리자(22M)인지 여부를 결정한다. 이러한 동작이 달성되는 프로세스에 대해서 이하 상세히 설명된다.
마스터 할당 관리자의 선택
도 4 및 도 6을 참조하면, 할당 관리자(22)는 클러스터(27)를 할당하려는 요청(48)(도 5a)을 수신한다(단계 S1). 할당 관리자(22)는 마스터 할당 관리자(22M)가 알려지는지 여부를 검사한다(단계 S2).
만일 할당 관리자(22)가 마스터 할당 관리자(22M)의 신원를 알고 있다면, 할당 관리자(22)는 이것이 마스터 할당 관리자(22M)인지 여부를 결정한다(단계 S3). 그렇다면, 할당 관리자(22)는 이 요청을 처리하고 전술된 바와 같이 클러스터(27)를 선택한다(단계 S4). 만일 그렇지 않다면, 할당 관리자(22)는 해당 요청을 마스 터 할당 관리자(22M)로 전달한다(단계 S5). 할당 관리자(22)는 마스터 할당 관리자(22M)로부터 클러스터 식별자를 수신한다.
만일 할당 관리자(22)가 마스터 할당 관리자(22M)의 신원을 알지 못한다면, 할당 관리자(22)는 마스터의 신원에 대해서 묻는 질의(65)를 다른 할당 관리자(22)(들)에게 전송한다(단계 S6). 할당 관리자(22)는 응답을 대기하고(단계 S7), 이러한 질의가 "타임아웃"되는지 점검한다(즉, 응답이 소정 시간 기간이 지나기 이전에 수신되는지 점검한다)(단계 S8).
만일 할당 관리자(22)가 질의가 타임 아웃되기 이전에 질의(66)를 수신하면, 이것은 마스터 할당 관리자(22M)의 식별자를 저장하고(단계 S9), 해당 요청을 마스터 할당 관리자(22M)로 전달한다(단계 S5).
만일 할당 관리자(22)가 질의가 타임 아웃되기 이전에 아무런 응답도 수신하지 않으면, 이것은 자신이 마스터라고 주장하는 메시지(67)를 전송한다(단계 S11). 할당 관리자(22)는 반대에 대해서 대기하고(단계 S11), 이러한 메시지(67)가 타임 아웃되는지 여부를 점검한다.
만일 할당 관리자(22)가 요청이 타임 아웃되기 이전에 아무런 반대도 수신하지 않으면, 이것은 자신을 마스터 할당 관리자(22M)로서 등록하고(단계 S13), 클러스터를 선택하는 요청을 수행한다(단계 S4).
그러나, 만일 할당 관리자(22)가 반대(68)를 수신한다면, 이것은 식별 질 의(65)를 다른 할당 관리자(22)로 다시 전송한다(단계 S6).
할당 관리자(22)는 연속적으로 질의(65) 및 메시지(67)에 대해서 청취한다.
만일 이것이 질의(65) 또는 메시지(67)를 수신하고, 이것이 마스터 할당 관리자(22M)라면, 이것은 각각 응답(66) 또는 반대(68)를 전송한다. 마스터 할당 관리자(22M)는 다른 할당 관리자(22)로부터 메시지(67)를 수신하거나 파일 서비스 제공자(5)가 비활성화되면(예를 들어 꺼지면) 다시 원상회복(relegated)될 수 있다.
쓰기(파일 갱신)
도 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)로 전송함으로써, 파일스트림(81)의 동일한 클러스터(27) 내의 다른 저장소 장치(6) 내로의 복제를 트리거링한다(단계 U18).
파일 서비스 관리자(21)는 메타데이터 서버 인터페이스(25)를 통하여, 필요할 경우 갱신된 메타데이터를 기록하라는 명령(25)을 메타데이터 서버(111)로 전송한다. 메타데이터 서버(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)에 액세스할 수 없으면, 이것은 논리적 클러스터 관련성 테이블(32)을 참조하여 해당 클러스터(27)가 미러링되거나(mirrored) 아카이빙(archived)되는지 결정한다. 그렇다면, 클러스터 관리자(23)는 신규한 명령(미도시)을 다른 저장소 장치(6)로 전달한 다. 저장소 장치(6)는 파일 스트림(99)으로부터 파일 데이터(104)를 검색하고, 이것을 클러스터 관리자(23)로 전달한다(단계 R7). 클러스터 관리자(23)는 파일 데이터(104)를 파일 서비스 관리자(21)로 전달한다(단계 R8). 파일 서비스 관리자(21)는 독출 필터를 파일 데이터(104)로 적용하고(단계 R9), 필터링된 파일 시스템(105)을 클라이언트(2)로 전달한다(단계 R10).
전술된 바와 같이, 사용자는 액세스 특권을 다른 사용자("공유 뷰어"라고 불리는 사용자들)에게 허용할 수 있다. 사용자는 공유 뷰어로의 액세스 특권을 허용할 수 있고, 공유 뷰어에게 메시지를 이메일로 보내거나 문자 메시지로 보냄으로써 파일 또는 폴더 위치를 통지할 수 있는데, 여기서 메시지는 파일 또는 폴더에 액세스하기 위하여 파일 서비스 제공자(5) 및 가상 파일을 식별하는 예를 들어 범용 자원 지시자(uniform resource locator, URL)의 형태를 가지는 링크를 포함하는 공유 뷰어에게 전달된다. 공유 뷰어는 해당 링크를 선택하고, 이에 의하여 파일 또는 폴더를 검색하라는 요청을 파일 서비스 제공자(5)로 전송한다.
그러므로, 본 명세서에서 전술된 시스템(1)은 저장소 인프라구조와 무관하게 파일 서비스를 제공하기 위하여 이용될 수 있다. 이것은 중복 사이트들을 처리하는 삽입가능한 고상(consolidated) 저장소 공간을 통하여 분산된 파일 입력 및 출력을 제공할 수 있다.
파일 서비스는 이동 전화 네트워크 제공자에 의하여 이동 전화 핸드셋을 가진 사용자에게 제공될 수 있고, 기술 집적기(technology integrator) 및 회사에 의해서도 제공될 수 있다.
시스템(1)은 파일 메타데이터를 파일 데이터로부터 분리하고, 실제 파일 시스템(즉, 저장소 장치)을 통합함으로써, 그들이 단일 저장소 유닛으로서 간주되도록 한다. 이것은, 저장 용량, 저장 장치 스루풋 등과 같은 저장 장치 제한 요소들을 최소화하거나 이를 회피하는데 도움을 준다.
시스템(1)은 파일 스트림을 처리할 수 있고, 파일 스트림을 처리를 위하여 블록으로 분할할 필요가 없다.
전술된 실시예들에는 다양한 수정이 가해질 수 있다는 점이 이해될 것이다.
본 발명은 분산형 저장소 시스템, 분산형 저장소 관리 시스템, 및 분산형 저장소로의 액세스를 관리하기 위한 서버에 적용될 수 있다.

Claims (32)

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

Applications Claiming Priority (5)

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

Publications (2)

Publication Number Publication Date
KR20090047393A true KR20090047393A (ko) 2009-05-12
KR101366220B1 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101312573B1 (ko) * 2009-12-18 2013-09-30 한국전자통신연구원 메타데이터 접근 장치 및 방법

Families Citing this family (12)

* 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 한국전자통신연구원 분산 파일 시스템 및 그의 메타데이터 서버 선택 방법
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
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
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
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
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
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system

Family Cites Families (10)

* 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 株式会社日立製作所 計算機システム
JP2005266933A (ja) * 2004-03-16 2005-09-29 Fujitsu Ltd ストレージ管理システム及びストレージ管理方法
JP4448719B2 (ja) * 2004-03-19 2010-04-14 株式会社日立製作所 ストレージシステム
US7634566B2 (en) * 2004-06-03 2009-12-15 Cisco Technology, Inc. Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality
JP2006113663A (ja) * 2004-10-12 2006-04-27 Nec Fielding Ltd データ保管システム、その方法、ファイルサーバ、端末およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101312573B1 (ko) * 2009-12-18 2013-09-30 한국전자통신연구원 메타데이터 접근 장치 및 방법

Also Published As

Publication number Publication date
JP2009537918A (ja) 2009-10-29
JP5584910B2 (ja) 2014-09-10
KR101366220B1 (ko) 2014-02-21
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) サービス要求を満足するためのリソース・マネージャを選択するための方法、システム、およびコンピュータ・プログラム
US20020103907A1 (en) System and method of storing data to a recording medium
US20130254163A1 (en) Cloud-based distributed data system
JP2008511881A (ja) インスタントメッセージングプラットフォームに基づきオンラインファイルストレージを実現する通信システム及び方法
JP2003248611A (ja) 記憶管理統合システム、および、その記憶管理制御方法
US8627446B1 (en) Federating data between groups of servers
AU2011203246A1 (en) Content processing between locations workflow in content delivery networks
US11221993B2 (en) Limited deduplication scope for distributed file systems
WO2001033829A9 (en) Internet-based shared file service and distributed access control
JP4481903B2 (ja) 文書配信システム、文書管理クライアント、文書配信方法およびプログラム
JP4345309B2 (ja) ネットワークストレージ装置
KR20030043837A (ko) 피투피 기반의 가상 네트워크 스토리지 방법
US20240223655A1 (en) Data processing system, data processing method, and related apparatus
US11533377B2 (en) Hybrid cloud
EP1860846B1 (en) Method and devices for managing distributed storage
KR102540746B1 (ko) 실물 매체를 사용한 미디어 컨텐츠 제공 방법 및 장치
US20220405415A1 (en) Hybrid cloud
KR20040084372A (ko) 네트워크를 이용한 파일관리 방법
KR100879880B1 (ko) 전자캐비넷(e-Cabinet)서비스 제공방법 및시스템
EP2034420A1 (en) A method and an apparatus for operating right
JP3762161B2 (ja) 複製サーバ装置
JP3639704B2 (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