Windows 10에서 Hyper-V에 CentOS를 올리고 보니 할당한 메모리를 모두 사용하는 것처럼 보인다.
16GB를 할당했더니 13GB를 쓴다?
원래 Hyper-V는 VM이 메모리를 낭비하지 않고 쓸 수 있도록 메모리를 동적으로 할당 기능을 제공한다. 처음에는 메모리를 적게 주고, 메모리가 모자라면 더 주는 방식으로 쓸 수 있다.
Windows를 VM 게스트로 사용하면 알아서 동작하지만 RHEL, CentOS에서는 그렇지 않다. 검색해보니 마이크로소프트의 문서에 답이 있다. RHEL이나 CentOS를 이용하는 경우, /etc/udev/rules.d/100-balloon.rules 파일을 만들고 아래와 같이 값을 넣어준다.
SUBSYSTEM=="memory", ACTION=="add", ATTR{state}="online"
Bash
복사
그리고 리부트하면, 836MB(==797MiB) 정도로 초기 메모리가 줄어든다.
이제부터는 VM이 필요한 만큼 메모리를 자동으로 할당한다.
그 외에, Hyper-V에 Ubuntu를 설치하면 동적 메모리 기능이 알아서 동작하는 것 같다.
Updated on 2021.1.21
Hyper-V는 가상 머신의 메모리를 동적으로 할당하는 기능이 있다. 처음부터 많은 메모리를 할당하지 않아도 된다. CentOS/RHEL은 적어도 512MB의 메모리를 할당해야 한다. 이보다 적으면 부팅이 안 된다.
그래서, 부팅 직후 메모리는 512MB 이하로 줄였다.
사족:
•
CentOS 8이 EOL 예정이라, CentOS 8 Stream으로 변경했다.
•
Hyper-V NAT 스위치를 만들고 연결 네트워크를 변경하면서 IP 주소도 변경했다.
Windows 11에서 Hyper-V 게스트로 실행한 Rocky Linux 9에서 별다른 설정 없이 동적 메모리 관리가 가능한 것이 확인되었다.