OpenVZ · 2 min read · Jan 04, 2026
OpenVZ VM 간 리소스 균등 분배하기: vzsplit
OpenVZ VM 간 리소스 균등 분배하기: vzsplit
버전 1.0
저자: Falko Timme
이 짧은 가이드는 vzsplit의 도움으로 OpenVZ 호스트 리소스를 여러 가상 머신 간에 균등하게 분배하는 방법을 보여줍니다. vzsplit은 특정 시스템 리소스 제어 매개변수 세트를 포함한 샘플 컨테이너 구성 파일을 생성하며, 이를 가상 머신에 적용할 수 있습니다.
이 방법이 귀하에게 효과적일 것이라는 보장은 하지 않습니다!
vzsplit 사용하기
다음 내용을 확인해 보세요
man vzsplit사용법에 대해 더 알아보세요.
이제 OpenVZ 호스트에서 5개의 가상 머신을 실행하고 싶다고 가정해 보겠습니다. 다음과 같이 vzsplit을 호출합니다:
vzsplit -n 5 -f max-limits-n 5는 가상 머신의 수를 지정합니다.
server1:~# vzsplit -n 5 -f max-limits
최적의 스왑 공간 크기는 2022 Mb로, RAM 크기의 두 배입니다.WARNING: /var/lib/vz/private/를 보유하는 파티션의 최소 권장 크기는 20Gb입니다!
구성 파일 /etc/vz/conf/ve-max-limits.conf-sample이 생성되었습니다.
server1:~#보시다시피, 이는 5개의 가상 머신 각각에 대한 구성 설정의 최대 값을 포함하는 파일 /etc/vz/conf/ve-max-limits.conf-sample을 생성했습니다. 해당 파일을 확인해 보세요:
vi /etc/vz/conf/ve-max-limits.conf-sample| # vzsplit에 의해 생성된 5개의 컨테이너를 위한 구성 파일 # 총 물리적 메모리 1011 Mb를 가진 HN에서 # 낮은 메모리 883 Mb, 스왑 크기 2047 Mb, 최대 스레드 8000 # 리소스 커밋 수준 0: # 자유 리소스 분배. 모든 매개변수는 증가할 수 있습니다. # 주요 매개변수 NUMPROC="1600:1600" AVNUMPROC="452:452" NUMTCPSOCK="1600:1600" NUMOTHERSOCK="1600:1600" VMGUARPAGES="135985:2147483647" # 보조 매개변수 KMEMSIZE="37052743:40758017" TCPSNDBUF="5797314:12350914" TCPRCVBUF="5797314:12350914" OTHERSOCKBUF="2898657:9452257" DGRAMRCVBUF="2898657:2898657" OOMGUARPAGES="135985:2147483647" PRIVVMPAGES="155342:170876" # 보조 매개변수 LOCKEDPAGES="1809:1809" SHMPAGES="15534:15534" PHYSPAGES="0:2147483647" NUMFILE="14464:14464" NUMFLOCK="1000:1100" NUMPTY="160:160" NUMSIGINFO="1024:1024" DCACHESIZE="8088605:8331264" NUMIPTENT="200:200" DISKSPACE="117286:129015" DISKINODES="110065:121072" CPUUNITS="8587" |
보시다시피, 이 파일에는 호스트 이름, IP 주소, 네임 서버 등과 같은 VM 특정 설정이 포함되어 있지 않습니다. 이는 이러한 설정을 덮어쓰고 싶지 않기 때문에 의미가 있습니다.
이제 이러한 설정을 ID가 101인 VM에 적용하고 싶다고 가정해 보겠습니다. 다음과 같이 진행합니다:
vzctl set 101 --applyconfig max-limits --save그 후, VM 101을 시작/재시작할 수 있습니다:
vzctl start 101다음과 같은 메시지를 볼 수 있습니다:
server1:~# vzctl start 101
컨테이너 시작 중 ...
vzquota : (경고) block_hard_limit [129115] < block_current_usage [139856]
컨테이너가 마운트되었습니다.
IP 주소 추가: 192.168.0.101
bash: line 402: printf: write error: Disk quota exceeded
bash: line 416: printf: write error: Disk quota exceeded
bash: line 421: echo: write error: Disk quota exceeded
bash: line 447: printf: write error: Disk quota exceeded
CPU 단위 설정: 8587
메모리 정보 구성: 155342
호스트 이름 설정: test.example.com
awk: close failed on file /dev/stdout (Disk quota exceeded)
ERROR: 파일 /etc/hosts를 변경할 수 없습니다.
vzquota : (경고) block_hard_limit [129015] < block_current_usage [139856]
컨테이너 시작 진행 중...
server1:~#어떤 이유로 vzsplit이 잘못된 디스크 크기를 계산했습니다. 이를 수정할 수 있습니다(이는 소프트 한계가 10GB이고 하드 한계가 11GB인 디스크 크기를 설정합니다 - 필요에 따라 조정하십시오):
vzctl set 101 --diskspace "10000000:11000000" --save그런 다음 VM을 재시작합니다:
vzctl restart 101VM의 새로운 설정을 다음과 같이 확인할 수 있습니다:
vzctl exec 101 cat /proc/user_beancountersserver1:/etc/vz/conf# vzctl exec 101 cat /proc/user_beancounters
버전: 2.5
uid resource held maxheld barrier limit failcnt
101: kmemsize 340278 580635 37052743 40758017 0
lockedpages 0 0 1809 1809 0
privvmpages 796 1655 155342 170876 0
shmpages 0 0 15534 15534 0
dummy 0 0 0 0 0
numproc 5 9 1600 1600 0
physpages 486 1060 0 2147483647 0
vmguarpages 0 0 135985 2147483647 0
oomguarpages 486 1060 135985 2147483647 0
numtcpsock 1 2 1600 1600 0
numflock 1 2 1000 1100 0
numpty 0 1 160 160 0
numsiginfo 0 2 1024 1024 0
tcpsndbuf 8928 0 5797314 12350914 0
tcprcvbuf 16384 0 5797314 12350914 0
othersockbuf 2232 3624 2898657 9452257 0
dgramrcvbuf 0 0 2898657 2898657 0
numothersock 1 3 1600 1600 0
dcachesize 0 0 8088605 8331264 0
numfile 129 193 14464 14464 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 10 10 200 200 0
server1:/etc/vz/conf#failcnt 열은 매우 중요합니다. 이 열에는 0만 포함되어야 합니다. 그렇지 않으면 VM이 현재 할당된 리소스보다 더 많은 리소스를 필요로 한다는 의미입니다.
VM에 할당된 메모리를 확인하려면 다음을 실행합니다:
vzctl exec 101 freeserver1:~# vzctl exec 101 free
total used free shared buffers cached
Mem: 621368 3268 618100 0 0 0
-/+ buffers/cache: 3268 618100
Swap: 0 0 0
server1:~#링크
- OpenVZ: http://openvz.org
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.