2015/12/06
この記事はIDCFクラウドのアドベントカレンダーに寄稿しています。
IDCF Cloud Advent Calendar 2015
IDCFクラウドのS1サーバ上に仮想サーバを作る場合、Tiny Core Linux(以下Core)であればホストOSにあまり負荷をかけることなく仮想サーバが使えるのではと思いCoreのサーバを立ててMackerelで負荷を調べてみます。
利用しているプランとインストールする仮想マシンは以下のとおりです。
プラン
light.S1
1CPU (Intel Xeon E5-2680 v2 @ 2.80GHz)
1GB RAM
15GB HDD
仮想マシン
CentOS 7.1 64-bit
VirtualBox、Vagrantインストール
まずはVirtualBoxから。
以下の手順を参考にしながらVirtualBoxをインストールします。
DKMSインストール
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # yum install dkms
VirtualBoxインストール
VirtualBoxリポジトリ追加
# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo -O /etc/yum.repos.d/virtualbox.repo
VirtualBoxインストール
# yum update # yum install VirtualBox-5.0 # dkms status vboxhost, 5.0.10, 3.10.0-229.20.1.el7.x86_64, x86_64: installed
VirtualBox Guest Additionsインストール
bzip2インストール(VBoxLinuxAdditions.run実行時に必要)
# yum install bzip2
ISOファイルダウンロード
# wget http://download.virtualbox.org/virtualbox/5.0.10/VBoxGuestAdditions_5.0.10.iso # mkdir /media/VBoxGuestAdditions # mount -t iso9660 -o loop VBoxGuestAdditions_5.0.10.iso /media/VBoxGuestAdditions
Guest Additionsインストール
# /media/VBoxGuestAdditions/VBoxLinuxAdditions.run Verifying archive integrity... All good. : Do you wish to continue anyway? [yes or no] <--- yes :
後片付け
# umount /media/VBoxGuestAdditions # rmdir /media/VBoxGuestAdditions # rm VBoxGuestAdditions_5.0.10.iso
Vagrantインストール
VirtualBoxがインストールできたら続いて以下の手順を参考にしながらVagrantをインストールします。
# wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.4_x86_64.rpm # rpm -Uvh vagrant_1.7.4_x86_64.rpm
仮想サーバ作成
以下の手順に従ってあらかじめ作成しておいたboxファイルをVagrantの管理下に入れて仮想サーバを作ります。
box組み込み
# vagrant box add --name tclinux-core-6.4.1x64 tclinux-core-6.4.1x64.box # vagrant box list tclinux-core-6.4.1x64 (virtualbox, 0)
仮想サーバ作成
# mkdir -p vagrant/tc # cd vagrant/tc # vagrant init tclinux-core-6.4.1x64 # vi Vagrantfile : Vagrant.configure(2) do |config| config.vm.box = "tclinux-core-6.4.1x64" config.ssh.shell = "/bin/sh" config.vm.synced_folder ".", "/vagrant", disabled: true end # vagrant up : # vagrant status Current machine states: default running (virtualbox) :
ここまででCoreの仮想サーバが起動できたのでログインを確認します。
# vagrant ssh ( '>') /) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY. (/-_--_-\) www.tinycorelinux.net vagrant@box:~$ vagrant@box:~$ exit
複数仮想サーバ作成
Coreのメモリ使用量は少ないので試しに仮想サーバを5個起動してみます。
まず先ほど作成した仮想サーバを削除して5サーバ分の設定をVagrantfileに記述します。
# vagrant destroy default: Are you sure you want to destroy the 'default' VM? [y/N] <--- y ==> default: Forcing shutdown of VM... ==> default: Destroying VM and associated drives... # vi Vagrantfile : Vagrant.configure(2) do |config| config.vm.box = "tclinux-core-6.4.1x64" config.ssh.shell = "/bin/sh" config.vm.synced_folder ".", "/vagrant", disabled: true config.vm.define :tc1 do |v| v.vm.hostname = "tc1" end config.vm.define :tc2 do |v| v.vm.hostname = "tc2" end config.vm.define :tc3 do |v| v.vm.hostname = "tc3" end config.vm.define :tc4 do |v| v.vm.hostname = "tc4" end config.vm.define :tc5 do |v| v.vm.hostname = "tc5" end end
仮想サーバを起動します。
# vagrant up ==> tc1: Importing base box 'tclinux-core-6.4.1x64'... : ==> tc1: Machine booted and ready! : ==> tc2: Importing base box 'tclinux-core-6.4.1x64'... : ==> tc2: Machine booted and ready! : ==> tc3: Importing base box 'tclinux-core-6.4.1x64'... : ==> tc3: Machine booted and ready! : ==> tc4: Importing base box 'tclinux-core-6.4.1x64'... : ==> tc4: Machine booted and ready! : ==> tc5: Importing base box 'tclinux-core-6.4.1x64'... : ==> tc5: Machine booted and ready! # vagrant status Current machine states: tc1 running (virtualbox) tc2 running (virtualbox) tc3 running (virtualbox) tc4 running (virtualbox) tc5 running (virtualbox) :
5つの仮想サーバが起動しているのが分かります。
この状態でシステムの負荷を調べてみたところ、無風状態だと使用しているのはメモリのみ、仮想サーバというより各インスタンスの母艦となるVBoxHeadlessプロセスがかなりメモリを使っているので複数サーバを起動させておくのは辛いかもしれません。
VirtualBoxそのもののチューニングをすればそれなりにメモリ使用量を減らせるかもしれませんが今日はここまで。
# ps -eo pid,ppid,pcpu,vsize,size,args PID PPID %CPU VSZ SIZE COMMAND : 46494 1 0.4 284508 83888 /usr/lib/virtualbox/VBoxXPCOMIPCD 46500 1 0.9 797836 566880 /usr/lib/virtualbox/VBoxSVC --auto-shutdown 46945 46500 2.8 963656 608296 /usr/lib/virtualbox/VBoxHeadless --comment tc_tc1_1449383100562_42278 --startvm ec796a6d-ba08-4bdc-8a20-8a3206c53524 --vrde config 48854 46500 2.6 961852 610588 /usr/lib/virtualbox/VBoxHeadless --comment tc_tc2_1449383204422_71687 --startvm ac3f4cb7-6a8c-49b0-a8e2-dfa3f73cce32 --vrde config 54830 46500 3.1 963768 610456 /usr/lib/virtualbox/VBoxHeadless --comment tc_tc3_1449383529561_68153 --startvm 894f7e16-0075-48fd-b3fe-1ff3a40a8d11 --vrde config 56825 46500 2.9 961720 610456 /usr/lib/virtualbox/VBoxHeadless --comment tc_tc4_1449383634819_15769 --startvm 8bc0978c-8703-4afd-a86b-099dcfac368c --vrde config 63117 46500 3.5 965948 610588 /usr/lib/virtualbox/VBoxHeadless --comment tc_tc5_1449383961474_88940 --startvm 91549ac4-dd40-4dce-999d-466b5ddaeead --vrde config
参考サイト
Tiny Core Linux技術情報 (Qiita)
Vagrant技術情報 (Qiita)
VirtualBox技術情報 (Qiita)