KR20170075009A - 파일 액세스 방법, 시스템, 및 호스트 - Google Patents

파일 액세스 방법, 시스템, 및 호스트 Download PDF

Info

Publication number
KR20170075009A
KR20170075009A KR1020177014507A KR20177014507A KR20170075009A KR 20170075009 A KR20170075009 A KR 20170075009A KR 1020177014507 A KR1020177014507 A KR 1020177014507A KR 20177014507 A KR20177014507 A KR 20177014507A KR 20170075009 A KR20170075009 A KR 20170075009A
Authority
KR
South Korea
Prior art keywords
virtual space
address
space
virtual
target file
Prior art date
Application number
KR1020177014507A
Other languages
English (en)
Other versions
KR101944757B1 (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20170075009A publication Critical patent/KR20170075009A/ko
Application granted granted Critical
Publication of KR101944757B1 publication Critical patent/KR101944757B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F17/30091
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30194
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 파일 액세스 방법, 시스템 및 호스트를 개시한다. 이러한 방법은, 호스트가, 타깃 파일의 제1 가상 공간에 관한 정보를 획득하는 단계 - 상기 제1 가상 공간은 관리 노드에 의해, 글로벌 가상 어드레스 공간 내에서 타깃 파일에 할당됨 - ; 제1 가상 공간에 관한 정보에 따라 호스트의 로컬 가상 어드레스 공간 내에서 제2 가상 공간을 타깃 파일에 할당하는 단계; 제1 가상 공간과 제2 가상 공간 사이의 대응 관계를 구축하는 단계; 제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라 제2 가상 공간을 액세스하는 제2 액세스 요청을 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환하는 단계 - 제1 액세스 요청의 제1 가상 공간의 어드레스는 제1 저장 노드의 장치 정보를 포함함 -; 및 네트워크 장치가 제1 액세스 요청을 제1 저장 노드로 라우팅할 수 있도록, 제1 액세스 요청을 네트워크 장치에 송신하는 단계를 포함한다. 본 발명의 실시예에 따르면, 파일 액세스 효율은 개선될 수 있다.

Description

파일 액세스 방법, 시스템, 및 호스트{FILE ACCESS METHOD, SYSTEM AND HOST}
본 발명은 저장 기술 분야에 관련된 것으로서, 보다 상세하게는, 파일 액세스 방법, 시스템 및 호스트에 관한 것이다.
PCM(Phase Change Memory), ReRAM(Resistive RAM), MRAM(Magnetic Random Access Memory)와 같은 새로운 NVM(non-violate memory) 매체는 DRAM(Dynamic Random Access Memory)과 유사한 읽기 및 쓰기 특성을 가지며, 액세스 될 메모리 버스 상에 장착될 수 있다. 현재, 비- 휘발성 메모리 매체(non-violate memory medium)를 기반으로 한 스토리지 시스템은 업계에서 연구 중심이다.
파일 시스템을 원격에서 액세스하기 위한 기존의 방법은 NFS(Network File System) 또는 CIFS(Common Internet File System) 프로토콜 등을 사용하는 것을 포함한다. 이러한 일반적인 파일 액세스 방식은 기본적으로 RPC(Remote Procedure Call)를 기반으로 하며 TCP/IP(Transmission Control Protocol/Internet Protocol)를 통한 액세스 방식이다. NVM 기반 스토리지 시스템의 경우, 파일 시스템에 원격에서 액세스하기 위한 기존 방법이 여전히 사용되면, 호스트의 커널 TCP/IP 프로토콜 스택(kernel TCP/IP protocol stack)은 여전히 액세스 요청을 처리해야 하므로 액세스 효율성은 상대적으로 낮다.
본 발명의 실시예는 파일 액세스 효율을 개선하기 위해, 파일 액세스 방법, 시스템, 및 호스트를 제공한다.
제1 측면에 따르면, 파일 액세스 방법이 제공되고, 이러한 파일 엑세스 방법은 상기 파일 액세스 방법은 분산 저장 시스템(distributed storage system)에 적용되고, 상기 분산 저장 시스템은 관리 노드, 복수의 저장 노드, 및 네트워크 장치를 포함하고, 상기 분산 저장 시스템 내의 각 저장 노드의 로컬 가상 어드레스 공간(local virtual address space)은 상기 분산 저장 시스템의 글로벌 가상 어드레스 공간(global virtual address space)의 일부에 대응하고, 상기 파일 액세스 방법은, 호스트(host)가, 액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하는 단계 - 상기 제1 가상 공간은 상기 관리 노드에 의해 상기 글로벌 가상 어드레스 공간 내에서 상기 타깃 파일에 할당된 공간임 -; 상기 호스트가, 상기 제1 가상 공간에 관한 정보에 따라 상기 호스트의 로컬 가상 어드레스 공간 내에서 제2 가상 공간을 상기 타깃 파일에 할당하는 단계; 상기 호스트가, 상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계를 구축하는 단계; 상기 호스트가, 상기 제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라, 상기 제2 가상 공간을 액세스하는 제2 액세스 요청을 상기 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환하는 단계 - 상기 제1 액세스 요청은 상기 제1 가상 공간의 어드레스를 포함하고, 상기 제1 가상 공간의 어드레스는 제1 저장 노드의 장치 정보를 포함하며, 상기 제1 저장 노드는 상기 복수의 저장 노드 내에 있고 상기 타깃 파일을 저장하도록 구성된 저장 노드임 -; 및 상기 호스트가, 상기 네트워크 장치가 상기 제1 가상 공간의 어드레스 내에 있는 제1 저장 노드의 장치 정보에 따라 상기 제1 액세스 요청을 상기 제1 저장 노드에 라우팅(route)할 수 있도록, 상기 제1 액세스 요청을 상기 네트워크 장치로 송신하는 단계를 포함한다.
제1 측면을 참조하면, 가능한 제1 구현 방식에서, 상기 호스트가, 액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하는 단계는, 상기 호스트가, 상기 타깃 파일의 메타 데이터를 획득하고, 상기 타깃 파일의 메타 데이터로부터 상기 타깃 파일의 상기 제1 가상 공간에 관한 정보를 획득하는 단계를 포함한다.
제1 측면 또는 제1 측면의 가능한 제1 구현 방식을 참조하면, 제1 측면의 가능한 제2 구현 방식에서, 상기 제1 가상 공간에 관한 정보는 상기 제1 가상 공간의 시작 어드레스 및 크기를 포함한다.
제1 측면의 가능한 제2 구현 방식을 참조하면, 제1 측면의 가능한 제3 구현 방식에서, 상기 호스트가, 상기 제1 가상 공간에 관한 정보에 따라 상기 호스트의 로컬 가상 어드레스 공간 내에서 제2 가상 공간을 상기 타깃 파일에 할당하는 단계는 상기 호스트가, 상기 호스트의 로컬 가상 어드레스 공간 내에서, 상기 제1 가상 공간과 동일한 크기를 가지는 상기 제2 가상 공간을 상기 타깃 파일에 할당하는 단계를 포함한다.
제1 측면의 가능한 제3 구현 방식을 참조하면, 제1 측면의 가능한 제4 구현 방식에서, 상기 호스트가, 상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계를 구축하는 단계는, 상기 호스트가, 상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계인 이하: LVA =GVA - GVA_start) + LVA_start를 구축하는 단계를 포함하고, 상기 GVA_start는 상기 제1 가상 공간의 시작 어드레스이고 LVA_start는 상기 제2 가상 공간의 시작 어드레스이며 GVA는 상기 제1 가상 공간의 어드레스이고 LVA는 상기 제1 가상 공간의 어드레스에 대응하는 상기 제2 가상 공간의 어드레스이다.
제1 측면 또는 제1 측면의 가능한 제1 내지 제4 구현 방식을 참조하면, 제1 측면의 가능한 제5 구현 방식에서, 상기 제1 가상 공간의 어드레스의 비트 수는 2N이고 N은 상기 제1 저장 노드의 로컬 가상 어드레스 공간의 어드레스의 비트 수이며, 상기 제1 가상 공간의 어드레스의 N 개의 최상위 비트(most significant bit)는 상기 제1 저장 노드의 장치 정보를 포함하고, 상기 제1 가상 공간의 어드레스의 N 개의 최하위 비트(least significant bit)는 상기 제1 저장 노드에 있고 상기 타깃 파일을 저장하는 데 사용되는 상기 로컬 가상 어드레스 공간의 어드레스이다.
제2 측면에 따르면, 시스템이 제공되고, 이러한 시스템은 호스트 및 분산 저장 시스템을 포함하고, 상기 분산 저장 시스템은 관리 노드, 복수의 저장 노드, 및 네트워크 장치를 포함하며, 상기 분산 저장 시스템 내에서 각 저장 노드의 로컬 가상 어드레스 공간은 상기 분산 저장 시스템의 글로벌 가상 어드레스 공간의 일부와 대응하고, 상기 호스트는, 액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하고 - 상기 제1 가상 공간은 상기 관리 노드에 의해 상기 글로벌 가상 어드레스 공간 내에서 상기 타깃 파일에 할당된 공간임 -, 상기 제1 가상 공간에 관한 정보에 따라, 상기 호스트의 로컬 가상 어드레스 공간 내에서, 제2 가상 공간을 상기 타깃 파일에 할당하고, 상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계를 구축하고, 상기 제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라, 상기 제2 가상 공간을 액세스하는 제2 액세스 요청을 상기 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환하고 - 상기 제1 액세스 요청은 상기 제1 가상 공간의 어드레스를 포함하고, 상기 제1 가상 공간의 어드레스는 제1 저장 노드의 장치 정보를 포함하며, 상기 제1 저장 노드는 상기 복수의 저장 노드 내에 있고 상기 타깃 파일을 저장하도록 구성된 저장 노드임 -, 상기 네트워크 장치가, 상기 제1 가상 공간의 어드레스 내에 있는 제1 저장 노드의 장치 정보에 따라 상기 제1 액세스 요청을 상기 제1 저장 노드에 라우팅할 수 있도록, 상기 제1 액세스 요청을 상기 네트워크 장치로 송신하도록 구성된다.
제2 측면을 참조하면, 가능한 제1 구현 방식에서, 상기 호스트는 구체적으로, 상기 타깃 파일의 메타 데이터를 획득하고, 상기 타깃 파일의 메타 데이터로부터 상기 타깃 파일의 상기 제1 가상 공간에 관한 정보를 획득하도록 구성된다.
제2 측면 또는 제2 측면의 가능한 제1 구현 방식을 참조하면, 제2 측면의 가능한 제2 구현 방식에서, 상기 제1 가상 공간에 관한 정보는 상기 제1 가상 공간의 시작 어드레스 및 크기를 포함한다.
제2 측면의 가능한 제2 구현 방식을 참조하면, 제2 측면의 가능한 제3 구현 방식에서, 상기 호스트는 구체적으로, 상기 호스트의 로컬 가상 어드레스 공간 내에서, 상기 제1 가상 공간과 동일한 크기를 가지는 상기 제2 가상 공간을 상기 타깃 파일에 할당하도록 구성된다.
제2 측면의 가능한 제3 구현 방식을 참조하면, 제2 측면의 가능한 제4 구현 방식에서, 상기 호스트는 구체적으로, 상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계인 이하: LVA =GVA - GVA_start) + LVA_start를 구축하도록 구성되고, 상기 GVA_start는 상기 제1 가상 공간의 시작 어드레스이고 LVA_start는 상기 제2 가상 공간의 시작 어드레스이며 GVA는 상기 제1 가상 공간의 어드레스이고 LVA는 상기 제1 가상 공간의 어드레스에 대응하는 상기 제2 가상 공간의 어드레스이다.
제2 측면 또는 제2 측면의 가능한 제1 내지 제4 구현 방식을 참조하면, 제2 측면의 가능한 제5 구현 방식에서, 상기 제1 가상 공간의 어드레스의 비트 수는 2N이고, N은 상기 제1 저장 노드의 로컬 가상 어드레스 공간의 어드레스의 비트 수이며, 상기 제1 가상 공간의 어드레스의 N 개의 최상위 비트는 상기 제1 저장 노드의 장치 정보를 포함하고, 상기 제1 가상 공간의 어드레스의 N 개의 최하위 비트는 상기 제1 저장 노드에 있고 상기 타깃 파일을 저장하는 데 사용되는 상기 로컬 가상 어드레스 공간의 어드레스이다.
제3 측면에 따르면, 호스트가 제공되고, 이러한 호스트는, 액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하고 - 상기 제1 가상 공간은, 분산 저장 시스템의 글로벌 가상 어드레스 공간 내에서 상기 분산 저장 시스템 내의 관리 노드에 의해 상기 타깃 파일에 할당된 공간이고, 상기 분산 저장 시스템 내에서 각 저장 노드의 로컬 가상 어드레스 공간은 상기 글로벌 가상 어드레스 공간의 일부에 대응함 -, 상기 호스트의 로컬 가상 어드레스 공간 내에서, 상기 제1 가상 공간에 관한 정보에 따라 제2 가상 공간을 상기 타깃 파일에 할당하며, 상기 제1 가상 공간과 제2 가상 공간 사이의 대응 관계를 구축하고, 상기 제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라, 상기 제2 가상 공간을 액세스하는 제2 액세스 요청을 상기 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환하도록 구성된 처리 모듈 - 상기 제1 액세스 요청은 상기 제1 가상 공간의 어드레스를 포함하고, 상기 제1 가상 공간의 어드레스는 제1 저장 노드의 장치 정보를 포함하며, 상기 제1 저장 노드는 상기 복수의 저장 노드 내에 있고 상기 타깃 파일을 저장하도록 구성된 저장 노드 임; 및 상기 네트워크 장치가, 상기 제1 가상 공간의 어드레스 내에 있는 제1 저장 노드의 장치 정보에 따라 상기 제1 액세스 요청을 상기 제1 저장 노드에 라우팅할 수 있도록, 상기 제1 액세스 요청을 상기 분산 저장 시스템 내의 네트워크 장치에 송신하도록 구성된 송신 모듈 포함한다.
제3 측면을 참조하면, 가능한 제1 구현 방식에서, 상기 타깃 파일의 메타 데이터를 획득하고, 상기 타깃 파일의 메타 데이터로부터 상기 타깃 파일의 상기 제1 가상 공간에 관한 정보를 획득하도록 구성된다.
제3 측면 또는 제3 측면의 가능한 제1 구현 방식을 참조하면, 제3 측면의 가능한 제2 구현 방식에서, 상기 제1 가상 공간에 관한 정보는 상기 제1 가상 공간의 시작 어드레스 및 크기를 포함한다.
제3 측면의 가능한 제2 구현 방식을 참조하면, 제3 측면의 가능한 제3 구현 방식에서,상기 처리 모듈은 구체적으로, 상기 호스트의 로컬 가상 어드레스 공간 내에서, 상기 제1 가상 공간과 동일한 크기를 가지는 상기 제2 가상 공간을 상기 타깃 파일에 할당하도록 구성된다.
제3 측면의 가능한 제3 구현 방식을 참조하면, 제3 측면의 가능한 제4 구현 방식에서, 상기 처리 모듈은 구체적으로, 상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계인 이하: LVA =GVA - GVA_start) + LVA_start를 구축하도록 구성되고, 상기 GVA_start는 상기 제1 가상 공간의 시작 어드레스이고 LVA_start는 상기 제2 가상 공간의 시작 어드레스이며 GVA는 상기 제1 가상 공간의 어드레스이고 LVA는 상기 제1 가상 공간의 어드레스에 대응하는 상기 제2 가상 공간의 어드레스이다.
제3 측면 또는 제3 측면의 가능한 제1 내지 제4 구현 방식을 참조하면, 제3 측면의 가능한 제5 구현 방식에서, 상기 제1 가상 공간의 어드레스의 비트 수는 2N이고, N은 상기 제1 저장 노드의 로컬 가상 어드레스 공간의 어드레스의 비트 수이며, 상기 제1 가상 공간의 어드레스의 N 개인, 호스트의 최상위 비트는 상기 제1 저장 노드의 장치 정보를 포함하고, 상기 제1 가상 공간의 어드레스의 N 개의 최하위 비트는 상기 제1 저장 노드에 있고 상기 타깃 파일을 저장하는 데 사용되는 상기 로컬 가상 어드레스 공간의 어드레스이다.
제4 측면에 따르면, 프로그램 코드를 저장하는 컴퓨터 판독 가능한 기억 매체를 포함하는 컴퓨터 프로그램 제품이 제공되고, 상기 프로그램 코드에 포함되는 명령은 제1 측면의 방법을 실행하는데 사용된다.
전술한 기술적 해결 수단에 기초하여, 본 발명의 본 실시예에서의 파일 액세스 방법, 시스템, 및 호스트에 의하면, 분산 저장 시스템 내의 파일이 액세스 될 때, 호스트의 로컬 가상 어드레스 공간 내의 제2 가상 공간이 그 파일에 할당되고, 제2 가상 공간을 액세스하는 제2 액세스 요청은 분산 저장 시스템 내에 있고 파일의 제1 가상 공간에 액세스하는 제1 액세스 요청으로 변환되고, 제1 액세스 요청은 네트워크에 송신된다. 이러한 방식으로, 분산 저장 시스템 내의 파일이 위치하는 물리적 저장 공간은 호스트의 커널을 사용하지 않고 직접 액세스 될 수 있으므로, 지연이 감소되고 파일 액세스 효율이 개선 될 수있다.
본 발명의 실시예에서의 기술적 해결 수단을 보다 명확하게 설명하기 위해, 이하에서 실시예를 설명하기 위해 요청되는 첨부 도면을 간단히 설명한다. 명백하게, 다음의 설명에서의 첨부 도면은 단지 본 발명의 일부 실시예를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 애플리케이션 시나리오의 개략도이다.
도 2는 본 발명의 일 실시예에 따른 파일 액세스 방법의 개략적 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 파일 공간의 개략도이다.
도 4는 본 발명의 일 실시예에 따른 시스템의 개략적 블록도이다.
도 5는 본 발명의 일 실시예에 따른 호스트의 개략적 블록도이다.
도 6은 본 발명의 일 실시예에 따른 호스트의 개략적 구조도이다.
이하, 본 발명의 실시예의 첨부 도면을 참조하여, 본 발명의 실시예의 기술적 해결 수단을 명확하고 완전하게 설명한다. 명백하게, 설명된 실시예는 본 발명의 모든 실시예가 아닌 일부이다.
본 발명의 실시예에서의 기술적 해결 수단은 다양한 저장 시스템에 적용될 수 있으며, 특히 비휘발성 저장 매체에 기초한 분산 저장 시스템에 적용될 수 있음을 이해해야 한다.
또한, 본 발명의 실시예에서, "가상 어드레스 공간"이라는 용어는 "가상 공간", 즉 "가상 어드레스 공간"과 "가상 공간"이 같은 의미로 표현될 수 있다. 마찬가지로 "로컬 물리적 저장 공간"과 "로컬 물리적 공간"은 동일한 의미를 가진다.
도 1은 본 발명의 일 실시예에 따른 애플리케이션 시나리오의 개략도이다. 도 1에서, 네트워크(140)를 사용하여 호스트(130), 저장 노드(120), 및 관리 노드(110)는 서로 연결되어 있다. 저장 노드(102), 관리 노드(110), 및 네트워크(140)는 분산 저장 시스템을 형성한다.
호스트(130)는 컴퓨터 일 수도 있고 다른 사용자 장비 일 수도 있으며, 호스트(130)는 네트워크를 이용하여 분산 저장 시스템과 통신할 수 있다. 호스트(130)는 서버, 데스크톱 컴퓨터 및 운영 시스템과 같은 현재 기술의 임의의 알려진 컴퓨팅 장치를 포함할 수 있고, 운영 체제 및 다른 애플리케이션 프로그램은 호스트(130)에 설치된다. 호스트(130)는 다수 존재할 수 있다. 호스트(130)는 분산 저장 시스템에 있는 파일에 액세스할 수 있다. 예를 들어, 호스트(130)는 파일 인터페이스 모듈을 사용하여 호스트 내의 애플리케이션 프로그램에 대해 파일 액세스 인터페이스를 제공할 수 있다.
저장 노드(120)는 파일 데이터를 저장하고 파일 액세스 요청을 처리하도록 구성된다. 저장 노드(120)는 적어도 한 유형의 비휘발성 메모리, 예를 들어 PCM, ReRAM, 및 MRAM과 같은 바이트 단위 어드레싱 및 액세스 기능을 갖는 새로운 NVM을 포함할 수 있다. 본 발명의 실시예에서, 파일은 NVM 메모리에 저장되고, 저장 노드(120)는 메모리 버스를 사용하여 새로운 NVM에 액세스 할 수 있다.
관리 노드(110)는 파일의 메타 데이터를 관리하고, 파일의 메타 데이터에 대하여 호스트의, 검색 요청, 업데이트 요청 등을 처리하도록 구성된다. 파일의 메타 데이터는 파일의 시작 주소, 할당된 공간의 크기, 및 파일의 실제크기와 같은 정보를 포함할 수 있다. 관리 노드(110)는 또한 분산 저장 시스템의 글로벌 가상 어드레스 공간을 관리하도록 구성 될 수있다.
관리 노드(110)와 저장 노드(120)는 결합될 수 있다. 즉, 노드는 관리 노드와 저장 노드 모두의 기능을 가질 수 있다.
본 발명의 실시예에서, 관리 노드는 독립적으로 배치될 수 있고(예를 들어, 도 1의 관리 노드(110)), 또는 관리 노드와 저장 노드 기능을 모두 가지는 노드 일 수 있다. 설명을 쉽게 하기 위해 다음은 설명을 위해 관리 노드를 예로서 사용한다.
네트워크(140)의 물리 계층 및 링크 계층은 이더넷, PCIE 스위치 네트워크, InfiniBand 네트워크, 광 네트워크 등을 기반으로 할 수 있다.
네트워크(140)는 액세스 요청 및 액세스 응답을 라우팅하도록 구성되고, 구체적으로 네트워크(140) 내의 네트워크 장치(예를 들어, 라우터 또는 스위치)에 의해 라우팅이 수행될 수 있다. 설명의 편의를 위해, 네트워크 장치를 설명하기 위한 예로서 사용한다.
도 2는 본 발명의 일 실시예에 따른 파일 액세스 방법(200)의 개략적 흐름도이다.
이러한 방법(200)은 분산 저장 시스템에 적용되고, 분산 저장 시스템은, 관리 노드, 복수의 저장 노드, 및 네트워크 장치를 포함한다. 분산 저장 시스템 내에서 각 저장 노드의 로컬 가상 어드레스 공간은 분산 저장 시스템의 글로벌 가상 어드레스 공간의 일부에 대응한다. 방법(200)은 호스트에 의해 실행된다.
S210. 호스트는 액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하고, 제1 가상 공간은 관리 노드에 의해 글로벌 가상 어드레스 공간 내에서 타깃 파일에 할당된 공간이다.
분산 저장 시스템의 글로벌 가상 어드레스 공간은 분산 저장 시스템 내의 파일 관리를 위해 가상화된 공간이다. 분산 저장 시스템 내에서 서로 다른 저장 노드의 로컬 가상 어드레스 공간은 분산 저장 시스템의 글로벌 가상 어드레스 공간의 상이한 부분에 대응한다. 예를 들어, 글로벌 가상 어드레스 공간의 제1 부분의 공간은 분산 저장 시스템 내의 제1 저장 노드의 로컬 가상 어드레스 공간에 매핑되고, 글로벌 가상 어드레스 공간의 제2 부분의 공간은 분산 저장 시스템 내의 제2 저장 노드에 매핑된다. 제1 부분의 공간과 제2 부분의 공간은 다르다. 본 발명의 본 실시예에서, 관리 노드는, 분산 저장 시스템의 글로벌 가상 어드레스 공간 내에서, 연속 공간의 섹션(제1 가상 공간으로 대표됨)을 타깃 파일에 할당한다. 분산 저장 시스템 내에서 각 저장 노드의 로컬 가상 어드레스 공간은 분산 저장 시스템의 글로벌 가상 어드레스 공간의 일부에 대응하기 때문에, 제1 저장 공간은, 글로벌 가상 어드레스 공간과 로컬 가상 어드레스 공간 사이의 대응관계에 따라 저장 노드의 로컬 가상 어드레스 공간에 매핑될 수 있다.
선택적으로, 본 발명의 실시예로서, 제1 가상 공간에 관한 정보는 제1 가상 공간의 시작 어드레스 및 크기를 포함할 수 있다.
글로벌 가상 어드레스 공간의 어드레스는 글로벌 가상 어드레스(global virtual address)이다. 글로벌 가상 어드레스의 비트 수는 로컬 가상 어드레스의 비트 수보다 많을 수 있다. 제1 가상 공간의 어드레스는 제1 저장 노드의 장치정보(예를 들어, ID, 또는 ID 와 노드 타입 모두)를 포함한다. 제1 저장 노드는 복수의 저장 노드 내에 있고 타깃 파일을 저장하도록 구성된 저장 노드를 나타낸다. 선택적으로, 제1 가상 공간의 어드레스의 비트 수(즉, 글로벌 가상 어드레스의 비트 2N이고, N은 분산 저장 시스템 내의 저장 노드의 로컬 가상 어드레스 공간의 어드레스의 비트 수이다(즉, 로컬 가상 어드레스의 비트 수). 제1 가상 공간의 어드레스의 N 개의 최상위 비트는 제1 저장 노드의 장치 정보를 포함하고, 제1 가상 공간의 어드레스의 N 개의 최하위 비트제1 저장 노드에 있고 타깃 파일을 저장하는 데 사용되는 로컬 가상 어드레스 공간의 어드레스이다.
로컬 가상 어드레스의 비트 수는 운영 체제(Operating System, OS)의 비트 수이다. 예를 들어, 64-bit OS에 대해, 로컬 가상 어드레스의 비트 수는 64이고, 글로벌 가상 어드레스의 비트 수는 128일 수 있다. 이런 경우, 글로벌 가상 어드레스의 64개의 최상위 비트는 저장 노드의 장치 정보를 포함할 수 있고, 글로벌 가상 어드레스의 64개의 최하위 비트는 로컬 가상 어드레스에 대응할 수 있다. 저장 노드의 장치 정보는 64개의 최상위 비트 중 일부 비트만 사용하여 운반될 수 있고(예를 들어, 8개의 최상위 비트는 제1 저장 노드의 ID 이다.), 남은 비트는 다른 목적으로 예약(reserve)되거나 유지된다.
제1 가상 공간에 관한 정보는 제1 가상 공간의 시작 글로벌 가상 어드레스 및 제1 가상 공간의 크기를 포함할 수 있다.
선택적으로, 본 발명의 실시예로서, 호스트는 타깃 파일의 메타 데이터를 획득하고, 타깃 파일의 메타 데이터로부터 타깃 파일의 제1 가상 공간에 관한 정보를 획득할 수 있다.
호스트가 타깃 파일에 액세스하는 경우는, 타깃 파일을 열고 액세스하여 생성되거나, 또는 생성된 타깃 파일을 열고 액세스하는 것일 수 있다. 호스트는 타깃 파일을 열고, 타깃 파일의 메타 데이터로부터 제1 가상 공간의 시작 어드레스 및 키그를 획득할 때, 관리 노드로부터 타깃 파일의 메타 데이터를 획득할 수 있다.
S220. 호스트는 호스트의 로컬 가상 어드레스 공간 내에서, 제1 가상 공간에 관한 정보에 따라 제2 가상 공간을 타깃 파일에 할당한다.
본 발명의 실시예에서, 선택적으로, OS의 가상 어드레스 공간의 미사용 부분이 로컬 가상 어드레스 공간으로서 사용될 수 있다. 예를 들어, 64비트 OS의 가상 어드레스 공간 크기는 264이며, 사용자 모드 가상 어드레스 공간(user-mode virtual address space) 및 커널 모드 가상 어드레스 공간(kernel-mode virtual address space) 외에도 예약된 가상 주소 공간이 있으며, OS 내의 예약된 가상 주소 공간은 로컬 가상 어드레스 공간으로 사용될 수 있다. 운영 체제의 가상 주소 공간은 요청 사항에 따라 재분할되어 로컬 가상 주소 공간으로 사용될 가상 주소 공간의 섹션을 얻을 수 있다.
호스트는, 로컬 가상 어드레스 공간 내에서 가상 어드레스 공간의 섹션(제2 가상 공간으로서 제시됨)을 액세스할 타깃 파일에 할당한다. 선택적으로, 호스트는 호스트의 로컬 가상 주소 공간 내에서 제1 가상 공간과 동일한 크기를 갖는 제2 가상 공간을 타깃 파일에 할당한다.
S230. 호스트는 제1 가상 공간과 제2 가상 공간 사이의 대응 관계를 구축한다.
제2 가상 공간을 타깃 파일에 할당한 후에, 호스트는 글로벌 가상 어드레스 공간 내의 제1 가상 공간과 호스트의 가상 어드레스 공간 내의 제2 가상 공간 사이의 대응 관계를 구축한다.
선택적으로, 본 발명의 실시예로서, 호스트는 제1 가상 공간과 제2 가상 공간 사이의 대응 관계: LVA = (GVA - GVA_start) + LVA_start(수학식 1)
를 구축하고, GVA_start는 제1 가상 공간의 시작 어드레스이고, LVA_start는 제2 가상 공간의 시작 어드레스이며, GVA는 제1 가상 공간의 어드레스이고, LVA는 제1 가상 공간의 어드레스에 대응하는 제2 가상 공간의 어드레스이다.
수학식 1을 사용하여, 제1 가상 공간의 어드레스 GVA 및 제2 가상 공간 LVA의 어드레스 사이의 대응 관계가 구축될 수 있다.
다른 일대일 대응 관계가 제1 가상 공간의 어드레스 GVA 및 제2 가상 공간 LVA의 어드레스 사이에 더 사용될 수 있으나, 이것이 수학식 1에서 나타난 대응관계를 제한하지 않는다. 예를 들어, 제1 가상 공간의 어드레스가 제2 가상 공간의 어드레스와 직접 대응하는 일대일 대응이 더 사용될 수 있다.
S240. 호스트는 제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라, 제2 가상 공간을 액세스하는 제2 액세스 요청을 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환하고, 제1 액세스 요청은 제1 가상 공간의 어드레스를 포함하고, 제1 가상 공간의 어드레스는 제1 저장 노드의 장치 정보를 포함한다.
호스트는, 제2 가상 공간을 타깃 파일에 할당하고, 제1 가상 공간과 제2 가상 공간 사이의 대응 관계를 구축한다. 제2 가상 공간을 액세스하여 호스트 내의 애플리케이션은 제2 가상 공간을 액세스한다. 즉, 호스트 내의 애플리케이션이 타깃 파일에 액세스할 때, 제2 가상 공간을 액세스하는 제2 액세스 요청이 생성된다. 예를 들어, 호스트는 제2 가상 공간의 시작 어드레스에서 파일 핸들 포인팅(file handle pointing)을 애플리케이션에 송신하고, 애플리케이션은 파일 핸들을 사용하여 제2 가상 공간에 액세스하며, 호스트는 제2 액세스 요청을 생성한다.
호스트는, 제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라, 제2 액세스 요청을, 제1 가상 공간에 액세스하는 제1 액세스 요청으로 변환한다. 구체적으로, 호스트는 제2 액세스 요청의 제2 가상 공간의 어드레스를 제1 가상 공간의 어드레스로 변환하고 제1 액세스 요청을 생성한다. 제1 가상 공간의 어드레스는 제1 저장 장치 노드의 장치 정보(예를 들어, ID 또는 ID와 노드 유형 모두)를 포함한다. 제1 저장 노드는 복수의 저장 노드 내에 있고 타깃 파일을 저장하도록 구성된 저장 노드이다.
S250. 호스트는, 네트워크 장치가 제1 가상 공간의 어드레스 내에 있는 제1 저장 노드의 장치 정보에 따라 제1 액세스 요청을 제1 저장 노드에 라우팅할 수 있도록, 제1 액세스 요청을 네트워크 장치에 송신한다.
호스트는, 변환 방식으로 획득한 제1 액세스 요청을 네트워크 장치에 송신하고, 네트워크 장치는 제1 액세스 요청의 제1 가상 공간의 어드레스에 따라, 제1 액세스 요청을 제1 저장 노드에 라우팅한다. 예를 들어, 제1 가상 공간의 어드레스의 비트 수가 2N이고, 제1 가상 공간의 어드레스의 N 개의 최상위 비트가 제1 저장 노드의 장치 정보를 포함하는 경우, 네트워크 장치는, 제1 가상 공간의 어드레스의 N 개의 최상위 비트 내에 포함되고, 제1 저장 노드의 장치 정보에 따라 제1 액세스 요청을 제1 저장 노드에 라우팅한다.
네트워크 장치에 의해 송신된 제1 액세스 요청을 수신한 후에, 제1 저장 노드는 제1 액세스 요청에 따라 타깃 파일에 액세스한다. 구체적으로 로컬 가상 어드레스 공간과, 파일을 저장하는 데 사용되는 로컬 물리적 저장 공간 사이의 매핑 관계가 제1 저장 노드에 저장되고, 제1 저장 노드는 액세스 요청의 목적지 어드레스에서의 로컬 가상 어드레스 공간의 어드레스에 따라, 타깃 파일을 저장하는 데 사용되는 로컬 물리적 저장 공간의 어드레스를 결정할 수 있다. 또한, 제1 저장 노드는, 로컬 물리적 저장 공간에 저장된 타깃 파일에 액세스하기 위해, 결정된 로컬 물리적 저장 공간의 어드레스에 따라 로컬 물리적 저장 공간에 액세스할 수 있다. 실제애플리케이션에서, 제1 저장 노드는 추가로, 제1 액세스 요청에 응답하는 액세스 응답을 네트워크 장치에 송신할 수 있다. 네트워크 장치는 제1 저장 노드의 액세스 응답을 호스트에 송신한다.
본 발명의 본 실시예에서의 파일 액세스 방법에 따르면, 호스트의 커널을 사용하지 않고, 직접 액세스 어드레스(directly-accessed address)를 협상하지 않고, 분산 저장 시스템 내의 파일이 배치된 물리적 저장 공간은 직접 액세스 될 수 있다. 따라서, 지연은 감소되고 파일 액세스 효율은 개선될 수 있다.
따라서, 본 발명의 본 실시예에서의 파일 액세스 방법에 따르면, 분산 저장 시스템 내의 파일이 액세스 되는 경우, 호스트의 로컬 가상 어드레스 공간에 제2 가상 공간을 파일에 할당하고, 제2 가상 공간에 액세스하는 액세스 요청을, 분산 저장 시스템에 있고 파일의 제1 가상 공간에 액세스하는 제1 액세스 요구로 변환하고, 제1 액세스 요청은 네트워크로 송신된다. 이런 방식으로, 분산 저장 시스템에서 파일이 위치한 물리적 저장 공간은, 호스트의 커널을 상용하지 않고 직접 액세스 될 수 있으므로, 지연을 줄이고 파일 액세스 효율을 향상시킬 수 있다.
도 3은 본 발명의 일 실시예에 따른 파일 공간의 개략도이다. 도 3에 도시된 바와 같이, 총 M 개의 저장 노드가 분산 저장 시스템에 있고, 분산 저장 시스템 내의 파일은 분산 저장 시스템의 글로벌 가상 공간 내의 제1 가상 공간을 점유하며, 제1 가상 공간은, 제1 저장 노드의 로컬 가상 어드레스 공간의 섹션에 대응하고 로컬 물리적 저장 공간(즉, NVM 페이지와 같은 물리적 페이지)에 매핑된다. 파일을 열 때, 호스트는, 호스트의 로컬 가상 주소 공간 내에서 제2 가상 공간을 파일에 할당하고, 제1 가상 공간과 제2 가상 공간 간의 대응 관계를 구축, 즉 제2 가상 공간이 제1 가상 공간에 대응하도록 한다. 따라서, 파일의 로컬 가상 어드레스 공간(제2 가상 공간)에 액세스할 때, 호스트는 파일의 글로벌 가상 어드레스 공간(제1 가상 공간)에 액세스하는 액세스 요구를 생성하고 네트워크 장치(예를 들어, 글로벌 가상 어드레스 공간에 기초한 스위치)에 송신할 수 있고, 네트워크 장치는, 분산 저장 시스템 내의 파일에 액세스하기 위해, 글로벌 가상 어드레스에 기초하여, 액세9스 요청을 제1 저장 노드에 라우팅한다.
본 발명의 실시예에서의 구체적인 예는, 당업자가 본 발명의 실시예를 더 잘 이해할 수 있도록 하기 위한 것일 뿐이며, 본 발명의 실시예의 범위를 한정하는 것은 아니다.
전술 한 프로세스의 시퀀스 번호는 본 발명의 다양한 실시예에서 실행 시퀀스를 의미하지 않는다는 것을 또한 이해해야 한다. 프로세스의 실행 순서는 프로세스의 기능 및 내부 논리에 따라 결정되어야 하며, 본 발명의 실시예의 구현 프로세스에 대한 임의의 제한으로 해석되어서는 안된다.
본 발명의 실시예에 따른 파일 액세스 방법을 상세히 설명하고, 본 발명의 일 실시예에 따른 시스템 및 호스트를 설명한다.
도 4는 본 발명의 일 실시예에 따른 시스템(400)의 개략적 블록도이다. 도 4에 도시된 바와 같이, 시스템(400)은 호스트(410) 및 분산 저장 시스템(420)을 포함한다.
분산 저장 시스템(420)은 관리 노드(421), 복수의 저장 노드(422), 및 네트워크 장치(423)를 포함한다.
분산 저장 시스템(420) 내의 각 저장 노드의 로컬 가상 어드레스 공간(422)은 분산 저장 시스템의 글로벌 가상 공간의 일부(420)에 대응한다.
호스트(410)는, 액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하고 - 제1 가상 공간은 관리 노드(421)에 의해, 글로벌 가상 어드레스 공간 내에서 타깃 파일에 할당된 공간임 -,
제1 가상 공간에 관한 정보에 따라, 호스트의 로컬 가상 어드레스 공간(410) 내에서, 제2 가상 공간을 타깃 파일에 할당하며,
제1 가상 공간과 제2 가상 공간 사이의 대응 관계를 구축하고,
제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라, 2 가상 공간을 액세스하는 제2 액세스 요청을 1 가상 공간을 액세스하는 제1 액세스 요청으로 변환하고 - 제1 액세스 요청은 제1 가상 공간의 어드레스를 포함하고, 제1 가상 공간의 어드레스는 제1 저장 노드의 장치 정보를 포함하며, 제1 저장 노드 is 복수의 저장 노드 내에 있고 타깃 파일을 저장하도록 구성된 저장 노드임 -,
네트워크 장치(423)가 제1 가상 공간의 어드레스 내에 있는 제1 저장 노드의 장치 정보에 따라, 제1 액세스 요청을 제1 저장 노드에 라우팅할 수 있도록, 제1 액세스 요청을 네트워크 장치(423)로 송신하도록 구성된다.
본 발명의 본 실시예에서의 시스템에 따르면, 분산 저장 시스템 내의 파일이 액세스 되는 경우, 제2 가상 공간은 호스트의 로컬 가상 어드레스 공간 내에서 파일에 할당되고, 제2 가상 공간을 액세스하는 제2 액세스 요청은, 분산 저장 시스템 내에 있고, 파일의 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환되며, 제1 액세스 요청은 네트워크에 송신된다. 이런 방식으로, 분산 저장 시스템에서 파일이 위치한 물리적 저장 공간은, 호스트의 커널을 상용하지 않고 직접 액세스 될 수 있으므로, 지연을 줄이고 파일 액세스 효율을 향상시킬 수 있다.
본 발명의 본 실시예에서, 선택적으로, 호스트(410)는 구체적으로, 타깃 파일의 메타 데이터를 획득하고, 타깃 파일의 메타 데이터로부터 타깃 파일의 제1 가상 공간에 관한 정보를 획득하도록 구성된다.
본 발명의 본 실시예에서, 선택적으로, 제1 가상 공간에 관한 정보는 제1 가상 공간의 시작 어드레스 및 크기를 포함한다.
본 발명의 본 실시예에서, 호스트(410)는 구체적으로 제1 가상 공간과 제2 가상 공간 사이의 대응 관계인 이하:
LVA = (GVA - GVA_start) + LVA_start를 획득하도록 구성되고, GVA_start는 제1 가상 공간의 시작 어드레스이고, LVA_start는 제2 가상 공간의 시작 어드레스이며, GVA는 제1 가상 공간의 어드레스이고, LVA는 제1 가상 공간의 어드레스에 대응하는 제2 가상 공간의 어드레스이다.
발명의 본 실시예에서, 선택적으로, 제1 가상 공간의 어드레스의 비트 수는 2N이고, N은 제1 저장 노드의 로컬 가상 어드레스 공간의 어드레스의 비트 수이며, 제1 가상 공간의 어드레스의 N 개의 최상위 비트는 제1 저장 노드의 장치 정보를 포함하고, 제1 가상 공간의 어드레스의 N 개의 최하위 비트는, 제1 저장 노드에 있고 타깃 파일을 저장하는 데 사용되는 로컬 가상 어드레스 공간의 어드레스이다.
본 발명의 실시예에 따른 시스템(400)의 호스트(410) 및 분산 저장 시스템(420)은 상술한 방법 실시예에서의 호스트 및 분산 저장 시스템에 대응할 수 있으며, 호스트(410)는 전술한 방법의 대응하는 과정을 수행할 수 있다. 간결함을 위해, 상세한 설명은 여기에서 다시 기술하지 않는다.
도 5는 본 발명의 일 실시예에 따른 호스트(500)의 개략적 블록도이다. 도 5에 도시된 바와 같이, 호스트(500)는 처리 모듈(510) 및 송신 모듈(520)을 포함한다.
처리 모듈(510)은 액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하고 - 제1 가상 공간은, 분산 저장 시스템의 글로벌 가상 어드레스 공간 내에서 분산 저장 시스템 내의 관리 노드에 의해 타깃 파일에 할당된 공간이고, 분산 저장 시스템 내에서 각 저장 노드의 로컬 가상 어드레스 공간은 글로벌 가상 어드레스 공간의 일부에 대응함 -,
제1 가상 공간에 관한 정보에 따라, 호스트의 로컬 가상 어드레스 공간 내에서 제2 가상 공간을 타깃 파일에 할당하고,
제1 가상 공간과 제2 가상 공간 사이의 대응 관계를 구축하며,
제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라, 제2 가상 공간을 액세스하는 제2 액세스 요청을 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환하도록 구성되고,
제1 액세스 요청은 제1 가상 공간의 어드레스를 포함하고, 제1 가상 공간의 어드레스는 제1 저장 노드의 장치 정보를 포함하며, 제1 저장 노드는 복수의 저장 노드 내에 있고 타깃 파일을 저장하도록 구성된 저장 노드이다.
송신 모듈(520)은, 네트워크 장치가 제1 가상 공간의 어드레스 내에 있는 제1 저장 노드의 장치 정보에 따라 제1 액세스 요청을 제1 저장 노드에 라우팅할 수 있도록, 제1 액세스 요청을 분산 저장 시스템 내의 네트워크 장치에 송신하도록 구성된다.
이러한 호스트에 따르면, 본 발명의 본 실시예에서, 분산 저장 시스템 내의 파일이 액세스 되는 경우, 제2 가상 공간은 호스트의 로컬 가상 어드레스 공간 내에서 파일에 할당되고, 제2 가상 공간을 액세스하는 제2 액세스 요청은, 분산 저장 시스템 내에 있고, 파일의 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환되며, 제1 액세스 요청은 네트워크에 송신된다. 이런 방식으로, 분산 저장 시스템에서 파일이 위치한 물리적 저장 공간은, 호스트의 커널을 상용하지 않고 직접 액세스 될 수 있으므로, 지연을 줄이고 파일 액세스 효율을 향상시킬 수 있다.
본 발명의 본 실시예에서, 선택적으로 처리 모듈(510)은 구체적으로 타깃 파일의 메타 데이터를 획득하고, 타깃 파일의 메타 데이터로부터 타깃 파일의 제1 가상 공간에 관한 정보를 획득하도록 구성된다.
발명의 본 실시예에서, 선택적으로, 제1 가상 공간에 관한 정보는 제1 가상 공간의 시작 어드레스 및 크기를 포함한다.
발명의 본 실시예에서, 선택적으로 처리 모듈(510)은 호스트의 로컬 가상 어드레스 공간 내에서 1 가상 공간과 동일한 크기를 가지는 제2 가상 공간을 타깃 파일에 할당하도록 구성된다.
발명의 본 실시예에서, 선택적으로 처리 모듈(510)은 이하:
LVA = (GVA - GVA_start) + LVA_start의 제1 가상 공간과 제2 가상 공간 사이의 대응 관계를 구축하도록 구성되고, GVA_start는 제1 가상 공간의 시작 어드레스이고, LVA_start는 제2 가상 공간의 시작 어드레스이며, GVA는 제1 가상 공간의 어드레스이고, LVA는 제1 가상 공간의 어드레스에 대응하는 제2 가상 공간의 어드레스이다.
본 발명의 본 실시예에서, 선택적으로, 제1 가상 공간의 어드레스의 비트 수는 2N이고, N은 제1 저장 노드의 로컬 가상 어드레스 공간의 어드레스의 비트 수이며, 제1 가상 공간의 어드레스의 N 개의 최상위 비트는 제1 저장 노드의 장치 정보를 포함하고, 제1 가상 공간의 어드레스의 N 개의 최하위 비트는, 제1 저장 노드에 있고 타깃 파일을 저장하는 데 사용되는 로컬 가상 어드레스 공간의 어드레스이다.
본 발명의 실시예에 따른 호스트(500)는 본 발명의 일 실시예에 따른 파일 액세스 방법(200)의 실행 주체에 대응할 수 있으며, 전술한 호스트(500) 내의 모듈의 동작 및/또는 기능은 전술한 방법의 대응하는 절차를 구현하기 위해 각각 사용된다. 간결함을 위해, 상세한 설명은 여기에서 다시 기술하지 않는다.
도 6은 본 발명의 일 실시예에 따른 호스트의 개략적 구조도이다. 호스트는 적어도 하나의 프로세서(602)(예를 들어, CPU), 적어도 하나의 네트워크 인터페이스(605), 또는 다른 통신 인터페이스, 메모리(606), 및 적어도 하나의 통신 버스(603)를 포함한다.
통신 버스(603)는 이 장치들 간의 접속 및 통신을 구현하도록 구성된다.
프로세서(602)는 메모리(606)에 저장된 실행 가능한 모듈, 예를 들어 컴퓨터 프로그램을 실행하도록 구성된다.
메모리(606)는 고속 RAM(Random Access Memory)를 포함하거나, NVM, 예를 들어 적어도 하나의 디스크 메모리를 더 포함할 수 있다.
호스트는 (유선 또는 무선일 수 있는)적어도 하나의 네트워크 인터페이스(605)를 사용하여 네트워크에 대한 통신 접속을 구현한다.
일부 구현 방식에서, 메모리(606)는 프로그램(6061)을 저장하고, 프로세서(602)는 상술한 방법 실시예에서의 모든 방법을 구현하기 위해 프로그램(6061)을 실행하도록 구성된다.
본 발명의 실시예에서 "및/또는"이라는 용어는 관련 객체를 설명하기 위한 연관 관계만을 기술하고 3개의 관계가 존재할 수 있음을 나타낸다는 것을 이해해야 한다. 예를 들어, A 및/또는 B는, A만 존재하고, A와 B가 모두 존재하며, B만 존재하는 세 가지 경우를 나타낼 수 있다. 또한, 이 명세서에서 문자 "/"는 일반적으로 관련 객체들 간의 "또는" 관계를 나타낸다.
당업자라면, 본 명세서에 개시된 실시예에 설명된 예들을 결합하여, 유닛 및 알고리즘 단계가 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합에 의해 구현될 수 있음을 인식할 수 있다. 하드웨어와 소프트웨어 간의 상호 호환성을 명확하게 설명하기 위해, 앞에서는 대체로 기능에 따라 각 예의 구성과 단계를 설명했다. 기능이 하드웨어 또는 소프트웨어로 수행되는지는 기술적 해결 수단의 구체적 애플리케이션 및 설계 제약 조건에 따라 다르다. 당업자는 각 구체적 애플리케이션에 대해 기술된 기능을 구현하기 위해 상이한 방법을 사용할 수 있지만, 이러한 구현이 본 발명의 범위를 벗어나는 것으로 간주되어서는 안된다.
상술한, 시스템, 장치 및 유닛의 상세한 동작 과정에 대한 편리하고 간단한 설명을 위해 당업자라면 본 발명의 범주에 속하는 대응 프로세스를 참조할 수 있음을 명확히 이해할 것이다. 전술한 방법 실시예 및 상세한 설명은 여기서 다시 설명하지 않는다.
본 발명에서 제공된 몇몇 실시예에서, 개시된 시스템, 장치 및 방법은 다른 방식으로 구현될 수 있다는 것을 이해해야 한다. 예를 들어, 설명된 장치 실시예는 단지 예일 뿐이다. 예를 들어, 유닛 부분은 논리적 기능 구분일 뿐이며 실제 구현에서는 다른 부분 일 수 있다. 예를 들어, 복수의 유닛 또는 구성 요소가 결합되거나 다른 시스템에 통합되거나, 일부 특징이 무시되거나 수행되지 않을 수 있다. 또한, 표시되거나 논의된 상호 연결 또는 직접 연결 또는 통신 연결은 일부 인터페이스를 통해 구현될 수 있다. 장치 또는 유닛 간의 간접 연결 또는 통신 연결은 전자적, 기계적 또는 다른 형태로 구현될 수 있다.
분리된 부분으로 설명된 유닛은 물리적으로 분리될 수도 있고 그렇지 않을 수도 있고, 유닛으로 표시된 부분은 물리적 유닛 일 수 있고 아닐 수도 있으며, 한 위치에 배치될 수 있거나 또는 복수의 네트워크 유닛들에 배치될 수 있다. 유닛의 일부 또는 전부는 본 발명의 실시예의 기술적 해결 수단의 목적을 달성하기 위해 실제 필요에 따라 선택될 수 있다.
또한, 본 발명의 실시예에서의 기능 유닛은 하나의 처리 유닛에 통합되어 있거나, 각 유닛이 물리적으로 단독으로 존재할 수 있고, 2 이상의 유닛이 하나의 유닛에 통합될 수 있다. 통합된 유닛은 하드웨어의 형태로 구현될 수 있거나 소프트웨어 기능 유닛의 형태로 구현될 수 있다.
통합 유닛이 소프트웨어 기능 유닛의 형태로 구현되고 독립 제품으로서 판매되거나 사용되는 경우, 통합 유닛은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본질적으로, 본 발명의 기술적 해결 수단 또는 종래 기술에 기여하는 부분 또는 기술적 해결 수단의 전부 또는 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 저장 매체에 저장되며, 실시예에서 설명된 방법의 단계의 전부 또는 일부를 수행하기 위해 컴퓨터 장치(개인용 컴퓨터, 서버, 또는 네트워크 장치 일 수 있음)를 명령하기 위한 몇 가지 명령을 포함한다. 본 발명의 저장 매체는 USB 플래시 드라이브, 탈착 식 하드 디스크, ROM(Read-Only Memory), RAM(Random Access Memory), 자기 디스크 또는 광디스크 일 수 있다. 전술 한 설명은 단지 본 발명의 구체적 실시예에 불과하지만, 본 발명의 보호 범위를 제한하려는 것은 아니다.

Claims (18)

  1. 파일 액세스 방법으로서,
    상기 파일 액세스 방법은 분산 저장 시스템(distributed storage system)에 적용되고, 상기 분산 저장 시스템은 관리 노드, 복수의 저장 노드, 및 네트워크 장치를 포함하고, 상기 분산 저장 시스템 내의 각 저장 노드의 로컬 가상 어드레스 공간(local virtual address space)은 상기 분산 저장 시스템의 글로벌 가상 어드레스 공간(global virtual address space)의 일부에 대응하고,
    상기 파일 액세스 방법은,
    호스트(host)가, 액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하는 단계 - 상기 제1 가상 공간은 상기 관리 노드에 의해 상기 글로벌 가상 어드레스 공간 내에서 상기 타깃 파일에 할당된 공간임 -;
    상기 호스트가, 상기 제1 가상 공간에 관한 정보에 따라 상기 호스트의 로컬 가상 어드레스 공간 내에서 제2 가상 공간을 상기 타깃 파일에 할당하는 단계;
    상기 호스트가, 상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계를 구축하는 단계;
    상기 호스트가, 상기 제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라, 상기 제2 가상 공간을 액세스하는 제2 액세스 요청을 상기 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환하는 단계 - 상기 제1 액세스 요청은 상기 제1 가상 공간의 어드레스를 포함하고, 상기 제1 가상 공간의 어드레스는 제1 저장 노드의 장치 정보를 포함하며, 상기 제1 저장 노드는 상기 복수의 저장 노드 내에 있고 상기 타깃 파일을 저장하도록 구성된 저장 노드임 -; 및
    상기 호스트가, 상기 네트워크 장치가 상기 제1 가상 공간의 어드레스 내에 있는 제1 저장 노드의 장치 정보에 따라 상기 제1 액세스 요청을 상기 제1 저장 노드에 라우팅(route)할 수 있도록, 상기 제1 액세스 요청을 상기 네트워크 장치로 송신하는 단계
    를 포함하는 파일 액세스 방법.
  2. 제1항에 있어서,
    상기 호스트가, 액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하는 단계는,
    상기 호스트가, 상기 타깃 파일의 메타 데이터를 획득하고, 상기 타깃 파일의 메타 데이터로부터 상기 타깃 파일의 상기 제1 가상 공간에 관한 정보를 획득하는 단계
    를 포함하는, 파일 액세스 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 가상 공간에 관한 정보는 상기 제1 가상 공간의 시작 어드레스 및 크기를 포함하는, 파일 액세스 방법.
  4. 제3항에 있어서,
    상기 호스트가, 상기 제1 가상 공간에 관한 정보에 따라 상기 호스트의 로컬 가상 어드레스 공간 내에서 제2 가상 공간을 상기 타깃 파일에 할당하는 단계는
    상기 호스트가, 상기 호스트의 로컬 가상 어드레스 공간 내에서, 상기 제1 가상 공간과 동일한 크기를 가지는 상기 제2 가상 공간을 상기 타깃 파일에 할당하는 단계
    를 포함하는, 파일 액세스 방법.
  5. 제4항에 있어서,
    상기 호스트가, 상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계를 구축하는 단계는,
    상기 호스트가, 상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계인 이하:
    LVA =GVA - GVA_start) + LVA_start를 구축하는 단계
    를 포함하고,
    상기 GVA_start는 상기 제1 가상 공간의 시작 어드레스이고 LVA_start는 상기 제2 가상 공간의 시작 어드레스이며 GVA는 상기 제1 가상 공간의 어드레스이고 LVA는 상기 제1 가상 공간의 어드레스에 대응하는 상기 제2 가상 공간의 어드레스인, 파일 액세스 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 가상 공간의 어드레스의 비트 수는 2N이고 N은 상기 제1 저장 노드의 로컬 가상 어드레스 공간의 어드레스의 비트 수이며, 상기 제1 가상 공간의 어드레스의 N 개의 최상위 비트(most significant bit)는 상기 제1 저장 노드의 장치 정보를 포함하고, 상기 제1 가상 공간의 어드레스의 N 개의 최하위 비트(least significant bit)는 상기 제1 저장 노드에 있고 상기 타깃 파일을 저장하는 데 사용되는 상기 로컬 가상 어드레스 공간의 어드레스인, 파일 액세스 방법.
  7. 시스템으로서,
    호스트 및 분산 저장 시스템을 포함하고, 상기 분산 저장 시스템은 관리 노드, 복수의 저장 노드, 및 네트워크 장치를 포함하며, 상기 분산 저장 시스템 내에서 각 저장 노드의 로컬 가상 어드레스 공간은 상기 분산 저장 시스템의 글로벌 가상 어드레스 공간의 일부와 대응하고,
    상기 호스트는,
    액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하고 - 상기 제1 가상 공간은 상기 관리 노드에 의해 상기 글로벌 가상 어드레스 공간 내에서 상기 타깃 파일에 할당된 공간임 -,
    상기 제1 가상 공간에 관한 정보에 따라, 상기 호스트의 로컬 가상 어드레스 공간 내에서, 제2 가상 공간을 상기 타깃 파일에 할당하고,
    상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계를 구축하고,
    상기 제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라, 상기 제2 가상 공간을 액세스하는 제2 액세스 요청을 상기 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환하고 - 상기 제1 액세스 요청은 상기 제1 가상 공간의 어드레스를 포함하고, 상기 제1 가상 공간의 어드레스는 제1 저장 노드의 장치 정보를 포함하며, 상기 제1 저장 노드는 상기 복수의 저장 노드 내에 있고 상기 타깃 파일을 저장하도록 구성된 저장 노드임 -,
    상기 네트워크 장치가, 상기 제1 가상 공간의 어드레스 내에 있는 제1 저장 노드의 장치 정보에 따라 상기 제1 액세스 요청을 상기 제1 저장 노드에 라우팅할 수 있도록, 상기 제1 액세스 요청을 상기 네트워크 장치로 송신하도록 구성된, 시스템.
  8. 제7항에 있어서,
    상기 호스트는 구체적으로,
    상기 타깃 파일의 메타 데이터를 획득하고, 상기 타깃 파일의 메타 데이터로부터 상기 타깃 파일의 상기 제1 가상 공간에 관한 정보를 획득하도록 구성된, 시스템.
  9. 제7항 또는 제8항에 있어서,
    상기 제1 가상 공간에 관한 정보는 상기 제1 가상 공간의 시작 어드레스 및 크기를 포함하는, 시스템.
  10. 제9항에 있어서,
    상기 호스트는 구체적으로,
    상기 호스트의 로컬 가상 어드레스 공간 내에서, 상기 제1 가상 공간과 동일한 크기를 가지는 상기 제2 가상 공간을 상기 타깃 파일에 할당하도록 구성된, 시스템.
  11. 제10항에 있어서,
    상기 호스트는 구체적으로,
    상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계인 이하:
    LVA =GVA - GVA_start) + LVA_start를 구축하도록 구성되고,
    상기 GVA_start는 상기 제1 가상 공간의 시작 어드레스이고 LVA_start는 상기 제2 가상 공간의 시작 어드레스이며 GVA는 상기 제1 가상 공간의 어드레스이고 LVA는 상기 제1 가상 공간의 어드레스에 대응하는 상기 제2 가상 공간의 어드레스인, 시스템.
  12. 제7항 내지 제11항 중 어느 한 항에 있어서,
    상기 제1 가상 공간의 어드레스의 비트 수는 2N이고, N은 상기 제1 저장 노드의 로컬 가상 어드레스 공간의 어드레스의 비트 수이며, 상기 제1 가상 공간의 어드레스의 N 개의 최상위 비트는 상기 제1 저장 노드의 장치 정보를 포함하고, 상기 제1 가상 공간의 어드레스의 N 개의 최하위 비트는 상기 제1 저장 노드에 있고 상기 타깃 파일을 저장하는 데 사용되는 상기 로컬 가상 어드레스 공간의 어드레스인, 시스템.
  13. 호스트로서,
    액세스할 타깃 파일의 제1 가상 공간에 관한 정보를 획득하고 - 상기 제1 가상 공간은, 분산 저장 시스템의 글로벌 가상 어드레스 공간 내에서 상기 분산 저장 시스템 내의 관리 노드에 의해 상기 타깃 파일에 할당된 공간이고, 상기 분산 저장 시스템 내에서 각 저장 노드의 로컬 가상 어드레스 공간은 상기 글로벌 가상 어드레스 공간의 일부에 대응함 -, 상기 호스트의 로컬 가상 어드레스 공간 내에서, 상기 제1 가상 공간에 관한 정보에 따라 제2 가상 공간을 상기 타깃 파일에 할당하며, 상기 제1 가상 공간과 제2 가상 공간 사이의 대응 관계를 구축하고, 상기 제1 가상 공간과 제2 가상 공간 사이의 대응 관계에 따라, 상기 제2 가상 공간을 액세스하는 제2 액세스 요청을 상기 제1 가상 공간을 액세스하는 제1 액세스 요청으로 변환하도록 구성된 처리 모듈 - 상기 제1 액세스 요청은 상기 제1 가상 공간의 어드레스를 포함하고, 상기 제1 가상 공간의 어드레스는 제1 저장 노드의 장치 정보를 포함하며, 상기 제1 저장 노드는 상기 복수의 저장 노드 내에 있고 상기 타깃 파일을 저장하도록 구성된 저장 노드 임; 및
    상기 네트워크 장치가, 상기 제1 가상 공간의 어드레스 내에 있는 제1 저장 노드의 장치 정보에 따라 상기 제1 액세스 요청을 상기 제1 저장 노드에 라우팅할 수 있도록, 상기 제1 액세스 요청을 상기 분산 저장 시스템 내의 네트워크 장치에 송신하도록 구성된 송신 모듈
    포함하는 호스트.
  14. 제13항에 있어서,
    상기 처리 모듈은 구체적으로,
    상기 타깃 파일의 메타 데이터를 획득하고, 상기 타깃 파일의 메타 데이터로부터 상기 타깃 파일의 상기 제1 가상 공간에 관한 정보를 획득하도록 구성된, 호스트.
  15. 제13항 또는 제14항에 있어서,
    상기 제1 가상 공간에 관한 정보는 상기 제1 가상 공간의 시작 어드레스 및 크기를 포함하는, 호스트.
  16. 제15항에 있어서,
    상기 처리 모듈은 구체적으로,
    상기 호스트의 로컬 가상 어드레스 공간 내에서, 상기 제1 가상 공간과 동일한 크기를 가지는 상기 제2 가상 공간을 상기 타깃 파일에 할당하도록 구성된, 호스트.
  17. 제16항에 있어서,
    상기 처리 모듈은 구체적으로,
    상기 제1 가상 공간과 상기 제2 가상 공간 사이의 대응 관계인 이하:
    LVA =GVA - GVA_start) + LVA_start를 구축하도록 구성되고,
    상기 GVA_start는 상기 제1 가상 공간의 시작 어드레스이고 LVA_start는 상기 제2 가상 공간의 시작 어드레스이며 GVA는 상기 제1 가상 공간의 어드레스이고 LVA는 상기 제1 가상 공간의 어드레스에 대응하는 상기 제2 가상 공간의 어드레스인, 호스트.
  18. 제13항 내지 제17항 중 어느 한 항에 있어서,
    상기 제1 가상 공간의 어드레스의 비트 수는 2N이고, N은 상기 제1 저장 노드의 로컬 가상 어드레스 공간의 어드레스의 비트 수이며, 상기 제1 가상 공간의 어드레스의 N 개인, 호스트의 최상위 비트는 상기 제1 저장 노드의 장치 정보를 포함하고, 상기 제1 가상 공간의 어드레스의 N 개의 최하위 비트는 상기 제1 저장 노드에 있고 상기 타깃 파일을 저장하는 데 사용되는 상기 로컬 가상 어드레스 공간의 어드레스인, 호스트.
KR1020177014507A 2014-10-31 2014-10-31 파일 액세스 방법, 시스템, 및 호스트 KR101944757B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/090018 WO2016065611A1 (zh) 2014-10-31 2014-10-31 访问文件的方法、系统和主机

Publications (2)

Publication Number Publication Date
KR20170075009A true KR20170075009A (ko) 2017-06-30
KR101944757B1 KR101944757B1 (ko) 2019-02-01

Family

ID=55856429

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177014507A KR101944757B1 (ko) 2014-10-31 2014-10-31 파일 액세스 방법, 시스템, 및 호스트

Country Status (6)

Country Link
US (1) US10372336B2 (ko)
EP (1) EP3206132B1 (ko)
JP (1) JP6379291B2 (ko)
KR (1) KR101944757B1 (ko)
CN (1) CN105745640B (ko)
WO (1) WO2016065611A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220398016A1 (en) * 2019-12-16 2022-12-15 Sony Interactive Entertainment Inc. Information processing device and file access method
US11983177B2 (en) 2019-12-16 2024-05-14 Sony Interactive Entertainment Inc. Information processing device and file access method
US12013821B2 (en) 2019-12-16 2024-06-18 Sony Interactive Entertainment Inc. Information processing apparatus and file recording method

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190028542A1 (en) * 2016-02-03 2019-01-24 Surcloud Corp. Method and device for transmitting data
JP6460497B2 (ja) * 2014-11-28 2019-01-30 華為技術有限公司Huawei Technologies Co.,Ltd. ファイルアクセス方法およびファイルアクセス装置、ならびに記憶装置
US11734192B2 (en) 2018-12-10 2023-08-22 International Business Machines Corporation Identifying location of data granules in global virtual address space
US11016908B2 (en) * 2018-12-11 2021-05-25 International Business Machines Corporation Distributed directory of named data elements in coordination namespace
US11487674B2 (en) * 2019-04-17 2022-11-01 Rankin Labs, Llc Virtual memory pool within a network which is accessible from multiple platforms
WO2020243244A1 (en) 2019-05-28 2020-12-03 John Rankin Supporting a virtual memory area at a remote computing machine
US12112200B2 (en) 2021-09-13 2024-10-08 International Business Machines Corporation Pipeline parallel computing using extended memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309648A (ja) * 2004-04-20 2005-11-04 Nec Corp ファイル配置システム
US7711711B1 (en) * 2006-03-29 2010-05-04 Emc Corporation Networked storage system employing information lifecycle management in conjunction with a distributed global file system
JP2014500542A (ja) * 2010-10-27 2014-01-09 エンモータス・インコーポレイテッド データ管理を有する階層データ記憶システムおよびその操作方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3004278B2 (ja) * 1988-11-24 2000-01-31 富士通株式会社 マルチプロセッサシステム
US6823398B1 (en) * 2000-03-31 2004-11-23 Dphi Acquisitions, Inc. File system management embedded in a storage device
US20030061462A1 (en) * 2001-09-26 2003-03-27 Fister James D.M. Memory expansion and enhanced system interaction using network-distributed memory mapping
US7456380B2 (en) 2005-06-01 2008-11-25 Eastman Kodak Company Asymmetrical microlenses on pixel arrays
US7765339B2 (en) * 2006-10-27 2010-07-27 Stec, Inc. Distributed addressing in solid-state storage
CN101187931A (zh) * 2007-12-12 2008-05-28 浙江大学 分布式文件系统多文件副本的管理方法
US8880843B2 (en) * 2010-02-10 2014-11-04 International Business Machines Corporation Providing redundancy in a virtualized storage system for a computer system
CN102024020B (zh) * 2010-11-04 2013-02-06 曙光信息产业(北京)有限公司 一种分布式文件系统中高效的元数据访存方法
CN102136003A (zh) * 2011-03-25 2011-07-27 上海交通大学 大规模分布式存储系统
CN103870202B (zh) * 2012-12-10 2018-08-21 上海优刻得信息科技有限公司 一种块设备的分布式存储方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309648A (ja) * 2004-04-20 2005-11-04 Nec Corp ファイル配置システム
US7711711B1 (en) * 2006-03-29 2010-05-04 Emc Corporation Networked storage system employing information lifecycle management in conjunction with a distributed global file system
JP2014500542A (ja) * 2010-10-27 2014-01-09 エンモータス・インコーポレイテッド データ管理を有する階層データ記憶システムおよびその操作方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220398016A1 (en) * 2019-12-16 2022-12-15 Sony Interactive Entertainment Inc. Information processing device and file access method
US11836367B2 (en) * 2019-12-16 2023-12-05 Sony Interactive Entertainment Inc. Information processing device and file access method
US11983177B2 (en) 2019-12-16 2024-05-14 Sony Interactive Entertainment Inc. Information processing device and file access method
US12013821B2 (en) 2019-12-16 2024-06-18 Sony Interactive Entertainment Inc. Information processing apparatus and file recording method

Also Published As

Publication number Publication date
EP3206132A1 (en) 2017-08-16
WO2016065611A1 (zh) 2016-05-06
US20170235499A1 (en) 2017-08-17
EP3206132A4 (en) 2017-11-01
KR101944757B1 (ko) 2019-02-01
US10372336B2 (en) 2019-08-06
CN105745640B (zh) 2018-09-11
CN105745640A (zh) 2016-07-06
JP6379291B2 (ja) 2018-08-22
EP3206132B1 (en) 2018-09-05
JP2017534989A (ja) 2017-11-24

Similar Documents

Publication Publication Date Title
KR101944757B1 (ko) 파일 액세스 방법, 시스템, 및 호스트
JP6231679B2 (ja) 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理
CN106164898B (zh) 数据处理方法和装置
WO2016093895A1 (en) Generating and/or employing a descriptor associated with a memory translation table
US10466935B2 (en) Methods for sharing NVM SSD across a cluster group and devices thereof
US10467179B2 (en) Method and device for sharing PCIe I/O device, and interconnection system
US11693805B1 (en) Routing network using global address map with adaptive main memory expansion for a plurality of home agents
JP2009087335A (ja) マルチプロセッサシステム
US7002956B2 (en) Network addressing method and system for localizing access to network resources in a computer network
WO2015055117A1 (zh) 一种内存访问的方法、设备和系统
CN105765542B (zh) 访问文件的方法、分布式存储系统和存储节点
US11675510B2 (en) Systems and methods for scalable shared memory among networked devices comprising IP addressable memory blocks
WO2016187783A1 (zh) 一种数据传输方法及装置
WO2016065613A1 (zh) 访问文件的方法、分布式存储系统和网络设备
JP2020087238A (ja) 通信装置、情報処理システム、および通信方法
CN107155307B (zh) 访问文件的方法、系统和主机
US10042809B2 (en) Method for communication using PCI express dedicated communication module and network device including the same

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