Xen - How I/O-Ring Works (between Domain-0 and Domain-U)
Xen에서 FrontEnd 드라이버와 BackEnd 드라이버 사이에 I/O 작업이 어떻게 이루어지는지 살펴 본다.
사전 정보
- Native-Device-Driver(Physical-Driver)는 Domain-0에 있다.
- 아래 그림과 같은 I/O Ring은 Xen-Hypervisor레벨에 하나가 존재 한다. 이 Ring이 모든 I/O에 대한 중계 역할.
Xen's I/O Ring 구성도
I/O 요청 Flow
- Domain-U의 App이 I/O 요청을 발생시키면 FrontEnd-Driver가 이를 받아, Xen-Hypervisor에 있는 I/O Ring에 요청 이벤트로 등록.
- 이벤트 등록이 완료되면, I/O를 발생시킨 vCPU는 블록상태로 전이 및 응답 대기. (I/O 부하 상태)
- Domain-0의 BackEnd-Driver는 Xen-Hypervisor의 I/O Ring에 등록된 I/O요청 이벤트를 읽어, Native-Device-Driver를 통해 실제 물리적 Device로부터 I/O를 수행.
I/O 응답 Flow
- Domain-0는 물리적 Device로부터 I/O를 수행한 결과를, 다시 Xen-Hypervisor의 I/O Ring에 응답 이벤트로 등록.
- 이벤트 등록이 완료되면, Xen-Hypervisor은 블록상태로 대기중이던 vCPU를 최고 우선순위로 다시 활성화 시킨다.
- 블록상태에서 벗어난 vCPU는 FrontEnd-Driver을 통해, I/O 응답 결과를 받아 이후 작업을 처리.
I/O Ring의 권한 중재자 Grant-Table
- Domain-0, Domain-U, Xen-Hypervisor 모두가 공유하는데, 이 때 제어 권한 처리는 Grant-Table에서 관리 된다.
'Cloud' 카테고리의 다른 글
[가상화&자동화] HDD Image :: Pre-Installed Template vs. OS-Only Template (with Chef/Puppet) (about AMI) (1) | 2013.02.24 |
---|---|
KVM/QEMU Guide #1 (Intro & Basic) (0) | 2012.06.22 |
KVM/QEMU - How to Migration(include LIve) (0) | 2012.05.13 |
Virtualization - Full vs Para (Appendix Pass-Through : Full vs Para) (0) | 2012.05.13 |
[PDF] - MIgration Xen to KVM (0) | 2012.05.12 |