OpenVZ · 1 min read · Jan 04, 2026
OpenVZ VM間でリソースを均等に分割する方法 - vzsplit
OpenVZ VM間でリソースを均等に分割する方法 - vzsplit
Version 1.0
Author: 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サイズの2倍ですWARNING: /var/lib/vz/private/を保持するパーティションの推奨最小サイズは20Gbです!
Config /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つのコンテナ用の構成ファイル # HN上の物理メモリの合計量1011 Mb # 低メモリ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: 書き込みエラー: ディスククォータを超えました
bash: line 416: printf: 書き込みエラー: ディスククォータを超えました
bash: line 421: echo: 書き込みエラー: ディスククォータを超えました
bash: line 447: printf: 書き込みエラー: ディスククォータを超えました
CPUユニットを設定中: 8587
meminfoを構成中: 155342
ホスト名を設定中: test.example.com
awk: close failed on file /dev/stdout (ディスククォータを超えました)
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 101次のようにしてVMの新しい設定を確認できます:
vzctl exec 101 cat /proc/user_beancountersserver1:/etc/vz/conf# vzctl exec 101 cat /proc/user_beancounters
Version: 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列は非常に重要です。ここにはゼロのみが含まれているべきです。そうでない場合、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
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。