기와식 자기 기록(Shingled magnetic recording, 줄여서 SMR)은 하드 디스크 드라이브 (HDD)에 사용되는 저장 밀도와 전체 드라이브 당 저장 용량을 증가시키기 위한 자기 저장 데이터 기록 기술입니다. 전통적인 하드 디스크 드라이브는 비-겹쳐지는 자기 트랙을 서로 병렬로 기록함으로써 (수직 자기 기록, PMR) 데이터를 기록하지만, 기와식 기록은 이전에 기록된 자기 트랙의 일부와 겹치는 새로운 트랙을 기록하여, 이전 트랙을 더 좁게 남기고 더 높은 트랙 밀도를 허용합니다. 따라서 그 트랙들은 지붕 기와와 유사하게 부분적으로 겹칩니다. 이 접근법은 물리적 제한이 기록 자기 헤드를 읽는 헤드와 같은 너비를 가지는 것으로부터 막으며, 기록 헤드를 더 넓게 남기기 때문에 선택됩니다.
겹치는-트랙 아키텍처는 하나의 트랙에 대한 쓰기가 역시 인접한 트랙을 덮어쓰기 때문에 쓰기 과정을 복잡하게 합니다. 만약 인접한 트랙이 유효한 데이터를 포함하면, 그것들은 마찬가지로 다시-쓰여야 합니다. 결과로써, SMR 드라이브는 가득 찰 때 완전히 다시-쓰여야 하는 것이 필요한 겹치는 트랙의 많은 추가-전용 (순차적) 영역으로 나뉘며, 이것은 솔리드-스테이트 드라이브에서 플래시 블록과 닮았습니다. 장치-관리 SMR 장치는 펌웨어에서 그것을 관리함으로써 이러한 복잡성을 숨기며, 임의의 다른 하드 디스크와 마찬가지로 인터페이스를 제공합니다. 다른 SMR 장치는 호스트-관리되고 운영 시스템에 따라 드라이브를 처리하는 방법을 알고, 오직 드라이브의 특정 영역에 순차적으로 기록합니다. SMR 드라이브는 쓰기 성능을 향상시키기 위해 DRAM과 플래시 메모리 캐시를 사용할 수 있지만, 대용량 데이터의 연속 쓰기는 PMR 드라이브보다 더 느립니다.
History
Seagate는 2013년 9월에 장치-관리된 SMR 하드 드라이브를 출하하기 시작했으며, 비-기와식 저장에 비해 약 25% 전체 용량에서 증가를 말합니다. 2014년 9월에서, HGST는 호스트-관리된 기와식 자기 기록을 사용하는 헬륨으로 채워진 10 TB 드라이브를 발표했지만, 2015년 12월에서, 전통적인 비-기와식 수직 기록 방식을 사용하는 10 TB 헬륨-채운 드라이브가 이것을 뒤따랐습니다. 2018년 11월에서, HGST는 14 TB 및 15 TB 드라이브를 출시했습니다.
Western Digital, Toshiba 및 Seagate는 SMR 드라이브가 일부 상황에서 PMR 드라이브보다 훨씬 느리기 때문에 SMR 드라이브에 라벨을 붙이지 않고 판매하여 큰 논란을 불러일으켰습니다. 이러한 관행은 (서버, NAS 및 콜드 스토리지에 대해) 데이터 저장-전용과 소비자-중심 HDD 모두에서 사용되었습니다.
Data management
데이터가 SMR 드라이브에서 관리될 수 있는 세 가지 다른 방법이 있습니다:
- 장치-관리된(Device Managed)
- 호스트-관리된(Host Managed)
- 호스트 인식(Host Aware)
Device managed
장치 관리 드라이브는 비-기와식 드라이브와 동일하게 호스트에 나타납니다. 호스트에 대해 임의의 특별한 프로토콜을 따르는 것이 필요하지 않습니다. 저장소의 기와식 본성과 관련된 것처럼, 모든 데이터의 처리는 장치에 의해 관리됩니다. 순차적 쓰기가 더 효율적입니다. 게다가, 호스트는 저장소가 기와식으로 된 것을 인식하지 못합니다.
이러한 유형의 SMR 드라이브는 종종 제조업체에 의해 레이블을 지정되지 않습니다. 그것의 펌웨어-제어되는 기와식 변환 계층 작업은 LBA 주소가 온-디스크 구조와 많은 상관 관계가 없기 때문에 솔리드-스테이트 드라이브와 비교될 수 있습니다. 붙이기-전용 영역은 임의 쓰기에 대해 매우 느리므로, 쓰기가 먼저 PMR 캐시로 전송되고, 디스크는 유휴 상태일 때 이들 데이터를 SMR 부분으로 이동합니다. RAID 리실버링은 캐시에 과부하가 걸리는 경향이 있어, SMR 드라이브를 몇 분 동안 멈춤으로 보냅니다. (WD40EFAX와 같은) 결함 있는 펌웨어는 기록되지 않은 주소를 읽으라는 요청을 받을 때 역시 오류에 빠지게 할 것입니다. 두 동작 모두는 RAID 제어기에 의해 드라이브 고장으로 해석되는 경향이 있습니다.
SMR의 구역화된 본성은 역시 가비지를 수집할 때 디스크가 쓰기 증폭을 겪는다는 것을 의미하지만, 하드 드라이브에 대해 쓰기와의 주요 문제는 수명 대신 속도입니다. 일부 SMR 하드 드라이브는 이러한 이유로 TRIM을 지원합니다.
Host managed
호스트-관리된 장치는 호스트에 의해 특수 프로토콜을 엄격하게 준수해야 합니다. 호스트가 저장소의 기와 본성을 관리하기 때문에, 기존 데이터를 파괴하지 않도록 순차적으로 쓰는 것을 요구합니다. 드라이브는 이 프로토콜을 위반하는 명령 실행을 거부할 것입니다.
Host aware
호스트 인식은 드라이브 관리와 호스트 관리의 조합입니다. 드라이브는 저장소의 기와 본성을 관리할 수 있고, 그것이 순차적인지 여부에 관계없이, 호스트가 제공하는 임의의 명령을 실행할 것입니다. 어쨌든, 호스트는 드라이브가 기와식 되어 있음을 인식하고, 드라이브에 채우기 수준에 대해 질의할 수 있습니다. 이것은 호스트를 기와 본성에 대해 쓰기를 최적화하는 것을 허용하지만, 역시 드라이브를 유연하고 역-호환되는 것을 허용합니다.
Protocol
SMR 장치는 분할된(zoned) 장치로 여겨지는데, 왜냐하면 그 저장소는 보통 256 MiB 크기의 영역으로 분할되기 때문입니다. SCSI에 대해 ZBC (Zoned Block Commands, ANSI INCITS 536) 및 SATA에 대해 ZAC (Zoned ATA Commands, ANSI INCITS 537), 두 가지 특수한 명령의 집합은 SMR 장치에 사용할 수 있습니다. 그것들은 각 영역이 PMR인지 SMR인지 호스트에게 알려주고 그것들을 이들 영역에 직접 처리하는 것을 허용합니다. 특별히 언급하지 않는 한, 명령은 호스트 인식/관리된 장치에 오직 사용할 수 있습니다. 구체적인 명령은 다음입니다:
- REPORT ZONES, 디스크 레이아웃 및 영역 상태에 대한 정보에 대해 (쓰기 포인터, 순차 영역에서 마지막-기록된 위치와 같은)
- SMR 또는 유사한 영역은 호스트-관리 드라이브에서 순차적으로 요구되지만, 호스트-인식 드라이브에서 순차적으로 선호됩니다.
- RESET WRITE POINTER, 쓰기 포인터를 되감기 위해 따라서 순차 영역이 비워지게 됩니다
- OPEN ZONE, 영역에 대한 접근을 명시적으로 선언하고 관련된 펌웨어 리소스를 잠그기 위해
- CLOSE ZONE, 열린 영역을 잠금 해제하기 위해
- FINISH ZONE, 영역을 가득 채우고 그것을 읽을 수 있게 만듭니다
각 영역은 그것과 관련된 LBA 주소의 범위를 가지고, 모든 LBA-기반 명령은 순차적 요구 사항이 호스트-관리된 드라이브를 따르게 되는 한, 사용될 수 있습니다.
SMR 장치는 다음-당 자신을 식별합니다:
- 호스트-인식 또는 장치-관리된 드라이브는 표준 블록 장치 (SCSI 00h)로 표시되므로, 그것들은 표준 하드 드라이브로 인식될 수 있습니다.
- ZONED 필드는 드라이브가 장치-관리된 것인지, 호스트-인식인지, 또는 둘 다 인식하지 않는지를 보여줍니다. 이것은 SCSI 블록 장치 특성 VPD 페이지와 ATA 가능성 로그 페이지에서 찾아질 수 있습니다.
- 호스트-관리된 장치는 새로운 장치 유형 (SCSI 14h)을 사용합니다. 오직 ZAC/ZBC-인식 컴퓨터가 그것들을 감지하고 사용할 수 있습니다.
형제 표준의 최신 버전, ZAC-2/ZBC-2가 개발 중입니다. 새로운 버전은 비-연속 LBA를 허용하는 새로운 유형의 "도메인과 영역 분할된 블록 장치"를 도입합니다. ZONED 필드는 Western Digital로부터 제안에 따라 폐기되었습니다.
분할된 인터페이스는 역시 플래시 저장소에 대해 쓸모 있습니다. 하나의 버전은 NVM Express 조직에 의해 고려 중에 있습니다.
Software and application
임의-읽기 본성과 결합된, 고밀도 SMR 드라이브는 순차-접근 테이프 저장과 임의-접근 전통적인 하드 드라이브 저장 사이의 틈새를 채웁니다. 그것들은 수정될 가능성은 낮지만, 임의의 지점에서나 효율적으로 읽을 필요가 있는 데이터를 저장하는 데 적합합니다. 사용 사례의 한 가지 예제는 붙임-전용 방법으로 온-디스크 확장을 실행하는 Dropbox의 Magic Storage 시스템입니다. 장치-관리된 SMR 디스크는 역시 이 속성으로 인해 "Archive HDDs"로 판매되어 왔습니다.
리눅스의 여러 파일 시스템은 SMR 드라이브에 맞게 조정되거나 조정될 수 있습니다:
- F2FS는, 원래 플래시 미디어 용으로 설계되었으며, Zoned Block Device (ZBD) 모드를 가집니다. 그것은 메타-데이터에 대해 전통적인 영역을 갖는 호스트-관리 드라이브에서 사용될 수 있습니다.
- Btrfs ZBD 지원이 진행 중이지만, 그것은 CoW 본성으로 인해 이미 대부분 순차적으로 쓰입니다.
- ext4는 더 순차적으로 쓰도록 실험적으로 조정될 수 있습니다. Ted Ts'o와 Abutalib Aghayev는 2017년 ext4-lazy에 대한 강연을 했습니다. Seagate는 역시 ZBC/ZAC 명령을 사용하는 2015년부터 보다 급진적인 "SMRFFS" 확장을 가집니다.
- 다른 파일시스템에 대해, 리눅스 장치 매퍼는 호스트-관리된 드라이브를 임의-쓰기 가능한 드라이브로 매핑하는 dm-zoned 대상을 가집니다. 리눅스 커널은 4.10 이래로 dm없이 이 작업을 수행할 수 있습니다. 2019년부터 zonefs는 더 쉬운 접근에 대해 영역을 파일로 노출합니다.
리눅스 외에도, FreeBSD는 역시 호스트-관리된 SMR 드라이브에 대해 프로토콜-수준 지원을 제공합니다. 2020년 4월 당시에, 윈도우와 macOS는 그러한 드라이브에 대해 작동하기 위해 요구된 ZBC/ZAC 명령을 지원하지 않습니다.
Dynamic hybrid SMR
전통적인 SMR 모델에 대해 각 영역은 제조 시에 유형이 할당되지만, 동적 하이브리드 SMR 드라이브는 영역 유형을 소비자에 의해 기와에서 전통적으로 및 거꾸로 다시-구성하는 것을 허용합니다. SMR/PMR 설정을 조정하는 것은 "핫" 및 "콜드" 데이터의 현재 워크로드에 드라이브를 맞추는 데 도움이 됩니다.
External links
- LSFMM: A storage technology update, LWN.net, April 23, 2013, by Jonathan Corbet
- SMR Impact on Linux Storage Subsystem, HGST, 2014, by Jorge Campello and Adam Manzanares
- Layout optimisation for using XFS on host-managed SMR drives, March 2015
- SMR in Linux Systems, Seagate, March 18, 2015, by Adrian Palmer
- Host-Aware SMR, Seagate, November 10, 2014, by Timothy Feldman
- Addressing Shingled Magnetic Recording drives with Linear Tape File System, SNIA SDC 2013, by Albert Chen and Jim Malina
- Host Managed SMR, SNIA SDC 2015, by Albert Chen, Jim Malina and TK Kato
Specifications
- ZAC/ZBC version 1 (published 2016)
- T10, Information technology - Zoned Block Commands (ZBC), 2014, Draft revision 1
- T13, Information technology - Zoned Device ATA Command Set (ZAC), Draft revision 5, 2015
- ZAC/ZBC version 2 (under development as of 2020)
- T10, Information technology - Zoned Block Commands - 2 (ZBC-2), 2020, Draft revision 04a
- T13, ZAC-2, PDF unavailable