メモの最近のブログ記事
悔しいのでこっちに。
while true; do free -m ; [ $(expr $(free -m | grep ^Mem | awk '{print $2}') \/ 2) -lt $(free -m | egrep ^Mem | awk '{print $3}') ] && for i in `echo 3 2 1 0`; do sync ; sudo /sbin/sysctl -w vm.drop_caches=$i; done; done
実サーバでも仮想マシンでも、需要予測は難しいのには変わりありませんが、ハードウェアの追加や交換を行う事なくリソースの上限を変更できるのが仮想マシンを使うメリットの1つです。(勿論ハードウェアの上限以上のパフォーマンスは出せませんが)
KVMでメモリサイズの変更を行うには、次の順序で作業を行います。
1) メモリサイズを変更したいマシンをシャットダウンする
$ ssh hogehoge.example.com
$ sudo /sbin/shutdown -h now
または
$ su -
# shutdown -h now
2) 母艦マシンのvirshコマンドでメモリの上限サイズを変更する
$ sudo /usr/bin/virsh setmaxmem hogehoge.example.com 131072
(131072 はキロバイトです)
3) 母艦マシンのvirshコマンドでマシンを起動する
$ sudo /usr/bin/virsh start hogehoge.example.com
作業前後で仮想マシンにログインしてfreeコマンドやtopコマンドで確認して、期待通りであればOKです。
ね、簡単でしょ?
KVMでメモリサイズの変更を行うには、次の順序で作業を行います。
1) メモリサイズを変更したいマシンをシャットダウンする
$ ssh hogehoge.example.com
$ sudo /sbin/shutdown -h now
または
$ su -
# shutdown -h now
2) 母艦マシンのvirshコマンドでメモリの上限サイズを変更する
$ sudo /usr/bin/virsh setmaxmem hogehoge.example.com 131072
(131072 はキロバイトです)
3) 母艦マシンのvirshコマンドでマシンを起動する
$ sudo /usr/bin/virsh start hogehoge.example.com
作業前後で仮想マシンにログインしてfreeコマンドやtopコマンドで確認して、期待通りであればOKです。
ね、簡単でしょ?
CentOS 5.4 x86_64で運用している自宅サーバですが、yum check-updateすると
kmod-kvm.x86_64 83-105.el5_4.22 updates
kvm.x86_64 83-105.el5_4.22 updates
kvm-qemu-img.x86_64 83-105.el5_4.22 updates
とのこと。アップデート自体は
# yum update
でOKですが、これらパッケージはホストOSのカーネルモジュールをアップデートするので、以下の手順を実行して修正を有効にする必要があります。
1. KVMゲストの仮想マシン(VM)をすべて停止します。
2. ハイパーバイザマシンをリブートするか、またはスーパーユーザとして、(「lsmod」を使用して確認した)kvm、ksm、kvm-intel、 kvm-amdの各モジュールのうち現在実行されているものすべてを(「modprobe -r [module]」を使用して)削除し、(「modprobe [module]」を使用して)リロードします。
3. KVMゲストのVMを再起動します。
※ 参考サイト
http://jp.redhat.com/support/errata/RHBA/RHBA-2009-1488J.html
http://www.jp.redhat.com/support/errata/RHBA/RHBA-2009-1423J.html
https://rhn.redhat.com/errata/RHSA-2010-0088.html
kmod-kvm.x86_64 83-105.el5_4.22 updates
kvm.x86_64 83-105.el5_4.22 updates
kvm-qemu-img.x86_64 83-105.el5_4.22 updates
とのこと。アップデート自体は
# yum update
でOKですが、これらパッケージはホストOSのカーネルモジュールをアップデートするので、以下の手順を実行して修正を有効にする必要があります。
1. KVMゲストの仮想マシン(VM)をすべて停止します。
2. ハイパーバイザマシンをリブートするか、またはスーパーユーザとして、(「lsmod」を使用して確認した)kvm、ksm、kvm-intel、 kvm-amdの各モジュールのうち現在実行されているものすべてを(「modprobe -r [module]」を使用して)削除し、(「modprobe [module]」を使用して)リロードします。
3. KVMゲストのVMを再起動します。
※ 参考サイト
http://jp.redhat.com/support/errata/RHBA/RHBA-2009-1488J.html
http://www.jp.redhat.com/support/errata/RHBA/RHBA-2009-1423J.html
https://rhn.redhat.com/errata/RHSA-2010-0088.html
