IDCFクラウドのS1サーバ上にTiny Core Linuxをインストールする方法(VirtualBox + Vagrant)

2015/12/06

この記事はIDCFクラウドのアドベントカレンダーに寄稿しています。

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

参考サイト