KR101364356B1 - 대용량 데이터 저장을 위한 심볼릭 링크를 이용한 확장 가능한 저장 방법 및 장치 - Google Patents

대용량 데이터 저장을 위한 심볼릭 링크를 이용한 확장 가능한 저장 방법 및 장치 Download PDF

Info

Publication number
KR101364356B1
KR101364356B1 KR1020130095957A KR20130095957A KR101364356B1 KR 101364356 B1 KR101364356 B1 KR 101364356B1 KR 1020130095957 A KR1020130095957 A KR 1020130095957A KR 20130095957 A KR20130095957 A KR 20130095957A KR 101364356 B1 KR101364356 B1 KR 101364356B1
Authority
KR
South Korea
Prior art keywords
disk
file
symbolic link
expansion
main
Prior art date
Application number
KR1020130095957A
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 KR1020130095957A priority Critical patent/KR101364356B1/ko
Application granted granted Critical
Publication of KR101364356B1 publication Critical patent/KR101364356B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Abstract

본 발명은 운영체제에서 제공하는 심볼릭 링크를 이용하여 대용량 데이터를 저장하는 확장 가능한 저장 방법에 관한 것으로, 마이그레이션 과정이 없는 디스크 확장을 보장하는 방법 및 장치에 관한 것이다.
본 발명의 실시예에 따른, 운영체제가 제공하는 심볼릭 링크를 통한 확장 가능한 저장 장치를 제공하는 방법에 있어서, 심볼릭 링크를 저장하는 메인 디스크와 심볼릭 링크에 저장된 원본 파일을 저장하는 확장 디스크로 구분하는 단계, 상기 메인 디스크의 파일 처리 연산을 생성, 삭제, 읽기, 쓰기, 및 이동/복사로 구분하는 단계, 상기 파일 처리 연산의 생성에서 메인 디스크에 파일을 생성할 저장 공간이 부족할 경우에 확장 디스크에 원본 파일을 저장하고 메인 디스크에 심볼릭 링크를 생성하는 단계, 상기 파일 처리 연산의 삭제에서 메인 디스크의 심볼릭 링크를 삭제할 경우에, 심볼릭 링크의 원본 파일이 저장된 확장 디스크에서 저장된 원본 파일을 삭제하고 메인 디스크의 심볼릭 링크를 삭제하는 단계, 상기 파일 처리 연산의 이동/복사에서 메인 디스크의 원본 파일 및 심볼릭 파일을 상기 동일한 메인 디스크의 다른 장소로 이동/복사하고자 할 경우에, 메인 디스크에 파일을 생성할 저장 공간이 부족할 경우 확장 디스크에 원본 파일을 저장하고 메인 디스크에 심볼릭 링크를 생성하는 단계로 이루어진다.

Description

대용량 데이터 저장을 위한 심볼릭 링크를 이용한 확장 가능한 저장 방법 및 장치{Method and device for scalable storage using a symbolic link to store large volumes of data}
본 발명은 심볼릭 링크(symbolic link)를 이용하여 대용량 데이터를 저장하기 위한 확장 가능한 저장 방법 및 장치에 관한 것으로, 마이그레이션 과정이 없는 디스크 확장을 보장하는 방법 및 장치에 관한 것이다.
[문헌 1] David A. Patterson, Garth Gibson, and Randy H. Katz: A Case for Redundant Arrays of Inexpensive Disks (RAID). University of California Berkeley. 1988.
2000년을 맞이하던 IT의 상황은 급변하는 인터넷에 의해, 생산해 내는 데이터 역시 다양성과 규모에서 엄청난 성장을 했다. 포털 중심의 기업형 인터넷 정보에서 개인 미디어 정보를 바탕으로 한 소셜 네트워크 인터넷 정보로 IT 환경이 바뀌었다. 이러한 변화는 사용자들의 정보의 취득 방법을 기업에서 제공해 주는 정보만을 확인하는 수동적 정보에서 인터넷을 사용하는 모든 사람들의 정보를 검색하여 확인하는 능동적 정보 유형으로 바뀌었다는 것을 의미한다.
이러한 모든 변화를 이끌었던 것은 바로 무선 인터넷의 보급과 스마트 단말기이다. 사용자들은 자신들이 필요한 시기에 언제든지 정보를 검색하고, 또 자신들이 느끼는 느낌이나 모든 사실을 다른 사람들과 공유하기 위해 정보를 제공한다. 따라서, 정보를 제공하는 정보 제공자의 폭발적인 증가가 정보의 양을 변화시킨 것이다. 정보량의 증가는 인터넷 서비스 제공자 또는 정보 제공자들에게 정보를 저장하기 위한 대용량 저장장치에 대한 부담을 가져다 주었다.
저장장치의 증설은 수평적 확장과 수직적 확장으로 나누어진다. 수평적 확장은 분산파일시스템과 같이 여러 개의 컴퓨터가 네트워크로 서로 연동되고 있고 각 컴퓨터들의 물리적 저장 자원을 마치 하나의 파일 시스템을 사용하는 것처럼 제공하는 방법이고, 수직적 확장은 개별 컴퓨터의 물리적 저장장치를 확장하는 것으로 하드디스크를 확장하는 방법이다. 수직적 확장은 물리적 컴퓨터에 설치할 수 있는 하드 디스크의 개수만큼 제한되기 때문에 급격한 확장을 할 수 없는 반면, 수평적 확장은 필요한 저장 용량만큼 여러 대의 컴퓨터를 네트워크를 통해 공유하기 때문에 수직적 확장 보다 확장성이 용이하다.
하지만, 수직적 확장은 물리적 디스크의 확장만 생각하면 되지만, 수평적 확장은 컴퓨터 증설에 따른 투자 비용 및 관리 비용이 모두 증가하기 때문에, 데이터의 가치가 투자비 보다 큰지 판단할 필요가 있다. 또한 기술의 발달이 물리적 디스크의 가격 하락과 용량의 증가를 같이 가져다 주고 있기 때문에, 불과 몇 년 전까지만 하여도 수평적 확장이 수직적 확장보다 투자자본수익률(ROI)가 증가하는 방법이었지만, 지금은 수직적 확장이 수평적 확장 보다 투자자본수익률이 더 증가하는 방법이 되고 있다.
수직적 확장을 위한 대표적인 디스크 관리 시스템은 RAID(Redundant Array of Independent Disks)를 이용하는 것이다. RAID는 스트라이핑을 통한 데이터 확장과 미러링을 통항 데이터 안정성을 제공하기 때문에 많은 서비스 밴더들이 RAID 시스템이 장착된 하드웨어를 이용해 시스템을 구축한다. RAID 시스템은 저장 공간의 확장을 보장해 주지만 한편으로는 RAID 레벨 마이그레이션을 수행하는 번거로움을 가져다 준다. 디스크 용량에 따라 차이가 있지만 수시간에서 수십 시간이 마이그레이션 시간으로 소비되기 때문이다.
본 발명은 심볼릭 링크를 통해 물리적 디스크를 확장하는 방법으로 기존 RAID 시스템이 가지고 있던 RAID 레벨 마이그레이션을 수행하지 않으며, 특정 디스크 장애에 따른 전체 저장시스템의 장애도 발생하지 않기 때문에 중단 없는 무결정성 서비스가 가능하다.
이하에서는 본 발명의 몇 가지 실시 예에 대한 기본적인 이해를 돕기 위하여 간단한 요약을 제공한다. 이 요약은 광범위한 개관이 아니며, 본 발명의 중요/핵심 구성 요소를 식별하거나 특허청구범위를 한정하고자 하는 것이 아니다. 이는 단지, 이하의 보다 상세한 설명에 대한 서설로서, 몇몇 개념들을 단순한 형태로 제공하기 위한 것이다.
대용량 데이터를 처리하는 응용 프로그램은 생성되는 데이터 크기와 무관하게 저장 장치와의 일정한 입출력이 가능하도록 일정 크기의 블록 단위의 파일로 데이터를 관리하며, 상기 블록 파일을 청크라고 정의한다. 상기 응용 프로그램이 청크를 관리하는 방법은 데이터 갱신(update)를 기준으로 갱신이 없는 데이터 저장 방법과 갱신이 있는 데이터 저장 방법으로 구분된다. 전자의 데이터 갱신이 없는 데이터 저장은 한번만 쓰여지고 여러 번 읽는 기능(once write multi reader)인 분산파일시스템 또는 백업시스템의 저장장치에서 사용되고, 후자의 데이터 갱신이 있는 데이터 저장 방법은 데이터베이스와 같이 데이터의 변경이 빈번하게 발생되는 응용 프로그램에서 발생된다.
갱신이 없는 대용량 데이터의 저장은 한 개의 데이터 파일을 고정 크기의 청크로 나누어 파일을 관리한다. 예를 들어, 데이터 파일이 1GB라고 가정하고, 청크의 크기를 100MB라고 가정한다면, 100MB 크기를 가지는 청크 파일 10개와 24MB 크기의 청크 파일이 생성된다. 갱신이 없는 데이터 저장은 한 번의 저장으로 저장된 데이터의 크기가 변동되지 않기 때문에 비록 24MB의 작은 청크가 존재하지만 물리적 디스크의 단편화에 영향을 주지 않는다.
반면, 갱신이 있는 대용량 데이터의 저장은 분산파일시스템과 백업시스템과 같이 파일 단위의 데이터를 저장하기 보다는 정형화된 데이터 또는 비정형화된 데이터 집합에 초점이 맞추어져 있다. 즉, 데이터의 집합이 대용량 데이터 처리 기준이 되는 데이터베이스 시스템을 말한다. 상기 데이터베이스 시스템 역시 데이터 집합의 영속성을 보장하기 위해 로컬 디스크에 데이터를 저장하는데, 데이터 집합의 크기만큼 고정 크기의 청크 파일로 저장한다. 예를 들어, 데이터 집합이 1GB라고 가정하고 청크의 크기가 100MB라고 가정한다면, 100MB 크기의 11개의 청크 파일이 로컬 디스크에 생성된다. 갱신이 없는 대용량 데이터를 저장하는 방법과는 달리 갱신이 있는 대용량 데이터는 갱신이 발생됨에 따라 청크의 크기를 가변적으로 조정하는 것이 아니라, 고정된 청크 영역 중 비사용 영역을 예약하여 갱신이 됨에 따라 비사용 영역에 증가된 데이터를 저장함으로써 로컬 디스크의 단편화 현상을 감소시키고, 로컬 디스크의 데이터가 연속적으로 할당되게 함으로써 데이터 엑세스(access) 속도를 향상 시킬 수 있다.
청크를 이용한 대용량 데이터를 관리하는 응용 프로그램의 청크와 관련된 파일 연산으로 생성, 삭제, 읽기, 쓰기, 이동/복사와 같이 5가지 종류로 구분된다. 청크 생성 연산은 청크의 크기가 가변적이지 않다는 특징 때문에, 청크를 생성할 때 청크의 크기를 매개변수 또는 환경 파일로부터 입력 받아 해당 크기의 청크 파일이 생성 가능한지 판단하고, 생성이 가능하다면 해당 크기의 청크 파일을 생성하여 응용 프로그램에 생성 성공을 알려주고, 상기 청크가 생성이 불가능하면 불가능한 에러 코드를 응용 프로그램에 알려준다. 청크 삭제 연산은 일반 파일 삭제와 동일하게 청크 파일을 로컬 디스크에서 삭제한다.
청크 파일의 읽기와 쓰기 연산은 직접 로컬 디스크의 청크 파일을 읽고 쓴다는 측면에서 일반 파일 연산과 동일하지만, 쓰기 연산의 경우 파일 갱신에 따른 파일 크기가 증가하지 않는다는 차이점이 있다. 따라서 일반 파일의 쓰기 연산 중 업데이트(덧붙여쓰기) 기능은 청크 파일 연산에서 사용되지 않는다. 청크 파일의 이동 및 복사 연산은 파일 또는 데이터 집합과 관련된 복수 개의 청크가 이동 및 복사되는 경우이기 때문에, 이동하고자 하는 파일 또는 데이터 집합의 실질적인 크기가 아닌 청크 구성원의 크기로 이동 및 복사가 가능한 공간이 있는지 검사한다.
본 발명은 상기와 같이 대용량 데이터를 처리하기 위해 청크 단위로 데이터를 관리하는 응용 프로그램에서 데이터 증가에 따른 청크 파일의 증가를 심볼릭 링크를 이용하여 디스크 확장에 따른 데이터 마이그레이션 과정이 없이 무중단으로 저장 공간을 확장하는 방법에 관한 것이다.
상기 방법의 자세한 이해를 위해, 도 1은 운영체제가 제공하는 심볼릭 링크를 이용하여 저장 공간을 확장하는 본 발명에 대한 개념도(100)를 도시한다. 운영체제가 제공하는 심볼릭 링크는 존재하는 원본 파일을 가리키는 링크 파일을 만들어 링크 파일이 어디에 존재하든지 링크 파일을 통해 응용 프로그램이 원본 데이터의 입출력을 수행할 수 있다. 도 1은 메인 디스크(102)와 메인 디스크(102)에 저장된 심볼릭 링크 파일(110, 114)들이 가리키는 원본 파일(112, 116)을 저장하고 있는 확장 디스크(112, 116)로 구분된다.
확장 디스크는 물리적 저장 하드웨어 특성과 응용 프로그램이 수행 중인 컴퓨터와 물리적 연결 토폴로지(topology)와 상관 없이 운영체제에 연결되어 마운트(mount)된 디스크로, 마운트된 디스크는 운영체제 지원 여부에 따라 고유 디렉토리 또는 드라이버 명을 할당 받고, 운영체제 사용자는 마운트된 확장 디스크의 디렉토리 또는 드라이버 명을 이용하여 파일을 연산을 수행할 수 있다.
대용량 데이터를 청크 단위로 저장하는 응용 프로그램은 로컬 디스크 상의 고유 디렉토리를 저장 공간으로 정의하여 일정 크기의 청크를 생성한다. 만약, 상기 응용 프로그램이 복수개의 디렉토리를 지정하는 기능이 없다면, 해당 디렉토리를 포함하는 디스크의 용량이 초과 하였을 경우, 물리적 디스크의 증설을 수행해야 한다.
상기의 경우를 도 1을 이용하여 설명하면, 메인 디스크(102)에 청크 파일(108)을 생성하여 사용하는 응용 프로그램이 메인 디스크(102)의 용량 초과로 인해 더 이상의 청크 파일을 생성하지 못할 경우에, 일정한 규칙으로 운영체제에 마운트된 확장 디스크(112, 116)중에서 메인 디스크(102)에 저장 하지 못하는 청크를 저장할 수 있는 용량이 남아 있는 확장 디스크를 선출하고, 상기 청크 파일을 저장한다. 확장 디스크에 저장된 청크 파일(112, 116)에 대한 심볼릭 링크 파일을 메인 디스크(102)에 생성하여 연결시킴으로써, 메인 디스크에 청크 파일을 생성하여 입출력을 수행하는 응용 프로그램은 마치 메인 디스크에 청크 파일이 존재하는 것과 동일하게 입출력을 수행하게 된다.
전술한 바 및 그와 관련된 목적들을 달성하기 위하여, 이하의 설명 및 첨부된 도면과 관련하여 특정한 예시적인 양태들이 설명된다. 하지만, 이러한 양태들은 본 발명의 원리가 사용될 수 있는 다양한 방법 중에 오직 일부만을 설명하는 것일 뿐이며, 본 발명에서는 이러한 모든 양태 및 그 균등물들을 포함하고자 한다. 그 밖의 유리하고 새로운 특징들은, 첨부된 도면과 함께 이하의 상세한 설명을 참조하면 명백해질 것이다.
빅데이터에 대한 새로운 패러다임이 나타나면서 대용량 데이터를 저장하기 위해 NoSQL과 분산파일시스템이 오픈 소스로 활성화되었다. 이러한 NoSQL과 분산파일시스템은 대용량 데이터를 저장하기 위한 분산시스템으로 구성되며, 데이터의 영속성을 보장하기 위한 방법으로 청크 단위로 데이터를 관리한다.
하지만, 대용량 데이터를 저장하기 위해 도입된 분산시스템이 사용자들이 생산하는 데이터 증가를 충족하기에는 수요 예측이 불가능하고, 저장장치의 하드웨어 가격이 하락됨에 따라 분산시스템의 수직적 증설 보다는 수평적 증설을 고려하게 되었다. 하지만, RAID 시스템과 같은 물리적인 디스크 증설은 기존 디스크에 저장된 데이터의 마이그레이션이 동반되며, 많게는 수시간 또는 수십 시간의 마이그레이션 수행 시간이 필요하다.
본 발명은 이러한 문제점을 해결하기 위해 상기 응용 프로그램이 사용하는 특정 디렉토리의 용량이 초과할 경우에 단순하게 추가되는 디스크를 운영체제 마운트하고 확장 디스크로 등록함으로써, 저장 공간의 수직적 증설이 이루어지기 때문에, 저장 공간 증설에 따른 마이그레이션 이슈 및 관리 비용을 절감할 수 있는 특징을 가진다.
제1도는 심볼릭 링크를 사용한 확장 가능한 저장 장치 개념도
제2도는 시스템 구성도
제3도는 확장 디스트 테이블 정보 구성도
제4도는 생성 연산 처리 흐름도
제5도는 삭제 연산 처리 흐름도
제6도는 이동/복사 연산 처리 흐름도
이제 도면을 참조하여 본 발명을 설명하고자 한다. 도면에서 동일한 참조 번호는 동일한 구성요소를 나타낸다. 이하의 설명에서는 설명을 목적으로, 본 발명에 대한 보다 충분한 이해를 돕기 위하여 여러 가지 구체적인 세부 사항을 설명하였다. 하지만, 이러한 구체적인 세부 사항 없이도 실시될 수 있다는 점이 명백할 것이다. 한편 본 발명에 대한 설명을 보다 용이하게 하기 위하여, 잘 알려진 구조 및 장치들은 블록도의 형태로 도시하였다. 본 출원에 있어서, 개시된 발명을 구현하기 위하여, 본 발명은 컴퓨터를 제어하기 위한 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합을 생성하기 위하여 표준 프로그래밍 및/또는 엔지니어링 기법을 사용하여 메소드(method), 장치, 또는 제품으로 구현될 수 있다.
도 2을 참조하면, 도 2는 운영체제에서 제공하는 심볼릭 링크를 이용하여 마이그레이션 없는 무중단 확장 시스템(200)을 도시한다. 도 2의 응용 프로그램(202)은 일정 크기의 청크 단위로 파일을 나누어 저장하는 데이터베이스, 분산파일시스템, 또는 백업시스템과 같이 대용량 데이터를 저장하는 응용 프로그램으로, 데이터를 저장하기 위한 특정 디렉토리를 매개 변수 또는 환경 변수로 입력 받아 일정 크기의 청크 파일로 데이터를 관리한다. 응용 프로그램(202)은 청크를 관리하기 위해 생성, 삭제, 읽기, 쓰기, 및 이동/복사의 5종류의 연산을 수행한다.
상기 청크 파일에 대한 5종류의 연산에 대해 보다 자세히 설명하면, 도 2의 청크 파일 연산 중 읽기와 쓰기 연산은 운영체제가 직접 제공하는 시스템 명령어 또는 API를 통해 응용 프로그램(202)이 직접 메인 디스크(204)에 명령을 수행하고, 생성, 삭제, 그리고 이동/복사 연산은 응용 프로그램(202)이 저장 장치 관리자(222)를 통해 청크 파일을 관리한다.
응용 프로그램(202)이 청크 파일을 생성할 때, 저장 장치 관리자(222)는 확장 디스크 관리자(224)를 통해 디스크 용량을 검사한다. 만약 메인 디스크(204)가 청크 파일을 저장할 충분한 여유 공간을 가지고 있다면 메인 디스크(204)에 파일 1(210) 또는 파일 2(212)와 같이 물리적인 파일을 생성하여 응용 프로그램에게 넘겨 준다. 만약, 메인 디스크(204)가 청크 파일을 저장할 충분한 여유 공간을 가지고 있지 않다면, 확장 디스크 관리자(224)에 저장된 확장 디스크 테이블(228)을 통해 생성하고자 하는 청크 파일의 크기만큼 여유 공간을 가지고 있는 확장 디스크(206, 208) 중 하나를 선출한다. 상기 선출된 확장 디스크에 저장 장치 관리자(222)는 물리적 파일을 생성하고, 심볼릭 링크 관리자(226)를 통해 메인 디스크(204)에 확장 디스크에 저장된 물리적 파일(218, 220)과 관련된 심볼릭 링크(214, 216)을 생성하여 응용 프로그램(202)에 넘겨 준다.
응용 프로그램(202)이 임의의 청크 파일을 삭제할 때, 저장 장치 관리자(222)는 메인 디스크(204)에 저장된 청크 파일이 심볼릭 링크인지 여부를 판단하여, 심볼릭 링크가 아닌 경우는 메인 디스크(204)에 저장된 물리적 파일(210, 212)를 삭제하고, 상기 청크 파일이 심볼릭 링크인 경우는 심볼릭 링크가 가리키는 확장 디스크(206, 208)에 저장된 물리적 파일(218, 220)을 삭제한 후 메인 디스크(204)에 저장된 심볼릭 링크(214, 216)을 삭제한다.
상기 저장 장치 관리자(222)를 통해 수행되는 청크 파일의 이동 또는 복사 명령은 메인 디스크(204)의 원본 파일을 메인 디스크(204)의 다른 저장 공간으로 이동 또는 복사되는 명령으로, 확장 디스크(218, 220)는 확장 디스크 관리자(224)에 의해 관리되는 저장 디바이스로 응용 프로그램은 심볼릭 링크를 통한 읽기와 쓰기 명령을 제외하고 확장 디스크(218, 220)에 직접적인 연산을 수행할 수 없다. 응용 프로그램(202)이 임의의 청크 파일을 이동 또는 복사할 때, 저장 장치 관리자(222)는 이동 또는 복사하고자 하는 메인 디스크(204)에 저장된 청크 파일이 심볼릭 링크 인지 여부를 판단하여, 상기 청크 파일이 심볼릭 링크가 아닌 경우는 메인 디스크(204)에 저장된 물리적 파일(210, 212)를 대상 디렉토리에 이동 또는 복사 처리하고, 상기 청크 파일이 심볼릭 링크인 경우는 상기 심볼릭 링크가 가리키는 원본 물리적 파일(218, 220)을 대상 디렉토리에 이동 또는 복사한다. 만약 대상 디렉토리에 이동 또는 복사할 때, 메인 디스크(204)의 저장 용량이 복사할 충분한 공간을 가지고 있지 않다면, 확장 디스크 관리자(224)는 확장 디스크 테이블(228)을 통해 생성하고자 하는 청크 파일의 크기만큼 여유 공간을 가지고 있는 확장 디스크(206, 208) 중 하나를 선출하고, 상기 선출된 확장 디스크에 저장 장치 관리자(222)는 물리적 파일을 생성한 다음, 심볼릭 링크 관리자(226)를 통해 메인 디스크(204)에 확장 디스크에 저장된 물리적 파일(218, 220)과 관련된 심볼릭 링크(214, 216)을 생성하여 응용 프로그램(202)에 넘겨 준다.
도 3을 참조하면, 도 3은 도 2의 확장 디스크 테이블(230)에 등록된 확장 디스크(218, 220)들의 저장 용량을 관리하기 위한 정보(300)를 도시한다. 상기 저장 용량을 관리하기 위한 정보(300)는 도 2의 확장 디스크 관리자(224)에 의해 청크를 생성할 확장 디스크를 선출하는데 사용된다.
저장 용량을 관리하기 위한 정보(300)을 보다 자세히 설명하면, 도 3의 첫 번째 필드인 확장디스크ID(302)는 확장 디스크를 구분하기 위한 고유 인식자로 하드 디스크 고유 식별 코드 또는 순차번호 등 유일한 정보로 저장된다. 두 번째 필드인 마운트정보(304)는 확장 디스크가 운영체제를 통해 마운트된 디렉토리 정보를 의미하며, 세 번째 필드인 전체 크기(306)은 확장 디스크의 전체 용량을 나타낸다. 네 번째 필드인 사용 영역(308)은 현재 청크가 저장되어 사용 중인 영역의 용량을 나타내고, 마지막 필드인 비사용 영역(310)은 확장 디스크의 전체 영역 중에서 사용되고 있는 영역을 제외한 영역을 의미한다.
도 2의 확장 디스크 관리자(224)는 확장 디스크 테이블(228)에 저장된 저장용량을 관리하기 위한 정보(300)을 이용하여 청크를 저장할 확장 디스크를 선출하는 방법으로 최초 적합(first fit), 최상 적합(best fit), 그리고 최악 적합(worst fit) 알고리즘을 사용한다. 최초 적합은 라운드 로빈 방식을 이용하여 생성되는 순서를 순차적으로 가져감으로써 생성되는 청크 파일의 분포를 균일하게 가져갈 수 있는 반면, 청크 파일이 삭제에 따른 단편화 증상을 가지고 가는 문제점이 있다. 최상 적합은 최초 적합에 따른 단편화 증상을 줄일 수 있지만, 선택에 따른 비교 비용이 발생한다. 최악 적합은 백업 시스템과 같이 순차적으로 디스크를 가득 채우는 방법에 적합하다.
이제 도 4 내지 도 6 을 참조하면, 본 발명과 관련된 방법들이 일련의 행위로서 설명된다. 몇몇 행위들은 본 명세서에 도시되고 설명된 순서와 다른 순서로 일어날 수 있고 및/또는 다른 행위와 동시에 일어날 수도 있는바, 본 발명은 행위의 순서에 의하여 한정되지 않는다는 점을 이해할 것이다. 예를 들어, 당업자라면, 상태도와 같이 상호 관련된 일련의 상태 또는 이벤트로 방법이 표현될 수 있다는 것을 이해할 것이다. 또한 도시된 행위 모두가 본 발명에 따른 방법을 구현하는데 필요한 것은 아닐 수 있다. 또한, 본 명세서를 통해 개시된 방법들은, 이러한 방법들을 운반 및 전송 가능하게 하는 제품에 저장될 수 있다는 것을 이해할 것이다. 본 명세서에서 제품이란. 임의의 컴퓨터 판독기능 장치, 반송파, 또는 매체로부터 액세스 가능한 컴퓨터 프로그램을 포함하는 것이다.
도 4를 참조하면, 응용 프로그램(202)이 저장 장치 관리자(222)를 통해 청크 파일을 생성하는 방법(400)이 도시된다. 방법(400)은 단계(402)에서 시작되고, 단계(404)에서 메인 디스크 영역을 검사한다. 단계(406)에서 메인 디스크의 사용 가능 영역이 있는지를 검사하여 청크를 생성할 사용 가능 영역이 있다면 단계(408)로 진행하여 메인 디스크에 청크 파일을 생성하고, 단계(424)에서 종료된다. 단계(406)에서 메인 디스크에 청크를 생성한 충분한 공간이 없다면 단계(410)으로 진행하여 확장 디스크 테이블에 등록된 확장 디스크 리스트를 가져온다. 단계(412)는 단계(410)에서 취득한 확장 디스크 리스트에서 환경 파일에 설정된 또는 입력된 알고리즘 방법을 통해 단계(412)에서 사용 가능한 확장 디스크를 검사한다. 만약 단계(412)에서 선택 가능한 확장 디스크가 존재하지 않을 경우는 단계(422)로 진행하여 파일 생성 오류를 발생시키고 단계(424)에서 종료된다.
단계(412)에서 사용한 가능한 확장 디스크가 존재한다면, 단계(414)로 진행하여 확장 디스크를 선택하고 단계(416)에서 상기 선택된 확장 디스크에 청크 파일을 생성한다. 단계(418)에서 상기 생성된 청크 파일에 대한 심볼릭 링크를 메인 디스크에 생성하고, 단계(420)에서 확장 디스크 테이블(228) 정보를 갱신한 다음 단계(424)로 진행하여 종료된다.
도 5를 참조하면, 응용 프로그램(202)이 저장 장치 관리자(222)를 통해 청크 파일을 삭제하는 방법(500)이 도시된다. 방법(500)은 단계(502)에서 시작되고, 단계(504)에서 삭제하기 위해 입력 받은 청크 파일이 심볼릭 링크인지 검사한다. 단계(504)에서 청크 파일이 심볼릭 링크가 아닌 경우는 단계(512)로 진행하여 청크 파일을 삭제하고 단계(514)로 진행하여 완료된다. 단계(504)에서 삭제하기 위해 입력 받은 청크 파일이 심볼릭 링크인 경우는 단계(506)에서 심볼릭 링크가 가리키고 있는 확장 디스크에 존재하는 원천 청크 파일을 삭제하고, 단계(508)로 진행하여 메인 디스크에 존재하는 심볼릭 링크 파일을 삭제한 다음, 단계(510)에서 확장 디스크 테이블(228) 정보를 갱신하고 단계(514)로 진행하여 완료된다.
도 6을 참조하면, 응용 프로그램(202)이 저장 장치 관리자(222)를 통해 청크 파일을 이동 또는 복사하는 방법(600)이 도시된다. 방법(600)은 단계(602)에서 시작되고, 단계(604)에서 이동 또는 복사하는 청크 파일이 심볼릭 링크인지 검사한다. 단계(604)에서 청크 파일이 심볼릭 링크가 아닌 경우는 단계(608)로 진행하여 메인 디스크 내 청크 파일을 선택하고 단계(610)으로 진행한다. 단계(604)에서 청크 파일이 심볼릭 링크인 경우는 상기 심볼릭 링크가 가리키는 확장 디스크 내 원천 파일을 선택한 후 단계(610)으로 진행한다.
단계(610)은 선택된 청크 파일을 이동 또는 복사하기 위해 메인 디스크 내 여유 공간이 있는지 검사한다. 단계(610)에서 여유 공간이 있다면, 단계(612)로 진행하여 이동 또는 복사할 디스크를 메인 디스크로 선택하고 단계(616)으로 진행한다. 단계(610)에서 여유 공간이 없다면, 단계(614)로 진행하여 확장 디스크 테이블(228)에서 확장 디스크 리스트를 취득하고, 환경 파일에 설정된 또는 입력된 알고리즘 방법을 통해 사용 가능한 확장 디스크를 선택하고, 단계(616)으로 진행한다.
단계(616)은 단계(612)에서 선택된 메인 디스크 또는 단계(614)에서 선택된 확장 디스크 둘 중 선택된 디스크에 복사하고자 하는 원본 파일을 복사하고, 단계(618)에서 방법(600)을 수행하는 명령이 이동 명령인지 검사한다. 단계(618)에서 이동 명령이 아닌 경우는 단계(622)로 진행하고, 단계(618)에서 이동 명령인 경우는 단계(620)에서 원본 파일 및 원본 파일과 관련된 메인 디스크 내 심볼릭 링크를 삭제한 후 단계(622)로 진행한다.
단계(622)는 단계(616)에서 복사된 파일이 확장 디스크에 저장되었는지 검사하고, 확장 디스크에 저장된 경우는 단계(624)에서 복사된 청크 파일과 관련된 메인 디스크 내 심볼릭 링크를 생성하고, 단계(626)으로 진행한다. 단계(622)에서 복사된 파일이 확장 디스크가 아닌 메인 디스크에 저장되었다면 단계(626)으로 진행한다. 단계(626)은 화장 디스크 테이블(228)의 정보를 갱신하고 단계(628)에서 종료된다.
전술한 내용은 본 발명의 예들을 포함한다. 본 발명을 설명하기 위하여 방법 또는 구성 요소의 가능한 모든 조합을 설명하는 것은 불가능하지만, 당업자라면 보다 더 많은 다양한 조합 및 치환이 가능하다는 것을 이해할 것이다. 따라서, 본 발명은 특허청구범위의 사상 및 범위에 포함되는 이러한 모든 교체, 변경, 변화를 포괄하는 것이다.

Claims (7)

  1. 대용량 데이터를 저장하기 위한 심볼릭 링크를 이용한 확장 가능한 저장 방법에 있어서,
    저장 시스템에 대하여 심볼릭 링크를 저장하는 메인 디스크와 심볼릭 링크에 저장된 원본 파일을 저장하는 하나 이상의 확장 디스크로 구분하는 단계;
    상기 저장 시스템의 메인 디스크에 고정 크기를 가지는 청크 단위로 파일 처리 연산을 생성, 삭제, 읽기, 쓰기, 이동 및 복사로 구분하는 단계;
    상기 파일 처리 연산의 생성에서 메인 디스크에 파일을 생성할 저장 공간이 부족할 경우에 하나 이상의 확장 디스크에서 원본 파일을 저장할 수 있는 여유 공간을 가지는 확장 디스크 한 개를 선출하여 원본 파일을 저장하고 메인 디스크에 심볼릭 링크를 생성하는 단계;
    상기 파일 처리 연산의 삭제에서 메인 디스크의 심볼릭 링크를 삭제할 경우에, 심볼릭 링크의 원본 파일이 저장된 확장 디스크에서 원본 파일을 삭제하고 메인 디스크의 심볼릭 링크를 삭제하는 단계;
    상기 파일 처리 연산의 읽기와 쓰기는 운영체제가 제공하는 심볼릭 링크를 통한 원본 파일 읽기와 쓰기 연산만을 사용하는 단계;
    상기 파일 처리 연산의 이동과 복사에서 메인 디스크의 원본 파일 및 심볼릭 파일을 동일한 메인 디스크의 다른 장소로 이동 또는 복사하고자 할 경우에, 메인 디스크에 파일을 생성할 저장 공간이 부족할 경우 하나 이상의 확장 디스크에서 원본 파일을 저장할 수 있는 여유 공간을 가지는 확장 디스크 한 개를 선출하여 확장 디스크에 원본 파일을 저장하고 메인 디스크에 심볼릭 링크를 생성하는 단계를 포함하는 심볼릭 링크를 이용한 확장 가능한 저장 방법.
  2. 제 1항에 있어서,
    상기 저장 시스템의 확장 디스크는 컴퓨터와 유무선 물리적 연결의 토폴로지와 상관 없이 운영체제에 마운트된 디스크를 포함하는 것을 특징으로 하는 심볼릭 링크를 이용한 확장 가능한 저장 방법.
  3. 제 1항에 있어서,
    상기 저장 시스템의 확장 디스크를 관리하기 위해, 고유한 확장 디스크ID 필드와, 확장 디스크가 운영체제에 마운트된 위치 정보 필드와, 확장 디스크의 전체 크기 필드와 확장 디스크의 사용 영역 크기 필드와 확장 디스크의 비사용 영역 크기 필드를 포함하는 것을 특징으로 하는 심볼릭 링크를 이용한 확장 가능한 저장 방법.
  4. 대용량 데이터를 저장하기 위한 심볼릭 링크를 이용한 확장 가능한 저장 장치에 있어서,
    저장 시스템에 대하여 심볼릭 링크를 저장하는 메인 디스크와 심볼릭 링크에 저장된 원본 파일을 저장하는 하나 이상의 확장 디스크로 구분하는 확장 디스크 관리자;
    상기 저장 시스템의 확장 디스크에 저장된 원본 파일을 가리키는 메인 디스크에 심볼릭 링크의 생성 및 삭제를 처리하는 심볼릭 링크 관리자;
    상기 저장 시스템의 메인 디스크에 고정 크기를 가지는 청크 단위로 파일 처리 연산을 생성, 삭제, 읽기, 쓰기, 이동 및 복사로 구분하여, 생성 연산에서 메인 디스크에 파일을 생성할 저장 공간이 부족할 경우에 하나 이상의 확장 디스크에서 원본 파일을 저장할 수 있는 여유 공간을 가지는 확장 디스크 한 개를 선출하여 원본 파일을 저장한 다음 메인 디스크에 심볼릭 링크를 생성하고, 삭제 연산에서 메인 디스크의 심볼릭 링크를 삭제할 경우에 심볼릭 링크의 원본 파일이 저장된 확장 디스크에서 원본 파일과 메인 디스크의 심볼릭 링크를 삭제하고, 이동과 복사 연산에서 메인 디스크의 파일을 원본이 저장된 동일한 메인 디스크의 다른 장소로 이동 또는 복사하고자 할 경우에 메인 디스크에 파일을 생성할 저장 공간이 부족할 경우 하나 이상의 확장 디스크에서 원본 파일을 저장할 수 있는 여유 공간을 가지는 확장 디스크 한 개를 선출하여 원본 파일을 저장하고 메인 디스크에 심볼릭 링크를 생성하는 저장 장치 관리자를 포함하는 심볼릭 링크를 이용한 확장 가능한 저장 장치.
  5. 제 4항에 있어서,
    상기 저장 시스템의 저장 장치 관리자는 파일 처리 연산의 읽기와 쓰기는 응용 프로그램이 운영체제가 제공하는 심볼릭 링크를 통한 원본 파일 읽기와 쓰기 연산을 필터링 없이 직접 사용하는 것을 특징으로 하는 심볼릭 링크를 이용한 확장 가능한 저장 장치.
  6. 제 4항에 있어서,
    상기 저장 시스템의 확장 디스크는 컴퓨터와 유무선 물리적 연결의 토폴로지와 상관 없이 운영체제에 마운트된 디스크를 포함하는 것을 특징으로 하는 심볼릭 링크를 이용한 확장 가능한 저장 장치.
  7. 제 4항에 있어서,
    상기 저장 시스템의 확장 디스크 관리자는 확장 디스크를 관리하기 위해 고유한 확장 디스크ID 필드와, 확장 디스크가 운영체제에 마운트 위치 정보 필드와, 확장 디스크의 전체 크기 필드와 확장 디스크의 사용 영역 크기 필드와 확장 디스크의 비사용 영역 크기 필드를 포함하는 확장 디스크 테이블을 포함하는 것을 특징으로 하는 심볼릭 링크를 이용한 확장 가능한 저장 장치.
KR1020130095957A 2013-08-13 2013-08-13 대용량 데이터 저장을 위한 심볼릭 링크를 이용한 확장 가능한 저장 방법 및 장치 KR101364356B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130095957A KR101364356B1 (ko) 2013-08-13 2013-08-13 대용량 데이터 저장을 위한 심볼릭 링크를 이용한 확장 가능한 저장 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130095957A KR101364356B1 (ko) 2013-08-13 2013-08-13 대용량 데이터 저장을 위한 심볼릭 링크를 이용한 확장 가능한 저장 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101364356B1 true KR101364356B1 (ko) 2014-02-18

Family

ID=50271320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130095957A KR101364356B1 (ko) 2013-08-13 2013-08-13 대용량 데이터 저장을 위한 심볼릭 링크를 이용한 확장 가능한 저장 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101364356B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180121698A (ko) * 2015-01-30 2018-11-07 드롭박스, 인크. 공유 콘텐츠 항목의 저장소 제약된 동기화
US10552449B2 (en) 2015-01-30 2020-02-04 Dropbox, Inc. Storage constrained synchronization of shared content items
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US10846303B2 (en) 2016-04-25 2020-11-24 Dropbox, Inc. Storage constrained synchronization engine
US11562000B2 (en) 2016-04-25 2023-01-24 Dropbox, Inc. Storage constrained synchronization engine

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070075049A (ko) * 2006-01-11 2007-07-18 삼성전자주식회사 파일 시스템과 호환성을 유지하는 심볼릭 링크를 생성하는방법, 상기 심볼릭 링크를 이용하여 파일/디렉토리에접근하는 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070075049A (ko) * 2006-01-11 2007-07-18 삼성전자주식회사 파일 시스템과 호환성을 유지하는 심볼릭 링크를 생성하는방법, 상기 심볼릭 링크를 이용하여 파일/디렉토리에접근하는 방법 및 장치

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180121698A (ko) * 2015-01-30 2018-11-07 드롭박스, 인크. 공유 콘텐츠 항목의 저장소 제약된 동기화
KR101916240B1 (ko) 2015-01-30 2018-11-08 드롭박스, 인크. 공유 콘텐츠 항목의 저장소 제약된 동기화
US10552449B2 (en) 2015-01-30 2020-02-04 Dropbox, Inc. Storage constrained synchronization of shared content items
KR102064696B1 (ko) 2015-01-30 2020-02-11 드롭박스, 인크. 공유 콘텐츠 항목의 저장소 제약된 동기화
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US11275763B2 (en) 2015-01-30 2022-03-15 Dropbox, Inc. Storage constrained synchronization of shared content items
US11675811B2 (en) 2015-01-30 2023-06-13 Dropbox, Inc. Storage constrained synchronization of shared content items
US10846303B2 (en) 2016-04-25 2020-11-24 Dropbox, Inc. Storage constrained synchronization engine
US11562000B2 (en) 2016-04-25 2023-01-24 Dropbox, Inc. Storage constrained synchronization engine

Similar Documents

Publication Publication Date Title
US10552038B2 (en) Object storage architecture based on file_heat
US10747718B2 (en) Mapping structure for maintaining metadata for snapshots in a virtualized storage environment
US9733862B1 (en) Systems and methods for reverse point-in-time copy management in a storage system
JP4648723B2 (ja) データ価値に基づく階層型ストレージ管理の為の方法と装置
US7836266B2 (en) Managing snapshot history in a data storage system
EP2780796B1 (en) Method of and system for merging, storing and retrieving incremental backup data
CN106687911B (zh) 不损害数据完整性的在线数据移动
US7308543B2 (en) Method and system for shredding data within a data storage subsystem
US20190317889A1 (en) Apparatuses and methods and computer program products for a redundant array of independent disk (raid) reconstruction
KR101364356B1 (ko) 대용량 데이터 저장을 위한 심볼릭 링크를 이용한 확장 가능한 저장 방법 및 장치
US10108644B1 (en) Method for minimizing storage requirements on fast/expensive arrays for data mobility and migration
US9773012B2 (en) Updating map structures in an object storage system
US11093387B1 (en) Garbage collection based on transmission object models
US11151030B1 (en) Method for prediction of the duration of garbage collection for backup storage systems
US20080082525A1 (en) File storage system, file storing method and file searching method therein
US20070061540A1 (en) Data storage system using segmentable virtual volumes
CN104025010A (zh) 存储系统中的可变长度编码
US8825653B1 (en) Characterizing and modeling virtual synthetic backup workloads
US10628298B1 (en) Resumable garbage collection
US11372834B2 (en) Optimizing space management of tablespaces in database systems
US20170220586A1 (en) Assign placement policy to segment set
CN107451138A (zh) 一种分布式文件系统存储方法和系统
US7549029B2 (en) Methods for creating hierarchical copies
US11403024B2 (en) Efficient restoration of content
US10380066B2 (en) File system with multi-class in situ tiered archiving

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration
GRNT Written decision to grant