ZFS 압축의 실제 효과, DB·로그 데이터는 얼마나 줄어들까?
가상화 인프라에서 스토리지를 선택할 때 가장 먼저 떠올리는 기준은 보통 성능입니다.
얼마나 빠르게 읽고 쓸 수 있는지, 지연 시간은 얼마나 낮은지, VM이 늘어나도 I/O가 안정적으로 유지되는지가 중요한 판단 기준이 됩니다.
하지만 실제 운영 환경에서는 성능만큼 중요한 요소가 하나 더 있습니다.
바로 스토리지 효율입니다.
DB, 로그, 보안 이벤트, 색인 데이터처럼 시간이 지날수록 계속 쌓이는 데이터는 단순히 “빠르게 저장하는 것”만으로는 충분하지 않습니다. 얼마나 안정적으로 쓰고, 얼마나 효율적으로 저장하며, 장기적으로 디스크 비용과 운영 부담을 줄일 수 있는지가 함께 중요해집니다.
이 지점에서 ZFS의 압축 기능은 단순한 부가 기능이 아니라, 가상화 스토리지 설계에서 다시 주목할 만한 전략적 선택지가 됩니다.
ZFS 압축은 단순한 용량 절감 기능이 아닙니다
ZFS 압축은 데이터를 디스크에 저장하기 전에 압축해 실제 물리 디스크 점유량을 줄이는 기능입니다.
일반적인 관점에서는 “압축을 켜면 용량이 줄어든다” 정도로 이해하기 쉽습니다.
하지만 가상화 환경에서는 그 의미가 조금 더 큽니다.
실제 디스크 점유량 절감
디스크에 기록되는 데이터량 감소
워크로드별 스토리지 설계 유연성
VM 안에서 보이는 디스크 용량은 그대로이지만, 호스트 스토리지 관점에서는 실제로 기록되는 물리 용량이 줄어듭니다. 따라서 압축 효율이 높은 데이터가 많은 환경에서는 동일한 스토리지 자원으로 더 많은 데이터를 수용할 수 있습니다.
또한 압축이 잘 되는 데이터라면 디스크에 실제로 기록되는 데이터량 자체가 줄어들기 때문에, 스토리지 I/O 부담을 완화하는 효과도 기대할 수 있습니다.
즉 ZFS 압축은 단순한 저장 공간 절약 기능이 아니라, 데이터 성격에 맞게 스토리지 효율과 운영 비용을 함께 최적화하는 기능입니다.
압축 효과는 VM 내부가 아니라 호스트 레벨에서 확인해야 합니다
ZFS 압축을 테스트할 때 자주 발생하는 오해가 있습니다.
VM 내부에서 디스크 용량을 확인하면 압축 효과가 보이지 않는다는 점입니다.
ZFS가 VM 디스크를 zvol 방식의 블록 디바이스로 제공하는 경우, VM 내부에서는 논리적으로 할당된 볼륨 크기가 그대로 보입니다. 예를 들어 100GB VM 디스크라면, VM 내부 명령어나 일반적인 블록 디바이스 조회에서는 여전히 100GB로 표시됩니다.
하지만 실제 물리 디스크에서 차지하는 용량은 다를 수 있습니다.
VM 내부
논리적으로 할당된 디스크 크기가 보입니다. 압축에 따른 실제 절감 효과는 확인하기 어렵습니다.
ZFS 호스트 레벨
zfs list의 REFER, USED, compressratio 같은 값을 통해 실제 물리 점유량과 압축률을 확인해야 합니다.
따라서 ZFS 압축 효과를 평가할 때는 VM 내부의 파일 크기만 보면 안 됩니다. 호스트 레벨에서 ZFS가 실제로 디스크에 얼마나 저장했는지를 확인해야 합니다.
이 차이를 이해해야 ZFS 압축의 효과를 정확하게 판단할 수 있습니다.
테스트 환경: 동일 VM, 다른 압축 정책
압축 효과를 비교하기 위해 동일한 VM을 기준으로 세 가지 ZFS 데이터셋을 구성했습니다.
동일 VM을 클론한 뒤, 스토리지만 각각 다른 ZFS 데이터셋으로 이동하여 비교했습니다. 이렇게 해야 OS, 애플리케이션, 데이터 구조의 차이를 최소화하고 압축 설정 자체의 차이를 비교할 수 있습니다.
높은 압축률 중심
빠른 압축 속도 중심
압축 미적용 기준값
테스트 데이터는 DB와 로그성 데이터를 가정했습니다. MariaDB에 랜덤 로그성 데이터를 대량 입력해 약 16.8GB의 데이터를 생성한 뒤, 각 압축 정책별 실제 디스크 점유량을 비교했습니다.
이 방식은 EDR, 로그 수집, 이벤트 저장, DB 기반 업무처럼 텍스트성 데이터와 반복 패턴이 많은 환경을 가정한 테스트에 가깝습니다.
압축 결과: zstd 약 70%, lz4 약 61% 공간 절감
테스트 결과는 명확했습니다.
16.8GB → 5.56GB
압축률 3.03x, 약 70% 절감
16.8GB → 6.48GB
압축률 2.60x, 약 61% 절감
16.8GB → 16.8GB
압축률 1.00x, 절감 없음
zstd는 lz4보다 더 높은 압축률을 보였습니다. 테스트 기준으로는 원본 16.8GB 데이터가 실제 디스크에서는 5.56GB만 점유해 약 70% 수준의 공간 절감 효과가 확인되었습니다.
lz4 역시 6.48GB로 줄어 약 61%의 절감 효과를 보였습니다.
이 결과는 로그, 텍스트, DB성 데이터처럼 압축 효율이 높은 워크로드에서는 ZFS 압축이 매우 효과적일 수 있음을 보여줍니다.
그렇다면 항상 70% 절감을 기대해도 될까요?
그렇지는 않습니다.
압축률은 데이터의 성격에 따라 크게 달라집니다.
압축 효과가 큰 데이터
로그, 텍스트, JSON, 이벤트 데이터, 일부 DB 데이터처럼 반복 패턴이 많은 데이터입니다.
압축 효과가 낮은 데이터
이미 압축된 이미지, 영상, zip, 백업 파일처럼 추가 압축 여지가 낮은 데이터입니다.
테스트처럼 로그성 데이터가 많은 환경에서는 높은 절감 효과가 나올 수 있습니다. 반면 이미지, 영상, 압축 파일, 암호화된 데이터처럼 이미 압축되었거나 패턴이 적은 데이터는 효과가 제한적입니다.
따라서 운영 환경 전체를 기준으로 보면 60~70% 절감이 항상 보장되는 것은 아닙니다.
다양한 데이터가 혼재된 일반 운영 환경에서는 1.3x~1.5x 수준의 압축률을 현실적인 기대치로 보는 것이 더 보수적입니다.
중요한 것은 “ZFS 압축을 켜면 무조건 몇 % 절감된다”가 아니라, 고객의 데이터 성격을 보고 압축 적용 가치가 있는지 판단하는 것입니다.
zstd와 lz4, 무엇을 선택해야 할까요?
ZFS 압축 알고리즘은 대표적으로 lz4와 zstd를 고려할 수 있습니다.
lz4는 빠른 속도와 낮은 CPU 부담이 장점입니다. zstd는 lz4보다 압축률이 더 높지만, 상대적으로 CPU 사용량이 조금 더 높을 수 있습니다.
속도 중심의 안정적인 선택
압축률 중심의 전략적 선택
다만 현대 CPU 환경에서는 일반적인 DB·로그성 워크로드에서 zstd의 추가 CPU 부담이 체감 성능에 큰 차이를 만들지 않는 경우가 많습니다.
특히 스토리지 비용과 장기 데이터 증가량이 더 큰 고민인 환경이라면 zstd를 우선 검토할 수 있습니다.
반대로 CPU 여유가 매우 제한적이거나, 최대한 낮은 오버헤드가 필요한 환경이라면 lz4가 더 적합할 수 있습니다.
압축은 성능을 떨어뜨리기만 할까요?
압축 기능을 이야기하면 흔히 “CPU를 쓰니까 성능이 떨어질 것”이라고 생각하기 쉽습니다.
물론 압축은 CPU 연산을 사용합니다. 하지만 스토리지 관점에서는 반대로 디스크에 기록해야 하는 데이터량을 줄여 I/O 부담을 낮출 수 있습니다.
즉 압축의 성능 영향은 단순히 CPU 사용량만으로 판단할 수 없습니다.
CPU 관점
압축과 해제 과정에서 추가 연산이 발생합니다.
스토리지 관점
실제 디스크에 쓰는 데이터량이 줄어들어 I/O 부담이 낮아질 수 있습니다.
워크로드 관점
압축 효율이 높은 데이터라면 CPU 비용보다 스토리지 절감 효과가 더 클 수 있습니다.
특히 로그와 DB 데이터처럼 압축 효율이 높은 데이터는 디스크 기록량 감소 효과가 커질 수 있습니다.
따라서 ZFS 압축은 “성능을 희생하고 용량을 줄이는 기능”으로만 볼 것이 아니라, 워크로드에 따라 스토리지 I/O 효율을 높이는 설계 요소로 봐야 합니다.
EDR·로그·색인 워크로드에서 ZFS가 의미 있는 이유
EDR, 로그 수집, 보안 이벤트 분석, 색인 시스템은 일반적인 웹서버와 I/O 패턴이 다릅니다.
이런 시스템은 이벤트가 계속 들어오고, 데이터를 저장하고, 색인하고, 다시 조회하는 작업이 반복됩니다. 대량 순차 읽기보다 지속적인 쓰기, 랜덤 I/O, 동기식 쓰기 안정성이 더 중요해질 수 있습니다.
실제 가상화 아키텍처 비교에서도 ESXi는 읽기 성능과 지연 시간에서 우수한 결과를 보였습니다. 하지만 동기식 랜덤 쓰기 조건에서는 ZFS가 강점을 보였습니다.
읽기 성능·지연 시간 강점
동기식 랜덤 쓰기 강점
로그·색인·멀티 쓰기
테스트 결과 ZFS는 VM 환경의 동기식 랜덤 쓰기에서 26.6K IOPS를 기록했습니다. 이는 ESXi의 6.1K IOPS보다 약 4배 이상 높은 결과입니다.
보고서에서는 ZFS가 ZIL과 TXG 아키텍처를 통해 쓰기 요청을 지능적으로 처리하기 때문에, DB, 로그 서버, ERP 등 빈번한 트랜잭션이 발생하는 환경에서 우위가 두드러진다고 해석했습니다.
이 결과는 “어떤 플랫폼이 무조건 빠르다”는 결론이 아닙니다.
읽기 집약적 워크로드, 쓰기 집약적 워크로드, 압축 효율이 높은 워크로드는 각각 다른 스토리지 전략이 필요합니다.
ZFS의 TXG와 ARC, 예측 가능한 성능을 만드는 구조
ZFS가 쓰기 부하에서 의미 있는 이유는 단순히 파일시스템 이름 때문이 아닙니다.
ZFS 내부에는 쓰기 요청을 묶고 정리하는 TXG(Transaction Group) 구조와, 자주 접근하는 데이터를 메모리에 캐싱하는 ARC 구조가 있습니다.
쓰기 요청을 그룹화하고 정리
여러 쓰기 요청을 모아 디스크에 더 효율적인 흐름으로 반영하는 구조입니다.
자주 쓰는 데이터를 메모리에 캐싱
반복 조회가 많은 환경에서 읽기 응답성을 높이는 데 도움을 줄 수 있습니다.
TXG는 여러 쓰기 요청이 동시에 들어오는 상황에서 데이터를 물리 디스크에 더 효율적인 흐름으로 전달하는 데 도움을 줍니다.
ARC는 자주 사용되는 데이터와 최근 사용 데이터를 메모리에 보관해 반복 읽기 성능을 높일 수 있습니다.
다만 ARC는 메모리를 적극적으로 활용하는 구조이므로, ZFS 기반 아키텍처를 설계할 때는 메모리 용량과 사용 패턴을 함께 고려해야 합니다.
SmartECM은 ZFS를 ‘기능’이 아니라 ‘설계 선택지’로 봅니다
SmartECM은 ZFS를 단순히 지원 가능한 스토리지 옵션 중 하나로만 보지 않습니다.
중요한 것은 고객이 어떤 서비스를 운영하고 있는지, 데이터가 어떤 형태로 쌓이는지, 성능 병목이 어디에서 발생하는지를 함께 보는 것입니다.
확장성과 고가용성
대용량 저장 효율
기존 자산 활용
고성능·고효율 로컬 스토리지
대규모 확장성과 고가용성이 중요하다면 Ceph 기반 구성이 적합할 수 있습니다. 기존 SAN 스토리지를 보유한 기업이라면 dHCI 방식으로 기존 자산을 활용할 수 있습니다. 대용량 저장 효율이 중요하다면 Ceph EC를 검토할 수 있습니다.
반면 DB, 로그, EDR, ERP처럼 쓰기 안정성과 압축 효율이 중요한 업무라면 ZFS 기반 구성이 더 적합할 수 있습니다.
즉 SmartECM의 설계 방향은 하나의 스토리지 방식을 모든 고객에게 동일하게 적용하는 것이 아닙니다.
고객의 업무 특성, 성능 요구사항, 데이터 증가 속도, 보유 인프라, 예산을 함께 보고 가장 현실적인 아키텍처를 선택합니다.
ZFS 압축은 스토리지 선택의 기준을 바꿉니다
스토리지 선택은 단순히 최대 IOPS나 최대 대역폭만 비교해서 결정할 수 없습니다.
운영 데이터가 어떤 형태인지, 시간이 지날수록 얼마나 증가하는지, 압축 효율이 있는지, 쓰기 부하가 얼마나 지속적으로 발생하는지까지 함께 봐야 합니다.
ZFS 압축은 이런 관점에서 스토리지 설계의 기준을 넓혀줍니다.
로그와 DB 데이터가 많은 환경에서는 디스크 비용을 줄이고, 데이터 증가에 따른 증설 부담을 낮추며, 동시에 쓰기 중심 워크로드에 적합한 아키텍처를 구성할 수 있기 때문입니다.
SmartECM은 이러한 ZFS의 특성을 고객 맞춤형 인프라 설계에 전략적으로 활용합니다.
고성능이 필요한 VM, 로그와 DB 데이터가 많이 쌓이는 업무, 장기적으로 스토리지 비용이 부담되는 환경이라면 ZFS 압축 기반의 SmartECM 아키텍처를 검토해볼 가치가 있습니다.
SmartECM 아키텍처 보기
SmartECM 주요 기능 보기
SmartECM 권장사양 보기
SmartECM 제품소개서 다운로드
- 이전글 스냅샷, 백업, DR은 어떻게 다를까? 관리자가 알아야 할 데이터 보호 전략 26.07.24
- 다음글 VMware 마이그레이션, 꼭 확인해야 할 7가지 체크리스트 26.07.16