-
VirtIO-trace: 가상화 환경에서 NVMe SSD 입출력 특성 분석을 위한 통합 도구논문 정리/Vertical optimization 2018. 4. 17. 14:26
김세욱, 최종무 (단국대학교)
정보과학회논문지 제 45권 제 4호 (2018.4)
VirtIO-trace: IO 분석 통합 도구
현재 상황
현재 리눅스 커널에서 사용가능한 I/O 추적 도구는
blktrace
하나뿐이나 마찬가지VM
의 도입으로 인해서 최소 3개의 레이어에서 I/O를 처리 (아래 그림 참조)
현재 시스템의 문제점
VM 상황에서의 정확한 I/O 추적을 위해서는 VM의 커널 I/O, QEMU의 I/O 처리부, 호스트의 커널 I/O에 대한 로그 추적 필요
blktrace
만 사용할 경우VM 커널에서
blktrace
를 수행호스트 커널에서
blktrace
를 수행blktrace를 두 레이어에서 사용하므로 로그의 양 2배
수동으로 두 시스템 간의 로그에 대한 동기화/분석
VM에서 사용한
IO address
와 호스트의IO address
가 맞지 않음QEMU의 I/O 처리부에 대한 정보는 QEMU 자체 로깅 시스템으로만 취합
QEMU I/O 처리부에 대한 로그 시스템이 존재 하지 않음
QEMU의 I/O 처리부에서 VM이 요청한 IO에 대해 스케쥴링을 다시하고
IO merge
작업 수행실제 호스트 커널 까지 전달되는 I/O 가 달라짐 -> 동기화 및 분석을 더욱 어렵게 함
NVMe를 저장장치로 사용하는 경우 PRP와 같은 NVMe 특화 정보에 대한 수집이 불가
VirtIO-trace
구성
I/O 로그를 추적하는 디바이스 드라이버 모듈
디바이스 드라이버 모듈에 애플리케이션 I/O 정보를 입력하도록 도와주는 인터페이스 라이브러리
VirtIO-trace의 옵션을 설정하고, 수집한 정보를 가공하는 유저 레벨 애플리케이션
VirtIO controller, VirtIO Analyzer
기존과의 차별점
인터페이스 라이브러리를 통해 QEMU에서 호스트 커널의 VirtIO-trace 디바이스 드라이버로 I/O 처리부의 동작에 따른 로그 입력 가능
scatter/gather 명령시에 사용되는 PRP 정보 획득 가능
원하는 경우 데이터 무결성 검사를 위한 유저 데이터 획득 가능
로그 분석 도움을 위한
message
입력 가능편의를 위한 분석 도구 제공
기본적으로 IO size, IO latency, IO 처리 상황, Queue access rate 분석 제공
장점 및 아쉬운점
장점
QEMU의 IO 처리 루틴과 Host 커널의 IO 간에 동기화를 기존보다 쉽게 할 수 있음
PRP가 사용될 경우 해당 PRP 정보 획득 가능
아쉬운점
QEMU의 IO 처리부와 동기화만 진행하므로, VM 커널과 QEMU와의 동기화가 제대로 되지 않음
당연하지만 호스트 커널 및 QEMU 커널 모두 수정이 불가피함
기존 시스템에서 획득 가능한 정보들을 단순 취합하는 수준에 불가함
'논문 정리 > Vertical optimization' 카테고리의 다른 글
[SPDK] What is SPDK? - SPDK 란 무엇인가? (0) 2019.09.19 [SPDK] Message Passing and Concurrency Theory (0) 2019.09.18 [SPDK] Direct Memory Access (DMA) From User Space (0) 2019.09.18 [SPDK] Concept - User Space Drivers (0) 2019.09.17 Don't stack your Log on my Log (0) 2016.03.19