리눅스 6.17, SSD에 제로(0) 쓰기 효율성 향상

전문: https://www.phoronix.com/news/Linux-6.17-fallocate-Write-Zero

원저자: Michael Larabel | 작성일: 2025-07-29 09:48
사이트 내 게시일: 2025-07-29 10:29
다가오는 리눅스 6.17 버전은 SSD에 제로(0)를 쓰는 방식에서 상당한 개선을 도입하여 효율성을 높이고 쓰기 증폭을 줄입니다. 현재 fallocate() 함수는 FALLOC_FL_ZERO_RANGE 플래그가 지정되더라도 블록을 쓰지 않은 상태로 미리 할당합니다. 이로 인해 나중에 이러한 블록에 데이터를 쓸 때 메타데이터 변경과 저널 I/O가 필요해져 성능 저하가 발생합니다. 'dd'와 같은 도구를 사용하여 제로 데이터를 쓰는 전통적인 방법은 느리고 과도한 디스크 대역폭을 소모합니다.

새로운 구현을 통해 리눅스는 많은 플래시 기반 저장 장치에서 사용할 수 있는 unmap write zeroes 명령을 활용합니다. 예를 들어, UMMAP 비트를 가진 SCSI SSD나 DEAC 비트를 가진 NVMe SSD는 이 명령을 사용하여 실제 데이터를 쓰지 않고 제로화된 범위를 할당 해제 상태로 변환할 수 있어, 프로세스를 크게 가속화하고 디스크 쓰기 대역폭 사용을 최소화합니다.

이번 업데이트에는 SCSI, NVMe 및 디바이스 매퍼 드라이버를 위한 BLK_FEAT_WRITE_ZEROES_UNMAP 기능과 BLK_FLAG_WRITE_ZEROES_UNMAP_DISABLED 플래그가 도입되었습니다. 또한, fallocate()에 FALLOC_FL_WRITE_ZEROES 플래그에 대한 지원이 추가되어, 파일 매핑 메타데이터에 추가적인 변경 없이 지정된 파일 범위를 제로화할 수 있게 되었습니다. 이 개선은 후속 덮어쓰기 작업에 특히 유리하며, 블록 할당 및 메타데이터 변경을 줄여 전반적인 성능을 향상시킵니다.

* 이 글은 phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은 이곳에서 확인하실 수 있습니다.
카테고리: Storage
태그: Linux (1819) Performance (1492) SSD (399) NVMe (126) flash storage (8) Metadata (6) SCSI (3) fallocate (1) write zeroes (1)

댓글

댓글을 쓰기 위해서는 로그인을 해 주세요.