30.4.2. VDO 쓰기 모드 선택
VDO는 세 가지 쓰기 모드,
동기화
,async
, auto
를 지원합니다.
- VDO가
동기화
모드인 경우 위의 계층에서는 쓰기 명령이 영구 스토리지에 데이터를 쓰는 것으로 가정합니다. 그 결과, 파일 시스템 또는 애플리케이션이 FLUSH 또는 Force Unit Access (FUA) 요청을 발행할 필요가 없어 데이터가 중요한 시점에서 영구적이 될 수 있습니다.VDO는 쓰기 명령이 완료될 때 기본 스토리지로 데이터가 영구 스토리지에 기록되도록만동기화
모드로 설정해야 합니다. 즉, 스토리지에 휘발성 쓰기 캐시가 없거나 캐시를 통한 쓰기가 있어야 합니다. - VDO가
async
모드에 있을 때 쓰기 명령이 승인되면 데이터가 영구 스토리지에 기록될 수 없습니다. 파일 시스템 또는 애플리케이션에는 각 트랜잭션의 중요 시점에 데이터 지속성을 보장하기 위해 FLUSH 또는 FUA 요청을 발행해야 합니다.쓰기 명령이 완료될 때 기본 저장소가 영구 스토리지에 기록된다는 것을 보장하지 않는 경우 VDO는async
모드로 설정해야 합니다. 즉, 스토리지에 휘발성 쓰기 백 캐시가 있는 경우입니다.장치가 휘발성 캐시를 사용하는지 확인하는 방법에 대한 자세한 내용은 “볼트일 캐시 확인” 을 참조하십시오.주의VDO가async
모드에서 실행되는 경우 Atomicity, Consistency, Isolation, Durability (ACID)와 호환되지 않습니다. VDO 볼륨 상단에 ACID 준수를 가정하는 애플리케이션 또는 파일 시스템이 있는 경우async
모드에서 예기치 않은 데이터가 손실될 수 있습니다. 자동
모드는 각 장치의 특성에 따라동기화
또는async
를 자동으로 선택합니다. 이는 기본 옵션입니다.
쓰기 정책이 작동하는 방법에 대한 보다 자세한 내용은 “VDO 쓰기 정책 개요” 을 참조하십시오.
쓰기 정책을 설정하려면
--writePolicy
옵션을 사용합니다. 이 설정은 30.3.3절. “VDO 볼륨 생성” 에서 VDO 볼륨을 생성할 때 또는 changeWritePolicy 하위 명령으로 기존 VDO 볼륨을 수정할 때 지정할 수 있습니다.
#
vdo changeWritePolicy --writePolicy=sync|async|auto --name=vdo_name
중요
잘못된 쓰기 정책을 사용하면 정전 시 데이터가 손실될 수 있습니다.
30.4.2.1. 볼트일 캐시 확인
장치에 쓰기 캐시가 있는지 확인하려면
/sys/block/block_device/scsi_disk/identifier/cache_type
sysfs 파일을 참조하십시오. 예를 들어 다음과 같습니다.
- 장치
sda
가 쓰기 캐시가 있음을 나타냅니다.$
cat '/sys/block/sda/device/scsi_disk/7:0:0:0/cache_type' write back - 장치
sdb
는 쓰기 캐시가 없음을 나타냅니다.$
cat '/sys/block/sdb/device/scsi_disk/1:2:0:0/cache_type' None
또한 커널 부팅 로그에서는 위에서 언급한 장치에 쓰기 캐시가 있는지 여부를 확인할 수 있습니다.
sd 7:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sd 1:2:0:0: [sdb] Write cache: disabled, read cache: disabled, supports DPO and FUA
시스템 로그 읽기에 대한 자세한 내용은 시스템 관리자 가이드의 로그 파일 보기 및 관리 장을 참조하십시오.
이 예에서는 VDO에 대한 다음 쓰기 정책을 사용합니다.
sda
장치의비동기
모드sdb
장치의동기화
모드
참고
cache_type
값이 없는
경우 동기화
쓰기 정책을 사용하도록 VDO 를
구성해야 합니다.