KR20210087628A - 네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법 - Google Patents

네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법 Download PDF

Info

Publication number
KR20210087628A
KR20210087628A KR1020200000589A KR20200000589A KR20210087628A KR 20210087628 A KR20210087628 A KR 20210087628A KR 1020200000589 A KR1020200000589 A KR 1020200000589A KR 20200000589 A KR20200000589 A KR 20200000589A KR 20210087628 A KR20210087628 A KR 20210087628A
Authority
KR
South Korea
Prior art keywords
storage device
storage
local key
storage devices
network
Prior art date
Application number
KR1020200000589A
Other languages
English (en)
Inventor
이석규
조한민
조영진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200000589A priority Critical patent/KR20210087628A/ko
Priority to US17/003,265 priority patent/US11146636B2/en
Priority to EP20210595.3A priority patent/EP3846415A1/en
Priority to CN202011479676.5A priority patent/CN113076058A/zh
Publication of KR20210087628A publication Critical patent/KR20210087628A/ko
Priority to US17/478,480 priority patent/US11516292B2/en
Priority to US17/973,205 priority patent/US11765229B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; 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/062Securing 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • 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/104Peer-to-peer [P2P] 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/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

네트워크 기반 스토리지 장치의 구동 방법에서, 네트워크를 통해 서로 연결된 복수의 스토리지 장치들 중 제1 로컬 키(local key)를 갖는 제1 스토리지 장치를 제1 메인 스토리지 장치로 설정한다. 제1 스토리지 장치가 외부의 호스트 장치로부터 수신되는 제1 제어 신호에 기초하여 복수의 스토리지 장치들 중 적어도 일부의 용량(volume)을 설정 및 관리한다. 제1 스토리지 장치가 복수의 스토리지 장치들 중 제2 로컬 키를 갖는 제2 스토리지 장치로부터 제2 로컬 키를 전달받는다. 제1 스토리지 장치가 제1 로컬 키 및 제2 로컬 키를 외부의 호스트 장치로 전송한다.

Description

네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법{METHOD OF OPERATING NETWORK-BASED STORAGE DEVICE AND METHOD OF OPERATING STORAGE SYSTEM USING THE SAME}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 네트워크 기반 스토리지 장치의 구동 방법 및 상기 네트워크 기반 스토리지 장치의 구동 방법을 이용한 스토리지 시스템의 구동 방법에 관한 것이다.
최근에는 메모리 장치를 이용하는 SSD(solid state drive)와 같은 스토리지 장치가 널리 사용되고 있다. 상기와 같은 스토리지 장치는 기계적인 구동부가 없어 안정성 및 내구성이 뛰어나며 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 최근 들어 노트북과 같은 전자 시스템뿐만 아니라, 자동차, 항공기, 드론(drone) 등과 같은 다양한 종류의 시스템에 전자 회로가 적용됨에 따라, 스토리지 장치 역시 다양한 종류의 시스템에서 사용되고 있다.
또한, 최근에는 스토리지 장치와 호스트 장치를 물리적으로 연결하지 않고 이더넷(Ethernet) 등과 같은 네트워크를 통해 연결하는 네트워크 기반 스토리지 장치 및 스토리지 시스템이 연구되고 있다.
본 발명의 일 목적은 네트워크 기반 스토리지 장치를 효율적으로 관리하기 위한 구동 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 네트워크 기반 스토리지 장치의 구동 방법을 이용한 스토리지 시스템의 구동 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법에서, 네트워크를 통해 서로 연결된 복수의 스토리지 장치들 중 제1 로컬 키(local key)를 갖는 제1 스토리지 장치를 제1 메인 스토리지 장치로 설정한다. 상기 제1 스토리지 장치가 외부의 호스트 장치로부터 수신되는 제1 제어 신호에 기초하여 상기 복수의 스토리지 장치들 중 적어도 일부의 용량(volume)을 설정 및 관리한다. 상기 제1 스토리지 장치가 상기 복수의 스토리지 장치들 중 제2 로컬 키를 갖는 제2 스토리지 장치로부터 상기 제2 로컬 키를 전달받는다. 상기 제1 스토리지 장치가 상기 제1 로컬 키 및 상기 제2 로컬 키를 상기 외부의 호스트 장치로 전송한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 스토리지 시스템의 구동 방법에서, 상기 스토리지 시스템은 제1 네트워크를 통해 서로 연결된 복수의 스토리지 장치들 및 제2 네트워크를 통해 상기 복수의 스토리지 장치들과 연결된 호스트 장치를 포함한다. 상기 복수의 스토리지 장치들 중 제1 로컬 키(local key)를 갖는 제1 스토리지 장치를 제1 메인 스토리지 장치로 설정한다. 상기 호스트 장치가 상기 복수의 스토리지 장치들의 용량(volume)을 설정 및 관리하기 위한 제1 제어 신호를 상기 제1 스토리지 장치로 전송한다. 상기 제1 스토리지 장치가 상기 제1 제어 신호에 기초하여 상기 복수의 스토리지 장치들 중 적어도 일부의 용량을 설정 및 관리한다. 상기 제1 스토리지 장치가 상기 복수의 스토리지 장치들 중 제2 로컬 키를 갖는 제2 스토리지 장치로부터 상기 제2 로컬 키를 전달받는다. 상기 제1 스토리지 장치가 상기 제1 로컬 키 및 상기 제2 로컬 키를 상기 호스트 장치로 전송한다. 상기 호스트 장치가 상기 제2 스토리지 장치에 액세스하기 위한 커맨드, 어드레스 및 상기 제2 로컬 키를 상기 제1 스토리지 장치로 전송한다. 상기 제1 스토리지 장치가 상기 커맨드, 상기 어드레스 및 상기 제2 로컬 키를 상기 제2 스토리지 장치에 전송한다. 상기 제2 스토리지 장치가 상기 커맨드, 상기 어드레스 및 상기 제2 로컬 키에 기초하여 독출 데이터를 상기 호스트 장치로 제공하거나 기입 데이터를 상기 호스트 장치로부터 수신한다. 상기 제1 스토리지 장치가 상기 제2 스토리지 장치로부터 상기 제2 로컬 키를 전달받는 동작, 및 상기 제1 스토리지 장치가 상기 커맨드, 상기 어드레스 및 상기 제2 로컬 키를 상기 제2 스토리지 장치에 전송하는 동작은, 상기 호스트 장치를 통하지 않고 상기 제1 스토리지 장치와 상기 제2 스토리지 장치 사이에서 P2P(Peer-to-Peer) 방식에 기초하여 수행된다.
상기와 같은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법 및 스토리지 시스템의 구동 방법에서는, 네트워크를 통해 서로 연결된 복수의 스토리지 장치들 중 적어도 하나를 메인 스토리지 장치로 설정하고, 나머지 스토리지 장치들은 메인 스토리지 장치에 의해 관리될 수 있다. 또한, 메인 스토리지 장치는 복수의 스토리지 장치들의 용량을 설정 및 관리하며, 메인 스토리지 장치와 나머지 스토리지 장치들은 P2P 방식으로 데이터(예를 들어, 로컬 키)를 교환할 수 있다. 이와 같이, 별도의 외부 컨트롤러 없이 메인 스토리지 장치가 용량 구성 및 관리를 함으로써, 비용 증가 없이 네트워크 기반 스토리지 장치들을 효율적으로 관리할 수 있다.
도 1은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 스토리지 장치를 나타내는 블록도이다.
도 4a 및 4b는 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 스토리지 컨트롤러의 예들을 나타내는 블록도들이다.
도 5는 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 비휘발성 메모리의 일 예를 나타내는 블록도이다.
도 6a, 6b 및 6c는 도 1의 네트워크 기반 스토리지 장치의 구동 방법을 설명하기 위한 도면들이다.
도 7은 도 1의 복수의 스토리지 장치들의 용량을 설정 및 관리하는 단계의 일 예를 나타내는 순서도이다.
도 8a, 8b 및 8c는 도 7의 복수의 스토리지 장치들의 용량을 설정 및 관리하는 동작을 설명하기 위한 도면들이다.
도 9는 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 10은 도 9의 커맨드, 어드레스 및 로컬 키를 수신하는 단계, 및 목표 스토리지 장치에 액세스하는 단계의 일 예를 나타내는 순서도이다.
도 11a 및 11b는 도 10의 동작을 설명하기 위한 도면들이다.
도 12는 도 9의 커맨드, 어드레스 및 로컬 키를 수신하는 단계, 및 목표 스토리지 장치에 액세스하는 단계의 다른 예를 나타내는 순서도이다.
도 13a, 13b 및 13c는 도 12의 동작을 설명하기 위한 도면들이다.
도 14는 도 9의 커맨드, 어드레스 및 로컬 키를 수신하는 단계, 및 목표 스토리지 장치에 액세스하는 단계의 또 다른 예를 나타내는 순서도이다.
도 15는 도 14의 동작을 설명하기 위한 도면이다.
도 16은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 17은 본 발명의 실시예들에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다.
도 18은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 19는 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 20a 및 20b는 도 19의 네트워크 기반 스토리지 장치의 구동 방법을 설명하기 위한 도면들이다.
도 21은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 22a, 22b 및 22c는 도 21의 네트워크 기반 스토리지 장치의 구동 방법을 설명하기 위한 도면들이다.
도 23은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 24는 도 23의 네트워크 기반 스토리지 장치의 구동 방법을 설명하기 위한 도면들이다.
도 25는 본 발명의 실시예들에 따른 스토리지 장치가 스토리지 서버에 응용된 예를 나타내는 도면이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 수행하기 위해, 복수의 스토리지 장치들이 이더넷(Ethernet) 등과 같은 네트워크를 통해 서로 연결된다. 상기 복수의 스토리지 장치들 및 이를 포함하는 스토리지 시스템의 구조에 대해서는 도 2 등을 참조하여 후술하도록 한다.
본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법에서, 상기 복수의 스토리지 장치들 중 제1 로컬 키(local key)를 갖는 제1 스토리지 장치를 메인 스토리지 장치로 설정한다(단계 S100). 상기 제1 로컬 키는 외부의 호스트 장치가 상기 제1 스토리지 장치에 액세스하기 위해 이용되며, 제1 기준 키(reference key)라고 부를 수도 있다.
상기 제1 스토리지 장치가 상기 외부의 호스트 장치로부터 수신되는 제1 제어 신호에 기초하여 상기 복수의 스토리지 장치들의 용량(volume)을 설정 및 관리한다(단계 S200). 예를 들어, 논리적(logical) 용량 구성 또는 가상화를 통한 가상 용량 구성 방식에 기초하여 상기 복수의 스토리지 장치들의 용량이 설정 및 관리될 수 있다. 예를 들어, 상기 제1 스토리지 장치는 상기 복수의 스토리지 장치들 전부 또는 일부의 용량을 설정 및 관리할 수 있다.
상기 제1 스토리지 장치가 상기 복수의 스토리지 장치들 중 제2 로컬 키를 갖는 제2 스토리지 장치로부터 상기 제2 로컬 키를 수신한다(즉, 전달받는다)(단계 S300). 예를 들어, 상기 제1 스토리지 장치가 상기 제2 스토리지 장치로부터 상기 제2 로컬 키를 전달받는 동작은, 상기 외부의 호스트 장치를 통하지 않는 P2P(Peer-to-Peer) 방식에 기초하여 수행될 수 있다.
상기 제1 스토리지 장치가 상기 제1 로컬 키 및 상기 제2 로컬 키를 상기 외부의 호스트 장치로 전송한다(단계 S400). 도 9 등을 참조하여 후술하는 것처럼, 상기 외부의 호스트 장치는 상기 제1 로컬 키 및 상기 제2 로컬 키를 이용하여 상기 제1 스토리지 장치 및 상기 제2 스토리지 장치에 액세스할 수 있다.
설명의 편의상, 단계 S300에서는 상기 제1 스토리지 장치가 상기 제2 로컬 키만을 수신하고 단계 S400에서는 상기 제1 스토리지 장치가 상기 제1 및 제2 로컬 키들만을 전송하는 것으로 예시하였으나, 본 발명은 이에 한정되지 않으며, 단계 S300은 상기 제1 스토리지 장치가 관리하는 모든 스토리지 장치들로부터 로컬 키들을 수신하는 것으로, 그리고 단계 S400은 상기 스토리지 장치가 자기 자신의 로컬 키 및 단계 S300에서 수신된 로컬 키들을 상기 외부의 호스트 장치로 전송하는 것으로 설명될 수 있다.
본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법에서는, 네트워크를 통해 서로 연결된 복수의 스토리지 장치들 중 적어도 하나를 메인 스토리지 장치(또는 마스터 스토리지 장치)로 설정하고, 나머지 스토리지 장치들(또는 슬레이브 스토리지 장치들)은 메인 스토리지 장치에 의해 관리될 수 있다. 또한, 메인 스토리지 장치는 복수의 스토리지 장치들의 용량을 설정 및 관리하며, 메인 스토리지 장치와 나머지 스토리지 장치들은 P2P 방식으로 데이터(예를 들어, 로컬 키)를 교환할 수 있다. 이와 같이, 별도의 외부 컨트롤러 없이 메인 스토리지 장치가 용량 구성 및 관리를 함으로써, 비용 증가 없이 네트워크 기반 스토리지 장치들을 효율적으로 관리할 수 있다.
도 2는 본 발명의 실시예들에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다.
도 2를 참조하면, 스토리지 시스템(100)은 호스트 장치(200), 네트워크 스위치(250) 및 복수의 스토리지 장치들(270a, 270b, ..., 270n)을 포함한다. 스토리지 시스템(100)은 제1 네트워크(210) 및 제2 네트워크(230)를 더 포함할 수 있다.
호스트 장치(200)는 스토리지 시스템(100)의 전반적인 동작을 제어한다. 예를 들어, 상세하게 도시하지는 않았으나, 호스트 장치(200)는 호스트 프로세서 및 호스트 메모리를 포함할 수 있다. 상기 호스트 프로세서는 호스트 장치(200)의 동작을 제어하고, 예를 들어 운영 체제(Operating System; OS)를 실행할 수 있다. 상기 호스트 메모리는 상기 호스트 프로세서에 의해 실행 및 처리되는 명령어(instruction) 및 데이터를 저장할 수 있다. 예를 들어, 상기 호스트 프로세서에 의해 실행되는 상기 운영 체제는 파일 관리를 위한 파일 시스템(file system), 및 복수의 스토리지 장치들(270a~270n)을 포함하는 주변 기기를 상기 운영 체제 레벨에서 제어하기 위한 장치 드라이버(device driver)를 포함할 수 있다.
복수의 스토리지 장치들(270a~270n)은 호스트 장치(200)에 의해 액세스되며, 도 1을 참조하여 상술한 본 발명의 실시예들에 따른 구동 방법을 수행한다. 예를 들어, 복수의 스토리지 장치들(270a~270n) 중 제1 스토리지 장치(270a)를 메인 스토리지 장치로 설정하고, 제1 스토리지 장치(270a)는 용량 설정 및 관리 동작, 로컬 키 수신 동작 및 로컬 키 전송 동작을 수행한다. 제1 스토리지 장치(270a)는 상술한 동작들을 수행하기 위한 스토리지 관리부(272a)를 포함할 수 있다. 복수의 스토리지 장치들(270a~270n) 각각의 구조에 대해서는 도 3 등을 참조하여 후술하도록 한다.
도시의 편의상, 도 3에서는 제1 스토리지 장치(270a)만이 스토리지 관리부(272a)를 포함하는 것으로 예시하였으나, 본 발명은 이에 한정되지 않으며, 모든 스토리지 장치들(270a~270n)이 각각 스토리지 관리부를 포함하고 이 중 메인 스토리지 장치로 설정된 제1 스토리지 장치(270a)에 포함된 스토리지 관리부(272a)만이 활성화될 수도 있다.
복수의 스토리지 장치들(270a~270n)은 제1 네트워크(210)를 통해 서로 연결되며, 제2 네트워크(230)를 통해 호스트 장치(200)와 연결될 수 있다. 네트워크 스위치(250)는 제1 네트워크(210)를 통해 복수의 스토리지 장치들(270a~270n)을 서로 연결하며, 제2 네트워크(230)를 통해 복수의 스토리지 장치들(270a~270n)과 호스트 장치(200)를 연결할 수 있다.
네트워크 스위치(250) 및 네트워크 스위치(250)를 통해 서로 연결되는 복수의 스토리지 장치들(270a~270n)은 하나의 스토리지 모듈을 형성할 수 있다.
일 실시예에서, 제1 네트워크(210) 및 제2 네트워크(230)는 이더넷이며, 이 경우 네트워크 스위치(250)는 이더넷 스위치일 수 있다. 다만 본 발명은 이에 한정되지 않으며, 제1 네트워크(210) 및 제2 네트워크(230)는 LAN(Local Area Network), WAN(Wide Area Network), Wi-Fi 등과 같은 임의의 유/무선 네트워크들 중 하나일 수 있다.
일 실시예에서, 복수의 스토리지 장치들(270a~270n) 전부는 동일한 제1 공간 내에 배치될 수 있다. 다른 실시예에서, 복수의 스토리지 장치들(270a~270n) 중 일부는 제1 공간(예를 들어, 로컬 공간) 내에 배치되며, 복수의 스토리지 장치들(270a~270n) 중 다른 일부는 상기 제1 공간과 이격된 제2 공간(예를 들어, 원격 공간) 내에 배치될 수 있다. 예를 들어, 동일한 공간은 동일한 건물 내의 동일한 층의 동일한 사무실을 나타낼 수 있고, 이격된 공간들은 동일한 건물 내의 서로 다른 층의 사무실들 또는 서로 다른 건물 내의 사무실들 등을 나타낼 수 있다. 물리적으로 거리가 있는(즉, (서로 이격된) 네트워크 기반 스토리지 장치들을 본 발명의 실시예들에 따라 구동하는 경우에, 효율적으로 운용이 가능한 스토리지 장치를 메인 스토리지 장치로서 선택하여 구현할 수 있다.
도 3은 본 발명의 실시예들에 따른 스토리지 장치를 나타내는 블록도이다.
도 3을 참조하면, 스토리지 장치(300)는 연결부(302), 스토리지 컨트롤러(310), 복수의 비휘발성 메모리들(320a, 320b, 320c) 및 버퍼 메모리(330)를 포함할 수 있다.
스토리지 컨트롤러(310)는 스토리지 장치(300)의 동작을 제어할 수 있다. 예를 들어, 스토리지 컨트롤러(310)는 호스트 장치(도 2의 200)로부터 수신된 커맨드, 어드레스 및 데이터에 기초하여 복수의 비휘발성 메모리들(320a, 320b, 320c)의 동작을 제어할 수 있다.
스토리지 컨트롤러(310)는 스토리지 관리부(312)를 포함할 수 있다. 스토리지 관리부(312)는 도 2의 제1 스토리지 장치(270a)에 포함되는 스토리지 관리부(272a)에 대응하며, 도 1을 참조하여 상술한 본 발명의 실시예들에 따른 구동 방법을 수행할 수 있다. 다만 본 발명은 이에 한정되지 않으며, 스토리지 관리부(312)는 스토리지 컨트롤러(310)의 외부에 별도의 구성요소로서 구현될 수도 있다.
복수의 비휘발성 메모리들(320a, 320b, 320c)은 복수의 데이터들을 저장할 수 있다. 예를 들어, 복수의 비휘발성 메모리들(320a, 320b, 320c)은 메타 데이터들 및 그 밖의 사용자 데이터들을 저장할 수 있다.
일 실시예에서, 복수의 비휘발성 메모리들(320a, 320b, 320c) 각각은 NAND 플래시 메모리(Flash Memory)를 포함할 수 있다. 다른 실시예에서, 복수의 비휘발성 메모리들(320a, 320b, 320c) 각각은 EEPROM(Electrically Erasable Programmable Read-Only Memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 또는 이와 유사한 메모리를 포함할 수 있다.
버퍼 메모리(330)는 스토리지 컨트롤러(310)에 의해 실행 및 처리되는 명령어 및 데이터를 저장할 수 있고, 복수의 비휘발성 메모리들(320a, 320b, 320c)에 저장되어 있거나 저장하고자 하는 데이터를 임시로 저장할 수 있다. 예를 들어, 버퍼 메모리(330)는 DRAM(Dynamic Random Access Memory) 등과 같은 휘발성 메모리를 포함할 수 있다.
연결부(302)는 스토리지 장치(300)와 네트워크 스위치(도 2의 250)를 연결할 수 있다. 예를 들어, 연결부(302)는 스토리지 장치(300)와 네트워크 스위치(250)를 유선으로 연결하는 케이블이 삽입되는 소켓을 포함하거나, 스토리지 장치(300)와 네트워크 스위치(250)를 무선으로 연결하기 위한 무선 통신 모듈을 포함할 수 있다.
일 실시예에서, 스토리지 장치(300)는 SSD(Solid State Drive)일 수 있다. 예를 들어, 스토리지 장치(300)는 네트워크 기반, 즉 이더넷 기반으로 신호 및 데이터를 주고받는 이더넷 기반 SSD일 수 있다. 다른 실시예에서, 스토리지 장치(300)는 UFS(Universal Flash Storage), MMC(Multi Media Card), eMMC(embedded MMC), SD(Secure Digital) 카드, 마이크로 SD 카드, 메모리 스틱(memory stick), 칩 카드(chip card), USB(Universal Serial Bus) 카드, 스마트 카드(smart card), CF(Compact Flash) 카드 또는 이와 유사한 형태로 구현될 수 있다.
일 실시예에서, 스토리지 장치(300)는 다양한 종류의 버스를 포함하는 블록 액세서블 인터페이스(block accessible interface)를 통해 호스트 장치(200)와 연결되고, 호스트 장치(200)에 의해 상기 블록 액세서블 인터페이스를 통하여 블록 단위로 액세스될 수 있다.
일 실시예에서, 스토리지 장치(300)를 포함하는 스토리지 시스템(도 2의 100)은 PC(Personal Computer), 서버 컴퓨터(server computer), 데이터 센터(data center), 워크스테이션(workstation), 디지털 TV(digital television), 셋-탑 박스(set-top box) 등의 임의의 컴퓨팅 시스템일 수 있다. 다른 실시예에서, 스토리지 시스템(100)은 휴대폰(mobile phone), 스마트 폰(smart phone), 태블릿(tablet) PC(Personal Computer), 노트북(laptop computer), PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 디지털 카메라(digital camera), 캠코더(camcorder), 휴대용 게임 콘솔(portable game console), 음악 재생기(music player), 동영상 재생기(video player), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(Internet of Things) 기기, e-북(e-book), VR(Virtual Reality) 기기, AR(Augmented Reality) 기기, 드론(drone) 등의 임의의 모바일 시스템일 수 있다.
도 4a 및 4b는 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 스토리지 컨트롤러의 예들을 나타내는 블록도들이다.
도 4a를 참조하면, 스토리지 컨트롤러(400a)는 적어도 하나의 프로세서(410), 메모리(420), 용량 관리부(430a), 호스트 인터페이스(440), ECC(Error Correction Code) 블록(450) 및 메모리 인터페이스(460)를 포함할 수 있다.
프로세서(410)는 호스트 장치(도 2의 200)로부터 호스트 인터페이스(440)를 통하여 수신된 커맨드에 응답하여 스토리지 컨트롤러(400a)의 동작을 제어할 수 있다. 예를 들어, 프로세서(410)는 스토리지 장치(도 3의 300)를 구동하기 위한 펌웨어(Firmware)를 채용하여 각각의 구성들을 제어할 수 있다.
메모리(420)는 프로세서(410)에 의해 실행 및 처리되는 명령어 및 데이터를 저장할 수 있다. 예를 들어, 메모리(420)는 SRAM(Static Random Access Memory), 캐시(cache) 메모리 등과 같은 상대적으로 작은 용량 및 빠른 속도를 가지는 휘발성 메모리로 구현될 수 있다.
용량 관리부(430a)는 도 3의 스토리지 관리부(312)에 대응하는 구성일 수 있다. 다시 말하면, 도 4a의 예에서는 스토리지 관리부(312)가 용량 관리부(430a)의 형태로 구현될 수 있다. 용량 관리부(430a)는 논리적 용량 구성 또는 가상화를 통한 가상 용량 구성 방식에 기초하여 복수의 스토리지 장치들(도 2의 270a~270n)의 용량을 설정 및 관리할 수 있다. 또한, 용량 관리부(430a)는 복수의 스토리지 장치들(270a~270n) 사이에서 P2P 방식으로 로컬 키를 전송하도록 제어할 수 있다.
에러 정정을 위한 ECC 블록(450)은 BCH(Bose-Chaudhuri-Hocquenghem) 코드, LDPC(Low Density Parity Check) 코드, 터보 코드(Turbo Code), 리드-솔로몬 코드(Reed-Solomon Code), 콘볼루션 코드(Convolution Code), RSC(Recursive Systematic Code), TCM(Trellis-Coded Modulation), BCM(Block Coded Modulation) 등의 부호화된 변조(Coded Modulation), 또는 다른 에러 정정 코드를 이용하여 ECC 인코딩 및 ECC 디코딩을 수행할 수 있다.
호스트 인터페이스(440)는 호스트 장치(200)와 스토리지 장치(300) 사이의 물리적 연결을 제공할 수 있다. 즉, 호스트 인터페이스(440)는 호스트 장치(200)의 버스 포맷(bus format)에 대응하여 스토리지 장치(300)와의 인터페이싱을 제공할 수 있다.
메모리 인터페이스(460)는 비휘발성 메모리들(도 3의 320a, 320b, 320c)과 데이터를 교환할 수 있다. 메모리 인터페이스(460)는 데이터를 비휘발성 메모리들(320a, 320b, 320c)에 전송할 수 있고, 비휘발성 메모리들(320a, 320b, 320c)로부터 독출된 데이터를 수신할 수 있다. 일 실시예에서, 메모리 인터페이스(460)는 비휘발성 메모리들(320a, 320b, 320c)과 하나의 채널을 통하여 연결될 수 있다. 다른 실시예에서, 메모리 인터페이스(460)는 비휘발성 메모리들(320a, 320b, 320c)과 2 이상의 채널들을 통하여 연결될 수 있다.
도 4b를 참조하면, 스토리지 컨트롤러(400b)는 용량 관리부(430a)가 P2P 모듈(430b)로 변경되는 것을 제외하면 도 4a의 스토리지 컨트롤러(400a)와 실질적으로 동일할 수 있다.
P2P 모듈(430b)은 도 3의 스토리지 관리부(312)에 대응하는 구성일 수 있다. 다시 말하면, 도 4b의 예에서는 스토리지 관리부(312)가 P2P 모듈(430b)의 형태로 구현될 수 있다. P2P 모듈(430b)은 복수의 스토리지 장치들(도 2의 270a~270n) 사이에서 P2P 방식으로 로컬 키를 전송하도록 제어할 수 있다. 또한, P2P 모듈(430b)은 복수의 스토리지 장치들(도 2의 270a~270n)의 용량을 설정 및 관리할 수 있다.
실시예에 따라서, 도 4a의 용량 관리부(430a) 및/또는 도 4b의 P2P 모듈(430b)의 일부 또는 전부는 하드웨어의 형태로 구현될 수도 있고 소프트웨어(즉, 프로그램)의 형태로 구현될 수도 있다.
도 5는 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 비휘발성 메모리의 일 예를 나타내는 블록도이다.
도 5를 참조하면, 비휘발성 메모리(500)는 메모리 셀 어레이(510), 어드레스 디코더(520), 페이지 버퍼 회로(530), 데이터 입출력 회로(540), 전압 발생기(550) 및 제어 회로(560)를 포함한다.
메모리 셀 어레이(510)는 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL) 및 복수의 접지 선택 라인들(GSL)을 통해 어드레스 디코더(520)와 연결된다. 또한, 메모리 셀 어레이(510)는 복수의 비트 라인들(BL)을 통해 페이지 버퍼 회로(530)와 연결된다. 메모리 셀 어레이(510)는 복수의 워드 라인들(WL) 및 복수의 비트 라인들(BL)에 연결되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(510)는 각각 메모리 셀들을 포함하는 복수의 메모리 블록들(BLK1, BLK2, ..., BLKz)로 구분될 수 있다. 또한, 복수의 메모리 블록들(BLK1~BLKz) 각각은 복수의 페이지들로 구분될 수 있다.
실시예에 따라서, 메모리 셀 어레이(510)는 2차원 어레이(array) 구조 또는 3차원 수직 어레이 구조로 형성될 수 있다. 수직형(또는 3차원) 메모리 셀 어레이에 대한 자세한 설명은 본 명세서에 참고 문헌으로 결합된 미국 등록 번호 7,679,133; 8,553,466; 8,654,587; 8,559,235 및 미국 공개 번호 2011/0233648에 기술되어 있다.
제어 회로(560)는 외부(예를 들어, 도 2의 호스트 장치(200) 및/또는 도 3의 스토리지 컨트롤러(310))로부터 커맨드(CMD) 및 어드레스(ADDR)를 수신하고, 커맨드(CMD) 및 어드레스(ADDR)에 기초하여 비휘발성 메모리(500)의 소거 루프, 프로그램 루프 및 독출 동작을 제어한다. 여기서 프로그램 루프는 프로그램 동작과 프로그램 검증 동작을 포함하고, 소거 루프는 소거 동작과 소거 검증 동작을 포함할 수 있다. 여기서 독출 동작은 노멀 독출 동작과 데이터 리커버리 독출 동작을 포함할 수 있다.
예를 들어, 제어 회로(560)는 커맨드(CMD)에 기초하여 전압 발생기(550)를 제어하기 위한 제어 신호들(CON) 및 페이지 버퍼 회로(530)를 제어하기 위한 제어 신호들(PBC)을 발생하고, 어드레스(ADDR)에 기초하여 로우 어드레스(R_ADDR) 및 컬럼 어드레스(C_ADDR)를 발생할 수 있다. 제어 회로(560)는 로우 어드레스(R_ADDR)를 어드레스 디코더(520)에 제공하고, 컬럼 어드레스(C_ADDR)를 데이터 입출력 회로(540)에 제공할 수 있다.
어드레스 디코더(520)는 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL) 및 복수의 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(510)와 연결된다.
예를 들어, 소거/프로그램/독출 동작 시에, 어드레스 디코더(520)는 로우 어드레스(R_ADDR)에 응답하여, 복수의 워드 라인들(WL) 중 적어도 하나를 선택 워드 라인으로 결정하고, 복수의 워드 라인들(WL) 중에서 상기 선택 워드 라인을 제외한 나머지 워드 라인들을 비선택 워드 라인들로 결정할 수 있다.
또한, 소거/프로그램/독출 동작 시에, 어드레스 디코더(520)는 로우 어드레스(R_ADDR)에 응답하여, 복수의 스트링 선택 라인들(SSL) 중 적어도 하나를 선택 스트링 선택 라인으로 결정하고, 나머지 스트링 선택 라인들을 비선택 스트링 선택 라인들로 결정할 수 있다.
또한, 소거/프로그램/독출 동작 시에, 어드레스 디코더(520)는 로우 어드레스(R_ADDR)에 응답하여, 복수의 접지 선택 라인들(GSL) 중 적어도 하나를 선택 접지 선택 라인으로 결정하고, 나머지 접지 선택 라인들을 비선택 접지 선택 라인들로 결정할 수 있다.
전압 발생기(550)는 전원 전압(PWR) 및 제어 신호들(CON)에 기초하여 비휘발성 메모리(500)의 동작에 필요한 전압들(VS)을 발생할 수 있다. 전압들(VS)은 어드레스 디코더(520)를 통해 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL) 및 복수의 접지 선택 라인들(GSL)에 인가될 수 있다. 또한, 전압 발생기(550)는 전원 전압(PWR) 및 제어 신호들(CON)에 기초하여 소거 동작에 필요한 소거 전압(VERS)을 발생할 수 있다. 소거 전압(VERS)은 메모리 셀 어레이(510)에 직접 인가되거나 비트 라인(BL)을 통해 인가될 수 있다.
예를 들어, 소거 동작 시에, 전압 발생기(550)는 하나의 메모리 블록의 공통 소스 라인 및/또는 비트 라인(BL)에 소거 전압(VERS)을 인가하고, 어드레스 디코더(520)를 통해 하나의 메모리 블록의 모든 워드 라인들 또는 일부의 서브 블록에 해당하는 워드 라인들에 소거 허용 전압(예를 들어, 접지 전압)을 인가할 수 있다. 소거 검증 동작 시에, 전압 발생기(550)는 하나의 메모리 블록의 모든 워드 라인들에 소거 검증 전압을 인가하거나 워드 라인 단위로 소거 검증 전압을 인가할 수 있다.
예를 들어, 프로그램 동작 시에, 전압 발생기(550)는 어드레스 디코더(520)를 통해 상기 선택 워드 라인에 프로그램 전압을 인가하고, 상기 비선택 워드 라인들에는 프로그램 금지 전압을 인가할 수 있다. 프로그램 검증 동작 시에, 전압 발생기(550)는 어드레스 디코더(520)를 통해 상기 선택 워드 라인에 프로그램 검증 전압을 인가하고, 상기 비선택 워드 라인들에는 검증 패스 전압을 인가할 수 있다.
또한, 노멀 독출 동작 시에, 전압 발생기(550)는 어드레스 디코더(520)를 통해 상기 선택 워드 라인에 독출 전압을 인가하고, 상기 비선택 워드 라인들에는 독출 패스 전압을 인가할 수 있다. 또한 데이터 리커버리 독출 동작 시에, 전압 발생기(550)는 어드레스 디코더(520)를 통해 상기 선택 워드 라인에 인접한 워드 라인에 독출 전압을 인가하고, 상기 선택 워드 라인에는 리커버리 독출 전압을 인가할 수 있다.
페이지 버퍼 회로(530)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(510)와 연결될 수 있다. 페이지 버퍼 회로(530)는 복수의 페이지 버퍼들을 포함할 수 있다. 일 실시예에서, 하나의 페이지 버퍼에 하나의 비트 라인이 연결될 수 있다. 다른 실시예에서, 하나의 페이지 버퍼에 두 개 이상의 비트 라인들이 연결될 수 있다.
페이지 버퍼 회로(530)는 메모리 셀 어레이(510)에 프로그램 될 기입 데이터(DAT)를 저장하거나 혹은 메모리 셀 어레이(510)로부터 감지된 독출 데이터(DAT)를 저장할 수 있다. 즉, 페이지 버퍼 회로(530)는 비휘발성 메모리(500)의 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작할 수 있다.
데이터 입출력 회로(540)는 데이터 라인들(DL)을 통해 페이지 버퍼 회로(530)와 연결될 수 있다. 데이터 입출력 회로(540)는 컬럼 어드레스(C_ADDR)에 응답하여, 기입 데이터(DAT)를 페이지 버퍼 회로(530)를 거쳐서 메모리 셀 어레이(510)에 제공하거나 혹은 메모리 셀 어레이(510)로부터 페이지 버퍼 회로(530)를 거쳐서 출력되는 독출 데이터(DAT)를 외부에 제공할 수 있다.
도 6a, 6b 및 6c는 도 1의 네트워크 기반 스토리지 장치의 구동 방법을 설명하기 위한 도면들이다. 편의상 도 6a 및 이후의 도면에서, 스토리지 시스템(100a)이 4개의 스토리지 장치들(270a, 270b, 270c, 270d)을 포함하는 경우에 기초하여 본 발명의 실시예들을 설명하도록 한다.
도 1 및 6a를 참조하면, 제1 스토리지 장치(270a)를 메인 스토리지 장치로 설정한 이후에, 호스트 장치(200)는 제1 제어 신호(CONT1)를 제1 스토리지 장치(270a)로 전송할 수 있다. 제1 제어 신호(CONT1)는 제2 네트워크(230), 네트워크 스위치(250) 및 제1 네트워크(210)를 통하여 제1 스토리지 장치(270a)의 스토리지 관리부(272a)에 제공될 수 있다. 제1 제어 신호(CONT1)는 스토리지 장치들(270a~270d)의 용량을 설정, 제어 및 관리하기 위한 신호일 수 있다.
이후에, 단계 S200을 참조하여 상술한 것처럼, 제1 스토리지 장치(270a)의 스토리지 관리부(272a)는 제1 제어 신호(CONT1)에 기초하여 스토리지 장치들(270a~270d)의 용량을 설정 및 관리할 수 있다. 단계 S200은 도 7 등을 참조하여 상세하게 후술하도록 한다.
도 1 및 6b를 참조하면, 단계 S300을 참조하여 상술한 것처럼, 제1 스토리지 장치(270a)는 관리하는 나머지 스토리지 장치들(270b~270d)로부터 로컬 키들(LK2, LK3, LK4)을 수신할 수 있다. 로컬 키들(LK2~LK4)은 제1 네트워크(210) 및 네트워크 스위치(250)를 통하여 제1 스토리지 장치(270a)의 스토리지 관리부(272a)에 제공될 수 있다. 상술한 것처럼, 로컬 키들(LK2~LK4)은 P2P 방식으로 전달되며, 호스트 장치(200)를 통하지 않고 네트워크 스위치(250)를 통해 스토리지 장치들(270b~270d)로부터 제1 스토리지 장치(270a)로 직접 전달될 수 있다. 이와 함께, 제1 스토리지 장치(270a)는 자기 자신의 로컬 키(LK1) 또한 스토리지 관리부(272a)에 제공될 수 있다.
로컬 키(또는 기준 키)는 스토리지 장치 고유의 키이며, 호스트 장치(200)가 해당 스토리지 장치에 액세스하기 위해 필요한 메모리 영역 접근 가능 정보 및/또는 포인터 정보를 포함할 수 있다. 예를 들어, 상기 로컬 키는 RDMA(Remote Direct Memory Access) 키일 수 있다. 예를 들어, 상기 RDMA 키는 UDP(User Datagram Protocol) 기반의 RoCEv2(RDMA over Converged Ethernet v2) 키이거나, TCP(Transmission Control Protocol) 기반의 iWARP(internet Wide Area RDMA Protocol) 키일 수 있으나, 이에 한정되지 않을 수 있다.
도 1 및 6c를 참조하면, 단계 S400을 참조하여 상술한 것처럼, 제1 스토리지 장치(270a)는 로컬 키들(LK1~LK4)을 호스트 장치(200)로 전송할 수 있다. 로컬 키들(LK1~LK4)은 제1 네트워크(210), 네트워크 스위치(250) 및 제2 네트워크(230)를 통하여 호스트 장치(200)에 제공될 수 있다.
이후에, 도 9 등을 참조하여 후술하는 것처럼 호스트 장치(200)는 로컬 키들(LK1~LK4) 중 적어도 하나를 이용하여 스토리지 장치들(270a~270d) 중 적어도 하나에 액세스할 수 있다.
도 7은 도 1의 복수의 스토리지 장치들의 용량을 설정 및 관리하는 단계의 일 예를 나타내는 순서도이다. 도 8a, 8b 및 8c는 도 7의 복수의 스토리지 장치들의 용량을 설정 및 관리하는 동작을 설명하기 위한 도면들이다.
도 1 및 7을 참조하면, 상기 복수의 스토리지 장치들의 용량을 설정 및 관리하는데 있어서(단계 S200), 상기 복수의 스토리지 장치들을 적어도 2개의 파티션(partition)들로 구분할 수 있다(단계 S210). 예를 들어, 논리적 용량 구성 또는 가상화를 통한 가상 용량 구성 방식에 기초하여 상기 복수의 스토리지 장치들을 복수의 파티션들로 구분할 수 있다.
실시예에 따라서, 상기 복수의 스토리지 장치들의 용량을 설정 및 관리하는 동작은 동작 초기에(예를 들어, 부팅 시에) 수행될 수도 있고, 상기 복수의 스토리지 장치들의 구동 중에 사용자 요청에 의해 수행될 수도 있다.
이하에서는 상기 복수의 스토리지 장치들을 2개의 파티션들로 구분하는 경우에 기초하여 단계 S210을 구체적으로 설명하도록 한다.
도 8a를 참조하면, 스토리지 장치들(270a~270d)을 제1 용량을 갖는 제1 파티션(PT11) 및 제2 용량을 갖는 제2 파티션(PT12)으로 구분할 수 있다. 도 8a의 예에서, 제1 파티션(PT11) 및 제2 파티션(PT12) 각각은 스토리지 장치들(270a~270d) 전부에 대응하도록 설정될 수 있다. 예를 들어, 제1 파티션(PT11)은 모든 스토리지 장치들(270a~270d)의 일부분을 포함하고, 제2 파티션(PT12)은 모든 스토리지 장치들(270a~270d)의 다른 일부분을 포함할 수 있다. 또한, 제1 파티션(PT11)의 상기 제1 용량 및 제2 파티션(PT12)의 상기 제2 용량은 실질적으로 동일할 수 있다.
도 8b를 참조하면, 스토리지 장치들(270a~270d)을 제1 용량을 갖는 제1 파티션(PT21) 및 제2 용량을 갖는 제2 파티션(PT22)으로 구분할 수 있다. 도 8b의 예에서, 제1 파티션(PT21) 및 제2 파티션(PT22) 각각은 스토리지 장치들(270a~270d) 전부에 대응하도록 설정될 수 있다. 또한, 제1 파티션(PT21)의 상기 제1 용량 및 제2 파티션(PT22)의 상기 제2 용량은 서로 다를 수 있다.
도 8c를 참조하면, 스토리지 장치들(270a~270d)을 제1 용량을 갖는 제1 파티션(PT31) 및 제2 용량을 갖는 제2 파티션(PT32)으로 구분할 수 있다. 도 8c의 예에서, 제1 파티션(PT31) 및 제2 파티션(PT32) 각각은 스토리지 장치들(270a~270d) 중 일부에만 대응하도록 설정될 수 있다. 예를 들어, 제1 파티션(PT31)은 스토리지 장치들(270a, 270b)의 전부를 포함하고, 제2 파티션(PT32)은 다른 스토리지 장치들(270c, 270d)의 전부를 포함할 수 있다. 또한, 제1 파티션(PT31)의 상기 제1 용량 및 제2 파티션(PT32)의 상기 제2 용량은 실질적으로 동일할 수 있다.
한편 도시하지는 않았으나, 각 파티션이 스토리지 장치들(270a~270d) 중 일부에만 대응하도록 설정되는 경우에, 파티션들의 용량은 서로 다를 수도 있다. 또한 도 8a, 8b 및 8c는 복수의 스토리지 장치들을 2개의 파티션들로 구분하는 경우를 예시하였으나, 본 발명은 이에 한정되지 않으며, 파티션들의 개수는 실시예에 따라서 다양하게 변경될 수 있다.
도 9는 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다. 이하 도 1과 중복되는 설명은 생략한다.
도 9를 참조하면, 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법에서, 단계 S100, S200, S300 및 S400은 도 1의 단계 S100, S200, S300 및 S400과 각각 실질적으로 동일할 수 있다.
상기 제1 스토리지 장치가 상기 외부의 호스트 장치로부터 목표 스토리지 장치에 액세스하기 위한 커맨드, 어드레스 및 로컬 키를 수신하며(단계 S500), 수신된 상기 커맨드, 상기 어드레스 및 상기 로컬 키에 기초하여 상기 목표 스토리지 장치에 액세스한다(단계 S600). 예를 들어, 상기 목표 스토리지 장치는 상기 제1 스토리지 장치이거나, 상기 복수의 스토리지 장치들 중 상기 제1 스토리지 장치가 관리하는 나머지 스토리지 장치들 중 적어도 하나일 수 있다. 상기 목표 스토리지 장치에 따라 단계 S500 및 S600의 수행 방식이 달라질 수 있으며, 이에 대해서는 도 10, 12 및 14를 참조하여 후술하도록 한다.
도 10은 도 9의 커맨드, 어드레스 및 로컬 키를 수신하는 단계, 및 목표 스토리지 장치에 액세스하는 단계의 일 예를 나타내는 순서도이다. 도 11a 및 11b는 도 10의 동작을 설명하기 위한 도면들이다.
도 9, 10, 11a 및 11b를 참조하면, 상기 제1 스토리지 장치가 상기 목표 스토리지 장치에 액세스하기 위한 상기 커맨드, 상기 어드레스 및 상기 로컬 키를 수신하는데 있어서(단계 S500), 제1 스토리지 장치(270a)는 호스트 장치(200)로부터 제1 스토리지 장치(270a)에 액세스하기 위한 제1 커맨드(CMD1), 제1 어드레스(ADDR1) 및 제1 로컬 키(LK1)를 수신할 수 있다(단계 S510). 다시 말하면, 도 10, 11a 및 11b는 제1 스토리지 장치(270a)가 상기 목표 스토리지 장치인 경우를 예시하고 있다.
상기 목표 스토리지 장치에 액세스하는데 있어서(단계 S600), 제1 커맨드(CMD1), 제1 어드레스(ADDR1) 및 제1 로컬 키(LK1)에 기초하여 제1 스토리지 장치(270a)와 호스트 장치(200)가 직접 데이터를 교환할 수 있다(단계 S610). 예를 들어, 제1 커맨드(CMD1)가 기입 커맨드인 경우에, 제1 스토리지 장치(270a)에 저장하고자 하는 제1 기입 데이터(WDAT1)가 호스트 장치(200)로부터 제1 스토리지 장치(270a)에 직접 제공될 수 있다. 제1 커맨드(CMD1)가 독출 커맨드인 경우에, 제1 스토리지 장치(270a)에 저장되어 있는 제1 독출 데이터(RDAT1)가 획득되어 제1 스토리지 장치(270a)로부터 호스트 장치(200)에 직접 제공될 수 있다. 예를 들어, 제1 어드레스(ADDR1) 및 제1 로컬 키(LK1)의 조합에 의해 제1 기입 데이터(WDAT1)를 저장하고자 하는 메모리 영역 및/또는 제1 독출 데이터(RDAT1)가 저장되어 있는 메모리 영역에 액세스할 수 있다.
도 12는 도 9의 커맨드, 어드레스 및 로컬 키를 수신하는 단계, 및 목표 스토리지 장치에 액세스하는 단계의 다른 예를 나타내는 순서도이다. 도 13a, 13b 및 13c는 도 12의 동작을 설명하기 위한 도면들이다. 이하 도 10, 11a 및 11b와 중복되는 설명은 생략한다.
도 9, 12, 13a, 13b 및 13c를 참조하면, 상기 제1 스토리지 장치가 상기 목표 스토리지 장치에 액세스하기 위한 상기 커맨드, 상기 어드레스 및 상기 로컬 키를 수신하는데 있어서(단계 S500), 제1 스토리지 장치(270a)는 호스트 장치(200)로부터 제2 스토리지 장치(270b)에 액세스하기 위한 제2 커맨드(CMD2), 제2 어드레스(ADDR2) 및 제2 로컬 키(LK2)를 수신할 수 있다(단계 S520). 다시 말하면, 도 12, 13a, 13b 및 13c는 제2 스토리지 장치(270b)가 상기 목표 스토리지 장치인 경우를 예시하고 있다.
제1 스토리지 장치(270a)는 제2 커맨드(CMD2), 제2 어드레스(ADDR2) 및 제2 로컬 키(LK2)를 제2 스토리지 장치(270b)에 전송할 수 있다(단계 S530). 도 1 및 9의 단계 S300과 유사하게, 제2 스토리지 장치(270b)가 제1 스토리지 장치(270a)로부터 제2 커맨드(CMD2), 제2 어드레스(ADDR2) 및 제2 로컬 키(LK2)를 전달받는 동작 역시 P2P 방식에 기초하여 수행될 수 있다.
상기 목표 스토리지 장치에 액세스하는데 있어서(단계 S600), 제2 커맨드(CMD2), 제2 어드레스(ADDR2) 및 제2 로컬 키(LK2)에 기초하여 제2 스토리지 장치(270b)와 호스트 장치(200)가 제1 스토리지 장치(270a)를 통하지 않고 직접 데이터를 교환할 수 있다(단계 S620). 예를 들어, 제2 커맨드(CMD2)가 기입 커맨드인지 또는 독출 커맨드인지에 따라, 제2 스토리지 장치(270b)에 저장하고자 하는 제2 기입 데이터(WDAT2)가 호스트 장치(200)로부터 제2 스토리지 장치(270b)에 직접 제공되거나, 제2 스토리지 장치(270b)에 저장되어 있는 제2 독출 데이터(RDAT2)가 획득되어 제2 스토리지 장치(270b)로부터 호스트 장치(200)에 직접 제공될 수 있다.
도 12, 13a, 13b 및 13c의 예에서, 데이터(WDAT2 또는 RDAT2)를 제외한 제2 커맨드(CMD2), 제2 어드레스(ADDR2) 및 제2 로컬 키(LK2)는 메인 스토리지 장치인 제1 스토리지 장치(270a)가 수신한 이후에 P2P 방식으로 제2 스토리지 장치(270b)에 전송하며, 데이터(WDAT2 또는 RDAT2)는 제1 스토리지 장치(270a)를 통하지 않고 제2 스토리지 장치(270b)와 호스트 장치(200) 사이에서 직접 교환될 수 있다.
도 14는 도 9의 커맨드, 어드레스 및 로컬 키를 수신하는 단계, 및 목표 스토리지 장치에 액세스하는 단계의 또 다른 예를 나타내는 순서도이다. 도 15는 도 14의 동작을 설명하기 위한 도면이다. 이하 도 10, 11a, 11b, 12, 13a, 13b 및 13c와 중복되는 설명은 생략한다.
도 9, 14 및 15를 참조하면, 상기 제1 스토리지 장치가 상기 목표 스토리지 장치에 액세스하기 위한 상기 커맨드, 상기 어드레스 및 상기 로컬 키를 수신하는데 있어서(단계 S500), 단계 S520 및 S530은 도 12의 단계 S520 및 S530과 각각 실질적으로 동일할 수 있다.
상기 목표 스토리지 장치에 액세스하는데 있어서(단계 S600), 제2 커맨드(CMD2), 제2 어드레스(ADDR2) 및 제2 로컬 키(LK2)에 기초하여 제2 스토리지 장치(270b)와 호스트 장치(200)가 제1 스토리지 장치(270a)를 통하여 데이터를 교환할 수 있다(단계 S630). 예를 들어, 제2 커맨드(CMD2)가 기입 커맨드인지 또는 독출 커맨드인지에 따라, 제2 스토리지 장치(270b)에 저장하고자 하는 제2 기입 데이터(WDAT2)가 호스트 장치(200)로부터 제1 스토리지 장치(270a)를 통하여 제2 스토리지 장치(270b)에 제공되거나, 제2 스토리지 장치(270b)에 저장되어 있는 제2 독출 데이터(RDAT2)가 획득되어 제2 스토리지 장치(270b)로부터 제1 스토리지 장치(270a)를 통하여 호스트 장치(200)에 제공될 수 있다.
도 14 및 15의 예에서, 제2 커맨드(CMD2), 제2 어드레스(ADDR2) 및 제2 로컬 키(LK2)뿐만 아니라 데이터(WDAT2 또는 RDAT2) 또한 제1 스토리지 장치(270a)를 통하여 전송 및/또는 교환될 수 있다.
한편, 도 10 내지 15를 참조하여 스토리지 장치들(270a~270d) 중 하나의 스토리지 장치에만 액세스하는 경우를 예시하였으나, 본 발명은 이에 한정되지 않으며, 스토리지 장치들(270a~270d) 중 두 개 이상의 스토리지 장치들에 실질적으로 동시에 액세스할 수도 있다.
도 16은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다. 이하 도 1과 중복되는 설명은 생략한다.
도 16을 참조하면, 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법에서, 상기 제1 스토리지 장치를 제1 메인 스토리지 장치로 설정하고(단계 S100a), 상기 제1 스토리지 장치가 상기 제1 제어 신호에 기초하여 상기 복수의 스토리지 장치들 중 일부의 용량을 설정 및 관리한다(단계 S200a). 단계 S100a 및 S200a는 도 1의 단계 S100 및 S200과 각각 유사할 수 있다. 단계 S300 및 S400은 도 1의 단계 S300 및 S400과 각각 실질적으로 동일할 수 있다.
이와 함께, 상기 복수의 스토리지 장치들 중 제3 로컬 키를 갖는 제3 스토리지 장치를 제2 메인 스토리지 장치로 설정하고(단계 S1100), 상기 제3 스토리지 장치가 상기 외부의 호스트 장치로부터 수신되는 제2 제어 신호에 기초하여 상기 복수의 스토리지 장치들 중 적어도 다른 일부의 용량을 설정 및 관리하고(단계 S1200), 상기 제3 스토리지 장치가 상기 복수의 스토리지 장치들 중 제4 로컬 키를 갖는 제4 스토리지 장치로부터 상기 제4 로컬 키를 수신하며(단계 S1300), 상기 제3 스토리지 장치가 상기 제3 로컬 키 및 상기 제4 로컬 키를 상기 외부의 호스트 장치로 전송한다(단계 S1400). 단계 S1100, S1200, S1300 및 S1400은 단계 S100a, S200a, S300 및 S400과 각각 유사할 수 있다.
도 16의 예에서, 상기 제1 스토리지 장치는 상기 복수의 스토리지 장치들 중 일부에 대한 모든 기능들을 관리하고, 상기 제3 스토리지 장치는 상기 복수의 스토리지 장치들 중 다른 일부에 대한 모든 기능들을 관리할 수 있다.
한편, 도 16에서는 단계 S100a, S200a, S300 및 S400이 수행된 이후에 단계 S1100, S1200, S1300 및 S1400이 수행되는 것으로 예시하였으나, 본 발명은 이에 한정되지 않으며, 단계 S100a 및 S1100은 실질적으로 동시에 수행되고, 단계 S200a 및 S1200은 실질적으로 동시에 수행되고, 단계 S300 및 S1300은 실질적으로 동시에 수행되며, 단계 S400 및 S1400은 실질적으로 동시에 수행될 수도 있다.
도 17은 본 발명의 실시예들에 따른 스토리지 장치 및 이를 포함하는 스토리지 시스템을 나타내는 블록도이다. 이하 도 2와 중복되는 설명은 생략한다.
도 17을 참조하면, 스토리지 시스템(100b)은 복수의 스토리지 장치들(270a,..., 270n, 271a, ..., 271m)의 구성이 변경되는 것을 제외하면 도 2의 스토리지 시스템(100)과 실질적으로 동일할 수 있다.
복수의 스토리지 장치들(270a~270n, 271a~271m) 중 스토리지 장치(270a)를 제1 메인 스토리지 장치로 설정하고, 스토리지 장치(270a)는 제1 그룹의 스토리지 장치들(270a~270n)에 대한 용량 설정 및 관리 동작, 로컬 키 수신 및 전송 동작을 수행하며, 스토리지 장치(270a)는 상술한 동작들을 수행하기 위한 스토리지 관리부(272a)를 포함할 수 있다. 또한, 복수의 스토리지 장치들(270a~270n, 271a~271m) 중 스토리지 장치(271a)를 제2 메인 스토리지 장치로 설정하고, 스토리지 장치(271a)는 제2 그룹의 스토리지 장치들(271a~271m)에 대한 용량 설정 및 관리 동작, 로컬 키 수신 및 전송 동작을 수행하며, 스토리지 장치(271a)는 상술한 동작들을 수행하기 위한 스토리지 관리부(273a)를 포함할 수 있다.
실시예에 따라서, 스토리지 장치들(270a~270n)의 개수는 스토리지 장치들(271a~271m)의 개수와 동일할 수도 있고 서로 다를 수도 있다.
도 18은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다. 이하 도 1 및 16과 중복되는 설명은 생략한다.
도 18을 참조하면, 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법에서, 단계 S100a 및 S1100은 도 16의 단계 S100a 및 S1100과 각각 실질적으로 동일할 수 있다. 단계 S200, S300 및 S400은 도 1의 단계 S200, S300 및 S400과 각각 실질적으로 동일할 수 있다.
상기 제3 스토리지 장치가 상기 외부의 호스트 장치로부터 수신되는 제2 제어 신호에 기초하여 상기 복수의 스토리지 장치들에 대한 다른 기능을 관리할 수 있다(단계 S1500). 예를 들어, 상기 다른 기능은 다양한 기능들 중 용량 설정 및 구성을 제외한 기능을 포함할 수 있다.
도 18의 예에서, 상기 제1 스토리지 장치는 상기 복수의 스토리지 장치들 전부에 대한 일부 기능 또는 제1 기능(예를 들어, 용량 설정 및 구성)을 관리하고, 상기 제3 스토리지 장치는 상기 복수의 스토리지 장치들 전부에 대한 다른 기능 또는 제2 기능을 관리할 수 있다.
상기 복수의 스토리지 장치들의 개수가 상대적으로 많은 경우에, 1개의 메인 스토리지 장치가 모든 스토리지 장치들을 관리하는 것은 비효율적일 수 있다. 이 때, 도 16 내지 18을 참조하여 상술한 것처럼, 2개의 메인 스토리지 장치들을 설정하고 각 메인 스토리지 장치가 일부의 스토리지 장치들만을 관리하거나 상기 복수의 스토리지 장치들에 대한 일부 기능만을 관리하도록 구현함으로써, 네트워크 기반 스토리지 장치들을 더욱 효율적으로 관리할 수 있다.
한편, 도 16 내지 18에서는 2개의 메인 스토리지 장치들을 설정하는 것으로 예시하였으나, 본 발명은 이에 한정되지 않으며, 메인 스토리지 장치들의 개수는 실시예에 따라서 다양하게 변경될 수 있다.
도 19는 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다. 도 20a 및 20b는 도 19의 네트워크 기반 스토리지 장치의 구동 방법을 설명하기 위한 도면들이다. 이하 도 1과 중복되는 설명은 생략한다.
도 19, 20a 및 20b를 참조하면, 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법에서, 단계 S100, S200, S300 및 S400은 도 1의 단계 S100, S200, S300 및 S400과 각각 실질적으로 동일할 수 있다.
상기 복수의 스토리지 장치들 중 적어도 하나 및/또는 일부 영역을 패리티 저장용 공간(또는 패리티 디스크)으로 설정할 수 있다(단계 S2100). 예를 들어, 상기 패리티 저장용 공간은 에러 복구(error recovery)를 위해 수행되는 이레이져 코딩(erasure coding), RAID(예를 들어, RAID-5, RAID-6) 등에 의해 생성되는 패리티 비트들을 저장할 수 있다. 예를 들어, 단계 S2100은 상기 제1 스토리지 장치에 의해 수행될 수 있다.
일 실시예에서, 도 20a에 도시된 것처럼, 일부 스토리지 장치(270d)의 전체 영역을 패리티 저장용 공간(PAR1)으로 설정할 수 있다. 다른 실시예에서, 도 20b에 도시된 것처럼, 패리티 비트들을 분산시키기 위해 모든 스토리지 장치들(270a~270d)의 일부 영역을 패리티 저장용 공간(PAR2)으로 설정할 수 있다. 다만 본 발명은 이에 한정되지 않으며, 2개 이상의 스토리지 장치들의 전체 영역 또는 일부 스토리지 장치들의 일부 영역을 패리티 저장용 공간으로 설정할 수도 있다.
도 21은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다. 도 22a, 22b 및 22c는 도 21의 네트워크 기반 스토리지 장치의 구동 방법을 설명하기 위한 도면들이다. 이하 도 1과 중복되는 설명은 생략한다.
도 21, 22a, 22b 및 22c를 참조하면, 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법에서, 단계 S100, S200, S300 및 S400은 도 1의 단계 S100, S200, S300 및 S400과 각각 실질적으로 동일할 수 있다.
상기 제1 스토리지 장치가 상기 복수의 스토리지 장치들에 대한 보안(security) 설정을 수행할 수 있다(단계 S2200). 예를 들어, NVMe in-band authentication을 사용하여 인증 절차(authentication process)를 수행할 수도 있고, IPSec(Internet Protocol Security)을 사용하여 초기 단계(initial step)인 연결/키 교환(connection/key exchange)을 수행할 수도 있다.
구체적으로, 도 22a에 도시된 것처럼, 먼저 호스트 장치(200)는 보안 설정을 위한 제어 신호(CONTS)를 제1 스토리지 장치(270a)로 전송할 수 있다. 이후에 도 22b에 도시된 것처럼, 호스트 장치(200)와 제1 스토리지 장치(270a)는 로컬 키(LK1~LK4)와 다르고 보안 설정을 위한 보안 키(SK1)를 교환, 설정 및 형성할 수 있다. 이후에 도 22c에 도시된 것처럼, 제1 스토리지 장치(270a)는 보안 키(SK1)를 나머지 스토리지 장치들(270b~270d)에 전송할 수 있다. 이에 따라, 복수의 스토리지 장치들(270a~270d) 모두는 동일한 보안 키(SK1)를 사용할 수 있다.
상기 보안 설정을 수행한 이후에, 상기 복수의 스토리지 장치들 중 적어도 하나가 보안 데이터를 구성 및 생성할 수 있다(단계 S2300). 예를 들어, 보안 키(SK1)를 사용하여 암호화된 데이터를 생성하며, 상기 암호화된 데이터는 IPSec 헤더(header)가 생성된 데이터일 수 있다. 이후에, 상기 복수의 스토리지 장치들 중 적어도 하나와 상기 호스트 장치가 상기 보안 데이터를 교환하는 동작은 도 9 내지 15를 참조하여 상술한 것과 실질적으로 동일할 수 있다.
도 23은 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법을 나타내는 순서도이다. 도 24는 도 23의 네트워크 기반 스토리지 장치의 구동 방법을 설명하기 위한 도면들이다. 이하 도 1과 중복되는 설명은 생략한다.
도 23 및 24를 참조하면, 본 발명의 실시예들에 따른 네트워크 기반 스토리지 장치의 구동 방법에서, 단계 S100, S200, S300 및 S400은 도 1의 단계 S100, S200, S300 및 S400과 각각 실질적으로 동일할 수 있다.
상기 복수의 스토리지 장치들을 제외한 적어도 하나의 스토리지 장치를 추가할 수 있다(단계 S2400). 도 24에 도시된 것처럼, 복수의 스토리지 장치들(270a~270d)과 복수의 스토리지 장치들(270a~270d)을 제외한 스토리지 장치(270e)를 제1 네트워크(210)를 통해 추가적으로 연결함으로써, 스토리지 시스템(100a)의 전체 용량을 증설할 수 있다.
일 실시예에서, MAC(Media Access Control) 주소, IP(Internet Protocol) 주소 또는 이와 유사한 기능을 가지는 객체 기반으로 메인 스토리지 장치를 구분하고, 메인 스토리지 장치의 상기 객체를 기반으로 적어도 하나의 스토리지 장치를 추가하여 용량 증설을 할 수 있다. 다른 실시예에서, 씬 프로비져닝(Thin Provisioning) 등을 이용하여 가상 용량 구성 후에 실질적인 용량이 부족하면, 상기 객체를 기반으로 용량 증설을 할 수 있다. 또 다른 실시예에서, 복수의 스토리지 장치들의 스토리지 풀(pool)을 관리할 수 있다.
이상, 도 1 내지 24를 참조하여 스토리지 장치의 구동 방법을 설명하였으나, 본 발명의 실시예들은 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템의 구동 방법으로 설명될 수도 있다.
한편, 본 발명의 실시예들은 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수도 있다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다. 예를 들어, 상기 컴퓨터로 판독 가능한 매체는 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, 비일시적은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
도 25는 본 발명의 실시예들에 따른 스토리지 장치가 스토리지 서버에 응용된 예를 나타내는 도면이다.
도 25를 참조하면, 스토리지 서버(1000)는 호스트 장치(1100), 서버(1200) 및 복수의 스토리지 모듈들(1300)을 포함할 수 있다.
서버(1200)는 복수의 스토리지 모듈들(1300)을 제어하기 위한 서버 컨트롤러(1210) 및 RAID(Redundant Array of Independent Drives) 컨트롤러(1220)를 포함할 수 있다.
RAID는 상대적으로 중요한 데이터를 가지고 있는 서버에 주로 사용되며, 여러 개의 스토리지 장치가 있을 때 동일한 데이터를 서로 다른 위치에 중복해서 저장하는 방법이다. RAID 컨트롤러(1220)는 RAID 레벨 정보에 따라 다수의 RAID 레벨들 중에서 선택된 하나의 RAID 레벨을 인에이블시키고 인에이블된 RAID 레벨(또는 RAID 프로토콜)에 따라 서버(1200)와 복수의 스토리지 모듈들(1300) 사이에서 주고받는 데이터를 인터페이싱할 수 있다.
복수의 스토리지 모듈들(1300) 각각은 네트워크 스위치(1310), 및 서버(1200)를 구동하는데 필요한 데이터를 저장하는 복수의 스토리지 장치들(1320)을 포함할 수 있다. 호스트 장치(1100), 네트워크 스위치(1310) 및 스토리지 장치들(1320)은 본 발명의 실시예들에 따른 스토리지 시스템(100)에 포함되는 호스트 장치(200), 네트워크 스위치(250) 및 스토리지 장치들(270a~270n)에 대응하며, 도 1 내지 24를 참조하여 상술한 본 발명의 실시예들에 따라 동작할 수 있다. 복수의 스토리지 장치들(1320) 중 메인 스토리지 장치는 스토리지 관리부(SM)를 포함하며, 이에 따라 별도의 외부 컨트롤러 없이 스토리지 모듈(1300)의 용량 구성 및 관리를 수행할 수 있다.
본 발명의 실시예들은 스토리지 장치 및 스토리지 시스템을 포함하는 임의의 전자 장치 및 시스템에 유용하게 이용될 수 있다. 예를 들어, 본 발명의 실시예들은 PC(Personal Computer), 서버 컴퓨터(server computer), 데이터 센터(data center), 워크스테이션(workstation), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(Internet of Things) 기기, IoE(Internet of Everything) 기기, e-북(e-book), VR(Virtual Reality) 기기, AR(Augmented Reality) 기기 등과 같은 전자 시스템에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 네트워크를 통해 서로 연결된 복수의 스토리지 장치들 중 제1 로컬 키(local key)를 갖는 제1 스토리지 장치를 제1 메인 스토리지 장치로 설정하는 단계;
    상기 제1 스토리지 장치가 외부의 호스트 장치로부터 수신되는 제1 제어 신호에 기초하여 상기 복수의 스토리지 장치들 중 적어도 일부의 용량(volume)을 설정 및 관리하는 단계;
    상기 제1 스토리지 장치가 상기 복수의 스토리지 장치들 중 제2 로컬 키를 갖는 제2 스토리지 장치로부터 상기 제2 로컬 키를 전달받는 단계; 및
    상기 제1 스토리지 장치가 상기 제1 로컬 키 및 상기 제2 로컬 키를 상기 외부의 호스트 장치로 전송하는 단계를 포함하는 네트워크 기반 스토리지 장치의 구동 방법.
  2. 제 1 항에 있어서,
    상기 제1 스토리지 장치가 상기 제2 스토리지 장치로부터 상기 제2 로컬 키를 전달받는 동작은 P2P(Peer-to-Peer) 방식에 기초하여 수행되고,
    상기 복수의 스토리지 장치들은 이더넷(Ethernet) 스위치를 통해 서로 연결되며,
    상기 제2 로컬 키는 상기 이더넷 스위치를 통해 상기 제2 스토리지 장치로부터 상기 제1 스토리지 장치로 직접 전달되는 것을 특징으로 하는 네트워크 기반 스토리지 장치의 구동 방법.
  3. 제 1 항에 있어서, 상기 복수의 스토리지 장치들 중 적어도 일부의 용량을 설정 및 관리하는 단계는,
    상기 복수의 스토리지 장치들을 제1 용량을 갖는 제1 파티션(partition) 및 제2 용량을 갖는 제2 파티션으로 구분하는 단계를 포함하는 것을 특징으로 하는 네트워크 기반 스토리지 장치의 구동 방법.
  4. 제 1 항에 있어서,
    상기 제1 스토리지 장치가 상기 외부의 호스트 장치로부터 상기 제2 스토리지 장치에 액세스하기 위한 커맨드, 어드레스 및 상기 제2 로컬 키를 수신하는 단계; 및
    상기 제1 스토리지 장치가 상기 커맨드, 상기 어드레스 및 상기 제2 로컬 키를 상기 제2 스토리지 장치에 전송하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 기반 스토리지 장치의 구동 방법.
  5. 제 4 항에 있어서,
    상기 커맨드, 상기 어드레스 및 상기 제2 로컬 키에 기초하여 상기 제2 스토리지 장치로부터 획득되는 독출 데이터 또는 상기 제2 스토리지 장치에 저장되는 기입 데이터는, 상기 제1 스토리지 장치를 통하지 않고 상기 제2 스토리지 장치로부터 상기 외부의 호스트 장치로 직접 제공되거나 상기 외부의 호스트 장치로부터 상기 제2 스토리지 장치로 직접 제공되는 것을 특징으로 하는 네트워크 기반 스토리지 장치의 구동 방법.
  6. 제 4 항에 있어서,
    상기 커맨드, 상기 어드레스 및 상기 제2 로컬 키에 기초하여 상기 제2 스토리지 장치로부터 획득되는 독출 데이터 또는 상기 제2 스토리지 장치에 저장되는 기입 데이터는, 상기 제2 스토리지 장치로부터 상기 제1 스토리지 장치를 통하여 상기 외부의 호스트 장치로 제공되거나 상기 외부의 호스트 장치로부터 상기 제1 스토리지 장치를 통하여 상기 제2 스토리지 장치로 제공되는 것을 특징으로 하는 네트워크 기반 스토리지 장치의 구동 방법.
  7. 제 1 항에 있어서,
    상기 복수의 스토리지 장치들 중 제3 로컬 키를 갖는 제3 스토리지 장치를 제2 메인 스토리지 장치로 설정하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 기반 스토리지 장치의 구동 방법.
  8. 제 7 항에 있어서,
    상기 제1 스토리지 장치는 상기 복수의 스토리지 장치들 중 일부를 관리하고, 상기 제3 스토리지 장치는 상기 복수의 스토리지 장치들 중 다른 일부를 관리하는 것을 특징으로 하는 네트워크 기반 스토리지 장치의 구동 방법.
  9. 제 7 항에 있어서,
    상기 제1 스토리지 장치는 상기 복수의 스토리지 장치들 전부에 대한 제1 기능을 관리하고, 상기 제3 스토리지 장치는 상기 복수의 스토리지 장치들 전부에 대한 제2 기능을 관리하는 것을 특징으로 하는 네트워크 기반 스토리지 장치의 구동 방법.
  10. 제1 네트워크를 통해 서로 연결된 복수의 스토리지 장치들 및 제2 네트워크를 통해 상기 복수의 스토리지 장치들과 연결된 호스트 장치를 포함하는 스토리지 시스템의 구동 방법으로서,
    상기 복수의 스토리지 장치들 중 제1 로컬 키(local key)를 갖는 제1 스토리지 장치를 제1 메인 스토리지 장치로 설정하는 단계;
    상기 호스트 장치가 상기 복수의 스토리지 장치들의 용량(volume)을 설정 및 관리하기 위한 제1 제어 신호를 상기 제1 스토리지 장치로 전송하는 단계;
    상기 제1 스토리지 장치가 상기 제1 제어 신호에 기초하여 상기 복수의 스토리지 장치들 중 적어도 일부의 용량을 설정 및 관리하는 단계;
    상기 제1 스토리지 장치가 상기 복수의 스토리지 장치들 중 제2 로컬 키를 갖는 제2 스토리지 장치로부터 상기 제2 로컬 키를 전달받는 단계;
    상기 제1 스토리지 장치가 상기 제1 로컬 키 및 상기 제2 로컬 키를 상기 호스트 장치로 전송하는 단계;
    상기 호스트 장치가 상기 제2 스토리지 장치에 액세스하기 위한 커맨드, 어드레스 및 상기 제2 로컬 키를 상기 제1 스토리지 장치로 전송하는 단계;
    상기 제1 스토리지 장치가 상기 커맨드, 상기 어드레스 및 상기 제2 로컬 키를 상기 제2 스토리지 장치에 전송하는 단계; 및
    상기 제2 스토리지 장치가 상기 커맨드, 상기 어드레스 및 상기 제2 로컬 키에 기초하여 독출 데이터를 상기 호스트 장치로 제공하거나 기입 데이터를 상기 호스트 장치로부터 수신하는 단계를 포함하고,
    상기 제1 스토리지 장치가 상기 제2 스토리지 장치로부터 상기 제2 로컬 키를 전달받는 동작, 및 상기 제1 스토리지 장치가 상기 커맨드, 상기 어드레스 및 상기 제2 로컬 키를 상기 제2 스토리지 장치에 전송하는 동작은, 상기 호스트 장치를 통하지 않고 상기 제1 스토리지 장치와 상기 제2 스토리지 장치 사이에서 P2P(Peer-to-Peer) 방식에 기초하여 수행되는 스토리지 시스템의 구동 방법.
KR1020200000589A 2020-01-03 2020-01-03 네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법 KR20210087628A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020200000589A KR20210087628A (ko) 2020-01-03 2020-01-03 네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법
US17/003,265 US11146636B2 (en) 2020-01-03 2020-08-26 Method of operating network-based storage device, method of operating storage system using the same and storage module performing the same
EP20210595.3A EP3846415A1 (en) 2020-01-03 2020-11-30 Method of operating network-based storage device, method of operating storage system using the same and storage module performing the same
CN202011479676.5A CN113076058A (zh) 2020-01-03 2020-12-15 操作存储设备的方法、操作存储系统的方法和存储模块
US17/478,480 US11516292B2 (en) 2020-01-03 2021-09-17 Method of operating network-based storage device, method of operating storage system using the same and storage module performing the same
US17/973,205 US11765229B2 (en) 2020-01-03 2022-10-25 Method of operating network-based storage device, method of operating storage system using the same and storage module performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200000589A KR20210087628A (ko) 2020-01-03 2020-01-03 네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법

Publications (1)

Publication Number Publication Date
KR20210087628A true KR20210087628A (ko) 2021-07-13

Family

ID=73654621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200000589A KR20210087628A (ko) 2020-01-03 2020-01-03 네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법

Country Status (4)

Country Link
US (3) US11146636B2 (ko)
EP (1) EP3846415A1 (ko)
KR (1) KR20210087628A (ko)
CN (1) CN113076058A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210087628A (ko) 2020-01-03 2021-07-13 삼성전자주식회사 네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003296154A (ja) 2002-04-05 2003-10-17 Hitachi Ltd ボリューム統合管理方法および統合管理システム
US7478120B1 (en) * 2004-04-27 2009-01-13 Xiaohai Zhang System and method for providing a peer indexing service
US7849303B2 (en) 2005-02-22 2010-12-07 Microsoft Corporation Peer-to-peer network information storage
CN100423491C (zh) 2006-03-08 2008-10-01 杭州华三通信技术有限公司 虚拟化网络存储系统及其网络存储设备
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US8166264B2 (en) 2009-02-05 2012-04-24 Hitachi, Ltd. Method and apparatus for logical volume management
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
CN104166441B (zh) 2010-06-18 2018-05-11 希捷科技有限公司 可扩展存储装置
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8489760B2 (en) * 2011-03-31 2013-07-16 Juniper Networks, Inc. Media file storage format and adaptive delivery system
JP2013045379A (ja) 2011-08-26 2013-03-04 Fujitsu Ltd ストレージ制御方法、情報処理装置およびプログラム
WO2016200786A1 (en) * 2015-06-07 2016-12-15 Apple Inc. Provisioning multiple secure credentials on an electronic device
US20170099348A1 (en) 2015-10-06 2017-04-06 International Business Machines Corporation Federated view of multiple storage systems
US10255201B2 (en) * 2016-05-18 2019-04-09 Dell Products, L.P. Local key management for storage devices
US10318737B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Secure booting of virtualization managers
US10423487B2 (en) * 2016-08-19 2019-09-24 Samsung Electronics Co., Ltd. Data protection offloads using SSD peering
US10394604B2 (en) 2017-03-15 2019-08-27 Samsung Electronics Co., Ltd. Method for using local BMC to allocate shared GPU resources inside NVMe over fabrics system
US10275180B2 (en) * 2017-05-08 2019-04-30 Samsung Electronics Co., Ltd. Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch
CN109597564B (zh) 2017-09-30 2022-01-25 上海川源信息科技有限公司 分布式储存装置
US10833860B2 (en) * 2018-09-04 2020-11-10 International Business Machines Corporation Shared key processing by a host to secure links
US11030316B2 (en) * 2018-09-20 2021-06-08 Samsung Electronics Co., Ltd. System and method for providing security protection for FPGA based solid state drives
US11210430B2 (en) * 2019-04-02 2021-12-28 Dell Products L.P. System and method to negotiate encryption responsibilities between an encryption capable controller and a self encrypting drive
KR20210087628A (ko) 2020-01-03 2021-07-13 삼성전자주식회사 네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법

Also Published As

Publication number Publication date
US11516292B2 (en) 2022-11-29
US20220038536A1 (en) 2022-02-03
US11765229B2 (en) 2023-09-19
EP3846415A1 (en) 2021-07-07
US20230043583A1 (en) 2023-02-09
CN113076058A (zh) 2021-07-06
US11146636B2 (en) 2021-10-12
US20210211497A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
CN108121669B (zh) 存储器系统及其操作方法
CN107643985B (zh) 存储器系统及其操作方法
US10496312B2 (en) Method of operating a storage device to compress or decompress data and a data storage system including the storage device
CN107491396B (zh) 存储器系统及其操作方法
KR20180041898A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US20110202818A1 (en) Non-volatile memory device and operation method using the same
CN110457230B (zh) 存储器系统及其操作方法
CN110489271B (zh) 存储器系统及其操作方法
KR102571629B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US11797221B2 (en) Method of operating storage device for improving QoS latency and storage device performing the same
KR20160097657A (ko) 데이터 저장 장치 그리고 그것의 동작 방법
KR102537373B1 (ko) 메모리 시스템에서의 데이터 전달 방법 및 장치
KR20190040598A (ko) 컨트롤러 및 컨트롤러의 동작방법
KR20220055034A (ko) 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법
US11765229B2 (en) Method of operating network-based storage device, method of operating storage system using the same and storage module performing the same
KR20200089939A (ko) 메모리 시스템 및 그 동작 방법
KR20190106005A (ko) 메모리 시스템, 그것의 동작 방법 및 전자 장치
KR20210068734A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20230004325A1 (en) Data processing system and operating method thereof
KR20210158579A (ko) 용량 확장성을 가지는 스토리지 시스템 및 그 구동 방법
KR20210072990A (ko) 가변 크기 맵핑 기반의 스토리지 장치의 데이터 관리 방법 및 이를 이용한 구동 방법
CN109933282B (zh) 存储器系统及其操作方法
KR20220072242A (ko) 비휘발성 메모리 장치의 데이터 기입 방법 및 이를 수행하는 비휘발성 메모리 장치
KR20200128825A (ko) 분리된 rpmb 기능을 가지는 스토리지 시스템 및 그 구동 방법
KR20210002190A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal