1 |
1
비휘발성 메모리와 DRAM(dynamic random access memory) 및 상기 DRAM보다 입출력 성능이 낮은 제3 저장장치를 포함한 DRAM 스토리지를 구비하는 컴퓨팅 장치에서 수행되는 DRAM 스토리지의 작동 방법으로서,블록 데이터에 대한 입출력 요구시 제3 저장장치의 몇 번째 블록까지 데이터가 적재되었는지에 대한 기록에 따라 상기 입출력 요구를 상기 제3 저장장치에서 처리할지 혹은 상기 DRAM에서 처리할지를 판단하는 단계;상기 DRAM에서 변경되는 블록에 대한 로그를 상기 비휘발성 메모리에 저장하는 단계;상기 로그에 대응하는 블록을 상기 비휘발성 메모리에서 상기 제3 저장장치로 백업하는 단계를 포함하는, DRAM 스토리지의 작동 방법
|
2 |
2
청구항 1에 있어서,상기 저장하는 단계는, 상기 DRAM에서 변경이 가해진 블록 중 변경된 영역에 대한 로그만을 상기 비휘발성 메모리에 저장하는, DRAM 스토리지의 작동 방법
|
3 |
3
청구항 1에 있어서,상기 저장하는 단계 전에, 상기 비휘발성 메모리, 상기 DRAM 및 상기 제3 저장장치를 포함한 물리적인 공간들과 논리적인 블록 스토리지의 공간 사이를 매핑하는 매핑 테이블에 상기 로그를 기록하는 단계를 더 포함하는, DRAM 스토리지의 작동 방법
|
4 |
4
청구항 1에 있어서,상기 저장하는 단계는, 상기 로그를 상기 제3 저장장치의 저장 단위에 따라 상기 로그를 복수의 로그들로 분할하여 상기 비휘발성 메모리에 저장하는, DRAM 스토리지의 작동 방법
|
5 |
5
청구항 1에 있어서,상기 입출력 요구는 상기 컴퓨팅 장치에서 동작하는 응용 프로그램이 메인 메모리인 상기 DRAM에 데이터를 로딩할 때 상기 응용 프로그램으로부터 발생하는, DRAM 스토리지의 작동 방법
|
6 |
6
청구항 5에 있어서,상기 입출력 요구는 상기 응용 프로그램에 연결되는 가상파일 시스템(virtual file system, VFS)을 통해 커널의 블록 디바이스 드라이버로 전달되는, DRAM 스토리지의 작동 방법
|
7 |
7
청구항 6에 있어서,상기 블록 디바이스 드라이버는 상기 DRAM의 일부 영역을 확보하여 DRAM 스토리지로 사용하고 상기 입출력 요구를 주기억장치인 DRAM 상의 메모리 읽기/쓰기로 변환하여 처리하는, DRAM 스토리지의 작동 방법
|
8 |
8
청구항 6에 있어서,상기 블록 디바이스 드라이버는 입력 요구에 대해서는 상기 DRAM 상의 해당 영역에 변경된 블록을 쓰고나서 변경분을 상기 비휘발성 메모리에 기록한 후 종료하며, 여기서 상기 비휘발성 메모리에 기록된 변경분은 임의의 쓰레드에 의해 순차적으로 상기 제3 저장장치의 해당 블록에 기록되는, DRAM 스토리지의 작동 방법
|
9 |
9
청구항 6에 있어서,상기 백업하는 단계 후에, 상기 컴퓨팅 장치가 재시작될 때 상기 제3 저장장치의 블록을 상기 DRAM으로 적재하면서 상기 VFS로부터 입출력 요구가 전달되면 상기 DRAM에 적재된 블록은 상기 DRAM에서 처리되고, 아직 적재되지 않은 상기 제3 저장장치의 블록들은 상기 제3 저장장치에서 처리하는 단계를 더 포함하는, DRAM 스토리지의 작동 방법
|
10 |
10
청구항 9에 있어서,상기 처리하는 단계 후에, 상기 컴퓨팅 장치의 커널에서는 상기 DRAM에서의 입출력, 상기 제3 저장장치에서의 입출력, 상기 제3 저장장치에서 상기 DRAM으로의 적재 연산이 일관되어 수행되도록 논리적인 블록 스토리지의 공간과 상기 제3 저장장치와 상기 DRAM의 물리적인 공간을 매핑하는 단계를 더 포함하는, DRAM 스토리지의 작동 방법
|
11 |
11
청구항 10에 있어서,상기 논리적인 블록 스토리지의 공간에 대응하는 블록 ID와 상기 물리적인 공간의 물리적인 위치를 매핑하는 매핑 테이블은 상기 제3 저장장치의 모든 데이터를 상기 DRAM으로 적재하면 더 이상 유지되지 않거나 삭제되는, DRAM 스토리지의 작동 방법
|
12 |
12
청구항 1에 있어서,상기 제3 저장장치는 하드디스크를 포함하는, DRAM 스토리지의 작동 방법
|
13 |
13
컴퓨팅 장치의 커널의 가상 파일 시스템(virtual file system, VFS)에 의해 제어되는 블록 디바이스 드라이버;상기 블록 디바이스 드라이버에 의해 구동되는 비휘발성 메모리(non-volatile random access memory, NVRAM) 로그 관리자와 적재 관리자; 및상기 블록 디바이스 드라이버에 의해 구동되는 DRAM(dynamic random access memory), 비휘발성 메모리(NVRAM) 및 상기 DRAM보다 입출력 성능이 낮은 제3 저장장치를 포함하며,여기서, 사용자 레벨의 응용의 IO 요청들은 상기 VFS를 통해 블록 입출력(Block IO) 요구로 변환되어 상기 블록 디바이스 드라이버로 전달되고,상기 Block IO가 쓰기 연산일 경우, 상기 Block IO는 상기 NVRAM 로그 관리자에 의해서 로그 레코드로 변환되어 상기 NVRAM에 저장되며,상기 NVRAM 로그 관리자는 상기 NVRAM에 상기 Block IO의 로그 레코드가 저장되면 상기 DRAM에 상기 Block IO를 반영하고, 상기 VFS에 Block IO의 처리가 완료되었음을 알리고,상기 VFS는 다시 Block IO를 요청한 응용(Applications)에 Block IO의 처리가 완료되었음을 알리고,상기 NVRAM 및 상기 제3 저장장치 사이에 연결되는 동기화 관리자는 상기 NVRAM 로그 관리자에 의해 상기 NVRAM에 기록된 로그 레코드를 읽어서 상기 제3 저장장치에 쓰기 작업을 위한 Block IO로 변환하며, 여기서 변환된 Block IO는 상기 DRAM에 기록된 블록 위치와 동일한 위치의 상기 제3 저장장치에 쓰이는, DRAM 스토리지
|
14 |
14
청구항 13에 있어서,상기 적재 관리자는, 상기 컴퓨팅 장치 또는 시스템의 재시작시, 상기 제3 저장장치의 블록들을 순차적으로 상기 DRAM으로 적재하며, 적재 중에 각 블록이 상기 제3 저장장치에 있는지 상기 DRAM에 적재되어 있는지를 관리하며, 상기 VFS로부터 전달되는 Block IO에 대해서 해당 블록이 상기 제3 저장장치에 있는지 또는 상기 DRAM에 있는지 판단해서 상기 Block IO를 해당 매체로 전달하는, DRAM 스토리지
|
15 |
15
청구항 14에 있어서,상기 적재 관리자는 상기 각 블록의 실제 위치를 관리하기 위해서 매핑 테이블을 이용하는, DRAM 스토리지
|
16 |
16
청구항 14에 있어서,상기 적재 관리자는 상기 각 블록의 실제 위치를 관리하기 위해서 상기 제3 저장장치에서 상기 DRAM으로 가장 마지막에 적재된 블록의 번호만을 기록하는, DRAM 스토리지
|
17 |
17
청구항 13에 있어서,상기 제3 저장장치는 하나 또는 복수의 하드디스크들을 포함하며 하나의 하드디스크의 사이즈는 하나의 DRAM의 사이즈에 대응하는, DRAM 스토리지
|