KR20130083356A - 메타데이터 지속성을 위한 방법 - Google Patents

메타데이터 지속성을 위한 방법 Download PDF

Info

Publication number
KR20130083356A
KR20130083356A KR1020120030381A KR20120030381A KR20130083356A KR 20130083356 A KR20130083356 A KR 20130083356A KR 1020120030381 A KR1020120030381 A KR 1020120030381A KR 20120030381 A KR20120030381 A KR 20120030381A KR 20130083356 A KR20130083356 A KR 20130083356A
Authority
KR
South Korea
Prior art keywords
metadata
unmapped
data
range
mapped
Prior art date
Application number
KR1020120030381A
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 엘에스아이 코포레이션
Publication of KR20130083356A publication Critical patent/KR20130083356A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • 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

Landscapes

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

Abstract

트랜잭션을 위한 메타데이터 디스크 레이아웃에서 매핑되고 매핑되지 않은 범위들의 자동 업데이트를 제공한다. 트랜잭션은 매핑되고 매핑되지 않은 범위 변화들을 포함한다. 매핑된 범위 변화들은 10 MB의 메타데이터 데이트 디스크 영역 및 또한 매핑되지 않은 영역 어디에서든 있을 수 있다. 기록 저널은 모든 이동에 부가될 것이다. 모든 이동에 대해, 트랜잭션이 생성되고 매핑되고 매핑되지 않은 변화들을 포함한다. 재부팅 후, 기록 저널이 이용될 것이다. 보다 큰 데이터 무결성을 제공하기 위해, 블록 레벨 시퀀스 번호, 블록 번호 및 CRC가 2차 및 1차 복제를 위해 유지된다.

Description

메타데이터 지속성을 위한 방법{A METHOD FOR METADATA PERSISTENCE}
본 발명은 메타데이터 지속성을 위한 방법에 관한 것이다.
계층적 저장 관리(hierarchical storage management; HSM)는 고-비용 및 저-비용 저장 미디어 - 핫 계층(hot tier) 및 콜드 계층(cold tier) 간의 데이터를 자동으로 이동시키는 데이터 저장 기술이다.
하드 디스크 드라이브 어레이들과 같이 고속 저장 디바이스들이 광 디스크들 및 자기 테이프 드라이브들과 같은 보다 느린 디바이스들보다 더 비싸기 때문에(저장된 바이트 당) HSM 시스템들이 존재한다. HSM 시스템들은 보다 느린 디바이스들 상에서 기업의 데이터의 대부분을 저장하고, 그 후 필요할 때, 데이터를 보다 빠른 디스크 드라이브들로 복제한다. 사실상, HSM은 빠른 디스크 드라이브들에서 상기 보다 느린 대용량 저장 디바이스들에 대한 캐시들로 변한다. 상기 HSM 시스템은 데이터가 이용되고 어떤 데이터가 안전하게 보다 느린 디바이스들로 이동될 수 있는지 및 어떤 데이터가 상기 빠른 디바이스들 상에 머물러야 하는지에 대한 최상의 추측들을 수행하는 방식을 모니터링한다. 통상적인 HSM 시나리오에서, 빈번하게 이용되는 데이터 파일들은 디스크 드라이브들 상에 저장되지만, 그것들이 특정 시간 기간, 통상적으로 몇 달 동안 이용되지 않는다면 점차 테이프로 이동된다. 이용자가 테이프 상에 있는 파일을 재이용한다면, 그것은 디스크 저장 장치로 자동으로 되돌아온다. 상기 이점은 저장된 데이터의 총 양이 이용가능한 상기 디스크 저장장치의 용량보다 훨씬 더 클 수 있다는 것이며, 그러나 단지 드물게 이용된 파일들이 테이프 상에 있기 때문에, 대부분의 이용자들은 보통 임의의 속도 저하를 통지하지 않을 것이다. HSM은 때때로 계층적 저장장치(tiered storage)로서 불리운다. HSM(원래 DFHSM, 이제 DFSMShsm)은 먼저 IBM에 의해 데이터 저장 장치의 비용을 감소시키고 보다 느린 미디어로부터 데이터의 검색을 간단히 하기 위해 그것들의 메인프레임 컴퓨터들 상에 구현된다. 상기 이용자는 상기 데이터가 어디에 저장되고 그것을 어떻게 되찾는지를 알 필요가 없을 것이며, 상기 컴퓨터는 상기 데이터를 자동으로 검색할 것이다. 상기 이용자에 대한 유일한 차이는 데이터가 리턴되는 속도였다. 나중에, IBM은 그것의 AIX 운영 시스템으로, 및 그 후 솔라리스(Solaris), HP-UX, 및 리눅스(Linux)와 같은 다른 유닉스-형 운영 시스템들로 HSM을 포팅했다. HSM은 또한 DEC VAX/VMS 시스템들 및 알파/VMS 시스템들 상에서 구현되었다. 제 1 구현 데이터는 상기 VMS 시스템 구현 매뉴얼들 또는 VMS 제품 설명 책자들로부터 쉽게 결정되어야 한다. 최근에, 직렬 ATA(SATA) 디스크들의 개발이 3-단계 HSM을 위한 중요한 시장을 생성하였다: 파일들이 고-성능 파이버 채널 저장 영역 네트워크 디바이스들로부터 몇몇 테라바이트들 이상을 총계하는 다소 느리지만 훨씬 더 싼 SATA 디스크들 어레이들로 이동되고, 그 후 점차 상기 SATA 디스크들로터 테이프로 이동된다. HSM에서의 최신 개발은 하드 디스크 드라이브들 및 플래시 메모리를 가지며, 여기서 플래시 메모리는 디스크들보다 30배 더 빠르지만, 디스크들은 상당히 더 싸다.
개념적으로, HSM은 대부분의 컴퓨터 CPU들에서 발견된 캐시와 유사하며, 여기서 매우 높은 속도들로 구동하는 작은 양들의 값비싼 SRAM 메모리는 빈번하게 이용된 데이터를 저장하기 위해 이용되지만, 가장 적게 최근 이용된 데이터는 새로운 데이터가 로딩되어야 할 때, 보다 느리지만 훨씬 더 큰 메인 DRAM 메모리로 내보내진다.
데이터는 많은 이유들로 이동된다. 몇몇 이유들은 정보 값 변화들에 관련되는 반면, 다른 것들은 상이한 이유들에 관련된다.
1TB 핫 계층 사이즈에 대한 메타데이터(매핑되고 매핑되지 않은 범위들)를 유지하기 위해, 상기 메타데이터는 일반적으로 특정 사이즈의 핫 계층 가상 드라이브(VD) 내에 유지된다. 상기 메타데이터(매핑되고 매핑되지 않은)는 스와핑 동작 동안 상기 핫 계층 VD의 영역 내부 어디서든 변경될 수 있다. 스왑 동작을 위한 재부팅 후 데이터 무결성을 유지하기 위해, 매핑된 재위치 정보 및 매핑되지 않은 정보가 어토믹(atomic) 방식으로 상기 디스크 영역 내부에 유지되어야 한다(지속되어야 한다). 이것은 매핑된 것이 업데이트되고 매핑되지 않은 것이 업데이트되지 않거나 부분 매핑된 것이 업데이트된다면, 데이터 손상이 존재할 것임을 의미한다. 256K 블록이 상기 디스크로 상기 메타데이터 영역을 기록하기 위해 이용된다면, 데이터 손상이 뒤따를 수 있다. 전체 영역을 업데이트하기 위해 필요로 하는, 모든 스왑 동작을 위해 상기 매핑되고 매핑되지 않은 데이터를 디스크에 기록하는 것은 상기 영역에 대한 낭비적인 이용을 수반한다. 핫 계층 라이프 사이클은 상기 전체 영역으로의 연속적인 기록으로 인해 감소된다.
그러므로, 본 발명의 일 실시예는 계층적-드라이브 시스템(tier-drive system)을 위한 스와핑 동작에서 메타데이터 지속성의 방법을 포함할 수 있다. 상기 방법은 현재 트랜잭션 엔트리를 생성하는 단계, 상기 트랜잭션 엔트리에 메타데이터 변화들을 부가하는 단계로서, 범위 정보(extent information)가 매핑되고 매핑되지 않은 정보를 포함하는, 상기 부가 단계, 기록 저널에 의해 상기 기록 저널에서의 다음의 자유 엔트리 위치로 현재 트랜잭션 엔트리를 기록함으로써 상기 트랜잭션 엔트리를 상기 메타데이터 디스크 영역에 플러싱(flushing)하는 단계, 및 상기 메타데이터 모듈에 의해, 영향을 받은 블록들에 대한 상기 현재 트랜잭션 메타데이터 정보에 기초하여 상기 메타데이터 영역을 업데이트하는 단계를 포함할 수 있다.
본 발명의 일 실시예는 계층적-드라이브 시스템에서의 계층들 간에 데이터를 이동시킬 때 메타데이터 지속성을 위한 시스템을 추가로 포함할 수 있다. 상기 시스템은 호스트 컴퓨터, 메타데이터 모듈로서, 상기 모듈이 복수의 정보 범위들을 포함하는, 상기 메타데이터 모듈, 및 기록 저널을 포함할 수 있다. 현재 트랜잭션 엔트리는 상기 호스트 컴퓨터에 의해 생성되고 범위 정보는 상기 트랜잭션 엔트리에 부가된다. 상기 트랜잭션 엔트리는 상기 메타데이터 모듈에서 메타데이터로 플러싱된다. 상기 트랜잭션은 상기 기록 저널에서의 큐에 큐잉되고, 여기서 상기 기록 저널은 상기 현재 트랜잭션 엔트리를 다음의 자유 엔트리 위치에 기록한다. 상기 메타데이터 모듈은 상기 현재 트랜잭션 메타데이터 정보에 기초하여 상기 메타데이터를 업데이트하고 영향을 받은 데이터의 임의의 블록들을 플러싱한다.
도 1은 계층적 드라이브 레이아웃에 대한 도면.
도 2는 가상의, 매핑된 범위 및 매핑되지 않은 범위에 대한 도면.
도 3은 매핑되고 매핑되지 않은 범위 테이블들에 대한 표현을 도시한 도면.
도 4a는 TD 레이아웃의 일 예를 도시한 도면.
도 4b는 도 4a의 초기 매핑된 범위 메타데이터 상세들을 도시한 도면.
도 4c는 도 4a의 초기 매핑되지 않은 범위 메타데이터 상세들을 도시한 도면.
도 4d는 도 4b 및 도 4c에 대한 매핑되지 않은 범위로 상기 TD 범위(0)를 위한 핫 스왑의 상기 메타데이터 엔트리 변화들을 도시한 도면.
도 4e는 매핑되지 않은 범위로 TD 범위(2)를 위한 핫 스왑의 메타데이터 엔트리 변화들을 도시한 도면.
도 4f는 TD 범위(17)를 위한 콜드 스왑의 메타데이터 엔트리 변화들을 도시한 도면.
도 4g는 TD 범위(0)의 콜드 스왑의 메타데이터 엔트리 변화들을 도시한 도면.
도 4h는 TD 범위(2)의 콜드 스왑의 메타데이터 엔트리 변화들을 도시한 도면.
도 5는 메타데이터 디자인의 데이터 구조들을 도시한 도면.
도 6은 디스크 상에서 메타데이터를 위한 데이터 포맷을 도시한 도면.
도 7은 디스크 상에서 메타데이터 레이아웃에 대해 도시한 도면.
도 8은 다른 모듈들을 위한 메타데이터 모듈 인터페이스를 도시한 도면.
도 9는 스왑 동작을 위한 트랜잭션 엔트리 상태를 도시한 도면.
그러므로, 본 발명의 일 실시예는 계층화(tiering), 예를 들면 LSI의 캐시케이드(Cachecade) 시스템들 및 제품들을 통해 LSI의 MegaRAID 카드 내부로 계층화하기 위한 시스템들 및 방법들을 포함할 수 있다. 본 실시예는 PCI 기반 RAID 어댑터 내부에서 계층화하는 단계를 포함한다. 계층적 드라이브(Tier Drive; TD)가 생성될 수 있으며, 이것은 호스트에 의해 가상 드라이브(VD)로 보여진다. 상기 TD 데이터 내부에서, SAS, SATA, 하드 디스크들(콜드 계층)와 같은 느린 드라이브로 복제되거나 SAS, SATA SSD 드라이브(핫 계층)와 같이 비교적 빠른 드라이브로 복제된다. TD 상의 IO는 그것의 액세스가 호스트 판독 및 기록 성능의 가속화를 요구한다면 핫 계층 드라이브로 이동된다. DRAM에 상기 데이터를 캐싱하는 것과 같은 다양한 방법들이 존재할 수 있으며, 여기서 SSD 드라이브는 성능을 신장시키기 위해 이용가능하지만, 보다 빠른 저장 매체의 용량은 이용자에게 이용가능하지 않을 수 있다. SSD의 용량은 TD에 포함되고 계층화는 호스트 IO 성능을 가속시킨다. 이 기술분야의 숙련자들은 이것들이 예시적인 목적들을 위해 이용되기 때문에, Cachecade 및 LSI의 MegaRAID 카드를 넘어 적용가능하다는 것을 이해할 것임을 이해할 수 있다.
본 발명의 일 실시예에서, 데이터는 범위들(extents)로 불리는 데이터 유닛들에 관하여 계층들 간에 이동된다. 범위는 계층화 동작들을 위해 이용된 데이터의 연속 블록들을 포함하는 데이터 세트이다. 콜드 계층 데이터는 덜 자주 액세스되고 그에 의해 그 시간 동안 비교적 덜 중요한 데이터로 고려될 수 있는 데이터이다. 핫 계층 데이터는 보다 자주 액세스되고 그에 의해 그 시간 동안 비교적 더 중요하다고 고려될 수 있는 데이터이다. 계층화 모듈들은 계층적-드라이브의 상이한 계층들 사이에서 데이터를 스와핑한다. 1MB의 범위 사이즈는 이동의 데이터 유닛으로서 이용될 수 있으며, TD의 범위의 재배치된 위치(매핑되고 매핑되지 않은 데이터)를 유지하기 위해 메타데이터 인터페이스를 이용한다. 계층화 특징은 두 개의 기본적인 스왑 동작들을 가진다 - 콜드 스왑 및 핫 스왑. 상기 스왑 동작은 핫 또는 콜드 계층 상에 있을 수 있는 상기 매핑되지 않은 영역으로부터 상기 매핑되지 않은 범위를 취할 것이고, 상기 데이터를 핫 또는 콜드 계층에서의 원래 위치로부터 이동시켜 상기 매핑된 새로운 위치를 업데이트하고 상기 원래의 범위를 매핑되지 않은 것으로 업데이트한다. 콜드 스왑 동작은 핫 범위로부터 콜드 범위로 데이터를 이동시키고 상기 데이터 이동과 관련 있는 상기 매핑되고 매핑되지 않은 메타데이터 섹션을 업데이트한다. 콜드 스왑을 위해, 콜드 계층 상의 매핑되지 않은 영역이 이용된다. 핫 스왑 동작은 콜드 범위로부터 핫 범위로 데이터를 이동시키고 상기 데이터 이동과 관련 있는 상기 매핑되고 매핑되지 않은 메타데이터 섹션을 업데이트한다. 핫 스왑을 위해, 핫 계층 상의 매핑되지 않은 영역이 이용된다.
본 발명의 일 실시예에서, 세 가지 유형들의 범위들이 존재한다. 가상 범위는 콜드 계층 범위의 트래킹 정보를 기록하기 위해 이용된다. 매핑된 범위는 상기 TD의 매핑되지 않은 범위 정보를 유지하기 위해 상기 핫 계층 매핑된 정보 및 매핑되지 않은 범위 유지하기 위해 이용된다. TD 핫 계층 사이즈의 5%는 TD 생성 동안 매핑되지 않은 범위들을 위해 예약된다. 상기 5%는 상기 이용자에게 이용가능하지 않다. 이동 후, 이러한 매핑되지 않은 영역은 콜드 또는 핫 계층 영역들에 있을 수 있다. 따라서, 상기 TD 사이즈의 총 5%는 매핑되지 않은 범위들을 위해 예약된다. 스와핑되는 상기 범위는 상기 반대 계층(예를 들면 매핑되지 않은 콜드 범위로 이동된 핫 범위) 상의 상기 매핑되지 않은 범위로 복제될 것이다. 이것은 스왑 동작들의 수를 감소시키고 데이터 손상을 회피한다. 상기 스왑 동작 후 정전이 발생할지라도, 상기 메타데이터가 매핑되고 매핑되지 않은 위치들을 위해 업데이트될 때까지, 데이터는 그것의 원래 위치에 위치될 것이다. 매핑되지 않은 범위들을 위해 예약된 공간의 퍼센티지는 상기 성능의 요건에 의존하여 변할 수 있다.
1TB 핫 계층 사이즈에 대한 메타데이터(매핑된 영역들 및 매핑되지 않은 범위들)를 유지하기 위한, 본 발명의 일 실시예에서, 우리는 약 10MB를 필요로 한다. 상기 메타데이터는 핫 계층 VD 내부에 유지될 것이다. 상기 메타데이터 디스크 레이아웃은 헤더, 저널 영역, 매핑된 영역 및 매핑되지 않은 영역을 가질 것이다. 메타데이터(매핑되고 매핑되지 않은)의 변경은 상기 스왑 동작에 기초하여 핫 계층 VD의 상기 10MB 영역 내부의 어디에서나 일어날 수 있는 것이 가능하다. 스왑 동작을 위해, 매핑된 재배치 정보 및 매핑되지 않은 정보는 재부팅 후 상기 데이터 무결성을 보장하기 위해 어토믹 방식으로 상기 디스크 내부에 지속되어야 한다. 이것은 매핑된 데이터가 업데이트되고 매핑되지 않은 데이터가 업데이트되지 않거나, 또는 매핑된 데이터가 부분적으로 업데이트된다면, 데이터 손상이 있을 수 있음을 의미한다. 본 발명의 일 실시예에서, 트랜잭션은 스왑 동작마다 생성된다. 상기 트랜잭션은 상기 매핑되고 매핑되지 않은 범위들을 업데이트하기 전에 상기 저널 영역에 기록될 것이다.
도 1은 계층적 드라이브 레이아웃에 대한 다이어그램이다. 상기 계층적 드라이브(100)는 복수의 드라이브 레벨들(110)을 도시한다. 상기 TD는 VD들 상에서 생성되고 새로운 논리적 드라이브로서 호스트에 노출된다. 상기 VD들의 생성은 이 기술분야에 알려져 있다. 상기 TD의 상부 계층은 콜드 계층, 또는 콜드 VD를 나타낸다. 본 발명의 일 실시예에서, 복수의 콜드 VD들(120)이 존재한다. 상기 TD의 하부 계층은 핫 계층, 또는 핫 VD를 나타낸다. 본 발명의 일 실시예에서, 복수의 핫 VD들(130)이 존재한다. 상기 콜드 VD(120) 및 상기 핫 VD 간에, 콜드로부터 핫으로의 정책 선호들에 종속하여, 중요하게 포함할 복수의 중간 VD들(140)이 있다.
모든 데이터 이동에 대해, 트랜잭션이 생성된다. 상기 트랜잭션은 이러한 설명에 설명된 바와 같이 매핑되고 매핑되지 않은 변화들을 포함할 수 있다. 새로운 트랜잭션은 모든 스왑 동작을 위해 생성될 수 있다. 트랜잭션은 매핑되고 매핑되지 않은 범위 변화들을 포함한다. 기록 저널은 모든 이동에 부가될 수 있다. 재부팅 후, 기록 저널은 메모리에서의 메타데이터 영역 및 메타데이터 디스크 영역에 적용될 것이다. 증가된 데이터 무결성을 제공하기 위해, 블록 레벨 시퀀스 번호 및 CRC가 2차 및 1차 복제를 위해 유지될 수 있다.
상기 메타데이터 매니저(manager)는 사이즈 256K의 연속 블록들로 또는 하나씩 상기 디스크로 메타데이터를 기록할 것이다. 상기 블록들의 사이즈는 상기 핫 계층 명세에 의존하여 성능 요건들에 대해 증가되거나 감소될 수 있다. 트랜잭션이 다수의 블록들에 걸쳐 퍼진다면, 상기 메타데이터는 가능하게는 데이터 손상을 야기하는 전력이 중단되는 경우에 불일치 상태에 있을 수 있다. 메타데이터 저널을 구현함으로써, 트랜잭션 기록들은 지속적인 저장 영역, 예를 들면 부트-업(boot-up) 동안 저널 엔트리들을 이용할 수 있는 메타데이터 영역에 예약된 공간에서 추적되고, 그에 의해 메타데이터 업데이트들에 대한 자동성을 달성한다. 본 발명의 일 실시예에서, 상기 저널의 단지 하나의 복제가 유지된다. 저널 엔트리가 이용가능하지 않거나 그렇지 않은 경우 판독될 수 없다면, 그 후 전체 TD는 온라인이 아닐 것이다.
도 2는 가상의 매핑된 범위 및 매핑되지 않은 범위에 대한 다이어그램이다. 콜드 VD(120)는 적어도 하나의, 가능하게는 복수의 가상 범위들(122)을 포함한다. 이들 가상 범위들(122)은 1MB의 범위 사이즈일 수 있고 핫 스왑을 위해 트랙킹될 수 있다. 핫 VD(130)는 적어도 하나의 가능하게는 복수의 매핑된 범위들(132)을 포함한다. 이들 매핑된 범위들(132)은 1MB의 범위 사이즈일 수 있다. 상기 매핑된 범위들(132)은 초기 볼륨 생성 동안 이동 후 콜드 VD 범위 또는 핫 VD 범위에 대해 매핑된다. 상기 콜드 VD(120) 및 핫 VD(130)의 각각은 적어도 하나의 가능하게는 복수의 매핑되지 않은 범위들(124, 134)을 포함한다. 상기 매핑되지 않은 범위(124, 134)는 1MB의 범위 사이즈일 수 있다. 상기 매핑되지 않은 범위들(124, 134)은 스왑(핫 또는 콜드) 동작을 위해 이용될 수 있다. TD 핫 계층 사이즈의 5%는 매핑되지 않은 범위들을 위해 예약된다.
도 3은 매핑되고 매핑되지 않은 범위 테이블들(300)에 대한 표현이다. 매핑된 범위 테이블(310)은 핫 TD 범위 인덱스 번호(312), 소스 TD 정렬 범위(314), 및 링크된 TD 정렬 범위 번호(316)를 포함한다. 매핑되지 않은 범위 테이블(320)은 핫 TD 범위 인덱스 번호(322), LD 번호(324), 및 LD 범위 번호(326)를 포함한다.
초기 레이아웃이 생성될 때, 소스 TD 정렬 범위(314)는 상기 TD 정렬 범위 번호(312)를 포함할 수 있고 링크된 TD 정렬 범위 번호(316)는 유효하지 않을 것이다. 상기 매핑되지 않은 범위 테이블(320)은 임의의 호스트 데이터를 갖지 않는 상기 TD 범위들을 포함한다. TD 핫 계층 사이즈의 5%는 매핑되지 않은 범위들을 위해 예약되고, 상기 5%는 TD 생성 동안 이용자에게 이용가능하지 않다. 이동 후, 상기 매핑되지 않은 영역은 콜드 또는 핫 계층에 위치될 수 있다. 상기 매핑되지 않은 범위 테이블의 사이즈는 LD 타겟 번호 및 ID 범위 번호 대신에 TD 정렬 범위를 유지함으로써 감소될 수 있다.
콜드 스왑 및 핫 스왑 동작들은 배경 동작들이다. 콜드 스왑은 핫 VD 범위 영역에서 매핑되지 않은 콜드 범위 영역으로 데이터의 이동이며 그에 따라 매핑되고 매핑되지 않은 범위들에 대한 메타데이터를 업데이트한다. 유사하게는, 핫 스왑은 콜드 계층에서 핫 계층으로의 데이터의 이동이며 메타데이터 정보를 업데이트한다. 콜드 계층이 현재 핫 계층에 있지만 상기 시스템이 콜드 계층으로 되돌아가길 원하는 범위 데이터를 선형적으로 매핑하면, 그것은 상기 콜드 계층 상에서 그것의 원래 선형 매핑된 위치로 되돌아갈 것이다. 예를 들면, 15MB 콜드 계층 및 17MB 핫 계층를 가진 TD를 고려하자. 두 개의 매핑되지 않은 범위들은 레이아웃을 이해하기 위해 하나의 여분의 매핑되지 않은 범위가 존재하도록 결합될 것이다. 1TB 핫 계층 사이즈에 대해, 18MB의 메타데이터가 요구된다(매핑된 범위들에 대해 8MB, 매핑되지 않은 범위들, 각각의 1차 및 2차 데이터를 위한 헤더를 위한 410KB). 도 4a는 TD 레이아웃의 일 예이다. 상기 TD 레이아웃(400)은 일련의 TD 정렬 범위 번호들(410), 범위 정보(420) 및 LD 정보(430)로 이루어진다. 상기 TD 사이즈는 VD 사이즈들(가상 범위들(440), 매핑된 범위들(450), 매핑되지 않은 범위들(460), 및 메타데이터(470)) 마이너스 상기 매핑되지 않은 범위(460) 사이즈 및 상기 메타데이터 사이즈의 합이다. 30MB인 도 4a의 상기 TD에 대해, 상기 TD 사이즈는 33MB-2MB-1MB = 30MB이다.
도 4b는 도 4a의 초기 매핑된 범위 메타데이터 상세들을 도시한다. 소스 TD 정렬 번호들(410)은 도 4a의 상기 소스 TD 정렬 번호들(16-29)에 대응한다. 상기 매핑된 인덱스(412)는 0에서 15까지 구동한다. 도 4c는 도 4a의 초기 매핑되지 않은 범위 메타데이터 상세들을 도시한다. 상기 매핑되지 않은 인덱스(412)는 0에서 1까지 구동한다.
도 4d는 도 4b 및 도 4c에 대한 매핑되지 않은 범위로 상기 TD 범위(0)에 대한 핫 스왑의 엔트리 변화들을 도시한다. 인덱스 14(412)는 도 4b의 인덱스(14)와 관련되고 인덱스 0(412)는 도 4c의 인덱스 0과 관련된다.
도 4e는 매핑되지 않은 범위로의 TD 범위(2)에 대한 핫 스왑을 도시한다. 상기 매핑된 엔트리 변화들은 인덱스 15(412)에 대해 표시된다. 상기 매핑되지 않은 엔트리 변화들은 인덱스 1(412)에 대해 표시된다.
도 4f는 TD 범위(17)에 대한 콜드 스왑을 도시한다. 상기 매핑된 엔트리 변화들은 인덱스 1 및 14(412)에 대해 표시된다. 상기 매핑되지 않은 엔트리 변화들은 인덱스 0(412)에 대해 표시된다.
도 4g는 TD 범위(0)의 콜드 스왑을 도시한다. 상기 매핑된 엔트리 변화들은 인덱스 14 및 15(412)에 대해 표시된다. 상기 매핑되지 않은 엔트리 변화들은 인덱스 1(412)에 대해 표시된다. 이러한 예를 위한 두 개의 이동 동작들이 존재한다. 제 1 동작은 기존의 콜드 데이터를 다음 이용되지 않은 콜드 공간으로 이동시키는 단계를 포함한다. 제 2 동작은 상기 TD 범위(0) 핫 영역을 상기 콜드 영역으로 이동시키는 단계를 포함한다.
도 4h는 TD 범위(2)의 콜드 스왑을 도시한다. TD 범위(2)는 현재 도시된 예들에서 핫이다. 상기 매핑된 엔트리 변화들은 인덱스 1 및 15(412)에 대해 표시된다. 상기 매핑되지 않은 엔트리 변화들은 인덱스 0(412)에 대해 표시된다. 이러한 예를 위한 두 개의 이동 동작들이 존재한다. 제 1 동작은 그것의 다음 매핑되지 않은 콜드 위치로 링크된 범위를 이동시키는 단계를 포함한다. 콜드에서 매핑되지 않은 위치가 존재하지 않기 때문에, 그러므로 그것은 그것을 어딘가에 이동시키는 대신 그것의 원래 위치로 간다. TD 범위(17)가 핫 범위(14)로 이동되고 상기 콜드 범위(2)를 그것의 원래 위치로 스와핑하는 것을 회피한다면, 자유로운 핫 범위들의 수가 가능하게는 손실될 수 있다. 본 발명의 목적은 상기 콜드 범위(2)를 이동시킴으로써 서비스되지 않는다. 범위(17)를 그것의 원래 위치로 이동시키는 대신, TD 범위(17)는 그에 따라 동작을 복잡하게 하는 상기 핫(14)으로 이동된다. 본 발명의 실시예에서, 상기 동작은 범위가 그것의 매핑된 위치로부터 그것의 원래 (핫 또는 콜드) 위치로 이동될 때 간단하게 유지된다. 상기 제 2 동작은 TD 범위(2)를 그것의 원래 콜드 위치로 이동하는 단계를 포함한다.
본 발명의 일 실시예에서, 상기 가상 범위들은 핫 영역으로 이동시키기 위한 액세스 카운트에 기초하여 트랙킹된다. 상기 이용된 액세스 카운트는 트랙킹 정보 또는 다른 정보일 수 있다. 유사하게는, 상기 매핑된 범위들(핫 영역)은 콜드 영역으로 이동시키기 위한 상기 액세스 카운트에 기초하여 트랙킹된다. 일단 가상 범위가 핫 영역으로 이동할 준비가 된다면, 즉, 상기 범위가 충분한 수의 액세스 카운트들을 획득한다면, 매핑된 범위를 할당한 후 열 지수 버킷(heat index bucket)에 입력하는데 자격이 있다. 가장 덜 최근 액세스된 리스트는 하나의 범위에 대한 액세스들을 트랙킹할 것이다.
도 5는 메타데이터 디자인의 데이터 구조들을 도시한다. 상기 메타데이터 디자인(500)은 매핑된 구조(510), 매핑되지 않은 구조(520) 및 이동 모델(530)을 포함한다. 상기 구조(tm_metadata_mapped_extent_data_t(510))는 이동 구성요소로부터 상기 메타데이터 모듈로 데이터를 전달하기 위해 이용된다. 그것은 또한 매핑된 범위 정보를 위한 디스크 데이터 포맷 상에 있다. 상기 구조(tm_metadata_unmapped_extent_data_t(520))는 이동 구성요소로부터 상기 메타데이터 모듈로 데이터를 전달하기 위해 이용되고, 또한 매핑되지 않은 범위 정보를 위한 디스크 데이터 포맷상에 있다.
상기 구조(tm_metadata_extent_info_t)는 동작들을 "풋(put)" 및 "겟(get)"를 위해 이동 매니저로부터 전달된다. 이전 논의된 바와 같이, 상기 metadata_table_index 필드는 매핑되거나 매핑되지 않은 어레이로 상기 인덱스를 가진다. 상기 필드(is_mapped_extent)는 상기 이동 모듈이 매핑된 범위 정보를 요구하는 경우 "참(true)"을 포함할 것이다. Mapped_data는 mapped_extent 정보를 가지며 unmapped_extent는 매핑되지 않은 범위 정보를 포함한다. 상기 이동 모듈은 migration_tag를 전달한다. 상기 메타데이터 업데이터를 취소하는 것을 나중에 이용할 수 있다. 이것은 롤백 의미론(rollback semantics)을 인에이블한다.
도 6은 디스크 상의 메타데이터를 위한 데이터 포맷을 도시한다. 상기 온 디스크 데이터 구조(On Disk Data Structure)(600)는 매핑된 구조(610), 매핑되고 매핑되지 않은 블록들을 위한 블록 헤더 구조(620), 메타데이터 헤더 구조(630), 저널 구조(640), 저널 블록 헤더 구조(650) 및 매핑되지 않은 구조(660)를 포함한다.
도 7은 디스크 상에서의 메타데이터 레이아웃에 대해 도시한다. 상기 레이아웃(700)은 메타데이터 헤더 블록(710), 기록 저널 영역(720), 매핑된 범위 영역(730) 및 매핑되지 않은 범위 영역(740)을 포함한다. 상기 TD 지속 데이터(DDF 데이터)는 VD 내부의 상기 메타데이터 영역에 대한 포인터를 가질 것이며, 이는 도 7에서 X로 불리운다. 상기 tm_metadata_hdr_t(710)는 메타데이터 레이아웃의 시작에서 유지된다. 다음 256K 블록은 상기 기록 저널(720)을 위해 예약되고 tm_mtedata_journal_block_hrt_t는 도 7에 도시된 바와 같이 X+256K에 기록된다. 후에 상기 tm_metadata_journal_extent_info_t의 메타데이터 어레이가 지속된다. 상기 메타데이터 매핑된 섹션들은 X+256K+256K에서 시작하며 256K의 모든 블록은 tm_metadata_block_hdr_t로 시작할 것이다. 상기 tm_metadata_block_hdr_t는 상기 블록과 연관된 시퀀스 번호들 및 CRC를 가질 것이다. 상기 매핑되지 않은 섹션의 나머지 부분은 tm_metadata_unmapped_extent_data_t의 어레이로서 매핑될 것이다. 블록 사이즈로서 상기 256K는 SSD 드라이브에 대해, 성능이 향상되기 때문에 예로서 이용된다. 그러나, 상이한 블록 사이즈가 보다 양호한 성능, 기록 내구성 및 수명을 위해 상이한 선택된 VD 사이즈들에 대해 최적화하도록 선택가능하다는 것을 이해할 것이다. 상기 시퀀스 번호, CRC, 매직(magic), 모든 블록의 블록 번호가 재부팅 동안 상기 블록 엔트리를 검증하기 위해 이용된다. 1차 또는 2차 저장 장치로부터의 적당한 블록이 선택된다.
상기 메타데이터 헤더는 또한 1차 또는 2차 저장 장치를 구별하고 상기 메타데이터 블록을 식별하기 위해 매직, 번호, 필드를 가진다. 상기 헤더는 매핑된 엔트리들의 수, 매핑되지 않은 엔트리들의 수 및 저널 시작 어드레스를 유지하기 위한 필드들을 포함한다. 필드 TD 범위 사이즈가 외국 수입을 위해 이용된다.
본 발명의 일 실시예에서, 도 8에서 메타데이터 동작들이 다음에 나온다.
tm_metadata_init
본 발명의 일 실시예에서, 이것은 메모리 및 다른 리소스들의 모듈 레벨 초기화를 위한 시스템 부팅 동안으로 불리운다.
Tm_metadata_fini
본 발명의 일 실시예에서, 이것은 모듈 레벨 메모리 및 다른 리소스 정리를 위한 시스템 셧다운 동안으로 불리운다.
Tm_metadata_mgr_td_init
본 발명의 일 실시예에서, 이것은 상기 TD 내의 핫 계층의 일부인 상기 VD들을 식별한다. 이것은 도 7에 언급된 바와 같이 상기 핫 계층를 형성하는 상기 VD들 내의 상기 메타데이터의 저장을 위한 공간을 얻는다. 이것은 생성 시간에서 상기 TD 사이즈에 상관없이 TD 당 핫-계층 2차 저장 장치의 최대 1TB 까지 지원하기 위해 상기 핫 계층 상에 충분한 공간을 사전 할당한다. 상기 메타데이터 헤더들은 코어 메모리에서 업데이트되지만, 후속하는 플러시가 상기 헤더들, 저널 초기 엔트리들 및 매핑된/매핑되지 않은 초기 엔트리들을 한 번 플러싱한다. 이것은 또한 매핑된, 매핑되지 않은 메모리, 및 저널 버퍼들을 할당할 수 있다.
Tm_metadata_td_load
본 발명의 일 실시예에서, 이것은 TD가 온라인으로 또는 재부팅 동안 가져올 때 유발된다. 이러한 애플리케이션 프로그래밍 인터페이스(API)는 상기 온-디스크 메타데이터 레이아웃을 헤더들, 저널 엔트리들, 매핑된 엔트리들 및 매핑되지 않은 엔트리들을 포함하는 상기 메모리로 이동시킨다. 이것은 또한 블록 레벨 시퀀스 번호를 이용하여 메타데이터의 최근 복제를 선택한다. 또한, 상기 메모리에서 적절한 데이터를 얻기 위해 상기 시작 인덱스로부터 시작하는 상기 저널 엔트리들을 상기 최종 인덱스에 재적용한다. 이것은 검증된 코어 내(in-core) 복제를 갖는 상기 1차 및 2차 복제를 업데이트한다. 마지막으로, 상기 메타데이터 업데이트의 완료를 나타내기 위해 상기 호출자에 의해 전달된 콜백 절차를 유발할 것이다. 콜백은 인수(argument)로서 다른 코드에 전달되는 실행가능한 코드의 조각 또는 실행가능한 코드에 대한 참조이다. 이것은 하위-레벨 소프트웨어 계층이 상위-레벨 계층에 정의된 서브루틴(또는 함수)을 호출하도록 허용한다.
Tm_metadata_td_get
본 발명의 일 실시예에서, 이것은 로딩이 상기 호출자에게 유발된 후 상기 범위 정보를 전달할 것이다.
Tm_metadata_td_put
본 발명의 일 실시예에서, 상기 이동 모듈이 핫/콜드 스왑 동작 후, 메타데이터의 코어 영역들에서 메타데이터 변화들을 업데이트하기 위해 이러한 API를 이용한다. 상기 모듈은 상기 엔트리들을 현재 트랜잭션에 부가할 것이다.
Tm_metadata_td_flush
본 발명의 일 실시예에서, 다양한 범위들에 대한 풋 동작들을 완료한 후, 이동 모듈은 Tm_metadata_td_put을 이용하여 전달되는 상기 메타데이터를 지속하도록 상기 트랜잭션들을 완료하기 위해 이를 이용한다. 상기 이동 모듈은 현재 트랜잭션을 상기 기록 저널 큐에 부가할 것이다. 디스크 상의 기록 저널 지속성이 현재 진행중이 아니라면, 이것은 기록 저널을 시작할 것이다. 상기 기록 저널은 256K 블록을 빨리 완료하기 쉬울 것이다. 상기 기록 저널 블록의 완료 후, 상기 트랜잭션은 256K 블록 사이즈들로 상기 메타데이터 기록으로 이동한다. 단지 변화하는 블록들이 이러한 트랜잭션을 위해 기록될 것이다. 영향을 받은 메타데이터 업데이트를 완료한 후, 상기 기록 저널을 위해 계류중인 트랜잭션이 존재한다면, 이것은 상기 트랜잭션을 위한 저널 엔트리를 시작할 것이다. 특정 트랜잭션을 위한 모든 영향을 받은 블록들을 완료한 후, 이것은 상기 플러시 동작으로 전달된 콜백을 호출한다.
Tm_metadata_td_quiesce
본 발명의 일 실시예에서, 이러한 API는 주어진 TD 상의 모든 메타데이터 매니저 동작들이 완료되었고 새로운 메타데이터 동작들이 시작되도록 예정되어 있지 않음을 보장하기 위해 호출될 것이다. 이러한 API는 또한 백엔드 VD에 대한 임의의 중요한 IO들이 클리어되거나 끝마쳤음을 보장하기 위해 TD를 삭제할 때 유발될 수 있다. 모든 계류중인 동작들이 완료된 후, 콜백이 콜백 인수로 호출된다.
Tm_metadat_td_delete
본 발명의 일 실시예에서, 이것은 매핑되고, 매핑되지 않은 및 저널 엔트리들을 위한 초기화 동안 할당된 메타데이터 버퍼들을 릴리즈한다.
Tm_metadata_td_rollback
본 발명의 일 실시예에서, 이것은 이동 태그를 전달하는 메타데이터를 제거하기 위해 상기 이동 모듈에 의해 호출된다.
도 9는 스왑 동작을 위한 트랜잭션 엔트리 상태 다이어그램이다. 상기 스왑 동작(900)은 트랜잭션을 위한 메타데이터 업데이트의 단계들을 도시한다. 상기 트랜잭션은 변경되는 매핑되고 매핑되지 않은 엔트리들을 포함하는 스왑 동작을 위해 생성된다. 제 1 단계(910)에서, 현재 트랜잭션 엔트리가 없다면, tm_metadata_put(put)이 트랜잭션을 생성한다. 다음 단계(920)에서, 상기 풋은 범위 정보 엔트리들을 현재 트랜잭션에 부가한다. 다음 단계(930)에서, 플러시는 상기 트랜잭션을 저널 큐에 큐잉한다. 다음 단계(940)에서, atm_metadata_flush(플러시 동작)는 저널 기록을 시작한다. 단계(940)의 상기 저널 기록은 저널 엔트리들 및 저널 블록 엔트리(945)로서 도 9에 도시된다. 상기 동작은 그 후 상기 트랜잭션 메타데이터 플러시 큐(950)를 큐잉한다. 메타데이터 플러시 큐를 이동시킨 후, 상기 메타데이터 모듈들은 트랜잭션을 얻고, 상기 트랜잭션 메타데이터 정보에 기초하여 메타데이터 영역들(매핑되고 매핑되지 않은)의 블록들을 업데이트하며, 단지 영향을 받은 블록들(960 965, 970, 975)을 플러싱한다. CRC는 모든 블록, 및 시퀀스 번호에 대해 계산된다. 메타데이터의 상기 1차 및 2차 영역이 업데이트된다. 상기 메타데이터 플러시가 완료된 후, 상기 스왑 동작이 완료된다(980).
재부팅 후, 매핑되고 매핑되지 않은, 상기 메타데이터 영역들이 상기 디스크로부터 판독될 것이다. 가장 오래된 저널 엔트리로부터 시작하는 저널 트랜잭션들 엔트리들이 이용될 것이다. 모든 블록을 위한 CRC가 계산될 것이며 모든 메타데이터 블록을 위한 시퀀스 번호가 업데이트될 것이다. 상기 저널 메타데이터 영역은 그 후 다음 업데이트들을 위해 클리어될 것이다. 상기 업데이트된 메타데이터 블록들은 상기 메타데이터 영역에서 지속될 것이다.
상기 현재 트랜잭션 메타데이터 플러시 큐(950)를 이동시키는 단계 후 상기 메타데이터 업데이트 동안 정전이 존재하는 경우에, 상기 매핑 정보가 상기 기록 저널 엔트리에 의해 복구될 것이다. 상기 메타데이터(930)에 대한 현재 트랜잭션을 플러싱하기 위한 단계 후, 그러나 상기 단계(940)의 저널 기록들 이전에 정전이 존재한다면, 메타데이터 엔트리는 존재하지 않을 것이다. 이러한 인스턴스에서, 원래의 범위가 데이터를 가질 것이다.
메모리에서의 위치들로 데이터를 기록하는 것은 잠재적으로 다른 것들이 불일치 데이터를 갖게 할 수 있다. 이러한 문제는 상이한 어드레스 공간들에 대한 중첩하지 않은 메모리 레이아웃들을 이용함으로써 해소될 수 있거나 그렇지 않은 경우 상기 메모리(또는 그것의 일부)는 상기 매핑이 변할 때 플러싱되어야 한다. 또한 CRC는 순환 중복 검사이다. 이것은 원 데이터에 대한 고의적인 변경들을 검출하기 위해 디지털 네트워크들 및 저장 디바이스들에 공통적으로 이용되는 에러-검출 코드이다. 이들 시스템들에 들어가는 데이터의 블록들은 그 콘텐트들의 다항식 나눗셈의 나머지에 기초하여, 첨부된 짧은 검사 값 구성요소를 얻는다. 검색시, 계산은 반복되고 상기 검사 값들이 일치하지 않는다면 추정된 데이터 손상에 대해 수정 동작이 취해질 수 있다. 상기 "검사" 값은 상기 데이터에 부가할 데이터가 없기 때문에 보통 중복이며, 상기 알고리즘들은 구현하기에 비교적 간단하다. 플러싱 및 CRC 구현은 데이터 무결성을 유지하기 위해 이용가능한 수단의 예들임을 이 기술분야의 숙련자에 의해 이해될 것이다. 업데이트 시퀀스 번호는 데이터의 최근 복제를 결정할 것이며, 블록 번호는 추가 데이터 일관성 검사를 제공할 것이고, 1차 및 2차는 블록 레벨 실패들로부터 복구하도록 도울 것이다.
본 발명의 상기 기술은 예시 및 설명을 위해 제공된다. 이것은 개시된 정확한 형태로 본 발명을 제한하거나 철저하도록 의도되지 않으며, 다른 변경들 및 변형들이 상기 교시들을 고려하여 가능할 수 있다. 상기 실시예는 그에 의해 이 기술분야의 숙련자들로 하여금 고려되는 특정 이용에 적합한 다양한 실시예들 및 다양한 변경들에서 본 발명을 최상으로 활용하게 할 수 있도록 본 발명의 원리들 및 그것의 실제적인 애플리케이션을 최상으로 설명하기 위해 선택되고 기술된다. 첨부된 청구항들은 종래 기술에 의해 제한되는 한에 있어 이를 제외하고 본 발명의 다른 대안적인 실시예들을 포함하도록 해석됨을 의도한다.
100: 계층적 드라이브

Claims (5)

  1. 계층적-드라이브 시스템(tier-drive system)에 대한 스와핑 동작에서의 메타데이터 지속성의 방법에 있어서:
    현재 트랜잭션 엔트리를 생성하는 단계;
    상기 트랜잭션 엔트리에 메타데이터 변화들을 부가하는 단계로서, 범위 정보가 매핑되고 매핑되지 않은 정보를 포함하는, 상기 부가 단계;
    기록 저널에 의해, 상기 현재 트랜잭션 엔트리를 상기 기록 저널에서의 다음의 자유 엔트리 위치에 기록함으로써 상기 메타데이터 디스크 영역에 대한 상기 트랜잭션 엔트리를 플러싱하는 단계; 및
    상기 메타데이터 모듈에 의해, 영향을 받은 블록들에 대한 상기 현재 트랜잭션 메타데이터 정보에 기초하여 상기 메타데이터 영역을 업데이트하는 단계를 포함하는, 메타데이터 지속성 방법.
  2. 제 1 항에 있어서,
    모든 메타데이터 블록에 대한 블록 번호 및 CRC 시퀀스 번호를 계산하는 단계 및 1차 및 2차 복제를 유지하는 단계를 추가로 포함하는, 메타데이터 지속성 방법.
  3. 제 1 항에 있어서,
    상기 계층적 드라이브 시스템은 RAID 시스템인, 메타데이터 지속성 방법.
  4. 제 1 항에 있어서,
    상기 트랜잭션 엔트리를 플러싱한 후에 상기 계층적-드라이브에 대한 전력 중단이 발생하면, 상기 기록 저널을 통해 매핑되고 매핑되지 않은 정보를 복구하는 단계를 추가로 포함하는, 메타데이터 지속성 방법.
  5. 계층적-드라이브 시스템에서 계층들 간에 데이터를 이동시킬 때 메타데이터 지속성을 위한 시스템에 있어서:
    호스트 컴퓨터;
    메타데이터 모듈로서, 상기 모듈은 복수의 범위들의 정보를 포함하는, 상기 메타데이터 모듈; 및
    기록 저널을 포함하고,
    현재 트랜잭션 엔트리는 상기 호스트 컴퓨터에 의해 생성되고, 범위 정보는 상기 트랜잭션 엔트리에 부가되고, 상기 트랜잭션 엔트리는 상기 메타데이터 모듈에서의 메타데이터에 플러싱되고, 상기 트랜잭션은 상기 기록 저널에서의 큐에 큐잉되고, 상기 기록 저널은 상기 현재 트랜잭션 엔트리를 다음의 자유 엔트리 위치에 기록하고, 상기 메타데이터 모듈은 상기 현재 트랜잭션 메타데이터 정보에 기초하여 상기 메타데이터를 업데이트하며 영향을 받은 데이터의 임의의 블록들을 플러싱하는, 메타데이터 지속성을 위한 시스템.
KR1020120030381A 2012-01-12 2012-03-26 메타데이터 지속성을 위한 방법 KR20130083356A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/348,799 2012-01-12
US13/348,799 US20130185503A1 (en) 2012-01-12 2012-01-12 Method for metadata persistence

Publications (1)

Publication Number Publication Date
KR20130083356A true KR20130083356A (ko) 2013-07-22

Family

ID=47044863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120030381A KR20130083356A (ko) 2012-01-12 2012-03-26 메타데이터 지속성을 위한 방법

Country Status (6)

Country Link
US (1) US20130185503A1 (ko)
EP (1) EP2639710A2 (ko)
JP (1) JP2013143124A (ko)
KR (1) KR20130083356A (ko)
CN (1) CN103207883A (ko)
TW (1) TW201329714A (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140244897A1 (en) * 2013-02-26 2014-08-28 Seagate Technology Llc Metadata Update Management In a Multi-Tiered Memory
CN103516549B (zh) * 2013-09-27 2018-03-27 浪潮电子信息产业股份有限公司 一种基于共享对象存储的文件系统元数据日志机制
WO2015130314A1 (en) 2014-02-28 2015-09-03 Hewlett-Packard Development Company, L.P. Mapping mode shift
US20160019224A1 (en) * 2014-07-18 2016-01-21 Commvault Systems, Inc. File system content archiving based on third-party application archiving rules and metadata
WO2016159930A1 (en) 2015-03-27 2016-10-06 Hewlett Packard Enterprise Development Lp File migration to persistent memory
CN107209720B (zh) 2015-04-02 2020-10-13 慧与发展有限责任合伙企业 用于页面高速缓存的系统及方法以及存储介质
US10459947B2 (en) * 2016-02-05 2019-10-29 International Business Machines Corporation Frequency dependent partial index
US10365891B2 (en) 2016-04-06 2019-07-30 International Business Machines Corporation Object storage support for tiered storage archive with removable media
CN106020726B (zh) * 2016-05-23 2019-11-26 联想(北京)有限公司 写入元数据的方法、设备、以及存储装置
RU2017104408A (ru) * 2017-02-10 2018-08-14 СИГЕЙТ ТЕКНОЛОДЖИ ЭлЭлСи Составные топологии хранения данных для объектов данных
US11029862B2 (en) * 2017-04-25 2021-06-08 Netapp, Inc. Systems and methods for reducing write tax, memory usage, and trapped capacity in metadata storage
US11113312B2 (en) * 2017-06-29 2021-09-07 Microsoft Technology Licensing, Llc Reliable hierarchical storage management with data synchronization
CN109726033B (zh) * 2017-10-31 2022-05-06 伊姆西Ip控股有限责任公司 提供raid数据保护的方法、数据存储系统和计算机可读介质
KR102441997B1 (ko) * 2017-11-01 2022-09-08 한국전자통신연구원 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법
US11106378B2 (en) 2018-11-21 2021-08-31 At&T Intellectual Property I, L.P. Record information management based on self describing attributes
CN111435331B (zh) * 2019-01-14 2022-08-26 杭州宏杉科技股份有限公司 存储卷写数据方法、装置、电子设备及机器可读存储介质
CN111461160B (zh) * 2019-11-11 2023-07-14 天津津航技术物理研究所 抗云雾、烟雾干扰红外成像导引头目标跟踪方法
US11579771B2 (en) 2020-05-12 2023-02-14 Seagate Technology Llc Data storage layouts
US11418247B2 (en) 2020-06-30 2022-08-16 Hewlett Packard Enterprise Development Lp High spatial reuse for mmWave Wi-Fi

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067635A (en) * 1995-10-27 2000-05-23 Lsi Logic Corporation Preservation of data integrity in a raid storage device
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US6606629B1 (en) * 2000-05-17 2003-08-12 Lsi Logic Corporation Data structures containing sequence and revision number metadata used in mass storage data integrity-assuring technique
US6665814B2 (en) * 2000-11-29 2003-12-16 International Business Machines Corporation Method and apparatus for providing serialization support for a computer system
US20020161846A1 (en) * 2001-01-29 2002-10-31 Ulrich Thomas R. Data path controller architecture
US6990667B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US6990547B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Replacing file system processors by hot swapping
US6795895B2 (en) * 2001-03-07 2004-09-21 Canopy Group Dual axis RAID systems for enhanced bandwidth and reliability
US8005792B2 (en) * 2004-05-14 2011-08-23 Oracle International Corporation System and method for managing versions of metadata
US20060259527A1 (en) * 2005-05-13 2006-11-16 Devarakonda Murthy V Changed files list with time buckets for efficient storage management
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8365082B2 (en) * 2008-10-23 2013-01-29 Savnor Technologies Llc Universal content referencing, packaging, distribution system, and a tool for customizing web content
US20120010995A1 (en) * 2008-10-23 2012-01-12 Savnor Technologies Web content capturing, packaging, distribution
US8788941B2 (en) * 2010-03-30 2014-07-22 Itxc Ip Holdings S.A.R.L. Navigable content source identification for multimedia editing systems and methods therefor
US9170892B2 (en) * 2010-04-19 2015-10-27 Microsoft Technology Licensing, Llc Server failure recovery

Also Published As

Publication number Publication date
CN103207883A (zh) 2013-07-17
TW201329714A (zh) 2013-07-16
EP2639710A2 (en) 2013-09-18
US20130185503A1 (en) 2013-07-18
JP2013143124A (ja) 2013-07-22

Similar Documents

Publication Publication Date Title
KR20130083356A (ko) 메타데이터 지속성을 위한 방법
US10031703B1 (en) Extent-based tiering for virtual storage using full LUNs
US8914597B2 (en) Data archiving using data compression of a flash copy
US10521131B2 (en) Storage apparatus and storage control apparatus
US9733862B1 (en) Systems and methods for reverse point-in-time copy management in a storage system
US8130554B1 (en) Securely erasing flash-based memory
US7584229B2 (en) Method and system for priority-based allocation in a storage pool
US9323687B2 (en) Use of differing granularity heat maps for caching and migration
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
US8862819B2 (en) Log structure array
CN109902034B (zh) 快照创建方法、装置、电子设备及机器可读存储介质
US9465543B2 (en) Fine-grained data reorganization in tiered storage architectures
US9471252B2 (en) Use of flash cache to improve tiered migration performance
JP2014041471A (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US10078467B2 (en) Storage device, computer readable recording medium, and storage device control method
CN116974458A (zh) 用于处理数据的方法、电子设备和计算机程序产品
US8055835B2 (en) Apparatus, system, and method for migrating wear spots
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
US10831624B2 (en) Synchronizing data writes
US11010091B2 (en) Multi-tier storage
US11520510B1 (en) Extending the lifespan of a flash-based storage device
US11947803B2 (en) Effective utilization of different drive capacities
US20240078179A1 (en) Efficient write-back for journal truncation
Khil et al. Hot and Cold Data Replacement Method for Hybrid Storage System
WO2015145707A1 (ja) 追記型記憶装置への書き込みデータ決定方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid