1 |
1
가상화(virtualization) 환경의 하이퍼바이저(hypervisor)에서의 데이터 입출력 방법에서, 게스트(guest) 장치에서 발생한 데이터가, 임시 저장 메모리로서 버퍼링 및 캐슁(caching) 기능을 제공하기 위한 호스트(host) 캐쉬(cache) 메모리에 저장되어야 할 데이터인지 여부를 확인하는 단계;상기 데이터가 호스트 캐쉬 메모리에 저장되어야 할 데이터이면, 해당 데이터를 우선 상기 호스트 캐쉬 메모리에 임시로 적재한 후, 주기적인 플러시(flush) 또는 명시적인 동기화 명령에 의해 수정된 데이터를 저장 장치(Storage device)에 저장하는 모드인 라이트백(writeback) 모드로 데이터의 입출력 동작을 수행하는 단계; 및상기 데이터가 호스트 캐쉬 메모리에 저장되지 않아야 할 데이터이면, 상기 호스트 캐쉬 메모리를 거치지 않고, 해당 데이터를 직접 상기 저장 장치에 저장하는 모드인 논(none) 모드로 데이터의 입출력 동작을 수행하는 단계를 포함하고, 상기 게스트 장치에서 발생한 데이터가 호스트 캐쉬 메모리에 저장되어야 할 데이터인지 여부를 확인하는 단계에서, 데이터를 업데이트하고 바로 동기화 요청이 있는 경우이거나, 또는 재참조가 발생하지 않는 데이터의 경우이면, 호스트 캐쉬 메모리에 저장되지 않아야 할 데이터로 확인하고, 상기 게스트 장치에서 발생한 데이터가 저널(journal) 데이터 또는 쓰기 연산을 위해 읽어들여야 하는 읽기 데이터이면, 호스트 캐쉬 메모리에 저장되지 않아야 할 데이터로 확인하며, 상기 하이퍼바이저는 상기 게스트 장치로부터 입출력(I/O) 스택(stack)의 추가 정보를 확인하는 명시적인 방식으로 저널 데이터를 감지하거나 또는 상기 게스트 장치로부터 유입되는 입출력(I/O) 패턴(pattern)을 이용하는 암묵적인 방식으로 저널 데이터를 감지하고, 외부 저널링의 경우, 상기 하이퍼바이저는 특정 데이터에 대해 지속적으로 읽기 요청이 발생하지 않고, 순차적인 쓰기 요청만 지속적으로 발생하면, 해당 장치에 존재하는 데이터를 저널 데이터로 판단하고, 내부 저널링의 경우, 상기 게스트 장치가 디스크의 LBA 공간을 그룹 단위로 나누어 사용하는 ext4 파일 시스템이라고 할 때, 상기 하이퍼바이저는 각 그룹에 대해 최근에 접근했던 주소를 기억하고, 순차적으로 반복 접근하는 부분을 저널 데이터가 저장되는 특정 그룹으로 판단하고, 상기 하이퍼바이저는 상기 게스트 장치로부터 입출력(I/O) 스택(stack)의 추가 정보를 확인하여 상기 읽기 데이터를 감지하고, 이때 상기 하이퍼바이저는 상기 입출력 스택에서 추가적인 정보를 전달하는 플래그(flag)를 통해 상기 읽기 데이터를 감지하는 것을 특징으로 하는 하이퍼바이저에서의 데이터 입출력 방법
|