간단히 말해 데이터 무결성을 보장하기 위해서입니다.
520Byte 섹터는 512Byte 섹터에 더해 다음과 같은 8바이트 짜리 메타데이터를 가지게 됩니다.
표준 규격으로는 T10-DIF (Data Integrity Field)가 있고, Dell EMC는 DIF와는 다르지만 동등한 보호 성능을 제공하는 메타데이터를 붙입니다.
DIF의 경우 4Byte의 Reference Tag / 2Byte의 Meta Tag / 2Byte의 Guard Field로 구성됩니다.
레퍼런스 태그는 해당 블록의 로우 레벨 컨텍스트 (이를테면 LBA 주소값)을 저장할 수 있고, 메타데이터 태그에는 해당 I/O 오퍼레이션의 정보를 기록할 수 있습니다. 그리고 가드 필드는 16비트 CRC 값을 기록합니다.
여기서 흥미로운 점은, T10-DIF는 Reference Tag와 Meta Tag에 어떤 값이 들어가야 하는지 명시적으로 정의하지 않는다는 것입니다.
다시 말해 T10-DIF는 높은 유연성과 낮은 상호 운용성을 보장하는 규격입니다.
Dell EMC의 경우, T10-DIF와 다른 자체적인 Integrity Tag를 사용합니다.
2바이트의 LBA 스탬프, 2바이트의 체크섬, 2바이트의 쓰기 스탬프, 2바이트의 타임스탬프
그런데 이런 메타데이터가 왜 필요할까요?
메타데이터 태그를 활용하면 다음과 같은 추가 보호 기능을 제공할 수 있습니다
1. Bit Flip 감지 및 복구
모든 비휘발성 저장장치는 일부 비트가 '뒤집힐' 가능성을 가지고 있습니다. 하드디스크도, SSD도 예외가 아닙니다.
예시를 하나 들어보겠습니다.
RAID로 보호되고 있는 디스크에서 섹터 하나의 비트 하나가 뒤집힙니다. 그리고 컨트롤러는 읽기 과정에서 무결성 에러를 감지합니다.
하지만 어느 섹터를 기준으로 복구를 수행해야 할까요?
체크섬이 없는 경우, RAID-1을 생각해 봅시다. 서로 다른 값을 가진 두 섹터가 있지만 둘 중 어느 것이 옳은 데이터인지는 알 수 없습니다.
RAID-5의 경우 패리티를 통해 하나의 오류를 복구할 수 있겠지만, N개의 블록들 중 어느 것이 잘못되었는지 알지 못하면 소용이 없습니다.
하지만, 모든 섹터에 CRC 값이 저장된다면, CRC 검사에 실패한 섹터가 바로 잘못된 섹터입니다. 이제 원본 데이터를 복원할 수 있습니다.
2. 잘못된 쓰기로부터의 보호
RAID로 보호되는 스토리지에서 데이터는 여러 이유로 디스크의 잘못된 위치에 쓰이거나, 덜 쓰이거나, 잘못된 값이 쓰일 수 있습니다. 추가 메타데이터는 이러한 위험으로부터 데이터를 정정 또는 복원할 수 있는 기회를 제공합니다.
미션 크리티컬 데이터를 저장하는 스토리지는 미디어 수준의 에러에도 대응할 필요가 있고, 추가적인 무결성 보장을 위해 여러 메커니즘을 가지고 있습니다. 520Byte 섹터는 그러한 메커니즘 중 하나입니다.
4KB로 섹터 크기가 커진 지금도 이 점은 달라지지 않아서, 4112, 4160, 4224 바이트 등의 크기를 가진 드라이브가 출하되고 있습니다.
이 모든 것들이 다 데이터의 무결성을 보장하기 위한 조치인 것이죠.
ÁÁÀº³»¿ë °¨»çÇÕ´Ï´Ù.
¸ÚÁø±Û °¨»çÇÕ´Ï´Ù.
¿£ÅÍÇÁ¶óÀÌÁî µð½ºÅ©´Â ¶Ç ´Ù¸¥°¡º¸±º¿ä;;