[논문 리뷰] Improving Block-level Efficiency with scsi-mq
이 논문은 러스트(Lustre) 병렬 파일시스템의 생산 환경에서 블록 레벨 I/O 효율성에 대해 리눅스 커널의 멀티큐 블록 레이어(blk-mq)와 그 SCSI 서브시스템 재구현(scsi-mq)의 영향을 평가한다. 3.18 커널에 scsi-mq와 캐싱 RAID 스토리지 어레이를 적용하여, SCSI 쓰기 요청 지연 시간이 13.6% 감소하고 CPU 대기 시간이 7배 증가함을 입증함으로써, 기존 단일큐 블록 레이어 대비 I/O 효율성과 확장성 향상이 뚜렷하게 나타남.
Current generation solid-state storage devices are exposing a new bottlenecks in the SCSI and block layers of the Linux kernel, where IO throughput is limited by lock contention, inefficient interrupt handling, and poor memory locality. To address these limitations, the Linux kernel block layer underwent a major rewrite with the blk-mq project to move from a single request queue to a multi-queue model. The Linux SCSI subsystem rework to make use of this new model, known as scsi-mq, has been merged into the Linux kernel and work is underway for dm-multipath support in the upcoming Linux 4.0 kernel. These pieces were necessary to make use of the multi-queue block layer in a Lustre parallel filesystem with high availability requirements. We undertook adding support of the 3.18 kernel to Lustre with scsi-mq and dm-multipath patches to evaluate the potential of these efficiency improvements. In this paper we evaluate the block-level performance of scsi-mq with backing storage hardware representative of a HPC-targerted Lustre filesystem. Our findings show that SCSI write request latency is reduced by as much as 13.6%. Additionally, when profiling the CPU usage of our prototype Lustre filesystem, we found that CPU idle time increased by a factor of 7 with Linux 3.18 and blk-mq as compared to a standard 2.6.32 Linux kernel. Our findings demonstrate increased efficiency of the multi-queue block layer even with disk-based caching storage arrays used in existing parallel filesystems.
연구 동기 및 목표
- 실제 HPC 스토리지 환경에서 리눅스 멀티큐 블록 레이어(blk-mq)와 그 SCSI 서브시스템 통합(scsi-mq)의 성능 이점 평가
- blk-mq와 scsi-mq의 효율성 향상이 러스트와 같은 생산용 병렬 파일시스템에서 실질적인 성능 향상으로 이어지는지 평가
- 고성능 IOPS 워크로드를 가진 캐싱 스토리지 어레이를 사용할 경우 기존 I/O 스택에서 발생하는 확장성 병목 현상 규명
- 멀티큐 I/O가 메타데이터 및 데이터 집약적인 파일시스템 워크로드에서 CPU 활용도와 지연 시간에 미치는 영향 조사
- 고가용성, 고스루풋 스토리지 시스템에서 지연 시간 민감도가 높은 작업 향상을 위한 scsi-mq의 잠재력 탐색
제안 방법
- scsi-mq와 dm-multipath 지원을 가능하게 하는 커스터마이징 패치를 적용한 리눅스 3.18 커널에 러스트 파일시스템 포팅
- 생산용 러스트 파일시스템의 대표적인 I/O 패턴을 사용하여 블록 레벨 I/O 스루풋 및 지연 시간 측정
- 샘플드 스택 트레이스를 통한 커널 CPU 사용도 프로파일링을 통해 대기 시간 측정 및 I/O 경로 내 성능 병목 원인 규명
- 회전형 미디어를 사용한 캐싱 RAID 스토리지 어레이를 활용해 HPC 환경에서 흔히 발생하는 OST(Object Storage Target) 워크로드 시뮬레이션
- 기존 단일큐 블록 레이어(Linux 2.6.32)와 신규 멀티큐 아키텍처(Linux 3.18에 scsi-mq 포함) 간 결과 비교
- 쓰기 및 읽기 I/O 워크로드를 모두 평가하였으며, 특히 쓰기 지연 시간과 CPU 효율성 향상에 중점을 둠
실험 결과
연구 질문
- RQ1멀티큐 블록 레이어(blk-mq)와 그 SCSI 서브시스템 구현(scsi-mq)이 실제 HPC 스토리지 스택에서 SCSI 쓰기 요청 지연 시간에 얼마나 기여하는가?
- RQ2러스트 파일시스템에서 흔히 발생하는 고I/O 워크로드 환경에서 scsi-mq 사용이 CPU 활용도와 대기 시간에 어떻게 영향을 미치는가?
- RQ3합성 또는 SSD 기반 벤치마크가 아닌, 회전형 미디어 기반 캐싱 스토리지 어레이를 사용할 경우 blk-mq와 scsi-mq의 성능 향상이 실제로 관찰되는가?
- RQ4멀티채널 지원이 이론적으로는 병렬성 향상에 유리함에도 불구하고 SRP 드라이버에서 성능이 악화되는 이유는 무엇인가?
- RQ5기존 블록 레이어에서 I/O 스루풋과 지연 시간의 제약으로 인해 메타데이터 작업(예: 복구 시 로그 재재생)이 얼마나 제한되는가?
주요 결과
- 리눅스 3.18 커널에서 scsi-mq를 사용할 경우, 기존 2.6.32 블록 레이어 대비 SCSI 쓰기 요청 지연 시간이 최대 13.6% 감소함.
- 3.18 커널에서 scsi-mq를 사용한 결과, CPU 대기 시간이 7배 증가하여 I/O 효율성 향상과 CPU 경쟁 감소가 뚜렷하게 나타남.
- 캐싱 스토리지 어레이를 사용한 회전형 미디어 환경에서도 멀티큐 블록 레이어가 측정 가능한 성능 향상을 보였으며, 이는 일반적으로 하드웨어 제약으로 인해 I/O에 한계를 가진 환경임에도 불구하고 성립함.
- 이론적으로는 이점이 있는 다수의 하드웨어 큐를 사용했음에도 불구하고 SRP 드라이버에서 성능 저하가 발생하여, 드라이버 설계와 하드웨어 병렬성 간의 불일치가 원인임을 시사함.
- 연구 결과는 기존 블록 레이어의 확장성 한계가 잠금 경쟁, 인터럽트 처리 및 캐시 일관성 문제로 인해 실제 HPC 스토리지 워크로드 환경에서도 여전히 제한됨을 확인함.
- 결과적으로, 메타데이터 타겟 작업(예: 파일시스템 복구 시 로그 재재생)은 저지연, 고스루풋 I/O 스택인 scsi-mq와 같은 기술로 크게 혜택을 볼 수 있음.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.