KR102227189B1 - 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈 - Google Patents

서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈 Download PDF

Info

Publication number
KR102227189B1
KR102227189B1 KR1020200117909A KR20200117909A KR102227189B1 KR 102227189 B1 KR102227189 B1 KR 102227189B1 KR 1020200117909 A KR1020200117909 A KR 1020200117909A KR 20200117909 A KR20200117909 A KR 20200117909A KR 102227189 B1 KR102227189 B1 KR 102227189B1
Authority
KR
South Korea
Prior art keywords
server
storage
unit
resources
module
Prior art date
Application number
KR1020200117909A
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 EP20204556.3A priority Critical patent/EP3889754A1/en
Priority to JP2020183217A priority patent/JP7089681B2/ja
Priority to US17/085,298 priority patent/US11435918B2/en
Priority to CN202011215635.5A priority patent/CN113495691A/zh
Application granted granted Critical
Publication of KR102227189B1 publication Critical patent/KR102227189B1/ko

Links

Images

Classifications

    • 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/064Management of blocks
    • 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • 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/0626Reducing size or complexity of 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/0629Configuration or reconfiguration of 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/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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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
    • 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
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/357Fibre channel 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/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
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0032Serial ATA [SATA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0036Small computer system interface [SCSI]

Abstract

서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈에 관한 것이며, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈은 외부 서버와 연결하기 위한 HBA카드부, 인터널디스크가 복수개 장착되어, 서버 내부의 저장공간을 구비하는 인터널디스크부, 상기 저장공간을 서버 관리자의 제어명령에 따라 상기 인터널디스크부의 스토리지를 복수의 볼륨으로 할당하는 설정부, SCSI 프로토콜을 구현하며, 상기 HBA카드부와 연결된 외부서버와 통신하고, 상기 볼륨을 상기 서버 관리자의 제어 명령에 따라 스토리지모드 또는 서버모드로 설정할 수 있는 타겟드라이버부 및 상기 스토리지모드 또는 서버모드에 따른 SCSI 명령을 처리하여 상기 인터널디스크부와 상기 타겟드라이버부의 데이터를 라우팅하는 타겟코어부를 포함하고, 상기 스토리지모드는 상기 서버 관리자의 제어 명령에 따라 상기 외부서버의 스토리지로 사용 가능하도록 하는 모드이며, 상기 서버모드는 서버내부의 스토리지로 사용 가능하도록 하는 모드이고, 상기 타겟드라이버부는, 상기 서버 관리자의 제어명령에 따라 상기 볼륨을 상기 서버 모드에서 상기 외부 서버의 제어에 따라 데이터에 접근 가능하도록 하는 스토리지 모드로 변경할 수 있다.

Description

서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈{module mounted on the server to share block-level storage and resources}
본원은 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈에 관한 것이다.
블록 스토리지는 균등한 크기를 갖는 액세스하기 쉬운 블록에 데이터를 저장하는 데이터 스토리지이다. 블록 스토리지는 파일이 균일한 블록에 저장되는 데이터 스토리지를 의미하며, 액세스와 편집이 빈번하게 일어나는 데이터에 적합하다. 또한, 블록 스토리지는 가장 일반적인 데이터 스토리지 유형으로서, 주로 SAN(Storage Area Network)환경에서 사용된다.
기존 데이터 센터에는 첫 번째 계층의 호스트, 두 번째 계층의 스토리지 스위치 또는 SAN(Storage Area Network) 스위치, 세 번째 계층의 SAN(Storage Area Network) 및 NAS(Network Attached Storage) 어레이 컨트롤러가 존재하는 아키텍처를 갖고 있었다.
상술한 아키텍처는 블록 및 파일 수준에서 중앙 집중식 통합 스토리지 리소스를 제공하는 한편 스토리지 컨트롤러를 사용하여 단일 장소에서 데이터 관리를 수행한다. 그래서 운영을 위한 서버가 추가로 필요로 하는 불편함이 존재했다.
또한, 이러한 기존의 아키텍처는 추가로 서버가 필요함에 따라서 플랫폼으로써 복잡성이 존재했다.
또한, 기존의 Block Level 스토리지는 고 가용성 및 고성능 어플리케이션을 위한 솔루션이었다. NAS(Network Attached Storage)는 오랫동안 기업 전체에서 간단하고 저렴한 파일 공유를 제공했으나, 잦은 네트워크 장애 및 버틀렉으로 문제가 존재했다.
또한, SAN(Storage Area Network)은 트랜잭션이 높은 데이터베이스와 같은 애플리케이션에 대해 더욱 강력하며 쉽게 확장 할 수 있으나, 비용이 많이 비싸며 서버를 증설해야 했다.
또한, NAS와 SAN방식의 데이터 저장 방식은, 컴퓨팅 성능을 추가하고 싶어도 스토리지 용량만 증설이 가능한 단점이 존재했다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 기존의 운영을 위해 서버를 추가로 증설해야 하는 문제를 해결할 수 있는 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 제공하려는 것을 목적으로 한다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 기존의 네트워크를 활용하여 스토리지를 공유하는 시스템의 트래픽 충돌 문제가 발생하는 것을 해결할 수 있는 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 제공하려는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈은, 외부 서버와 연결하기 위한 HBA카드부; 인터널디스크가 복수개 장착되어, 서버 내부의 저장공간을 구비하는 인터널디스크부; 상기 저장공간을 서버 관리자의 제어명령에 따라 상기 인터널디스크부의 스토리지를 복수의 볼륨으로 할당하는 설정부; SCSI 프로토콜을 구현하며, 상기 HBA카드부와 연결된 외부서버와 통신하고, 상기 볼륨을 상기 서버 관리자의 제어 명령에 따라 스토리지모드 또는 서버모드로 설정할 수 있는 타겟드라이버부 및 상기 스토리지모드 또는 서버모드에 따른 SCSI 명령을 처리하여 상기 인터널디스크부와 상기 타겟드라이버부의 데이터를 라우팅하는 타겟코어부를 포함하고 상기 스토리지모드는 상기 서버 관리자의 제어 명령에 따라 상기 외부 서버의 스토리지로 사용 가능하도록 하는 모드이며, 상기 서버모드는 서버내부의 스토리지로 사용 가능하도록 하는 모드이고, 상기 타겟드라이버부는, 상기 서버 관리자의 제어명령에 따라 상기 볼륨을 상기 서버 모드에서 상기 외부 서버의 제어에 따라 데이터에 접근 가능하도록 하는 스토리지 모드로 변경할 수 있는 것일 수 있다.
또한, 상기 타겟드라이버부는, 외부 서버 관리자의 제어명령에 따라 상기 볼륨을 상기 서버모드에서 상기 외부 서버의 제어에 따라 데이터에 접근 가능하도록 하는 스토리지모드로 변경할 수 있는 것이며, 상기 외부 서버 관리자의 제어명령에 따라 서버모드로 변경 가능한 것일 수 있다.
또한, 상기 설정부는, SCSI방식으로 타겟된 상기 인터널디스크부의 용량을 블록레벨로 볼륨 할당하고, 볼륨 할당된 볼륨에 LUN설정하는 것일 수 있다.
또한, 상기 인터널디스크부는, Raid카드를 추가로 구비하여, 인터널디스크의 장착 가능한 수량을 늘리는 것일 수 있다.
또한, 상기 HBA카드와 외부 서버와의 전송 프로토콜은, Fiber Channel Target, Infiniband Target, iSCSI Target, Hardware FCoE Target, ISCSI over TCP, IP, SRP over Infiniband, iSER over IB, RoCE, iWARP 및 Software FCoE Target 중 어느 하나인 것일 수 있다.
또한, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈에 있어서, 다른 시스템과 네트워크 연결을 위한 NIC부;를 더 포함하는 것일 수 있다.
서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈에 있어서,
또한, 데이터 요청을 분석하고, 매개 변수를 결정하여 장치의 유형을 특정하여 데이터 처리에 도움을 주는 장치유형특정드라이버부;를 더 포함하는 것일 수 있다.
또한, 상기 타겟코어부는, SCSI장치, 블록 장치, 파일 및 RAID컨트롤러 중 어느 하나인 것일 수 있다.
또한, 상기 타겟드라이버부는, 상기 볼륨을 상기 서버관리자의 제어 명령에 따라 오토모드로 더 설정할 수 있으며, 상기 오토모드는 상기 서버 또는 상기 외부 서버의 가용 스토리지에 따라서, 상기 볼륨을 스토리지 모드 또는 서버모드로 설정하는 것일 수 있다.
또한, 상기 설정부는, 스토리지의 사용 영역을 설정하는 영역 설정부, 사용 영역이 미사용 영역보다 작은 경우 사용 영역만을 진단 대상으로 결정하고, 사용 영역이 미사용 영역보다 큰 경우 영역 모두를 진단 대상으로 결정하는 진단결정부 및 상기 진단 대상에 대하여 주기적인 진단을 실행하는 진단부를 더 포함할 수 있다.
한편, 본원의 일 실시예에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 이용한 서버간 공유 시스템은, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 제1서버부; 및 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 제2서버부;를 포함하며, 상기 제1서버부 및 상기 제2서버부는 상호 Tx와 Rx가 연결된 것이며, 관리자의 제어명령에 따라서 상기 제1서버부 또는 상기 제2서버부의 가용 스토리지 볼륨을 다른 서버부의 가용 스토리지로 할당하는 것일 수 있다.
또한, 서버에 장착되어 블록 레벨 스토리지 및 리소스를 공유하는 모듈을 이용한 서버간 공유 시스템은, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 복수개의 서버부;를 더 포함하며, 각각의 서버부간 Tx및 Rx가 고리형으로 상호 연결되어 운영자의 제어 명령에 따라 가용 스토리지 볼륨을 다른 서버부의 가용 스토리지로 할당하는 것일 수 있다.
한편, 본원의 일 실시예에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 이용한 서버간 공유 시스템은, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 복수개의 서버부;를 포함하며, 각각의 서버부는 Fiber Channel을 통해 SAN switch로 연결되어, 운영자의 제어명령에 따라 가용 스토리지 볼륨을 다른 서버부의 가용 스토리지로 할당하는 것일 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 제공함으로써, 단일 시스템에서 블록레벨 스토리지를 공유하면서 OS어플리케이션을 운영할 수 있는 효과가 있다.
또한, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 제공함으로써, 컴퓨팅 성능과 스토리지의 용량을 증설할 수 있는 효과가 있다.
전술한 본원의 과제 해결 수단에 의하면, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈 이용한 시스템을 제공함으로써, 자차적인 어플리케이션 구동뿐만 아니라 효율적인 스토리지 운용을 할 수 있는 효과가 있다.
다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.
도 1은 본원의 일 실시예에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 이용한 서버간 공유 시스템의 개략적인 구성도이다.
도 2는 본원의 일 실시예에 따른 본 모듈의 구성을 표현한 블록도이다.
도 3는 본원의 일 실시예에 따른 본 모듈의 드라이버 및 SCSI 하위 시스템 간의 상호작용을 나타낸 도면이다.
도 4은 본원의 일 실시예에 따른 본 모듈이 서버에 장착되는 예시 도면이다.
도 5는 본원의 일 실시예에 따른 본 모듈의 내부 구성 및 연결을 나타낸 도면이다.
도 6은 본원의 일 실시예에 따른 본 모듈이 서버에 장착되어 블록레벨을 공유하는 개념도이다.
도 7은 본원의 일 실시예에 따른 본 모듈이 서버에 장착되어 서버의 모드를 변경하거나 볼륨을 제어하는 예시 개념도이다.
도 8은 본원의 일 실시예에 따른 본 모듈의 사용 정의 블록도이다.
도9은 본원의 일 실시예에 따른 본 모듈을 이용한 서버간 고리형으로 연결되어 스토리지를 공유하는 시스템의 개략적인 구성도이다.
도 10는 본원의 일 실시예에 따른 본 모듈을 이용한 서버간 SAN Switch를 통해 연결되어 스토리지를 공유하는 시스템의 개략적인 구성도이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본원 명세서 전체에서 사용되는 용어는 구체적인 실시예를 설명하는 목적을 위한 것일 뿐, 본 발명을 한정하는 것이 아니다. 또한, 호스트는 설명하고자 하는 실시예에 따라 서버 또는 외부 서버로 지칭함을 미리 알려둔다.
이하에서는 본원의 일 실시예에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 설명의 편의상 본 모듈(100)이라 하기로 한다. 또한, 본 모듈(100)이 장착된 서버를 서버(200) 및 외부 서버(300)라 하기로 한다.
본 모듈(100)은 SCSI 프로토콜을 사용하는 장치로써 SCSI 프로토콜은 일반적으로 알려진 통신규격으로써, 통상의 기술자에게는 자명한 사실이므로 구체적인 설명은 생략한다.
도 1은 본원의 일 실시예에 따른 본 모듈(100)을 이용한 서버간 공유 시스템의 개략적인 구성도이다.
도 1을 참조하면, 본원의 일 실시예에 따른 본 모듈(100)을 이용한 서버간 공유 시스템은 서버(200), 외부 서버(300) 및 연결수단(10)을 포함할 수 있다. 서버(200) 및 외부 서버(300)는 예를 들어, 본 모듈(100)이 내부에 장착된 서버일 수 있다.
또한, 서버(200) 및 외부 서버(300)는 내부에 본 모듈(100)이 장착된 서버로써, 자차적인 어플리케이션이 구동이 가능한 서버로 구성될 수 있다. 예를 들어, 서버의 구성은 CPU, 메모리, 드라이버, 메인보드 등을 포함하여 구성될 수 있으며 종래에 공지되거나 향후 개발되는 모든 서버의 구성이 적용될 수 있다. 서버의 구성에 관한 구체적인 설명은 본 발명의 배경기술 지식을 가진 통상의 기술자에게 자명한 사실이므로 생략한다.
본원의 일 실시예에 따른 서버(200) 또는 외부 서버(300)의 구동OS는 예를 들어, Linux, Windows, VMware ESX 및 ESXi, Solaris, IBM AIX 및 HP/UX를 포함할 수 있다. 다만, 이에 한정되는 것은 아니다. 종래에 공지되거나 향후 개발되는 모든 OS가 적용될 수 있다는 것을 통상의 기술자는 적용할 수 있을 것이다.
본원의 일 실시예에 따른 서버(200) 및 외부 서버(300)는 예를 들어, Local SCSI initiator 또는 Remote SCSI initiator일 수 있으며, SCSI target device가 될 수 있다. 다만, 이에 한정되는 것은 아니다. 즉, 서버(200) 및 외부 서버(300)가 initiator인 경우, 예를 들어, SCSI target이 처리 할 서비스 및 작업 관리 요청을 시작하고 SCSI target으로부터 장치 서비스 및 작업 관리 응답을 받는 SCSI장치일 수 있다. 이하에서 보다 자세하게 설명할 테지만, 서버(200)가 SCSI initiator일 경우에 있어서, 외부 서버(300)는 SCSI target일 수 있다. 이와 반대로, 서버(200)가 SCSI target일 경우에 있어서, 외부 서버(300)는 SCSI initiator일 수 있다.
기존의 서버는 네트워크에 연결하지 않고 Target 디바이스로 활용될 수 없었으나, 본원의 일 실시예에 따른 본 모듈(100)을 이용한 서버(200) 및 외부 서버(300)는 initiator디바이스로써의 활용뿐만 아니라 target 디바이스로도 활용할 수 있다. 다시 말하면, 기존의 서버는 initiator로써 SCSI프로토콜을 활용하여 target디바이스로 활용할 수 없었으나, 본 모듈(100)을 장착함으로써 target디바이스로 활용할 수 있도록 하는 것일 수 있다.
또한, SCSI Target device는 타겟디바이스, 대상디바이스, target 및 대상 장치로 명명될 수 있으며, SCSI initiator device는 이니시에이터 디바이스, 이니시에이터, initiator, 개시자 및 개시장치로 명명될 수 있으며, 이러한 명명에 한정되는 것은 아니다.
본원의 일실시예에 따른 Local SCSI initiator란, 서브 시스템과 동일한 로컬 호스트에 있는 SCSI initiator을 말하며, Remote SCSI initiator란 서브 시스템의 원격 호스트에 있으며 후술할 타겟드라이버부(140)를 통해 클라이언트 연결을 하는 SCSI initiator일 수 있다. 다만, 이에 한정되는 것은 아니다.
본원의 일 실시예에 따른 서버(200) 및 서버(300)를 연결하는 연결수단(10)은 Fiber channel을 포함할 수 있다. 다만, 이에 한정되는 것은 아니며, 종래에 공지되거나 향후 개발되는 모든 서버간 연결수단이 적용될 수 있음을 통상의 기술자에겐 자명한 사실이다.
또한, 연결수단(10)은 예를 들어, 서버(200)의 Tx(Transmit Data) 및 외부 서버(300)의 Rx(Receive Data)에 연결되어 서버(200)와 외부 서버(300)를 연결하는 것일 수 있다. 또한, 연결수단(10)는 서버(200)의 Rx 및 외부 서버(300)의 Tx에 연결되어 서버(200)와 외부 서버(300)를 연결하는 것일 수 있다. 또한, 자세히 후술할 테지만, 서버(200) 및 외부 서버(300)의 Tx, Rx는 SAN switch에 연결되어 SAN 방식으로 블록레벨 스토리지 및 리소스를 공유하는 것일 수 있다. 또한, 서버(200), 외부 서버(300) 및 추가되는 외부 서버(300)의 각각의 서버의 Tx는 다른 서버의 Rx에 연결되는 방식으로 블록레벨 스토리지 및 리소스를 공유하는 것일 수 있다.
도2는 본원의 일 실시예에 따른 본 모듈(100)의 개략적인 구성을 표현한 블록도이다.
도 2를 참조하면, 본원의 일 실시예에 따른 본 모듈(100)은 HBA카드부(110), 인터널디스크부(120), 설정부(130), 타겟드라이버부(140), 타겟코어부(150), NIC부(160) 및 장치유형특정드라이버부(170)을 포함할 수 있다.
HBA카드부(110)은 서버와 장비 사이의 통신을 위해 서버에 장착하는 카드로 즉, 다른 인터페이스를 활용하기 위한 카드일 수 있다. 다시 말하면, HBA카드부(110)는 서버(200) 내부에 본 모듈(100)이 장착되어 서버(200)와 본 모듈(100)과 연결될 외부 서버(300)의 통신을 보조할 수 있다. 또한, 본 모듈(100)과 이하에서 자세히 서술할 인터널디스크부(120)가 설정부(130)에 의해 할당된 볼륨과 서버(200)와의 통신을 보조하는 것일 수 있다.
본원의 일 실시예에 따른 HBA카드부(110)은 외부 서버(300)과 서버(200)를 연결하여 원할한 통신을 보조하는 장치일 수 있다.
본원의 일 실시예에 따른 HBA카드부(110)는 예를 들어, Fibre Channel, SCSI, Infiniband, iSCSI, Hardware FCoE 및 Software FCoE의 Adapter을 포함할 수 있다. 즉, HBA카드부(110)은 외부 서버(300)과의 타겟 전송 방식의 종류에 따라서, Adapter 카드의 종류가 정해지는 것일 수 있다. HBA카드의 구체적인 설명은 통상의 기술자에게 자명한 사실이므로 생략한다.
인터널디스크부(120)는 서버(200)의 내부에 OS전용 스토리지 및 서버 내부 저장용 스토리지를 제공하기 위해 장착되는 디스크일 수 있다. 예를 들어, 인터널디스크부(120)는 HDD(Hard Disk Drive), SSD(Solid State Drive) 및 SSHD(Solid State Hybrid Drive)를 포함할 수 있다.
본원의 일 실시예에 따른 본 모듈(100)의 인터널디스크부(120)는 PATA 하드디스크, SATA 하드디스크, SAS 하드디스크, RAM기반 SSD, 플레쉬메모리 기반 SSD, SSHD를 포함할 수 있다. 보다 바람직하게는 플레쉬메모리 기반의 SSD가 활용되는 것이 적절할 수 있다. 다만, 이에 한정되는 것은 아니며, 종래의 공지된 디스크 또는 향후 개발되는 디스크가 적용될 수 있다.
한편, 본원의 일 실시예에 따른 인터널디스크부(120)는 하이브리드 제어기, 상기 하이브리드 제어기와 결합되는 DDR제어기, 상기 DDR제어기에 결합되는 각각은 복수의DDR를 포함하는 DDR세트 복수개, 상기 하이브리드 제어기에 결합되는 HDD및 플래시로 구성된 HDD제어기 및 상기 HDD제어기에 결합되는 각각은 복수의 HDD를 포함하는 HDD세트 복수개를 더 포함할 수 있다. 여기에서 복수의 HDD는 예를 들어, 플래시 및 HDD를 포함하여 구성될 수 있다.
본원의 일 실시예에 따른 인터널디스크부(120)는 예를 들어, 직렬 접속 소형 시스템 인터페이스/직렬 PCI-Express 타입의 인터널디스크를 포함할 수 있다. 상기 인터널디스크는 PCI-Express 인터페이스를 통한 호스트와 메모리 디스크 사이의 데이터 통신 동안에 호스트와 메모리 디스크 사이에 송수신되는 데이터 신호의 동기화를 조정함으로써, 호스트의 저속 데이터 처리 속도를 지원하는 동시에 메모리 디스크의 고속 데이터 처리속도를 지원할 수 있다. 따라서, 기존의 인터페이스 환경에서 고속 데이터 처리가 최대로 가능하도록 데이터 처리 성능을 지원하는 것일 수 있다.. 다만, 이에 한정되는 것은 아니다. 다른 실시예로 SAS/SATA 인터페이스를 이용하는 SAS/SATA 기술이 활용 될 수 있다.
본원의 일 실시예에 따른 인터널디스크부(120)에 포함되는PCI-Express 타입의 인터널디스크는, 복수의 휘발성 반도체 메모리(SSD), 상기 SSD와 결합되는 HDD제어기, 상기 SSD와 호스트 사이를 인터페이스하는 호스트 인터페이스부(예를 들어, PCI-Express 호스트), 상기 호스트 인터페이스부를 통해 호스트로부터 전달되는 전력을 이용하여 일부 전력을 충전, 유지하는 보조 전원부를 포함할 수 있다. 또한, 상기 인터널디스크는 호스트 인터페이스를 통해 호스트로부터 전달되는 전력이 차단되거나, 호스트로부터 전달되는 전력에서 고장이 발생한 경우 상기 보조전원부로부터 전력을 수신하고, 이 경우 SSD의 데이터를 저장할 수 있는 백업저장부를 더 포함할 수 있다. 백업저장부는 예를 들어, 하드 디스크와 같은 저속 비휘발성 저장장치로 구성될 수 있다. 다만, 이에 한정되는 것은 아니다.
한편, 상기 SSD는 예시적으로 나타낸 메모리로서, 고속 데이터 입출력을 위한 복수의 휘발성 반도체 메모리인 DDR, DDR2, DDR3, SDRAM 등을 포함할 수 있다. 상기 복수의 휘발성 반도체 메모리는 병렬로 배열될 수 있다. 다만, 이에 한정되는 것은 아니다.
한편, 상기 호스트 인터페이스부는 호스트와 복수의 휘발성 반도체 메모리 사이를 인터페이스할 수 있다. 예를 들어, 호스트는 서버(200) 또는 외부 서버(300)일 수 있다. 다만, 이에 한정되는 것은 아니다.
한편, 설정부(130)는 상기 인터널디스크부(120)의 호스트 인터페이스부와 복수의 휘발성 반도체 메모리 사이에서 송수신되는 데이터 신호들의 동기화를 조정하여 상기 호스트 인터페이스부와 상기 메모리 사이의 데이터 송수신 속도를 조정하는 것일 수 있다.
본원의 일 실시예에 따른 인터널디스크부(120)의 하이브리드 제어기는 DDR제어기 및 HDD와 SSD로 구성된 HDD제어기와 결합될 수 있다. 이 경우 적어도 하나의 DDR은 상기 DDR제어기에 결합되거나 적어도 하나의 HDD 또는 SSSD는 상기 HDD제어기와 결합될 수 있다. 한편, 하이브리드 제어기는 예를 들어, 고속 데이터 제어기 및 저속 데이터 제어기를 포함할 수 있다. 이때, 데이터 백업용 컴포넌트가 하이브리드 제어기에 결합될 수 있다.
한편, 본원의 일 실시예에 따른 DDR세트 각각은 한 세트의 DDR 메모리 디스크들; 한 세트의 DDR 메모리 디스크들에 결합되는 핫 스페어 디스크(hot-spare disk); 한 세트의 DDR 메모리 디스크들에 결합되는 DDR제어기, DDR제어기에 결합되는 RAID 실패 컴포넌트, 및 DDR 제어기에 결합되는 데이터 백업 컴포넌트를 포함할 수 있다. 다만, 이에 한정되는 것은 아니다. 이러한 구성들은 HDD세트에도 동일하게 적용될 수 있음은 통상의 기술자에게 자명한 사실이다.
본원의 일 실시예에 따른 인터널디스크부(120)는 호스트와 메모리 디스크 사이의 데이터 통신 동안에 호스트와 메모리 디스크 사이에 송수신되는 데이터 신호를 동기화하고 조정하여 호스트의 저속 데이터 처리 속도를 지원하는 동시에 메모리 디스크의 고속 데이터 처리 속도를 지원함으로써, 기존의 인터페이스 환경에서 고속 데이터 처리의 고성능을 지원할 수 있다.
설정부(130)은 인터널디스크부(120)의 저장공간을 서버 관리자의 제어명령에 따라 복수의 볼륨으로 할당하는 것일 수 있다. 서버 관리자의 제어 명령은 예를 들어, 저장공간의 분할할 볼륨의 크기를 설정하는 명령을 포함할 수 있다.
또한, 본원의 일 실시예에 따른 설정부(130)는 상기 할당된 복수의 볼륨에 LUN설정하는 것일 수 있다. LUN이란 스카시 버스에서 각각의 장치들이 서로 구분할 수 있게 해주는 단일 식별자 번호로써, 논리적 장치는 최종 사용자, 파일 혹은 애플리케이션 프로그램이 될 수 있다. 바람직하게 논리적 장치는 상술한 설정부(130)이 저장공간을 분할한 볼륨이 될 수 있다. 다만, 이에 한정하는 것은 아니다.
한편, 본원의 일 실시예에 따른 설정부(130)는 인터널디스크부(120)의 상태를 체크하는 기능을 위하여 할당된 볼륨에 대하여 하나 또는 복수의 사용 영역을 설정하는 영역 설정부, 사용 영역 과 미사용 영역의 볼륨 크기를 비교하여 진단 대상을 설정하는 진단결정부 및 상기 진단 대상에 대하여 주기적인 진단을 실행하는 진단부를더 포함할 수 있다.
본원의 일 실시예에 따른 진단결정부는 예를 들어, 상기 영역 설정부가 설정한사용 영역과 미사용 영역을 비교하여, 사용 영역이 미사용 영역보다 큰 경우 영역 모두를 진단 대상으로하며, 사용 영역이 미사용 영역보다 작은 경우 사용 영역만을 진단대상으로 결정하는 것일 수 있다. 다만, 이에 한정되는 것은 아니다.
사용 영역이 미사용 영역보다 작은 경우는 예를 들어, 미사용 영역의 사이즈가 최소의 볼륨 사이즈보다 큰 경우 미사용 영역에 추가로 볼륨을 등록한 가능성이 높기 때문에 미리 미사용 영역에 데이터 체크를 해두어 언제 미사용 영역에 볼륨이 설정되어도 장애 발생을 회피할 수 있도록 하는 것일 수 있다.
한편, 반대의 경우인 사용 영역이 미사용 영역보다 큰 경우에는 미사용 영역에 추가로 볼륨을 등록할 가능성이 낮기 때문에 신속한 데이터 체크 및 부하의 경감을 위하여 미사용 영역은 데이터 체크의 대상으로 하지 않고 사용 중인 볼륨의 영역만을 데이터 체크의 대상으로하는 것일 수 있다.한편, 본원의 일 실시예에 따른 진단결정부는 예를 들어, 서버(200)의 관리자가 최소의 사용 영역 볼륨을 설정하여, 상기 최소의 사용 영역 볼륨과 미사용 영역을 비교하여 진단 대상을 결정하는 것일 수 있다. 다만, 이에 한정되는 것은 아니다.
즉, 본원의 일 실시예에 따른 설정부(130)는 주기적으로 데이터 체크의 대상 영역을 결정하고 그 결정한 대상 영역에 대하여 주기적으로 데이터 체크를 할 수 있다. 주기적으로 데이터 체크를 함으로써, 미사용 영역이 사용되는 경우 디스크의 고장 발생을 경감시키는 것일 수 있다.
타겟드라이버부(140)는 서버(200) 또는 외부 서버(300)이 initiator역할을 하는 경우에 있어서, 서버(200)가 initiator인 경우 외부 서버(300)의target 역할을 하는 하드웨어 또는 논리 드라이버일 수 있다. 즉, 서버(200)가 initiator인 경우, 외부 서버(300)의 타겟드라이버부(140)은 target 역할을 하는 하드웨어 또는 논리 드라이버일 수 있다.
또한, 타겟드라이버부(140)은 Linux 하드웨어, windows 하드웨어 등을 포함할 수 있다. 다만, 이에 한정되는 것은 아니다. 다시 말하면, 타겟드라이버부(140)은 원격 연결을 수락하고 들어오는 SCSI 요청을 후술할 타겟코어부(150)에 전달하고 SCSI 응답 패킷을 타겟코어부(150)로 보낸 대상(장치 등)에게 다시 보낼 수 있다.
또한, 타겟드라이버부(140)은 대상드라이버, 타겟드라이버 등으로 명명될 수 있다.
본원의 일 실시예에 따른, 타겟드라이버부(140)은 SCSI 프로토콜을 구현하며, 외부 서버(300)와 통신할 수 있다. 예를 들어, 타겟드라이버부(140)은 initiator 역할을 하는 서버(200) 또는 외부 서버(300)의 서비스 및 작업 관리 요청을 포함하는 연결 요청을 수락하고 이러한 SCSI작업 요청을 Target코어에 전달하며, 외부서버(300)에 SCSI응답 패킷을 전송할 수 있다.
본원의 일 실시예에 따른 SCSI 작업 요청은 SCSI 명령어로 이루어질 수 있다. 예를 들어, SPC(SCSI Primary Commands), SBC(SCSI Block Commands), SSC(SCSI Streaming Commands) 및 MMC(SCSI Multi Media Commands)를 포함할 수 있다.
본원의 일 실시예에 따른, Target session은 타겟드라이버부(140)를 통한 initiator디바이스와 target디바이스간의 관계를 설명하는 객체일 수 있다. 예를 들어, 서버(200)또는 외부 서버(300)의 모든 명령은 Target session에서 Target디바이스로 전달될 수 있다. 이해를 돕기 위하여 예를 들면, iSCSI와 같은 연결 지향 프로토콜의 경우 Target session은 TCP 연결(및 iSCSI session)에 매핑될 수 있다. 다만, 이에 한정되는 것이 아니다.
본원의 일 실시예에 따른 타겟드라이버부(140)은 서버(200) 관리자의 제어 명령에 따라 상술한 설정부(130)이 할당한 볼륨을 스토리지모드 또는 서버모드로 설정할 수 있다. 서버 관리자의 제어 명령은 예를 들어, 설정부(130)에 의해 할당된 볼륨이 외부 서버(300)의 스토리지로 공유할 수 있는 스토리지모드로 설정하는 명령일 수 있다. 또한, 서버 관리자의 제어 명령은 예를 들어, 할당된 볼륨이 서버(200)의 스토리지로 사용할 수 있는 서버모드로 설정하는 명령일 수 있다.
본원의 일 실시예에 따른 서버모드는 인터널디스크부(120)의 스토리지 중 설정부(130)에 의해 할당된 볼륨을 서버(200)의 OS구동 또는 어플리케이션 구동에 사용하는 것일 수 있다. 또한, 스토리지모드는 서버(200)의 인터널디스크부(120)의 스토리지 중 설정부(130)에 의해 할당된 볼륨을 외부 서버(300)의 OS구동 또는 어플리케이션 구동에 사용되는 것일 수 있다. 다만, 이에 한정되는 것은 아니다.
또한, 할당된 볼륨이 스토리지모드로 타겟드라이버부(140)에 의해 설정된 경우, 외부 서버(300)의 제어에 따라 서버(200)의 할당된 볼륨에 접근할 수 있다. 접근이란 예를 들어, 데이터의 입출력, 저장 및 사용을 포함할 수 있다. 다만, 이에 한정되는 것은 아니다. 즉, 서버(200)의 할당된 볼륨을 스토리지모드로 설정하는 경우에 있어서, 외부 서버(300)의 스토리지로 활용할 수 있다.
한편, 본원의 일 실시예에 따른 타겟드라이버부(140)는 서버(200) 관리자의 제어 명령에 따라 상술한 설정부(130)가 할당한 볼륨을 오토모드로 더 설정할 수 있다. 오토모드는 예를 들어, 서버(200)의 가용 디스크의 용량이 적은 경우 서버(200)는 어플리케이션을 가동할 때 현저히 데이터 처리 속도가 느려지게 되고, 적은 용량에 데이터를 읽고/쓰기 때문에 하드과부하의 원인으로 잦은 고장을 유발하는 것을 방지하기 위한 모드일 수 있다.
오토모드는 예를 들어, 서버(200)의 스토리지 가용량이 서버(200)의 관리자가 설정한 설정치보다 적은 경우에 있어서, 외부 서버(300)의 스토리지를 서버(200)로 할당하는 외부 서버(300)의 스토리지를 스토리지모드로 자동으로 설정하여 외부 서버(300)의 스토리지에 서버(200)가 접근할 수 있도록 하는 모드일 수 있다.
다른 실시예로 오토 모드는 예를 들어, 외부 서버(300)의 스토리지 가용량이 외부 서버(300)의 관리자가 설정한 설정치보다 적은 경우에 있어서, 서버(200)의 스토리지를 외부 서버(300)로 할당하는 서버(200)의 스토리지를 스토리지모드로 자동으로 설정하여 서버(200)의 스토리지에 외부 서버(300)가 접근할 수 있도록 하는 모드일 수 있다.
또한, 오토모드는 예를 들어, 서버(200)의 가용 스토리지가 설정치보다 적은 경우에 서버(200)의 볼륨 중 스토리지모드인 볼륨을 서버모드로 전환하여 가용 스토리지로 설정하는 것일 수 있다. 한편, 서버(200)의 관리자는 오토모드가 적용되는 최대한의 볼륨 제한을 설정할 수 있다.
즉, 오토모드는 서버(200)의 가용 스토리지가 관리자가 설정한 설정치보다 적어지는 경우 외부 서버(300)의 스토리지를 스토리지모드로 설정하거나, 서버(200)의 스토리지모드에 있는 볼륨을 서버 모드로 전환하여 서버(200)의 가용 스토리지를 확장하여 데이터 처리 속도를 증가시키고 서버과부하를 방지하는 것일 수 있다. 다만, 이에 한정되는 것은 아니다.
타겟코어부(150)은 스토리지모드, 서버모드 및 오토모드 등에 따른 SCSI 명령을 처리하여 타겟드라이버부(140)와 인터널디스크부(120) 구간 데이터를 라우팅할 수 있다. 예를 들어, 타겟드라이버부(140)은 SCSI프로토콜을 구현하여 initiator와 통신하고, 로컬 스토리지 영역을 타겟코어부(150)으로 제공하여 서버(200)를 Target device로 구현할 수 있다.
본원의 일 실시예에 따라서, 타겟코어부(150)은 SCSI장치, 블록레벨 장치, 파일 또는 Raid컨트롤러를 포함할 수 있다. 정리하면 타겟코어부(150)은 타겟드라이버부(140)를 통하여 SCSI의 명령어를 SCSI 중간 수준으로 전달할 수 있다.
본원의 일 실시예에 따르면, 본 모듈(100)의 타겟드라이버부(140)는 예를 들어, 타겟을 호출하여 해당 템플릿을 타겟코어부(150)에 등록함으로써, 타겟코어부(150)에 등록된 템플릿을 통해 타겟드라이버부(140)은 진입점을 확인할 수 있고 데이터에 접근할 수 있도록 할 수 있다. 다만, 이에 한정되는 것은 아니다.
NIC부(160)은 본 모듈(100)에 장착되어 다른 시스템과 네트워크 연결을 할 수 있따. 본원의 일 실시예에 따른 본 모듈(100)은 서버간 네트워크가 아닌 제일 낮은 물리단계에서의 통신을 제시하여 네트워크의 트래픽 충돌 문제를 해결할 수 있음에 자명하다. 다만, NIC부(160)은 예를 들어, 스토리지 및 리소스의 공유뿐만 아니라, 시스템의 OS 및 어플리케이션의 구동을 위한 네트워크를 연결하기 위한 일 수단으로써 장착될 수 있다.
도 3은 본원의 일 실시예에 따른 본 모듈(100)의 드라이버 및 SCSI 하위 시스템 간의 상호작용을 나타낸 도면이다.
도3을 참조하면, 본원의 일 실시예 따른 외부 서버(300)는 Fiber Channel 등을 통하여 HBA카드부(110)와 연결될 수 있다. 외부 서버(300)(initiator)는 Fiber Channel을 통하여 모듈의 HBA카드부(110)로 SCSI명령어를 전달할 수 있으며, 이렇게 전달된 SCSI명령어는 타겟드라이버부(140)에 전달되며, 타겟드라이버부(140)은 설정부(130)에 의해서 할당된 볼륨의 LUN설정된 진입점을 템플릿에 등록하고, 타겟코어부(150)는 타겟드라이버부(140)과 설정부(130)간의 데이터를 라우팅할 수 있다.
장치유형특정드라이버부(170)은 타겟코어부(150)에 들어오는 데이터 요청을 분석하고 매개 변수를 결정할 수 있으며, 그로부터 다양한 유형의 장치를 특정하며 타겟코어부(150)의 데이터 라우팅을 보조할 수 있다. 상기 다양한 유형의 장치는 예를 들어, 설정부(130)에 의해 할당된 볼륨일 수 있으며, 인터널디스크부(120)의 디스크일 수 있다. 다만, 이에 한정되는 것은 아니다.
본원의 일 실시예에 따른 본 모듈(100)의 장치유형특정드라이버부(170)은 타겟코어부(150)의 데이터 요청의 분석을 보조할 수 있다. 또한, 장치유형특정드라이버부(170)는 Device (backend) handle driver, 장치 유형 특정 드라이버 또는 dev 핸들러라고 명명될 수 있으나 이에 한정되는 것은 아니다.
도 4는 본원의 일 실시예에 따른 본 모듈(100)이 서버에 장착되는 예시 도면이다.
도 4를 참조하면, 본 모듈(100)은 서버(200)내부에 장착될 수 있다. 예를 들어, 몬 모듈(100)은 서버(200)의 메인보드에 장착될 수 있다. 다만, 이에 한정되는 것은 아니다. 따라서, 본 모듈(100)은 서버(200)의 내부에 장착될 수 있을 뿐만 아니라, 외부에 장착될 수 있음은 통상의 기술자가 쉽게 이해할 수 있을 것이다.
도 5는 본원의 일 실시예에 따른 본 모듈(100)의 내부 구성 및 연결을 나타낸 도면이다.
도5를 참조하면, 본원의 일 실시예에 따라서, 외부 서버(300)과 본 모듈(100)은 예를 들어, Fiber Channel로 연결될 수 있다. 뿐만 아니라, 외부 서버(300)과 본 모듈(100)은 SAN switch(40)와 Fiber Channel로 연결될 수 있고, Network S/W(41)와 iSCSi로 연결될 수 있다. 다만, 이에 한정되는 것은 아니다.
또한, 도5를 참조하면 Fiber channel과 HBA카드부(110)과의 연결 및 iSCSI와 NIC부(160)과의 연결을 통해서 연결된 외부 서버(300)와 중앙처리수단(42)이 통신될 수 있다. 중앙처리수단(42)는 설정부(130), 타겟드라이버부(140) 타겟코어부(150) 및 장치유형특정드라이버부(170)을 포함할 수 있다.
본원의 일 실시예에 따르면, 인터널디스크부(120)는 복수개의 저장장치(43)일 수 있다. 저장장치(43)은 예를 들어, HDD(Hard Disk Drive), SSD(Solid State Drive) 및 SSHD(Solid State Hybrid Drive)를 포함할 수 있다. 바람직하게는 플레쉬메모리 기반 SSD(Solid State Drive)일 수 있다. 이에 한정되는 것은 아니다.
또한, 본원의 일 실시예에 따른 인터널디스크부(120)은 Raid카드를 추가로 구비하여, 저장장치(43)의 장착 가능한 수량을 늘리는 것일 수 있다.
도 6은 본원의 일 실시예에 따른 본 모듈(100)이 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유를 이해하기 쉽게 설명하기 위한 도면이다.
도6을 참조하면, 본원의 일 실시예에 따라서 본 모듈(100)이 장착된 서버(200)는 서버 관리자의 제어 명령에 따라서, 인터널디스크부(120)의 스토리지를 복수개의 볼륨으로 설정부(130)을 통해 할당할 수 있으며, 이러한 복수개의 볼륨 중 일부를 타겟드라이버부(140)를 통해 서버모드 또는 스토리지 모드로 설정할 수 있다.
본원의 일 실시예에 따라서, 서버 관리자가 복수개의 볼륨 중 일부를 서버(200)의 스토리지로 사용하기 위한 제어 명령을 내리면, 본 모듈(100)은 복수개의 볼륨 중 일부를 서버(200)의 스토리지로 활용할 수 있도록 할당(60)할 수 있다. 또한, 서버 관리자가 외부 서버(300)의 스토리지로 사용하기 위한 제어 명령을 내리면 본 모듈(100)은 복수개의 볼륨 중 일부를 외부 서버(300)의 스토리지로 활용할 수 있도록 할당(61)할 수 있다. 외부 서버(300)로의 할당(61)의 경우 외부 서버(300)는 자신의 제어에 따라서 할당 받은 스토리지를 자신의 스토리지로 활용할 수 있다. 다만, 이에 한정되는 것은 아니다.
구체적으로, 서버모드의 경우 서버 관리자의 제어 명령에 따라서, 설정부(130)에 의해서 복수개로 할당된 볼륨은 타겟코어부(150)에의해 타겟드라이버부(140)와 라우팅되며, HBA카드부(110)을 통하여 외부 서버(300)에 스토리지를 활용할 수 있도록 하는 것일 수 있다.
스토리지모드의 경우 서버 관리자의 제어 명령에 따라서, 설정부(130)에 의해서 복수개로 할당된 볼륨은 타겟코어부(150)에의해 OS드라이버와 라우팅되어 서버(200)에 스토리지를 제공하는 것일 수 있다. 다만, 이에 한정되는 것은아니다.
도 7은 본원의 일 실시예에 따른 본 모듈(100)이 서버에 장착되어 서버의 모드를 변경하거나 볼륨을 제어하는 예시 개념도이다
도7을 참조하면, 논리적 볼륨 관리자(LVM)(70)은 서버 관리자의 제어 명령을 효율적으로 관리하여 서버의 스토리지를 복수개의 볼륨으로 할당하거나, 할당된 볼륨의 모드를 변경하는 등의 제어 명령을 할 수 있다. 예를 들어, 외부 서버(300)에 스토리지를 공유하기 위한 서버모드의 활성화 상태를 볼 수 있는 구성(71)은 Enabled의 경우 서버모드일 수 있으며, diabled의 경우 서버(200)의 스토리지로 활용될 수 있는 스토리지모드일 수 있다. 다만, 이에 한정되는 것은 아니며, 본 도면은 본원의 일 실시예로써의 예시 도면이다.
또한, 논리적 볼륨 관리자(LVM)(70)은 설정부(130)에 의해서 할당된 복수개의 볼륨을 서버 관리자의 제어 명령에 따라 LUN설정을 할 수 있다. 구체적으로, 서버 관리자의 제어 명령에 따라, 설정부(130)이 LUN설정하도록할 수 있다. LUN에 대해서는 통상의 기술자가 자명하게 알고 있는 사실로써 구체적인 설명은 생략한다.
본원의 일 실시예에 따른, 본 모듈(100)은 서버에 장착된 단일 플랫폼일 수 있다. 따라서, 복잡성이 줄어들며, 유지관리가 용이하고 필요에 따라서, 인터널디스크부(120)에 Raid카드를 장착하여 추가로 저장장치(43)을 구비함으로써 확장할 수 있다. 또한, 후술할 아키텍처를 바탕으로 서버(200)를 종료하지 않고 저장장치(43)을 추가할 수 있는 효과를 갖고 있다.
또한, 본 모듈(100)은 인터널디스크부(120)을 포함하고 있으므로 블록레벨 호스트 이외에 연결된 별도의 SAN switch 혹은 Network switch를 활용하여 다른 시스템과 연결할 수 있다.
또한, 본 모듈(100)은 서버에 장착되어, 기본적인 컴퓨팅 파워가 제공되며, 필요한 CPU와 리소스만을 공유하여 실질적인 디스크 IO는 HBA카드부(110)을 통하여 인터널디스크부(120)의 저장공간에 블록레벨로 저장될 수 있다. 즉, 기본적인 블록레벨의 확장성과 컴퓨팅 파워를 혼용할 수 있다. 다만, 이에 한정되는 것은 아니다.
또한, 본원의 일 실시예에 따른 본 모듈(100)은 예를 들어, 서버에 장착되어 있어 기본적으로 서버 내부의 자차적인 어플라이언스 구동이 가능하며, 여유가 있는 스토리지를 외부 서버 또는 시스템에 공유함으로써 효율적인 스토리지 활용을 할 수 있다.
본원의 일 실시예에 따라서, 본 모듈(100)이 장착된 서버(200)의 아키텍처는 먼저 자체 시스템에 플러그인 플래시 드라이브에서 부팅이 될 수 있으며, 모든 구성(바이너리, 파일, 디렉토리 등)은 부팅시 메모리에 로드될 수 있다. 또한, 플래시 드라이브가 고장 나면 고장난 플래시 드라이브를 처리 (교체)할 수 있을 때까지 시스템이 계속 정상적으로 작동할 수 있다.
또한, 시스템 사용에 필요한 구성, 파일 및 설정이 파일 시스템에 자동 동기화되며, 종료 및 재시작시 또는 파일 시스템 및 디스크 크기 로그는 자체 플레시 드라이브 보관될 수 있다.
또한, 자체적인 부트로더가 구동되고 자동 Block Level 스토리지 커널이 로드될 수 있다. 그 후 임시 파일 시스템 (RAM)을 초기화 한 다음 루트 이미지를 새로 작성된 임시 파일 시스템으로 추출할 수 있다. 다음 스토리지 컨트롤러 제어가 initiator커널로 전달되고 rc / init 스크립트가 실행될 수 있다. 다만, 이에 한정하는 것은 아니다.
본원의 일 실시예에 따른, 본 모듈(100)을 이용한 서버 시스템은 기본적으로 SAN(블록 스토리지를 제공하는 서버)블록을 지원하는 시스템일 수 있다. 즉, 모든 서버를 SAN 시스템으로 변환이 가능한 소프트웨어이며, 이 방식은 소프트웨어 기반 스토리지라 명명할 수 있다. 다만, 이에 한정되는 것은 아니다.
또한, 본 모듈(100)이 장착된 서버(200)는 특별한 하드웨어가 필요없으며, OS가 탑재되어 있고 어플리케이션 구동이 가능하며 다른 OS 스토리지 계층과 결합할 수 있다.
도 8은 본원의 일 실시예에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈의 사용 정의 블록도이다.
도8을 참조하면, 서버(200)또는 외부 서버(300) 즉, initiator에서 요청한 작업명령에따른 타겟드라이버부(140), 타겟코어부(150) 및 설정부(130)간의 프로세스를 알 수 있다. 다만, 이는 예제로써 이에 한정되는 것은 아니다.
본원의 일 실시예에 따른 본 모듈(100)을 이용한 서버간 공유 시스템은, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 제1서버부 및 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 제2서버부를 포함하며, 상기 제1서버부 및 상기 제2서버부는 상호 Tx와 Rx가 연결된 것이며, 관리자의 제어명령에 따라서 상기 제1서버부 또는 상기 제2서버부의 가용 스토리지 볼륨을 다른 서버부의 가용 스토리지로 할당하는 것일 수 있다.
도9은 본원의 일 실시예에 따른 본 모듈(100)을 이용한 서버간 고리형으로 연결되어 스토리지를 공유하는 시스템의 개략적인 구성도이다.
도9를 참조하면, 본원의 일 실시예에 따라서, 본 모듈(100)을 이용한 서버간 고리형으로 연결되어 스토리지를 공유하는 시스템은 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 제1서버부, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 제2서버부 및 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 복수개의 서버부를 포함하며, 각각의 서버부간 Tx및 Rx가 고리형으로 상호 연결되어 운영자의 제어 명령에 따라 가용 스토리지 볼륨을 다른 서버부의 가용 스토리지로 할당하는 것일 수 있다. 도9는 서버부가 총 세개를 예시적으로 표시하였으나, 통상의 기술자는 서버부간 복수개 연결될 수 있음을 알 수 있을 것이다.
또한, 각각의 서버부간 Tx 및 Rx가 고리형으로 상호 연결된다는 것은 예를 들어, 총 세개의 서버부가 있고, 각각 제1서버부, 제2서버부 및 제3서버부로 명명된다고할 때, 제1서버부의 Tx단과 제2서버부의 Rx단이 연결되고, 제2서버부의 Tx단과 제3서버부의 Rx단이 연결되며, 제3서버부의 Tx단과 제1서버부의 Rx단이 연결되는 것일 수 있다.
이 경우 제 1서버부는 제2서버부 및 제3서버부의 스토리지에 네트워크의 연결 없이 접근할 수 있다. 이와 마찬가지로 복수개의 서버부가 존재할 경우에도 적용될 수 있다.
도 10는 본원의 일 실시예에 따른 본 모듈(100)을 이용한 서버간 SAN Switch를 통해 연결되어 스토리지를 공유하는 시스템의 개략적인 구성도이다.
도10을 참조하면, 본원의 일 실시예에 따른 본 모듈(100)을 이용한 서버간 SAN Switch를 통해 연결되어 스토리지를 공유하는 시스템은, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 복수개의 서버부를 포함하며, 각각의 서버부는 Fiber Channel을 통해 SAN Switch(40)로 연결되어, 운영자의 제어명령에 따라 가용 스토리지 볼륨을 다른 서버부의 가용 스토리지로 할당하는 것일 수 있다.
즉, 상술한 본원의 일 실시예인 고리형으로 연결된 본 모듈(100)이 장착된 서버가 많아질 경우 SAN Switch(40)를 활용하여, 더 많은 서버부간 스토리지를 공유할 수 있도록 하는 것일 수 있다. 다만, 이에 한정되는 것은 아니다.
SAN Switch(40)은 통상의 기술자에게 자명한 기술이므로, 구체적인 설명은 생략한다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
100: 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈
110: HBA카드부 120: 인터널디스크부
130: 설정부 140: 타겟드라이버부
150: 타겟코어부 160:NIC부
170: 장치유형특정드라이버부
200: 서버 300: 외부 서버

Claims (13)

  1. 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈에 있어서,
    외부 서버와 연결하기 위한 HBA카드부;
    인터널디스크가 복수개 장착되어, 서버 내부의 저장공간을 구비하는 인터널디스크부;
    상기 저장공간을 서버 관리자의 제어명령에 따라 상기 인터널디스크부의 스토리지를 복수의 볼륨으로 할당하는 설정부;
    SCSI 프로토콜을 구현하며, 상기 HBA카드부와 연결된 외부서버와 통신하고, 상기 볼륨을 상기 서버 관리자의 제어 명령에 따라 스토리지모드 또는 서버모드로 설정할 수 있는 타겟드라이버부; 및
    상기 스토리지모드 또는 서버모드에 따른SCSI 명령을 처리하여 상기 인터널디스크부와 상기 타겟드라이버부의 데이터를 라우팅하는 타겟코어부;를 포함하고,
    상기 스토리지모드는 상기 서버 관리자의 제어 명령에 따라 상기 외부서버의 스토리지로 사용 가능하도록 하는 모드이며,
    상기 서버모드는 서버내부의 스토리지로 사용 가능하도록 하는 모드이고,
    상기 타겟드라이버부는,
    상기 서버 관리자의 제어명령에 따라 상기 볼륨을 상기 서버모드에서 상기 외부 서버의 제어에 따라 데이터에 접근 가능하도록 하는 스토리지 모드로 변경할 수 있는 것이되,
    상기 설정부는,
    스토리지의 사용 영역을 설정하는 영역 설정부; 사용 영역이 미사용 영역보다 작은 경우 사용 영역만을 진단 대상으로 결정하고, 사용 영역이 미사용 영역보다 큰 경우 영역 모두를 진단 대상으로 결정하는 진단결정부; 및 상기 진단 대상에 대하여 주기적인 진단을 실행하는 진단부;를 더 포함하는 것인,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈.
  2. 제1항에 있어서,
    상기 타겟드라이버부는,
    외부 서버 관리자의 제어명령에 따라 상기 볼륨을 상기 서버모드에서 상기 외부 서버의 제어에 따라 데이터에 접근 가능하도록 하는 스토리지모드로 변경할 수 있는 것이며,
    상기 외부 서버 관리자의 제어명령에 따라 서버모드로 변경 가능한 것인,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈.
  3. 제1항에 있어서,
    상기 설정부는,
    SCSI방식으로 타겟된 상기 인터널디스크부의 용량을 블록레벨로 볼륨 할당하고, 볼륨 할당된 볼륨에 LUN설정하는 것인, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈.
  4. 제1항에 있어서,
    상기 인터널디스크부는,
    Raid카드를 추가로 구비하여, 인터널디스크의 장착 가능한 수량을 늘리는 것인, 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈.
  5. 제4항에 있어서,
    상기 HBA카드와 외부 서버와의 전송 프로토콜은,
    Fiber Channel Target, Infiniband Target, iSCSI Target, Hardware FCoE Target, ISCSI over TCP, IP, SRP over Infiniband, iSER over IB, RoCE, iWARP 및 Software FCoE Target 중 어느 하나인 것인,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈.
  6. 제5항에 있어서,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈에 있어서,
    다른 시스템과 네트워크 연결을 위한 NIC부;를 더 포함하는 것인,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈.
  7. 제6항에 있어서,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈에 있어서,
    데이터 요청을 분석하고, 매개 변수를 결정하여 장치의 유형을 특정하여 데이터 처리에 도움을 주는 장치유형특정드라이버부;를 더 포함하는 것인,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈.
  8. 제7항에 있어서,
    상기 타겟코어부는,
    SCSI장치, 블록 장치, 파일 및 RAID컨트롤러 중 어느 하나인 것인,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈.
  9. 제1항에 있어서,
    상기 타겟드라이버부는,
    상기 볼륨을 상기 서버 관리자의 제어 명령에 따라 오토모드로 더 설정할 수 있으며,
    상기 오토모드는 상기 서버 또는 상기 외부 서버의 가용 스토리지에 따라서, 상기 볼륨을 스토리지 모드 또는 서버모드로 설정하는 것인,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈.
  10. 삭제
  11. 제1항에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 이용한 서버간 공유 시스템에 있어서,
    제1항에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 제1서버부; 및
    제1항에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 제2서버부;를 포함하며,
    상기 제1서버부 및 상기 제2서버부는 상호 Tx와 Rx가 연결된 것이며,
    관리자의 제어명령에 따라서 상기 제1서버부 또는 상기 제2서버부의 가용 스토리지 볼륨을 다른 서버부의 가용 스토리지로 할당하는 것인,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 이용한 서버간 공유 시스템.
  12. 제11항에 있어서,
    제1항에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 이용한 서버간 공유 시스템은,
    제1항에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 복수개의 서버부;를 더 포함하며,
    각각의 서버부간 Tx및 Rx가 고리형으로 상호 연결되어 운영자의 제어 명령에 따라 가용 스토리지 볼륨을 다른 서버부의 가용 스토리지로 할당하는 것인,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 이용한 서버간 공유 시스템.
  13. 제1항에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 이용한 서버간 공유 시스템은,
    제1항에 따른 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈이 장착된 복수개의 서버부를 포함하며,
    각각의 서버부는 Fiber Channel을 통해 SAN Switch로 연결되어, 운영자의 제어명령에 따라 가용 스토리지 볼륨을 다른 서버부의 가용 스토리지로 할당하는 것인,
    서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈을 이용한 서버간 공유 시스템.
KR1020200117909A 2020-04-03 2020-09-14 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈 KR102227189B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP20204556.3A EP3889754A1 (en) 2020-04-03 2020-10-29 Module mounted in server to share block-level storage and resource
JP2020183217A JP7089681B2 (ja) 2020-04-03 2020-10-30 サーバーに装着され、ブロックレベルストレージ及びリソースを共有するモジュール
US17/085,298 US11435918B2 (en) 2020-04-03 2020-10-30 Module mounted in server to share block-level storage and resource
CN202011215635.5A CN113495691A (zh) 2020-04-03 2020-11-04 安装在服务器上共享块级存储和资源的模块

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200041043 2020-04-03
KR1020200041043 2020-04-03

Publications (1)

Publication Number Publication Date
KR102227189B1 true KR102227189B1 (ko) 2021-03-15

Family

ID=75134409

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200117909A KR102227189B1 (ko) 2020-04-03 2020-09-14 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈

Country Status (5)

Country Link
US (1) US11435918B2 (ko)
EP (1) EP3889754A1 (ko)
JP (1) JP7089681B2 (ko)
KR (1) KR102227189B1 (ko)
CN (1) CN113495691A (ko)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000330733A (ja) * 1999-05-17 2000-11-30 Toshiba Corp ディスクアレイ装置
JP2004506980A (ja) * 2000-08-11 2004-03-04 3ウェア、 インコーポレイテッド コンピュータネットワークを介してブロックレベルストレージアクセスを提供するためのアーキテクチャ
KR20080054593A (ko) * 2006-12-13 2008-06-18 (주) 글루시스 네트워크 스토리지 시스템
KR101242458B1 (ko) * 2012-09-13 2013-03-12 효성아이티엑스(주) 지능형 분산 스토리지 서비스 시스템 및 방법
KR20140061194A (ko) * 2012-11-13 2014-05-21 주식회사 유투앤 iSCSI 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법
KR101564712B1 (ko) * 2015-04-01 2015-11-02 인하대학교 산학협력단 Scst를 이용한 총 플래시 어레이 스토리지 가상화 방법
US20150364160A1 (en) * 2014-06-17 2015-12-17 Fujitsu Limited Control apparatus and control method
KR20190045049A (ko) * 2017-10-23 2019-05-02 한국전자통신연구원 통합 스토리지 관리 장치 및 방법
KR20200074610A (ko) * 2018-12-17 2020-06-25 한국전자통신연구원 토러스 네트워크 기반 분산 파일 시스템 볼륨 성능 최적화 장치 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4412685B2 (ja) 1998-09-28 2010-02-10 株式会社日立製作所 記憶制御装置及びこれを用いたデータ格納システムの取り扱い方法
JP2001337787A (ja) 2000-05-25 2001-12-07 Hitachi Ltd 情報処理システムおよびデータ記憶システムならびにデータ記憶システムの制御方法ならびにデータ多重化システム
JP4386694B2 (ja) * 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
US8806096B1 (en) * 2007-04-20 2014-08-12 Netapp, Inc. Increased concurrency of an initialization process of multiple data storage units of a volume
US20110153905A1 (en) 2009-12-23 2011-06-23 Hitachi, Ltd. Method and apparatus for i/o path switching
US10002014B2 (en) 2015-07-10 2018-06-19 International Business Machines Corporation Management of a virtual machine in a virtualized computing environment based on a fabric limit

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000330733A (ja) * 1999-05-17 2000-11-30 Toshiba Corp ディスクアレイ装置
JP2004506980A (ja) * 2000-08-11 2004-03-04 3ウェア、 インコーポレイテッド コンピュータネットワークを介してブロックレベルストレージアクセスを提供するためのアーキテクチャ
KR20080054593A (ko) * 2006-12-13 2008-06-18 (주) 글루시스 네트워크 스토리지 시스템
KR101242458B1 (ko) * 2012-09-13 2013-03-12 효성아이티엑스(주) 지능형 분산 스토리지 서비스 시스템 및 방법
KR20140061194A (ko) * 2012-11-13 2014-05-21 주식회사 유투앤 iSCSI 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법
US20150364160A1 (en) * 2014-06-17 2015-12-17 Fujitsu Limited Control apparatus and control method
KR101564712B1 (ko) * 2015-04-01 2015-11-02 인하대학교 산학협력단 Scst를 이용한 총 플래시 어레이 스토리지 가상화 방법
KR20190045049A (ko) * 2017-10-23 2019-05-02 한국전자통신연구원 통합 스토리지 관리 장치 및 방법
KR20200074610A (ko) * 2018-12-17 2020-06-25 한국전자통신연구원 토러스 네트워크 기반 분산 파일 시스템 볼륨 성능 최적화 장치 및 방법

Also Published As

Publication number Publication date
JP7089681B2 (ja) 2022-06-23
US11435918B2 (en) 2022-09-06
US20210311630A1 (en) 2021-10-07
CN113495691A (zh) 2021-10-12
JP2021163448A (ja) 2021-10-11
EP3889754A1 (en) 2021-10-06

Similar Documents

Publication Publication Date Title
US20240020007A1 (en) Scalable data access system and methods of eliminating controller bottlenecks
US20130097400A1 (en) Storage system and controlling methods for the same
US10938730B2 (en) Data transmission techniques between systems having different communication speeds
US20220206871A1 (en) Techniques for workload balancing using dynamic path state modifications
WO2019053565A1 (en) STORAGE SYSTEM USING CLOUD STORAGE AS A ROW
JP2020533689A (ja) クラウド・ベースのランクを使用するシン・プロビジョニング
KR102227189B1 (ko) 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈
US10534733B2 (en) Flexible I/O slot connections
US11768744B2 (en) Alerting and managing data storage system port overload due to host path failures
RU2646312C1 (ru) Интегрированный программно-аппаратный комплекс
US10768834B2 (en) Methods for managing group objects with different service level objectives for an application and devices thereof
US11586354B2 (en) Techniques for role assignment of components of a distributed application
US11481147B1 (en) Buffer allocation techniques
KR20230077248A (ko) 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 진단 모듈
US11941443B2 (en) Distributed storage workload management
US11722564B1 (en) Dynamic command feedback to limit impact of host-copy migration background copy load
US20230026171A1 (en) Intelligent control plane communication
US11609711B2 (en) Distributed control path
US11620190B2 (en) Techniques for performing backups using hints
US11513690B2 (en) Multi-dimensional I/O service levels
US20220391243A1 (en) Dynamically redistributing i/o jobs among operating system threads
US11467930B2 (en) Distributed failover of a back-end storage director
US20200379849A1 (en) Distribution of snaps for load balancing data node clusters
KR20160007415A (ko) 외장형 초고속 저장 장치를 활용한 인 메모리 확장 시스템 및 그 방법
KR20160007414A (ko) 내장형 초고속 저장 장치를 활용한 인 메모리 확장 시스템 및 그 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant