30.4.5. VDO 볼륨 복구: 불명확한 종료 후
볼륨을 완전히 종료하지 않고 다시 시작하는 경우 VDO는 볼륨을 시작할 때 자동으로 작동하는 메타데이터의 일부를 다시 빌드해야 합니다. (또한 30.4.5.2절. “강제 작성” 에서 이 프로세스를 완전히 종료한 볼륨에서 호출합니다.)
데이터 복구는 장치의 쓰기 정책에 따라 달라집니다.
- VDO가 동기 스토리지에서 실행 중이고 쓰기 정책이
동기화
로 설정된 경우 볼륨에 기록된 모든 데이터가 완전히 복구됩니다. - 쓰기 정책이
async
인 경우 VDO를FLUSH
명령을 전송하여 영구하지 않은 경우 일부 쓰기가 복구되지 않거나FUA
플래그로 태그된 쓰기 I/O가 (유효한 단위 액세스)되지 않을 수 있습니다. 이 작업은fsync
,fdatasync
,sync
또는umount
와 같은 데이터 무결성 작업을 호출하여 사용자 모드에서 수행됩니다.
30.4.5.1. 온라인 복구
대부분의 경우, 불명확한 VDO 볼륨을 재구축하는 작업의 대부분은 VDO 볼륨이 온라인 상태가 된 후 그리고 서비스가 읽기 및 쓰기 요청을 처리하는 동안 수행 할 수 있습니다. 처음에는 쓰기 요청에 사용 가능한 공간이 제한될 수 있습니다. 볼륨의 메타데이터가 더 많기 때문에 더 많은 여유 공간을 사용할 수 있습니다. 또한 VDO가 복구되는 동안 기록된 데이터는 데이터가 아직 복구되지 않은 볼륨의 일부에 있는 경우 충돌 전에 작성된 데이터에 대해 중복되지 않을 수 있습니다. 볼륨이 복구되는 동안 데이터가 압축될 수 있습니다. 이전에 압축된 블록은 여전히 읽거나 덮어쓸 수 있습니다.
온라인 복구 중에 여러 통계를 사용할 수 없습니다. 예를 들어
사용 중인 블록
과 무료 블록
. 다시 빌드가 완료되면 이러한 통계를 사용할 수 있습니다.