30.6.3.4. 최대 Discard Sector
VDO 장치에 대해 허용되는 최대 DISCARD(TRIM) 작업은 시스템 사용량에 따라
/sys/kvdo/max_discard_sectors
를 통해 조정할 수 있습니다. 기본값은 8개 섹터입니다(즉, 1개의 4KB 블록). VDO는 여전히 루프에서 이를 처리할 수 있지만 한 번에 하나의 메타데이터 업데이트가 저널에 기록되고 다음 블록을 시작하기 전에 디스크에 플러시합니다.
VDO 볼륨을 로컬 파일 시스템으로 사용하는 경우, Linux 커널의 일반 블록 장치 코드가 대규모 삭제 요청을 여러 개의 작은 파일로 분할하여 병렬로 제출하므로 작은 삭제 크기가 가장 적합한 것으로 확인되었습니다. 장치에 I/O 활동이 낮은 경우 VDO는 동시에 여러 개의 작은 요청을 처리할 수 있으며 하나의 큰 요청보다 훨씬 더 신속하게 처리할 수 있습니다.
VDO 장치를 SCSI 대상으로 사용하는 경우 이니시에이터 및 대상 소프트웨어에서 고려해야 할 추가 요소를 소개합니다. 대상 SCSI 소프트웨어가 SCST인 경우 최대 삭제 크기를 읽고 이니시에이터에 릴레이합니다. (Red Hat은 LIO SCSI 대상 코드와 함께 VDO 구성을 조정하려고 시도하지 않았습니다.)
Linux SCSI 이니시에이터 코드는 한 번에 하나의 삭제 작업만 허용하므로 최대 크기를 초과하는 요청을 여러 개의 작은 삭제로 나누어 한 번에 하나씩, 대상 시스템(및 VDO)으로 전송합니다. 따라서 VDO는 다수의 작은 삭제 작업을 직렬로 처리하는 것 외에도 두 시스템 간의 왕복 통신 시간은 추가 대기 시간을 추가합니다.
최대 삭제 크기를 설정하면 더 큰 요청이 VDO로 전달되고 한 번에 하나의 4KB 블록을 처리할 수 있지만 더 큰 요청은 이 통신 오버헤드를 줄일 수 있습니다. 블록당 통신 지연이 발생하지 않지만 더 큰 블록에 대한 추가 처리 시간은 SCSI 이니시에이터 소프트웨어가 시간 초과될 수 있습니다.
SCSI 대상 사용의 경우, Red Hat은 이니시에이터의 시간 초과 설정 내에서 일반적인 삭제 시간을 유지하면서 조정 가능한 최대 삭제 크기를 설정할 것을 권장합니다. 예를 들어 몇 초 마다 추가 왕복 비용이 발생해도 성능에 크게 영향을 미치지 않아야 하며 시간 초과가 30초 또는 60초인 SCSI 이니시에이터는 시간 초과를 초과하지 않아야 합니다.