인텔 Dynamic PAMT, TDX 기밀 가상 머신의 메모리 부담 줄인다
인텔의 Dynamic PAMT가 리눅스 메인라인 커널로의 반영을 향해 한 단계 더 나아갔습니다. 패치는 현재 tip/tip.git의 x86/tdx 브랜치에 대기 중이며, 지원되는 인텔 TDX 서버에서는 기능이 기본 활성화되는 방향입니다.
이번 커밋의 목표는 TDX를 사용하는 기밀 가상 머신에서 커널이 부담해야 하는 메모리 오버헤드를 줄이는 것입니다.
가상화 환경에서 메모리는 곧 비용과 직결됩니다. 특히 수백 기가바이트를 넘어 테라바이트급으로 확장되는 서버에서는 데이터 자체에 쓰이는 공간뿐 아니라 메모리 상태를 추적하기 위한 관리 영역도 무시하기 어렵습니다.
이번 변경은 게스트 운영체제의 기능을 추가하는 일이 아니라, TDX를 지원하는 호스트가 물리 메모리를 관리하는 방식을 조정하는 커널 기능입니다.
TDX가 PAMT를 필요로 하는 이유

인텔 TDX는 호스트 운영체제나 하이퍼바이저가 게스트의 메모리 내용을 임의로 들여다보거나 바꾸기 어렵게 만드는 기밀 컴퓨팅 기술입니다.
기밀 가상 머신은 메모리 보호 상태를 하드웨어와 TDX 모듈의 협력으로 관리하며, 각 물리 페이지가 어떤 보안 상태에 있는지 확인할 수 있어야 합니다.
이때 사용되는 자료 구조가 Physical Address Metadata Table, 즉 PAMT입니다. PAMT는 물리 메모리 페이지마다 TDX 메타데이터를 보관합니다. 페이지 단위로 상태를 기록해야 하므로 보호 대상 메모리가 커질수록 테이블도 함께 커지는 구조이며, 일반 가상 머신에서 볼 수 있는 단순한 페이지 테이블과는 목적이 다릅니다.
TDX는 시스템 메모리의 약 0.4%를 PAMT에 사용합니다. 비율만 보면 작아 보이지만, 대규모 서버에서는 실제로 확보해야 하는 메모리가 꽤 많다는 이야기로 연결되는 셈입니다. 애플리케이션이나 게스트에 직접 할당되지 않는 예약 영역이 늘어나면 같은 장비에서 운영할 수 있는 작업량에도 영향을 줄 수 있습니다.
Dynamic PAMT의 핵심 작동 방식

Dynamic PAMT, 줄여서 DPAMT는 PAMT 일부를 처음부터 고정적으로 모두 확보하는 대신, 동적으로 할당하도록 TDX 모듈과 커널의 동작을 연결합니다.
인텔의 설명처럼 PAMT 전체를 없애는 기능은 아닙니다. 물리 메모리의 보안 메타데이터를 유지하되, 필요한 부분을 동적으로 마련해 초기 고정 부담을 낮추는 방식입니다.
이번 패치는 TDX 모듈이 DPAMT 지원 여부를 보고할 때 기능을 켜는 동작으로 정리됩니다. 즉 모든 리눅스 시스템에 무조건 적용되는게 아니라, TDX 서버와 해당 TDX 모듈이 기능을 제공하는 경우에만 활성화됩니다.
지원 가능한지에 대한 여부를 리눅스 커널이 자체 확인하므로 관리자가 별도의 수동 설정을 추가해야 하는 기능은 아닙니다.
이는 보안 메타 데이터를 생략해 메모리를 절약하는 것과는 다릅니다. 보호 기능에 필요한 PAMT의 역할은 유지하고, 할당 시점을 유연하게 바꾸는 것입니다.
따라서 핵심 평가는 메타데이터 관리가 정상적으로 계속되는지, 그리고 동적 할당이 기밀 VM의 생성과 실행 경로에 예측하지 못한 지연을 추가하지 않는지에 놓이게 됩니다.
리눅스 7.4와 서버 운영에 미칠 영향

현재 변경 사항은 정식 릴리스에 포함된 기능이 아니라 tip 트리에 올라간 준비 단계입니다. 실제 최종 반영 여부와 세부 내용은 커널 개발 과정에서 달라질 수 있습니다.
메인라인에 정식 반영된다면 가장 직접적인 수혜자는 큰 물리 메모리를 갖춘 TDX 서버일 것입니다. PAMT에 고정되는 메모리 부담이 줄어들 여지가 있기 때문에, 서버 관리자는 동일한 호스트에서 게스트에 배정할 수 있는 자원과 호스트 자체의 여유 공간을 다시 계산할 수 있습니다.
클라우드와 데이터센터의 서버 관리자는 커널 버전뿐 아니라 서버의 TDX 모듈이 DPAMT를 지원하는지도 함께 확인해야 합니다. 해당 기능이 지원되는 경우 기본 활성화될 예정이라는 점은 배포 복잡성을 낮출 수 있지만, 커널 업그레이드 뒤 메모리 예약량과 VM 생성 로그를 점검하는 절차는 여전히 필요합니다. 특히 메모리 용량을 엄격하게 오버커밋하는 환경에서는 변화 전후를 별도로 측정하는 편이 안전합니다.
🐧 Linuxroom의 생각 :
이번 기사 내용이 꽤나 어려웠으리라 생각합니다. 사실 일반 유저에 그렇게 크게 와닿는 내용은 아닙니다. 데이터센터나 클라우드에서 사용하는 서버용 PC에 좋은 소식이죠.
쉽게 말하자면, 인텔의 보안 가상머신(TDX) 기술은 데이터의 내용이나 시큐리티를 위해, 메모리의 약 0.4%를 관리용('PMAT')로 선점 해놓습니다. 하지만, 작은 메모리면 괜찮지만, 메모리 용량이 커지면 커질수록 이 0.4%의 양은 무시 못할 정도로 커지겠죠.
예를들어 128GB의 메모리가 있다고 칩시다. 그럼 0.4%는 512MB이죠.
반면에 1TB의 메모리의 경우에는 0.4%는 4GB의 메모리죠.
퍼센트는 용량이 커지면 커질수록 선점되는 메모리만 해도 엄청나게 많아지게 되니 메모리가 굉장히 낭비되고 있는 실정이었습니다.
그래서 나온 기술이 동적 PAMP (DPAMT)라는 기술입니다. 즉,
처음부터 다 선점해놓지 말고, 필요할때마다 동적으로 그때그때 나눠 쓰자
라는 의도의 기술이죠. 이 기술의 장점은 보안 성능은 그대로 유지하면서, 낭비되는 메모리를 획기적으로 줄일 수 있습니다.
결과론적으로, 데이터센터에서 사용되는 서버는 대부분이 리눅스를 사용하니, 리눅스 메인라인 커널에 정식으로 반영이 된다면, 대형 서버나 클라우드 업체들이 똑같은 컴퓨터 장비에서 더 많은 가상 머신(VM)을 돌릴 수 있어 비용 절감 효과가 생기게 되는 것이죠.
실질적으로 AWS나 Azure, 또는 GCP같은 서비스에서 가격을 인하해 줄 가능성은 눈꼽만큼도 없을 것 같지만, 전체적으로 낭비되던 공간을 더욱 효율적으로 사용할 수 있게 된다 라는 이야기 입니다 ☺️
※ 각주
[1] TDX: 인텔이 제공하는 기밀 가상화 기술로, 신뢰할 수 없는 호스트 환경에서도 게스트의 메모리와 실행 상태를 보호하는 것을 목표로 합니다.
[2] PAMT: Physical Address Metadata Table의 약어입니다. TDX가 물리 메모리 페이지별 보안 관련 메타데이터를 관리하는 데 사용하는 표입니다.
[3] DPAMT: Dynamic PAMT의 약어입니다. PAMT 일부를 동적으로 할당해 고정 메모리 부담을 줄이는 TDX 모듈 기능입니다.
[4] tip 트리: 리눅스 커널의 여러 하위 시스템에서 다음 메인라인 반영을 준비하는 개발 트리입니다. 이 트리의 변경이 최종 릴리스에 반드시 포함되는 것은 아닙니다.
Comments