Your Proxmox boot drive is probably dying faster than you think
Proxmox 부팅 SSD, 유휴 상태에서도 쓰기가 쌓입니다
Proxmox는 유휴 상태에서도 설정 데이터베이스와 통계, 로그를 부팅 드라이브에 기록합니다. ZFS 루트 풀이나 클러스터 구성은 쓰기량을 늘릴 수 있지만, 실제 수명 영향은 환경마다 다릅니다. Reddit에서는 글의 쓰기량 계산을 지적하며 SMART 수치로 각자 확인하자는 반응이 많았습니다.
- 주제
AI 요약
Proxmox 호스트는 가상 머신을 거의 실행하지 않아도 부팅 SSD에 데이터를 계속 기록합니다. 글쓴이는 Proxmox 설정 파일시스템과 통계 수집, ZFS의 쓰기 방식을 살펴보고, 이런 쓰기가 SSD의 기록 내구도(TBW)에 미치는 영향을 설명합니다. 다만 Reddit에서는 제목이 실제 위험보다 과장됐다는 반응과, 특정 환경에서 소비자용 SSD의 마모가 빠르다는 경험담이 함께 나왔습니다.
pmxcfs가 만드는 백그라운드 쓰기
Proxmox의 /etc/pve는 일반 디렉터리처럼 보이지만, 실제로는 FUSE로 연결한 SQLite 데이터베이스와 쓰기 전 로그(write-ahead log)를 바탕으로 작동합니다. 게스트 설정, 스토리지 정의, 클러스터 상태가 이 데이터베이스를 거치므로 파일을 거의 바꾸지 않는 단일 노드에서도 쓰기가 발생합니다. 클러스터에서는 노드 간 상태를 맞추는 데 필요한 동작이지만, 단독 구성에서도 관련 쓰기가 이어집니다.
과거 PVE 5.0 사용 사례에서는 설정 데이터베이스 자체가 거의 변하지 않는데도 초당 10회, 회당 10KB를 기록한다는 관찰이 있었습니다. 당시 추정으로는 1년에 수백 GB에 달했습니다. Proxmox는 이후 쓰기 증폭을 줄였습니다. PVE 8.3에 포함된 변경은 FUSE 라이브러리의 쓰기 한도를 4KB에서 128KB로 올렸습니다. 패치의 개발자 측정값에 따르면 8KiB 쓰기의 증폭률은 약 15배에서 11배로, 1MiB 쓰기는 약 360배에서 15배로 낮아졌습니다.
통계와 ZFS도 기록량에 영향을 줍니다
pvestatd는 대략 10초마다 노드와 게스트 통계를 수집하고, 여러 파일과 데이터베이스에 작은 쓰기를 남깁니다. 글은 PVE 9에서 통계 집계 구간이 짧아져 아카이브에 더 많은 데이터 포인트를 보관한다고 설명합니다. 그래프의 해상도는 좋아지지만 CPU와 디스크 부하는 커집니다.
루트 파일시스템으로 ZFS를 선택하면 쓰기가 더 늘 수 있습니다. ZFS는 쓰기 시 메타데이터와 체크섬을 다시 기록하는 Copy-on-Write 파일시스템입니다. 기본 ashift=12 설정에서는 수백 바이트짜리 데이터베이스 쓰기도 4KB 단위로 처리합니다. 부팅 풀을 미러링하면 전체 드라이브에 쓰이는 양도 늘어납니다. 다만 미러 구성은 총 쓰기를 두 드라이브에 나눠 기록하므로, 각 SSD의 마모가 그대로 두 배가 된다는 뜻은 아닙니다.
측정과 대응
글쓴이가 pmxcfs 백엔드를 별도 루프 장치로 분리해 새로 설치한 단일 노드에서 측정한 결과는 분당 약 1,000섹터였습니다. 글은 이를 연간 약 0.5TB로 환산합니다. 970 EVO의 정격 내구도는 300TBW이므로, 글쓴이는 다른 쓰기량을 넉넉히 더해도 내구도 한계까지 수십 년이 걸린다고 봅니다. Proxmox의 백그라운드 쓰기는 엔터프라이즈 환경을 위한 플랫폼 동작이며, 그 환경에서는 보통 내구도가 높은 SSD를 쓴다는 설명도 덧붙입니다.
사용자는 smartctl에서 Data Units Written 값을 확인하고 하루 뒤 다시 측정해 실제 쓰기량을 계산할 수 있습니다. 단일 노드에서 쓰기량이 우려된다면 HA 서비스를 끄거나, 로그를 메모리에 보관하거나 용량을 제한할 수 있습니다. 게스트 저장소를 부팅 풀과 분리하는 방법도 제시합니다. 특히 소비자용 QLC SSD를 쓰는 홈랩이라면 방치하지 말고 실제 SMART 수치를 확인하라는 조언입니다.
Reddit 반응
- @u/pfak — 제목은 클릭을 노린 과장입니다. 밑바탕에 있는 문제는 실제지만 보통 규모는 작습니다. 유휴 상태에서도 pmxcfs, RRD 통계, 로그 때문에 Proxmox가 부팅 SSD에 쓰기는 합니다. Proxmox는 과거의 쓰기 증폭도 일부 줄였습니다. 하지만 글이 인용한 분당 약 1,000섹터는 표준 Linux 섹터인 512바이트로 계산하면 연간 약 0.27TB입니다. 500GB Samsung 970 EVO의 정격은 300TBW이므로 이 작업량만으로는 내구도 문제가 되지 않습니다. 미러링은 두 드라이브에 쓰기를 나누므로 각 드라이브의 마모가 두 배가 되는 것도 아닙니다.
smartctl을 확인하고 24시간 뒤 다시 읽어 실제 연간 쓰기량을 계산하는 게 유용한 조언입니다. - @u/selfhostcusimbored — 워크로드마다 쓰기량은 크게 달라집니다. 그렇다고 Proxmox 자체가 하루에 수백 GB를 쓴다는 뜻은 아닙니다. 유휴 호스트가 그런 양을 기록한다면 정상적인 Proxmox 백그라운드 작업보다 스왑 압박, VM·컨테이너 디스크, 데이터베이스, 로그, ZFS 쓰기나 문제를 일으키는 서비스를 먼저 살펴보겠습니다. 별일 아닙니다.
- @u/DrDeke — 2025년 7월부터 Proxmox 호스트 하나의 부팅 장치로 128GB Kingston ‘게이밍’ SSD를 쓰고 있습니다. 클러스터 구성이고 24시간 운영하며 쓰기를 줄이려고 설정을 바꾸지도 않았는데,
smartctl에는 쓰기 내구도의 1%를 사용했다고 나옵니다. 그다지 과도해 보이지 않습니다.
- @u/DrDeke — 2025년 7월부터 Proxmox 호스트 하나의 부팅 장치로 128GB Kingston ‘게이밍’ SSD를 쓰고 있습니다. 클러스터 구성이고 24시간 운영하며 쓰기를 줄이려고 설정을 바꾸지도 않았는데,
- @u/blue_eyes_pro_dragon — 이런 일은 오래전부터 있었습니다. Proxmox 설정이나 구성에 따라 로그를 터무니없이 많이 써서 SSD를 마모시키기도 합니다. 원인을 추적한 사람이 수정안을 제안했지만 별 이유로 받아들여지지 않았습니다.
- @u/clonerep — Log2Ram 스크립트가 도움이 됩니다. 2년 전에는 직접 실행했고, 지금은 주요 업데이트 뒤에도 설정이 적용되고 활성화되도록 Log2Ram이 통합된 Proxmenux를 씁니다.
- @u/SolFlorus — SSD 마모가 적다고 말하는 분들은 클러스터를 쓰나요? 제 Proxmox는 소비자용 NVMe를 몇 년마다 망가뜨렸습니다. 결국 서버 하나를 엔터프라이즈 드라이브로 업그레이드했습니다.
- @u/Firestarter321 — 사무실의 HA Proxmox 클러스터는 기본 설정 그대로 2만 4천 시간 운영했고 마모율은 2%입니다. OS 드라이브로 Intel S4510 240GB SSD를 씁니다.
- @u/K3CAN — 제 클러스터에서는 저가형 QLC SSD가 몇 달 만에 고장 났습니다. 엔터프라이즈 SSD로 바꾸니 2년 뒤 마모율이 약 4%입니다. I/O 지연도 크게 개선됐습니다.
- @u/Thomas5020 — 단일 노드들은 쓰기량이 거의 없는데, 제가 관리하는 클러스터는 약 2년 만에 내구도의 40%를 써버렸습니다. 말도 안 됩니다.
- @u/rootdood — 설정 몇 가지를 끄기 전에는 6개월 동안 두 드라이브가 각각 18%씩 마모됐습니다. 그 뒤 몇 년 동안은 추가로 4% 더 줄었습니다. VM에 AI 워크로드를 많이 돌려서 마모 대부분은 VM 탓이라고 생각합니다.
- @u/Suitable-Ad5348 — Proxmox는 기본 설정에서 로그를 너무 많이 쓰므로, 첫날부터
/var/log를 부팅 드라이브 밖으로 옮겨야 합니다.- @u/Darkk_Knight — 맞습니다. 옮기기 쉽습니다. 엔터프라이즈급 SSD를 쓴다면 큰 문제는 아니라서 대부분은 하지 않을 테지만, 저는 로그를 중앙 서버로 보내 그곳에서 살펴보는 편이 낫습니다.
원문: XDA Developers / 번역·요약: Trawling