XRAID Publicly Released As New RAID Implementation For XFS
LINUX STORAGE
Hellwig은 XFS를 위한 이 새로운 XRAID 기능에 대해 다음과 같이 설명했습니다:
"XRAID의 두 가지 주요 목표는 SMR 하드 드라이브와 같은 구역화된(zoned) 장치에서 패리티 RAID(parity RAID)를 지원하고, 내재적인 데이터 무결성 문제 없이 빠른 RAID 구현을 제공하는 것입니다. XRAID는 구역화된 XFS처럼 기존 하드 드라이브 및 SSD에서도 작동합니다. SSD 성능 최적화가 초점은 아니었지만, 그것이 없더라도 쓰기 속도는 mdraid보다 최대 20배 빠릅니다.
XRAID는 파일 데이터를 메타데이터와 분리하여 저장하는 RT 서브볼륨을 사용하는 구역 할당자(zoned allocator)를 기반으로 구축됩니다. 이를 통해 파일 데이터만 순차적 쓰기가 필요한 존(zone)에 배치되고, 메타데이터는 기존 장치나 존에 저장됩니다.
XRAID는 이러한 구조를 활용하여 패리티 RAID가 효율적으로 작동하는 파일 데이터에 대해서만 패리티 RAID를 제공합니다. 메타데이터의 중복성은 인플레이스 업데이트되는 작은 객체에 대해 패리티 RAID보다 더 적합한 MD RAID 미러링과 같은 기존 스택형 Linux 드라이버로 위임됩니다.
이 RAID 구현은 스택형 블록 드라이버와 유사하게 구역화된 XFS I/O 경로 아래에 위치하며, 기본 장치의 물리적 존들을 논리적 존으로 집계하여 Zoned XFS가 실시간 그룹(realtime groups)으로 사용합니다.
Declustered RAID는 D + P 데이터 및 패리티 블록을 각 스트라이프의 저장 풀 전체에 분산하는 RAID 변형을 설명합니다. 이 저장 풀은 D + P 디스크보다 많은 디스크를 포함하여 모든 디스크가 읽기, 쓰기 및 재구성 작업에 참여하고 여유 용량이 모든 디스크에 분산되도록 합니다.
Declustered RAID는 기존 RAID보다 훨씬 빠른 재구축 시간(rebuild times)을 제공하며, 단일 저장 풀에서 많은 수의 디스크를 사용하는 것을 용이하게 합니다. XRAID는 여유 용량을 가진 모든 장치로 재구축할 수 있으며, 재구축 순서는 동적입니다. 이를 통해 여러 개의 손실된 중복성을 가진 존부터 먼저 재구축하고, 열화 읽기(degraded reads)의 오버헤드를 줄이기 위해 패리티 존보다 데이터 존을 먼저 재구축할 수 있습니다.
XRAID는 1년 반 동안 개발되어 왔습니다. 초기 공개 패치(public patches)는 아직 업스트림 제출(upstream submission) 준비가 되지 않았지만, 이제 더 많은 테스트와 피드백을 받을 수 있는 단계에 이르렀습니다.
커널 패치(kernel patches)는 커널 메일링 리스트(kernel mailing list)에서 검토를 위해 공개되었습니다. 또한, XRAID를 사용한 mkfs 지원을 위한 xfsprogs 사용자 공간 프로그램(user-space programs)의 브랜치와 새로운 "xraid" 유틸리티도 있습니다.
올해 초에 Hellwig이 XRAID 개발에 대해 발표했으며, 관심 있는 사람들은 그의 이전 슬라이드를 여기서 찾을 수 있습니다.
XRAID의 성능은 해당 발표에서 보여준 초기 벤치마크(benchmarks)에서 좋은 모습을 보이고 있습니다.