뒤로
디스크 컨트롤러와 캐시 설정
Proxmox 디스크 컨트롤러와 캐시
이 페이지는 가상 머신을 구성할 때 디스크 관련 설정에 대한 정보와 주요 고려 사항 및 주의점을 제공합니다.
SCSI 컨트롤러에 대해
새 VM을 생성하고 SCSI 컨트롤러를 선택할 때 기본 옵션은 “VirtIO Single”입니다. 이는 (다음 섹션에서 설명하는 대로) 여러 가상 디스크가 생성되더라도 모두 이 단일 컨트롤러에 연결된 것처럼 보이게 합니다. 이 설정은 가상 머신 내에서 메모리와 장치 사용을 최적화합니다.
“VirtIO SCSI”를 선택하면 각 가상 디스크가 별도의 SCSI 버스에 할당되며, 이는 추가 드라이버 공간과 메모리를 필요로 합니다. 그러나 특정 워크로드에서 I/O 작업을 분산시켜 성능을 향상시킬 수 있습니다.
다른 물리적 SCSI 카드 에뮬레이션은 일반적으로 권장되지 않습니다.
디스크 컨트롤러에 대해
IDE(ATA라고도 함)는 1988년에 확립되어 거의 모든 운영 체제와의 호환성을 보장합니다. 2003년 이전에 출시된 OS 버전의 경우 IDE를 사용하는 것이 최선의 선택일 수 있습니다. 물리적 IDE의 최대 속도는 133MB/sec였지만, 가상화된 IDE는 OS가 제한을 강제하지 않는 한 이러한 제한이 없습니다. 그러나 IDE는 핫스왑을 지원하지 않아 VM이 실행 중일 때 장치를 제거할 수 없습니다.
SATA는 2003년 이후 출시된 OS 버전에 적합하며 최신 운영 체제에서 가장 호환성이 좋은 옵션입니다. 물리적으로는 IDE의 진화형으로 직렬 전송을 통해 최대 6Gbps(약 600MB/sec)의 속도를 제공합니다. 그러나 가상화 환경에서는 게스트 OS가 제한을 강제하지 않는 한 내재된 속도 제한이 없습니다.
VirtIO SCSI와 VirtIO SCSI Single은 가장 빠른 디스크 액세스를 제공합니다. 그러나 게스트 OS에 반가상화 드라이버가 필요합니다. IDE/SATA 디스크가 전혀 없는 경우 VirtIO SCSI 드라이버가 설치되지 않으면 OS 설치 과정이 실패합니다. Linux 배포판은 2012년경부터 이 드라이버를 포함하고 있으며, FreeBSD는 2014년부터 포함하고, Windows OS의 경우 설치 중 VirtIO 드라이버가 포함된 추가 ISO 파일을 제공해야 합니다.
디스크 캐시에 대해
디스크 캐시 설정은 데이터 무결성과 성능 간의 균형을 조정합니다.
기능 | writethrough | directsync | none | writeback | unsafe |
---|---|---|---|---|---|
캐시 사용 | 페이지 캐시 사용(읽기 작업에 유리) | 캐시 사용 안 함 | 캐시 사용 안 함 | 페이지 캐시 사용 | 페이지 캐시 사용 |
fsync 발행 | 각 쓰기 시 발행 | 각 쓰기 시 발행 | 발행 안 함 | 지연 후 발행 | 발행 안 함 |
쓰기 프로세스 | 캐시에 쓰고 즉시 디스크로 플러시 | 디스크에 직접 쓰고 즉시 플러시 | 디스크에 직접 쓰고 플러시 안 함 | 캐시에 쓰고 지연 후 플러시 | 캐시에 쓰고 플러시 안 함 |
읽기 성능 | 높음(캐시 활용) | 낮음(디스크 의존) | 낮음(디스크 의존) | 높음(캐시 활용) | 높음(캐시 활용) |
쓰기 성능 | 보통(캐시 지원) | 낮음(캐시 없음) | 보통(캐시 없음) | 높음(지연된 캐시 플러시) | 매우 높음(지연된 캐시 플러시) |
데이터 무결성 | 높음 | 매우 높음 | 보통(디스크 의존) | 낮음(지연된 쓰기) | 매우 낮음(데이터 손실 위험 높음) |
사용 사례 | 읽기 성능과 무결성을 우선시하는 시스템 | 최대 데이터 무결성이 필요한 시스템 | 보통의 무결성 요구와 성능 중심 시스템 | 쓰기 집약적인 시스템에서 성능과 무결성 균형 | 데이터 손실이 허용되는 성능 중심 시스템 |
TRIM (Discard)
Discard 명령은 스토리지 시스템에 특정 블록이 더 이상 필요하지 않음을 알립니다.
원래 SSD 웨어 레벨링을 위해 도입되었으며, 일부 OS는 TRIM을 지원하려면 SSD 에뮬레이션이 필요할 수 있습니다. SSD 외에도 TRIM은 데이터를 덮어쓰지 않고 암호화 키를 제거하여 보안 삭제를 지원할 수 있습니다.
프라이빗 클라우드 환경에서 TRIM은 씬 프로비저닝된 스토리지가 공간을 회수할 수 있게 합니다. 일반적으로 VM이 스토리지를 사용하면 삭제된 데이터도 스토리지 수준에서 할당된 상태로 남아 있습니다.
fstrim -v /mountpoint
실시간 TRIM 작업을 위해 discard 옵션과 함께 마운트하세요:
mount -o discard,remount /
IO 스레드
VirtIO SCSI에서 IO 스레드를 활성화하면 디스크 쓰기 작업이 메인 OS 스레드와 별도의 스레드로 오프로드됩니다.
이 설정은 추가 CPU 자원을 필요로 하지만, 특히 여러 가상 디스크가 동시에 읽기/쓰기 작업을 처리하는 VM에서 지연 시간을 줄일 수 있습니다.