ラベル 仮想化 の投稿を表示しています。 すべての投稿を表示
ラベル 仮想化 の投稿を表示しています。 すべての投稿を表示

2012年11月8日木曜日

lxc-centos

Ubuntu 上で、CentOS6 用の LXC テンプレート (lxc-centos) を試してみます。

■ テンプレートをダウンロードする。
■ (12.04 LTS の場合は、/usr/lib/lxc/templates/lxc 以下に保存すること。)
$ sudo wget -O /usr/share/lxc/templates/lxc-centos \
https://gist.github.com/raw/3514296/b5c055108b4019fae8ea4fff4c58edda46ffe079/lxc-centos

$ sudo chmod 755 /usr/share/lxc/templates/lxc-centos

■ curl と yum が必要なので、パッケージをインストールする。
$ sudo apt-get install curl yum

■ コンテナを作成
$ sudo lxc-create -t centos -n co1

■ コンテナを起動
$ sudo lxc-start -n co1

■ コンテナに root/password でログイン

■ パスワードの設定
@co1# passwd

■ ネットワークを停止
@co1# service network stop

■ ネットワークの設定
@co1# cat <<'__END__' >/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
NM_CONTROLLED=no
NOZEROCONF=yes
IPADDR=10.0.3.111
PREFIX=24
GATEWAY=10.0.3.1
DNS1=10.0.3.1
__END__

■ ネットワーク設定の反映
@co1# service network start

■ パッケージ更新
@co1# yum update -y

■ タイムゾーンの確認
@co1# date
Thu Nov  8 03:08:21 EST 2012

■ タイムゾーンの設定 (JST)
@co1# cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

■ タイムゾーンの確認 (JST になっていることを確認)
@co1# date
Thu Nov  8 17:09:26 JST 2012



参考

2012年10月22日月曜日

Ubuntu Server 12.04 LTS + LXC + X (xrdp + Ratpoison)

Ubuntu Server 12.04 LTS 上動作す LXC で、X を起動します。
xrdp と Ratpoison を使用します。


■ LXC をインストール
$ sudo apt-get install lxc

■ hosts ファイルに作成するコンテナの行を追加
$ sudo vi /etc/hosts
# lxc hosts
10.0.3.101      pp1.local pp1
10.0.3.102      qq1.local qq1
__END__

■ hosts ファイルの変更を dnsmasq 反映するために再起動
$ sudo initctl restart lxc-net

■ Ubuntu 12.04 を作成
$ sudo lxc-create -t ubuntu -n pp1 -- -r precise

■ Ubuntu 12.10 を作成
$ sudo lxc-create -t ubuntu -n qq1 -- -r quantal


以下、pp1 の場合で説明します。
pp1 での操作は、プロンプトを「@pp$」で示します。

$ sudo lxc-start -n pp1

■ pp1 に ubuntu/ubuntu でログイン

■ パスワードの設定
@pp1$ passwd

■ DHCP で取得したアドレスを開放
@pp1$ sudo ifdown -v eth0

■ ネットワークの設定
@pp1$ sudo vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 10.0.3.101
  netmask 255.255.255.0
  gateway 10.0.3.1
  dns-nameservers 10.0.3.1
  dns-search local
__END__

■ ネットワーク設定の反映
@pp1$ sudo ifup -v eth0

■ パッケージ更新
@pp1$ sudo apt-get update && sudo apt-get dist-upgrade -y

■ タイムゾーンの設定
@pp1$ sudo dpkg-reconfigure tzdata
Asia/Tokyo


(作成中...)

参考

2012年10月21日日曜日

Ubuntu Server 12.04 LTS をインストールする

Ubuntu Server 12.04 LTS をインストールしてみました。
Ubuntu Server 12.10 でも同様にできます。 少しは容量の節約ができるかと思い、言語設定は、en_US.UTF-8 にしています。

インストール
  • Language: English
  • [F4] Modes: Install a minimal virtual machine (仮想でなければ "Install a minimal system")
  • Install Ubuntu Server
  • Language: English
  • Contry, territory or area: other > Asia > Japan
  • Configure locales: United States - en_US.UTF-8
  • Detect keyboard layout?: No
  • Contry of origin for keyboard: Japanese
  • Keyboard layout: Japanese
  • Network autoconfiguration failed: Continue
  • Network configuration method: Configurae network manually
  • IP address: a.b.c.d Netmask: e.f.g.h
  • Gateway: i.j.k.l
  • Name server addresses: 8.8.8.8, 8.8.4.4
  • Hostname: Pricise01
  • Domain Name: example.com
  • Full name for the new user: USERNAME
  • Username for your account: USERNAME
  • Choose a password for the new user: PASSWORD
  • Re-enter password to verify: PASSWORD
  • Encrypt your home directory: No
  • Is this time zone correct? Yes
  • Partitioning method: Guided - use entire disk
  • Select disk to partition: Virtual disk 1 (vda)
  • Write the changes to disks? Yes
  • HTTP proxy information (blank for none): BLANK
  • How do you want to manage upgrades on this system?: No automatic updates
  • Choose software to install: OpenSSH server
  • Install the GRUB boot loader to the master boot record?: Yes

再起動後、作成したユーザでログイン

Login: USERNAME
$ sudo apt-get update && sudo apt-get dist-upgrade -y
// 仮想環境が VMware の場合
$ sudo apt-get install open-vm-tools
// 一度再起動して、ssh でログインして作業可能
$ sudo reboot
Login: USERNAME
// KVM で、パワーオフ・リセットで、停止・再起動したい場合
$ sudo apt-get install acpid
// 以下、お好みに応じてパッケージを追加
$ sudo apt-get install screen man-db psmisc
// ネットワーク関連ツール
$ sudo apt-get install w3m dnsutils tcpdump traceroute iputils-tracepath
// 開発環境のインストール
$ sudo apt-get install build-essential

// ssh の ポート番号変更、root ログイン禁止、キープアライブの設定
$ sudo vi /etc/ssh/sshd_config
// diff
$ diff /etc/ssh{.orig,}/sshd_config
5c5,6
< Port 22
---
> #Port 22
> Port 22222
27c28,29
< PermitRootLogin yes
---
> #PermitRootLogin yes
> PermitRootLogin no
87a90,92
>
> ClientAliveCountMax 3
> ClientAliveInterval 15
__END__

$ sudo initctl restart ssh

2012年6月8日金曜日

Ubuntu 12.04 で LXC

Ubuntu 12.04 では、コンテナ (LXC) が簡単に扱えます。

インストール

$ sudo apt-get install lxc


基本事項
  • lxc-* コマンドの多くは、-n オプションでコンテナ名を指定します。
  • テンプレートは、"/usr/lib/lxc/templates/lxc-テンプレート名" にある。(Ubuntu 12.04 LTS)
  • テンプレートは、"/usr/share/lxc/templates/lxc-テンプレート名" にある。(Ubuntu 12.10)
  • コンテナの設定は、"/var/lib/lxc/コンテナ名/config" 以下に保存される。
  • ファイルシステムは、"/var/lib/lxc/コンテナ名/rootfs" 以下に保存される。
  • コンテナ作成時に使用するキャッシュ イメージは、 "/var/cache/lxc" 以下に保存される。

lxc-* コマンド
  • lxc-create コマンドのヘルプを表示
    $ lxc-create -t TEMPLATE -h
        ※ テンプレート名は、ubuntu, fedora, debian 等
  • コンテナの作成 (Ubuntu ホストと同じリリース, Login: ubuntu/ubuntu)
    $ sudo lxc-create -t ubuntu -n CONTAINER
  • コンテナの作成 (Ubuntu Lucid,  Login: ubuntu/ubuntu)
    $ sudo lxc-create -t ubuntu -n CONTAINER -- -r lucid
  • ubuntu テンプレートでキャッシュ イメージ を再作成するには、-F オプションを使用
    $ sudo lxc-create -t ubuntu -n CONTAINER -- -F
  • コンテナの作成 (Fedora, Login: root/root)
    $sudo apt-get install yum (yum コマンドが必要)
    $ sudo lxc-create -t fedora -n CONTAINER
  • コンテナの作成 (Debian, Login: root/root)
    $ sudo lxc-create -t debian -n CONTAINER
  • コンテナの一覧
    $ sudo lxc-list
  • コンテナの起動
    $ sudo lxc-start -n CONTAINER [-d]
        -d オプション指定でコンソールに接続しない
  • コンテナの起動 (設定 /var/lib/lxc/CONTAINER/config の上書き)
    $ sudo lxc-start -n CONTAINER -s lxc.network.link=br0
        -s KEY=VALUE で上書き (例では、lxc.network.link を br0)
  • コンソールに接続 (Ctrl-a q で切断)
    $ sudo lxc-console -n CONTAINER
  • コンテナの再起動
    $ sudo lxc-shutdown -n CONTAINER -r
  • コンテナの停止
    $ sudo lxc-shutdown -n CONTAINER
  • コンテナの強制終了
    $ sudo lxc-stop -n CONTAINER
  • コンテナの削除
    $ sudo lxc-destroy -n CONTAINER
  • コンテナのバックアップ (バックアップ番号 = 1)
    $ sudo lxc-backup CONTAINER 1
        ※ "/var/lib/lxc/CONTAINER/rootfs.backup#" にバックアップされる
  • バックアップからのリストア (バックアップ番号 = 1)
    $ sudo lxc-restore CONTAINER 1
  •  ホスト起動・停止時にコンテナを自動起動・停止する設定
    $ sudo ln -s /var/lib/lxc/CONTAINER/config /etc/lxc/auto/CONTAINER.conf


ネットワーク

"/etc/default/lxc" でデフォルトで作成されるブリッジ インタフェース (lxcbr0) の設定がされています。
"/usr/share/doc/lxc/examples/lxc-*.conf" にネットワーク設定の例があります。
コンテナの設定 "/var/lib/lxc/コンテナ名/config" を例を参考に変更してネットワーク設定を変更できます。
デフォルトの状態では、コンテナの eth0 は、ブリッジ インタフェース (lxcbr0) とブリッジ接続します。

外部とコンテナとが直接通信するためには、ホストにブリッジ インタフェース (br0) を作り、ホストの物理インタフェース (eth0) をブリッジに参加させます。そして、br0 とコンテナの eth0 をブリッジ接続します。

VMware ESXi で動作している仮想マシンで LXC を使用する場合の注意点として、コンテナへ直接接続できるようにするためには、仮想スイッチかポート グループ レベルでの無差別モードを有効にする必要があります。

以下の例では、ホストにブリッジ インタフェース (br0) を作り、ホストの物理インタフェース eth0 をブリッジに参加させます。コンテナは br0 とブリッジ接続するようにします。これで、ホストの物理インタフェース eth0 が接続するネットワーク セグメントにコンテナの eth0 が直接接続する形態になります。


■ ブリッジ br0 の設定
$ sudo vi /etc/network/interfaces

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
  address 192.168.0.101
  netmask 255.255.255.0
  gateway 192.168.0.254
  dns-nameservers 8.8.8.8 8.8.4.4
  bridge_ports eth0
  bridge_stp off

■ ネットワーク設定を反映
$ sudo service networking restart

■ 既存のコンテナの設定を変更
$ sudo sed -i /var/lib/lxc/CONTAINER/config -e 's/=lxcbr0$/=br0/'

■ 新規に作成するコンテナの設定を変更
$ sudo sed -i -e 's/^\(lxc.network.link=\).*/#&\n\1br0/' /etc/lxc/lxc.conf

■ 起動時に lxcbr0 を作成しない設定
$ sudo sed -i -e 's/^\(USE_LXC_BRIDGE=\).*/#&\n\1"false"/' /etc/default/lxc


参考

2011年5月3日火曜日

Ubuntu 11.04 で VKM + virsh + kvm-img を試してみる

仮想マシンの作成は、コマンドラインで行うと面倒なので、仮想マシンマネージャーを使うと良いでしょう。
仮想マシンの作成が終わったら、virsh コマンドを使って、仮想マシンを制御するのが便利です。


virsh コマンドの使い方

以下の例では、操作対象の仮想マシンの名前を VirtualMachine とします。
  • ヘルプを表示する
    $ virsh help
  • 仮想マシンの一覧と現在の状態を表示する (--all オプションで停止中も含める)
    $ virsh list --all
  • 仮想マシンを起動する
    $ virsh start VirtualMachine
  • 仮想マシンを起動し、シリアルコンソールに接続する
    $ virsh start VirtualMachine --console
  • 仮想マシンをシャットダウンする (ACPI に対応していれば使える。Ubuntu ならパッケージ "acpid" が必要となる。)
    $ virsh shutdown VirtualMachine
  • 仮想マシンを一時停止する (ただし、ホストマシン上のメモリは開放されない)
    $ virsh suspend VirtualMachine
  • 仮想マシンを一時停止から再開する
    $ virsh resume VirtualMachine
  • 仮想マシンの電源を切断する (仮想マシンが反応しない場合のみ使用すること)
    $ virsh destory VirtualMachine
  • 仮想マシンの現在の状態を保存する (仮想マシンは停止し、状態がファイルに保存される。ハイバネーションのようなもの。デフォルトでは、AppArmor で任意の場所には保存できないように設定されている。)
    $ virsh save VirtualMachine /path/filename
  • 仮想マシンの状態を復元する
    $ virsh restore /path/filename
  • 仮想マシンのシリアルコンソールに接続する
    $ virsh console VirtualMachine
  • 仮想マシンに接続する際に使用する VNC のディスプレイ番号を調べる
    $ virsh vncdisplay VirtualMachine
  • 仮想マシンの CD-ROM を入れ替える
    $ virsh attach-disk --type cdrom VirtualMachine /path/to/filename.iso hdc
  • 仮想マシンの設定を確認する (xml 形式)
  • $ virsh dumpxml VirtualMachine
  • 仮想マシンの情報を表示する
    $ virsh dominfo VirtualMachine
  • ホストマシンの情報を表示する
    $ virsh nodeinfo
  • 仮想マシンの CPU 情報を表示する
    $ virsh vcpuinfo VirtualMachine


KVM で VMware のようにスナップショットを取得したいなら、qcow2 形式のイメージを使用しましょう。

イメージの情報を表示

$ kvm-img info JeOS11.img
image: JeOS11.img
file format: raw
virtual size: 8.0G (8589934592 bytes)
disk size: 903M


イメージの形式を変換

単純な raw 形式から、多機能な qcow2 形式に変換する例を示します。
qcow2 形式は、スナップショットが使えます。

仮想マシンを停止した状態で変換します。

$ sudo mv JeOS11.img JeOS11.img.tmp
$ sudo kvm-img convert -O qcow2 JeOS11.img.tmp JeOS11.img
$ sudo rm JeOS11.img.tmp
$ sudo kvm-img info JeOS11.img
image: JeOS11.img
file format: qcow2
virtual size: 8.0G (8589934592 bytes)
disk size: 926M
cluster_size: 65536


スナップショット

仮想マシンを停止した状態で作業します。

  • スナップショットを作成 (タグとして "Init" を指定)
    $ sudo kvm-img snapshot -c Init Ubuntu01.img

  • スナップショットを確認する
    $ sudo kvm-img snapshot -l Ubuntu01.img
    Snapshot list:
    ID TAG VM SIZE DATE VM CLOCK
    1 Init 0 2011-05-03 17:09:50 00:00:00.000

  • スナップショット作成時に戻る
    $ sudo kvm-img snapshot -a Init Ubuntu01.img

  • スナップショットを削除する
    $ sudo kvm-img snapshot -d Init Ubuntu01.img


参考

2011年5月1日日曜日

Ubuntu 11.04 で KVM + 仮想マシンマネージャを試してみる

Ubuntu 11.04 で KVM を試してみました。


KVM のネットワーク設定

KVM の仮想マシンが外部のネットワークへ接続するには、NAT を使う方法が簡単です。
ただし、この方法では外部のホストから仮想マシンへアクセスできない。
ホスト OS の物理インタフェースを通して、外部のホストから仮想マシンへのアクセスを許すには、ブリッジの設定が必要になります。

  1. bridge-utils パッケージをインストールします。
    $ sudo apt-get install bridge-utils

  2. ホスト OS のブリッジ設定をするために、"/etc/network/interfaces" を編集します。
    [/etc/network/interfaces]
    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet manual

    auto br0
    iface br0 inet static
    address 192.168.1.10
    network 192.168.1.0
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    bridge_ports eth0
    bridge_fd 9
    bridge_hello 2
    bridge_maxage 12
    bridge_stp off


  3. ネットワーク設定の変更を反映します。
    $ sudo /etc/init.d/networking restart

  4. iptables、ufw などのファイアウォール設定を変更します。私の場合は、ufw を使用しているので、FORWARD のデフォルト ポリシーを ACCEPT に変更する。
    $ sudo vi /etc/default/ufw ← DEFAULT_FORWARD_POLICY="ACCEPT" に変更
    $ sudo ufw reload ← 変更を反映



KVM、仮想マシンマネージャーのインストール

  1. CPU が仮想化支援機能に対応しているか調べます。(BIOS の設定変更が必要な場合もあります。)
    $ sudo apt-get install cpu-checker
    $ sudo kvm-ok | grep CPU
    INFO: Your CPU supports KVM extensions

    または、
    $ egrep --color '(vmx|svm)' /proc/cpuinfo ← 出力があれば対応しています

  2. 必要なパッケージをインストールします。
    $ sudo apt-get install kvm libvirt-bin
    $ kvm-ok
    INFO: /dev/kvm exists
    KVM acceleration can be used

  3. ユーザを libvirtd グループに加えます。
    $ sudo adduser $USER libvirtd

  4. libvirtd グループに加わったことを反映するために、ログインしなおし、id コマンドで反映を確認します。
    $ id

  5. virt-manager、virt-viewer をインストールします。
    $ sudo apt-get install virt-manager virt-viewer


仮想マシンマネージャの起動、設定

  1. [仮想マシンマネージャ] (virt-manager) を起動します。
    (端末から起動する場合は、"virt-manager &")

  2. [localhost (QEMU)] が選択された状態で、メニューから [編集] > [接続の詳細] を選択する。

  3. [仮想ネットワーク] タブを選択します。初期設定では、[default] という名前のデバイス [virbr0] が存在します。これは、NAT するネットワークです。[default] は、設定変更できないようなので、[ネットワークの停止] をクリックした後、[ネットワークの削除] をクリックして削除します。

  4. [ネットワークの追加] をクリックし、新しい仮想ネットワークを作成します。
    (設定ファイルは、/var/lib/libvirt/network/*.xml に作成されます。)

    (作成例)
    ネットワーク名: default
    ネットワーク: 192.168.201.0/24
    DHCP 範囲の選択: (開始) 192.168.201.200, (終了) 192.168.201.249
    物理ネットワークへの接続: 物理ネットワークにフォワード, (宛先) いずれかの物理デバイス, (モード) NAT

  5. 仮想ディスクを保存する ストレージ プールを作成します。/var/lib/libvirt/images/ のままでよければ、ストレージ プールの作成作業は必要ありません。
    $ sudo mkdir -pm 755 /somedir/libvirt_images

  6. [ホストの詳細] の [ストレージ] タブを選択、[プールの追加] ボタンをクリックします。

    (作成例)
    名前: libvirt_images
    種類: dir: ファイルシステムディレクトリー
    ターゲットパス: /somedir/libvirt_images

  7. [default] を選択して、[プールの停止] をクリック、[自動起動] のチェックを外し、[適用] をクリックします。[default] を使う場合は、この作業は必要ありません。

  8. 仮想マシンマネージャの [新しい仮想マシンの作成] をクリックして、仮想マシンを作成します。
    (※ 仮想マシンの設定は、/etc/libvirt/qemu/<仮想マシン名>.xml に作成されます。)

  9. 仮想マシン作成後、仮想マシンを選択して、[開く] をクリック。[詳細] > [ディスプレイVNC] > [キーマップ] を [ja] に指定します。デフォルトの [Auto] では、アンダーバーの入力ができませんでした。

Virtual Machine Viewer での接続

仮想端末から、以下のようにして接続します。
$ virt-viewer -c qemu:///system VirtualMachine &


~/.bash_aliases に以下の行を加えると便利かもしれません。
alias virt-viewer='virt-viewer -c qemu:///system'




参考

2010年8月7日土曜日

ソフトウェア ルータ Vyatta を試してみる。

サーバの構築は、仮想環境でということが多くなってきました。
構築作業中は、ネットワーク機器も仮想マシン上で動かすことができれば便利でしょう。
Linux をルータにしてしまえばいいのですが、ソフトウェア ルータ Vyatta (ヴィヤッタ) なるものがあるようです。
試してみました。
概要は、Online Demos (http://www.vyatta.com/products/online_demos.php) の An Introduction to Vyatta を参考にしてください。


ダウンロード

ダウンロードは、こちら (http://www.vyatta.org/downloads) から行えます。
Vyatta Core (VC) は、オープン ソースのバージョンで、サポートが付きませんが、自由にダウンロードできます。

仮想マシンのイメージ (バーチャル アプライアンス) としては、VMware ESX 3 and ESX 4 と Citrix XenServer が用意されています。
また、LiveCD ISO イメージから起動して利用することもできます。
もちろん、仮想マシンや実際のハードウェアにインストールして使用することもできます。


インストール

Online Demos (http://www.vyatta.com/products/online_demos.php) の Vyatta Software Installation を参考にしてください。

* システム要件
ハードウェア: x86
メモリ: 512MB (環境によっては、システム要件より少なくても動作します。私は、 128MB でインストールしました。)
ディスク: 1GB (2GB 以上推奨)
インタフェース: 必要なだけ用意する。

※ Vyatta Core 6.0 は、Linux Kernel 2.6.x でした。/etc/debian_version によると、Debian 5 をベースにしているようです。

私は、KVM で仮想マシンを作成しました。
  1. 仮想マシンマネージャを起動して、仮想マシンを新規作成します。
    ISO イメージ: vyatta-livecd-virt_VC6.0-2010.06.01_i386.iso (VC6.0 - Virtualization ISO)
    OS の種類: Linux
    バージョン: Generic 2.6.25 or later kernel with virtio
    メモリ: 512MB
    CPU: 1
    ディスク: 2GB
    詳細オプション > アーキテクチャ: i686

  2. 仮想マシンが LiveCD から起動したら、ログインします。(Username: vyatta, Password: vyatta)

  3. ハードディスクに Vyatta をインストールします。
    $ install-image

  4. インストーラの質問に答えます。
    Would you like to continue?: (既定値)
    Partition: (既定値)
    Install the image on?: (既定値)
    Continue?: Yes
    How big of a root partition should I create?: (既定値)
    Which one should I copy to sda?: (既定値)
    Enter vyatta password: (vyatta アカウントのパスワードを設定)
    Which drive should GRUB modify the boot partition on?: (既定値)

  5. 仮想マシンを停止します。
    $ sudo shutdown -h now

  6. 仮想マシンマネージャで必要なだけ仮想インタフェースを追加します。また、起動デバイスがハードディスクになっていることを確認します。必要のないデバイス (Sound など) は、削除してもよいでしょう。

  7. 仮想マシンを起動し、vyatta でログインします。

  8. Boot via の行が、image になっていることを確認します。
    $ show version

  9. interfaces の設定に作成した仮想インタフェースが存在することを確認します。
    $ show configuration

  10. インタフェースの番号が、eth0 から始まっていない場合、「設定の初期化」を実施して再起動すれば eth0 から認識します。

Vyatta CLI の操作方法

Vyatta CLI には、シスコルータに似ていますので、シスコルータを触ったことがある人ならば、すぐに操作を覚えることができると思います。

操作モードと設定モードがあります。
操作モードは、show コマンドや ping コマンド、debug コマンドなどを実行できます。
設定モードは、設定を変更できるモードです。
どちらのモードでも、Linux コマンド (less, ls, /sbin/ifconfig, sudo など) を実行することができます。

Vyatta にログインした直後は、操作モードです。
プロンプトは、vyatta@HOSTNAME$ です。
操作モードから、設定モードに移るには、configure を実行します。
プロンプトが、vyatta@HOSTNAME# になります。
設定モードから、操作モードに戻るには、exit を実行します。
操作モードで、exit を実行すると Vyatta からログアウトします。

CLI では、ヘルプが使えます。
[Tab] キーで、途中まで入力したコマンドの補完を行います。
補完候補が複数ある場合は、候補を表示し、もう一度 [Tab] キーを押すと、簡単な説明が表示されます。
[?] キーは、補完機能はありませんが、候補の表示と簡単な説明の表示機能は同じです。

シスコルータでは、コマンドの短縮形 (show コマンドの sh など) でも大丈夫ですが、Vyatta では、短縮形は受け付けられません。[Tab] キーの補完を使って効率よく入力しましょう。


初期設定

Online Demos (http://www.vyatta.com/products/online_demos.php) の Getting Started With Vyatta を参考にしてください。

  1. CLI に vyatta でログインします。

  2. インタフェースに IPv4 アドレスを設定します。
    $ configure # 設定モードに入ります。
    # set interfaces ethernet eth0 address 192.168.1.30/24 # アドレスを設定する。
    # set interfaces ethernet eth1 address 172.16.211.254/24 # アドレスを設定する。
    # show interfaces # 設定を確認します。+ で始まる行が変更した行、- で始まる行が削除した行

  3. サービスを有効にします。
    # set service ssh # ssh を有効にする。
    # set service https # https # Web GUI 管理インタフェースを有効にする。
    # show service # 設定を確認します。+ で始まる行が変更した行、- で始まる行が削除した行

  4. システム設定をします。
    # set system host-name Vyatta11 # ホスト名を設定します。
    # set system domain-name example.com # ドメイン名を設定します。
    # set system name-server 8.8.8.8 # DNS サーバを設定します。
    # set system name-server 8.8.4.4 # DNS サーバを設定します。
    # set system time-zone Asia/Tokyo # タイムゾーンを東京に設定します。
    # delete system ntp-server # 既存の NTP サーバの設定を削除します。
    # set system ntp-server ntp.jst.mfeed.ad.jp # NTP サーバを設定します。
    # set system gateway-address 192.168.1.1 # デフォルト ゲートウェイを設定します。
    # show system # 設定を確認します。+ で始まる行が変更した行、- で始まる行が削除した行

  5. 最後に設定を反映して、ファイルに保存します。
    # show # 設定を確認します。+ で始まる行が変更した行、- で始まる行が削除した行
    # commit # 設定を反映する。
    # save # 設定を /opt/vyatta/etc/config/config.boot に保存する。
    # exit # 設定モードを抜けます。

Web GUI 管理インタフェースによる設定

  1. 事前に CLI でインタフェースに IP アドレスを振って service https を有効にしておきます。
  2. Web GUI 管理インタフェースに vyatta ログインします。ブラウザで、https://<設定した IP アドレス>/ にアクセスします。
  3. 左側のツリーを展開して、設定項目を探します。太字になっている項目がデフォルトから変更されている設定です。
  4. 項目に設定を入力し終えたら、[Set] をクリックします。
  5. 設定反映前の項目には、値の右にオレンジの丸が表示されます。[Commit] をクリックして設定を反映します。
  6. [Operation] タブを選択すると、左側のツリーが操作の一覧に代わります。左側のツリーから、ping を選択して、接続性を試験してみましょう。

設定の初期化

$ configure
# load /opt/vyatta/etc/config.boot.default # デフォルトの設定を読み込みます。
# set system login user vyatta authentication plaintext-password PASSWORD # パスワードの再設定
# show # 設定を確認します。
# commit
# save
# exit
$ reboot # 再起動します。


NAT (IP マスカレード) の設定

# set service nat rule 10 type masquerade
# set service nat rule 10 source address 192.168.10.0/24
# set service nat rule 10 outbound-interface eth0
# show service nat
# commit
# save


GRE Tunnel

# set interfaces tunnel tun0 address 192.168.11.1/24
# set interfaces tunnel tun0 local-ip 192.168.200.1
# set interfaces tunnel tun0 remote-ip 192.168.200.2
# set interfaces tunnel tun0 encapsulation gre
# show interfaces tunnel
# commit
# save

Static Routing
# set protocols static route 192.168.0.0/16 next-hop 192.168.200.101
# show protocols static
# commit
# save


Vyatta CLI
  • ログアウトする。
    exit
  • バージョンの確認
    $ show version
  • 再起動
    $ reboot
  • システム停止
    $ sudo shutdown -h now
  • root アカウントのシェル
    $ sudo -i
  • 設定の確認
    $ show configuration
  • 設定モードに入る
    $ configure
  • インタフェースの確認
    $ show interfaces
  • ルーティングを確認
    $ show ip route

2010年7月3日土曜日

VirtualBox をインストールしてみる

Ubuntu 10.04 に Oracle VM VirtualBox をインストールしてみました。

インストール

Linux_Downloads - VirtualBox を参考にインストールします。

カーネルのバージョンアップ時にカーネル モジュールが更新されるように、dkms パッケージをインストールしておきます。大抵はインストール済みだと思います。(dpkg -l dkms でインストールされているか確認できます。)

APT リポジトリを追加します。

$ sudo add-apt-repository 'deb http://download.virtualbox.org/virtualbox/debian lucid non-free'

公開鍵を登録します。

$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

VirtualBox をインストールします。

$ sudo apt-get update
$ sudo apt-get install virtualbox-3.2


仮想マシンのインストール

注意: KVM が動作していると、仮想化支援機能が動作しません。その場合は、KVM を停止しておきます。(sudo service qemu-kvm stop)

[アプリケーション]-[システムツール]-[Oracle VM VirtualBox] で、VirtualBox を起動します。(コマンドで起動するなら、仮想端末から VirtualBox &)

[ファイル]-[環境設定...] で仮想マシンを保存するフォルダなどを設定します。

[新規] ボタンをクリックします。


リモートデスクトップで使用する

仮想マシンの名前を確認する。
$ VBoxManage list vms

仮想マシンを起動する。(ホストマシンの 3389/tcp にリモートデスクトップで接続できます。)
$ VBoxVRDP -s <仮想マシンの名前> &

リモートデスクトップの待ち受けポートを変更するには、-p オプションを使用します。

$ VBoxVRDP -s <仮想マシンの名前> -p <ポート番号> &


参考

2010年5月16日日曜日

Ubuntu 10.04 + KVM + Ubuntu Server Edition JeOS を試してみる

Ubuntu 10.04 上で動作させる KVM で、Ubuntu 10.04 Server Edition JeOS をインストールしてみました。


仮想マシンの作成
  1. 仮想マシンマネージャを起動し、[localhost (QEMU)] を選択した状態で、[New] ボタンをクリックして、仮想マシン作成します。

    (作成例)

    名前: JeOS10
    Choose how you would like to install the operating system: ローカルインストールのメディア (ISO イメージ、又は CDROM)
    Locate your install media: Use ISO image, /somepath/ubuntu-10.04-server-amd64.iso
    OS Type: Linux
    Version: Ubuntu 10.04 (Lucid Lynx)
    Memory (RAM): 128
    CPUs: 1
    Enable storage for this virtual machine: ■ (チェック)
    Select managed or other existing storage: ● (選択), [Browse...] をクリック
    ⇒ ストレージボリュームの検索又は作成: [Storage Pools] を選択し、[New Volume] をクリック
    ⇒ ⇒ 名前: JeOS11.img
    ⇒ ⇒ Format: qcow2 (※ qcow2 なら、スナップショット機能が使える。raw なら単純なフォーマットなので、より効率が良い。)
    ⇒ ⇒ Max Capacity: 8192 MB
    ⇒ ⇒ Allocation: 0 MB
    ⇒ 「ストレージボリュームの検索又は作成」に戻ったら、今作成した [JeOS10.img] を選択し、[Choose Volume] をクリック
    Advanced options
    ⇒ Virtual network 'nat1': NAT to br0
    ⇒ Set a fixed mac address: ■ (チェック)
    ⇒ Virt Type: kvm
    ⇒ Architecture: x86_64


Ubuntu JeOS のインストール

(インストール例)
  1. メモリ 128MB を割り当て、CD-ROM (ubuntu-10.04-server-amd64.iso) をセットした仮想マシンを起動する。
  2. Language: 日本語
  3. [Ubuntu Server をインストールする] が選択された状態で、[F4] (モード) を押し、[最小限の仮想マシンをインストール] を選択する。
  4. [Ubuntu Server をインストールする] が選択された状態で、[Enter] キーを押す。
  5. Keyboard model: Generic 105-key (Intl) PC
  6. Detect keyboard layout?: いいえ
  7. Origin of the keyboard: Japan
  8. Keyboard layout: Japan
  9. ホスト名: JeOS10
  10. Is this time zone correct?: はい
  11. パーティショニングの方法: ガイド - ディスク全体を使う
  12. パーティショニングするディスクの選択: 仮想ディスク 1 (vda) - 8.6 GB Virtio Block Device
  13. ディスクに変更を書きこみますか?: はい
  14. 新しいユーザの本名 (フルネーム): Non Sugar
  15. あなたのアカウントのユーザ名: nonsugar
  16. 新しいユーザのパスワードを選んでください: (パスワード)
  17. 確認のため、再度パスワードを入力してください: (パスワードを再入力)
  18. ホームディレクトリを暗号化しますか?: いいえ
  19. HTTP プロキシの情報 (なければ空): (空欄)
  20. このシステムのアップグレードをどのように管理しますか?: 自動的にアップグレードしない
  21. インストールするソフトウェアの選択: (何も選択しない)
  22. マスターブートレコードに GRUB ブートローダをインストールしますか?: はい
  23. [インストールの完了] 画面で、[続ける] を選択する。
  24. インストールが終了すると、再起動せずに停止してしまうので、仮想マシンマネージャで仮想マシンを選択し、[実行] をクリックする。


Ubuntu でシリアルポートからログインできる設定
  1. /etc/init/ttyS0.conf を作成する。
    $ sudo cp -p /etc/init/tty1.conf /etc/init/ttyS0.conf
    $ sudo vi /etc/init/ttyS0.conf
    ---- ---- ---- ----
    start on stopped rc RUNLEVEL=[2345]
    stop on runlevel [!2345]

    respawn
    exec /sbin/getty -L 115200 ttyS0 vt100
    ---- ---- ---- ----
  2. 再起動する。("sudo reboot")
  3. 以後、"sudo virsh console JeOS10" でシリアルポートからログインできます。


Ubuntu JeOS インストール後の初期設定

  1. 作成したアカウントで、ログインする。

  2. ネットワークの設定を行う。(/etc/network/interfaces, /etc/resolv.conf)

    (設定例)
    [/etc/network/interfaces]
    auto eth0
    iface eth0 inet static
    address A.B.C.D
    netmask A.B.C.D
    gateway A.B.C.D

    [/etc/resolv.conf]
    nameserver 8.8.8.8
    nameserver 8.8.4.4

  3. ネットワーク設定を反映する。
    $ sudo /etc/init.d/networking restart

  4. パッケージをアップグレードする。
    $ sudo apt-get update && sudo apt-get dist-upgrade

  5. 再起動する。
    $ sudo reboot

  6. 必要なパッケージのインストールや設定を行う。
    (例)
    $ sudo apt-get install openssh-server ## ssh でログインできるようにする
    $ sudo apt-get install acpid ## 仮想マシンの停止 (virsh shutdown) ができるようにする
    $ sudo apt-get install vim screen wget telnet traceroute dnsutils tcpdump


仮想マシンの複製

  1. コピー元の仮想マシン OriginalGuest を停止しておく。
  2. virt-clone コマンドで、仮想マシン NewGuest を作成する。(仮想マシンマネージャで、仮想マシンを選択、右クリック [Clone] でも複製できる。)

    Host$ sudo virt-clone -o OriginalGuest -n NewGuest -f /var/kvm_images/NewGuest.img

  3. 仮想マシン NewGuest を起動し、ログインした後、以下のコマンドを実行する。
    NewGuest$ passwd
    NewGuest$ sudo vi /etc/hostname
    NewGuest$ sudo vi /etc/hosts
    NewGuest$ sudo vi /etc/network/interfaces
    NewGuest$ sudo rm /etc/udev/rules.d/70-persistent-net.rules ## MAC アドレスが変更されているので、削除する。再起動後に再生成される。
    NewGuest$ sudo reboot


2010年3月14日日曜日

kvm-img (qemu-img) を使ってみる

KVM で VMware のようにスナップショットが取れないものかと調べていたら、qcow2 形式のイメージなら可能なようです。
スナップショット機能は、検証作業に無くてはならない便利な機能です。


イメージの情報を表示

$ kvm-img info JeOS11.img
image: JeOS11.img
file format: raw
virtual size: 8.0G (8589934592 bytes)
disk size: 903M


イメージの形式を変換

単純な raw 形式から、多機能な qcow2 形式に変換する例を示します。
qcow2 形式は、スナップショットが使えます。

仮想マシンを停止した状態で変換します。

$ sudo mv JeOS11.img JeOS11.img.tmp
$ sudo kvm-img convert -O qcow2 JeOS11.img.tmp JeOS11.img
$ sudo rm JeOS11.img.tmp
$ kvm-img info JeOS11.img
image: JeOS11.img
file format: qcow2
virtual size: 8.0G (8589934592 bytes)
disk size: 926M
cluster_size: 65536


スナップショットの作成

仮想マシンを停止した状態で作業します。

$ sudo kvm-img snapshot -c 20100314#1 JeOS11.img


スナップショットを確認する

$ kvm-img snapshot -l JeOS11.img
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 20100314#1 0 2010-03-14 22:40:34 00:00:00.000


スナップショットに戻る

仮想マシンを停止した状態で作業します。

$ sudo kvm-img snapshot -a 20100314#1 JeOS11.img


スナップショットを削除する

仮想マシンを停止した状態で作業します。

$ sudo kvm-img snapshot -d 20100314#1 JeOS11.img


参考

2010年2月26日金曜日

KVM で、Virtio Windows 用ドライバを試してみる

注意

64ビット版 Windows では、ドライバに署名が必須となるようです。
現在配布されているドライバは署名がされていないので、64ビット版で使うには苦労するようです。


ドライバのインストールの概要

  1. インストール時に使用した NIC を削除し、Virtio NIC を追加します。
  2. ドライバをインストールするために、ダミーの Virtio Disk を追加します。
  3. 仮想マシンを起動し、[新しいハードウェアの検索ウィザード] で、NIC と Disk のドライバをインストールします。
  4. 仮想マシンシャットダウン後、ダミーの Disk を削除します。
  5. 起動ディスクを一度削除したあと、再度 Virtio Disk として起動ディスクのファイルを選択し直します。

ドライバのインストール方法

  1. Windows 用 Virtio ドライバ をダウンロードする。
  2. 仮想マシンをシャットダウンする。
  3. 仮想マシンマネージャー (virt-manager) を起動する。
  4. 対象の仮想マシンを選択し、メニュー Edit > Virtual Machine Datails を選択する。
  5. [Datails] タブで NIC を選択して、[削除] ボタンをクリックする。
  6. [Add Hardware] ボタンをクリックする。
  7. Hardware type: Network、Device Model: virtio で、NIC を追加する。
  8. [Add Hardware] ボタンをクリックする。
  9. Hardware type: Storage、Device Model: Virtio Disk で、ダミーのディスクを追加する。
    手順 3-9 を virsh コマンドで実施することもできる。
    $ virsh edit VirtualMachine

    <interface type="network">
    :
    :
    <model type="virtio"/> ← この行を追加する。
    </interface>

    ダミーのディスクを追加するため、以下 3 行を追加する。(dummy.img は、仮想マシンマネージャーで予め作成しておく。)
    <disk type="file" device="disk">
    <source file='/var/kvm_images/dummy.img'/>
    <target dev="vda" bus="virtio"/>
    </disk>
  10. 仮想マシンを起動する。($ virsh start VirtualMachine)
  11. Administrator で、ログオンする。
  12. [新しいハードウェアの検索ウィザード] が起動するので、NIC と Disk のドライバをインストールする。ウィザードが起動しない場合は、[デバイス マネージャー] を起動して、[SCSI コントローラー] と [イーサネット コントローラー] の [ドライバ ソフトウェアの更新] を実施する。先にダウンロードしたドライバを選択するのだが、OS の種類、32/64ビット毎にフォルダに分かれているので、選択を間違えないようにすること。
  13. 仮想マシンをシャットダウンする。
  14. 仮想マシンマネージャー (virt-manager) で、対象の仮想マシンを選択し、メニュー Edit > Virtual Machine Datails を選択する。
  15. [Datails] タブで、先ほど追加したダミーのディスクを選択して、[削除] ボタンをクリックする。
  16. 起動ディスク (Disk hda) を選択して、[削除] ボタンをクリックする。
  17. [Add Hardware] ボタンをクリックする。
  18. Hardware type: Storage、Device Model: Virtio Disk、Location で、起動ディスクの仮想ディスクを選択し、ディスクを作成する。
  19. Disk vda が作成される。
    手順 14-19 を virsh コマンドで実施することもできる。
    $ virsh edit VitrualMachine

    ダミー用ディスクの部分を削除

    起動ディスクの仮想ディスクを virtoio に変更する。
    <disk type='file' device='disk'>
    <source file='/var/kvm_images/VirtualMachine.img'/>
    <target dev='vda' bus='virtio'/> ← 変更
    </disk>
  20. 仮想マシンを起動する。($ virsh start VitrualMachine)

ベンチマーク
  • ホスト OS: Ubuntu 9.10 (amd64)
  • 仮想マシン: KVM, Windows 7 (x86)
  • CPUs: 2 (x64), Memory: 2GB, HDD: 40GB (ide, raw, 固定サイズ)
  • プロセッサ: 5.8
  • メモリ (RAM): 5.5
  • グラフィックス: 1.0
  • ゲーム用グラフィックス 1.0
  • プライマリ ハードディスク: 5.9
  • ホスト OS: Ubuntu 9.10 (amd64)
  • 仮想マシン: KVM, Windows 7 (x86)
  • CPUs: 2 (x64), Memory: 2GB, HDD: 40GB (virtio, raw, 固定サイズ)
  • プロセッサ: 5.8
  • メモリ (RAM): 5.5
  • グラフィックス: 1.0
  • ゲーム用グラフィックス 1.0
  • プライマリ ハードディスク: 5.9

※ virtio にしても測定結果に変化はありませんでした。


参考

2010年1月31日日曜日

Ubuntu 9.10 で KVM + virsh を試してみる

仮想マシンの作成は、コマンドラインで行うと面倒なので、仮想マシンマネージャーを使うと良いでしょう。
仮想マシンの作成が終わったら、virsh コマンドを使って、仮想マシンを制御するのが便利です。

仮想マシンの デスクトップが必要な場合は、「Virtual Machine Viewer」を使うのが便利です。
例えば、VirtualMachine という名前の仮想マシンに接続するには、仮想マシンを起動した後に、

$ virt-viewer VirtualMachine &

とします。
仮想マシンマネージャーでもデスクトップに接続できますが、制御を仮想マシンに渡しても、[Alt] + [F] などが、仮想マシンマネージャーのメニューに制御が取られてしまいます。
「Virtual Machine Viewer」は、この点が改良されています。
仮想マシンに、キーボード、マウスの制御を渡すには、仮想マシンの画面をクリックします。
仮想マシンから、キーボード、マウスの制御をホスト側に戻すには、[Ctrl] + [Alt] を押します。


virsh コマンドの使い方

以下の例では、操作対象の仮想マシンの名前を VirtualMachine とします。
  • ヘルプを表示する
    $ virsh help
  • 仮想マシンの一覧と現在の状態を表示する (--all オプションで停止中も含める)
    $ virsh list --all
  • 仮想マシンを起動する
    $ virsh start VirtualMachine
  • 仮想マシンをシャットダウンする (ACPI に対応していれば使える)
    $ virsh shutdown VirtualMachine
  • 仮想マシンを一時停止する (ただし、ホストマシン上のメモリは開放されない)
    $ virsh suspend VirtualMachine
  • 仮想マシンを一時停止から再開する
    $ virsh resume VirtualMachine
  • 仮想マシンの電源を切断する (仮想マシンが反応しない場合のみ使用すること)
    $ virsh destory VirtualMachine
  • 仮想マシンの現在の状態を保存する (仮想マシンは停止し、状態がファイルに保存される。ハイバネーションのようなもの。デフォルトでは、AppArmor で任意の場所には保存できないように設定されている。)
    $ virsh save VirtualMachine /path/filename
  • 仮想マシンの状態を復元する
    $ virsh restore /path/filename
  • 仮想マシンのシリアルコンソールに接続する (root 権限が必要)
    $ sudo virsh console VirtualMachine
  • 仮想マシンに接続する際に使用する VNC のディスプレイ番号を調べる
    $ virsh vncdisplay VirtualMachine
  • 仮想マシンの CD-ROM を入れ替える
    $ virsh attach-disk --type cdrom VirtualMachine /path/to/filename.iso hdc
  • 仮想マシンの設定を確認する (xml 形式)
  • $ virsh dumpxml VirtualMachine
  • 仮想マシンの情報を表示する
    $ virsh dominfo VirtualMachine
  • ホストマシンの情報を表示する
    $ virsh nodeinfo
  • 仮想マシンの CPU 情報を表示する
    $ virsh vcpuinfo VirtualMachine

参考

dbench でベンチマークを試してみる

仮想マシンのベンチマークをしてみたくて、dbench (ディスク) と iperf (ネットワーク) を使ってみた。

dbench

$ sudo apt-get install dbench ## インストール

$ debench 5 ## テスト

iperf

$ sudo apt-get install iperf ## インストール

server$ iperf -s ## サーバ側

client$ iperf -c <サーバ IP アドレス> ## クライアント側


結果

ディスクのベンチマークは、仮想マシン上で "dbench 5" を実行しました。
ネットワークのベンチマークは、仮想マシン上で、"iperf -s" を実行し、ホスト OS 上で、"iperf -c <仮想マシンの IP アドレス>" を実行しました。
  • 仮想マシン: KVM, Ubuntu 9.10 (JeOS), CPUs = 1, Memory = 128MB, Disk = virtio, qcow2, NIC = virtio
    ディスク: Throughput 87.0448 MB/sec 5 clients 5 procs max_latency=1549.509 ms
    ネットワーク: Bandwidth 1.05 Gbits/sec
  • 仮想マシン: VMware Server 2.0, Ubuntu 9.10 (JeOS), CPUs = 1, Memory = 128MB, VMware Tools インストール済み
    ディスク: Throughput 247.579 MB/sec 5 clients 5 procs max_latency=223.260 ms
    ネットワーク: 1.14 Gbits/sec
結果は、VMware の方が、KVM よりパフォーマンスが良かったのだが、条件を変えて試してみる必要がありそうだ。


参考

2010年1月30日土曜日

KVM で、Ubuntu JeOS のインストールを試してみる

KVM で、Ubuntu Server Edition JeOS をインストールしてみました。

仮想マシンの作成
  1. 仮想マシンマネージャーを起動し、[localhost (System)] を選択した状態で、[新規] ボタンをクリックして、仮想マシン作成します。

    (作成例)
    Name: JeOS11
    Choose how you would like to install the operating system: Local install media (ISO image or CDROM)
    Locate your install media: Use ISO image, /somepath/ubuntu-9.10-server-amd64.iso
    OS Type: Linux
    Version: Ubuntu 9.10 (Karmic Koala)
    Memory (RAM): 128
    CPUs: 1
    Enable storage for this virtual machine: ■ (チェック)
    Select managed or other existing storage: ● (選択)、[Browse...] をクリック
    Storage Pools: kvm_images を選択し、[New Volume] をクリック
    > Name: JeOS11.img
    > Format: qcow2 (※ qcow2 なら、スナップショット機能が使える。raw なら単純なフォーマットなので、より効率が良い。)
    > Max Capacity: 8192 MB
    > Allocation: 0 MB
    Advanced options: Virtual network 'nat1': NAT to br0
    > Set a fixed mac address: ■ (チェック)
    > Virt Type: kvm
    > Architecture: x86_64


Ubuntu JeOS のインストール

(インストール例)
  1. メモリ 128MB を割り当て、CD-ROM (ubuntu-9.10-server-amd64.iso) をセットした仮想マシンを起動する。
  2. Language: English
  3. [Install Ubuntu Server] が選択された状態で、[F4] キーを押し、[Install a minimal virtual machine] を選択する。
  4. [Install Ubuntu Server] が選択された状態で、[Enter] キーを押す。
  5. Choose language: C
  6. Choose a continent or rigon: Asia
  7. Choose a coutry, territory or area: Japan
  8. Detect keyboard layout?: no
  9. Origin of the keyboard: Japan
  10. Keyboard layout: Japan
  11. Character set to support: . Combined - Latin; Slavic Cyrillic; Hebrew; basic Arabic
  12. Hostname: JeOS11
  13. Partitioning method: Guided - use entire disk
  14. Select disk to partition: Virtual disk 1 (vda) - 8.6 GB Virtio Block Device
  15. Write the changes to disks?: Yes
  16. Full name for the new user: Non Sugar
  17. Username for your account: nonsugar
  18. choose a password for new user: (パスワード)
  19. Re-enter password to verify: (パスワードを再入力)
  20. Encrypt your home directory?: No
  21. HTTP proxy information (blank for none): (空欄)
  22. How do you want to manage upgrades on this system?: No automatic updates
  23. Choose software to install: (何も選択しない)
  24. [Finish the installation] 画面で、continue を選択する。
  25. インストールが終了すると、再起動せずに停止してしまうので、仮想マシンマネージャーのメニューから、[Virtual Machine] > [Run] をクリックする。


Ubuntu でシリアルポートからログインできる設定
  1. /etc/init/ttyS0.conf を作成する。
    $ sudo cp -p /etc/init/tty1.conf /etc/init/ttyS0.conf
    $ sudo vi /etc/init/ttyS0.conf
    ---- ---- ---- ----
    start on stopped rc RUNLEVEL=[2345]
    stop on runlevel [!2345]

    respawn
    exec /sbin/getty -L 115200 ttyS0 vt100
    ---- ---- ---- ----
  2. 再起動する。("reboot")
  3. 以後、"sudo virsh console JeOS11" でシリアルポートからログインできます。


Ubuntu JeOS インストール後の初期設定

  1. 作成したアカウントで、ログインして、パッケージを最新の状態にする。

  2. $ sudo apt-get update && sudo apt-get dist-upgrade

  3. 再起動する。
    $ sudo reboot

  4. ネットワークの設定を行う。(/etc/network/interfaces, /etc/resolv.conf)
    (設定例)
    [/etc/network/interfaces]
    auto eth0
    iface eth0 inet static
    address A.B.C.D
    netmask A.B.C.D
    gateway A.B.C.D

    [/etc/resolv.conf]
    nameserver 8.8.8.8
    nameserver 8.8.4.4
  5. ネットワーク設定を反映する。
    $ sudo /etc/init.d/networking restart

  6. 必要なパッケージのインストールや設定を行う。
    (例)
    $ sudo apt-get install openssh-server ## ssh でログインできるようにする
    $ sudo apt-get install acpid ## 仮想マシンの停止 (virsh shutdown) ができるようにする
    $ sudo apt-get install screen wget vim traceroute telnet dnsutils tcpdump iperf


仮想マシンの複製

  1. コピー元の仮想マシン OriginalGuest を停止しておく。
  2. virt-clone コマンドで、仮想マシン NewGuest を作成する。
    Host$ sudo virt-clone -o OriginalGuest -n NewGuest -f /var/kvm_images/NewGuest.img
  3. 仮想マシン NewGuest を起動し、ログインした後、以下のコマンドを実行する。
    NewGuest$ passwd
    NewGuest$ sudo vi /etc/hostname
    NewGuest$ sudo vi /etc/hosts
    NewGuest$ sudo vi /etc/network/interfaces
    NewGuest$ sudo rm /etc/udev/rules.d/70-persistent-net.rules ## MAC アドレスが変更されているので、削除する。再起動後に再生成される。
    NewGuest$ sudo reboot


Ubuntu 9.10 で KVM + 仮想マシンマネージャーを試してみる

virtio を使った準仮想化がどの程度、パフォーマンスを向上させるか興味があるので、Ubuntu 9.10 での KVM を試してみました。


KVM、仮想マシンマネージャーのインストール

  1. CPU が仮想化支援機能に対応しているか調べます。
    $ egrep --color '(vmx|svm)' /proc/cpuinfo ← 出力があれば対応しています

  2. 必要なパッケージをインストールします。
    $ sudo apt-get install kvm libvirt-bin

  3. ユーザを libvirtd グループに加えます。
    $ sudo adduser $USER libvirtd

  4. libvirtd グループに加わったことを反映するために、ログインしなおし、id コマンドで反映を確認します。
    $ id

  5. virt-manager、virt-viewer をインストールします。
    $ sudo apt-get install virt-manager virt-viewer


仮想マシンマネージャーの起動、設定

  1. [アプリケーション]-[システムツール]-[仮想マシンマネージャー] (virt-manager) を起動します。
    (端末から起動する場合は、"virt-manager &")

  2. [localhost (System)] が選択された状態で、メニューから [Edit] > [Host Details] を選択する。

  3. [Virtual Networks] タブを選択、[Add Network] ボタン ([+] のボタン) をクリックし、新しい仮想ネットワークを作成します。
    (設定ファイルは、/var/lib/libvirt/network/*.xml に作成されます。)

    (作成例)
    Network Name: nat1
    Network: 172.16.211.0/24
    Selecting the DHCP range: 172.16.211.128 (Start), 172.16.211.254 (End)
    Connecting to phisical network: Forwarding to phicical network, NAT to phicical device br0

  4. [default] ネットワークを選択、[Stop Network]、[Delete Network] を順にクリックして、自動的に作成された [default] ネットワークを削除する。

  5. 仮想ディスクを保存する ストレージ プールを作成します。/var/lib/libvirt/images/ のままでよければ、ストレージ プールの作成作業は必要ありません。
    $ sudo mkdir -pm 755 /var/kvm_images

  6. [Host Details] ダイアログの [Storage] タブを選択、[Add Pool] ボタンをクリックします。

    (作成例)
    Name: kvm_images
    Type: dir Filesystem Directory
    Target Path: /mnt/sda2/kvm_images

  7. [default] を選択して、[Autostart] のチェックを外します。[default] を使う場合は、この作業は必要ありません。


参考

2009年11月7日土曜日

Ubuntu 9.10 で VMware Server 2.0.2

Ubuntu 9.10 で VMware Server 2.0.2 をインストールしてみました。インストーラが動作しないので、こちら を参考にインストールします。

  1. カレントディレクトリに、VMware Server のアーカイブ ("VMware-server-2.0.2-*.x86_64.tar.gz") を置く。

  2. インストール用のパッチを適用するスクリプトをダウンロードする。
    $ wget http://codebin.cotescu.com/vmware/vmware-server-2.0.x-kernel-2.6.31-14-install.sh
    $ chmod +x vmware-server-2.0.x-kernel-2.6.31-14-install.sh
    $ sudo ./vmware-server-2.0.x-kernel-2.6.31-14-install.sh ./

  3. インストーラの指示に従ってインストールする。
    ほとんど [Enter] を入力して、既定値を受け入れればよい。
    使用許諾には "yes" を入力する。
    Ubuntu は、root ユーザにパスワードが設定されていないので、VMware Server 用の管理者として一般ユーザを登録しておく。
    シリアル番号の入力を行う。

参考

2009年8月22日土曜日

Ubuntu で VMwaer Server をコマンドラインから操作

Linux 版の VMware Server を使用しているのですが、わざわざブラウザから仮想マシンを起動するのが面倒だったりします。
"vmware-vimsh" というコマンドから操作できます。[Tab] キーによるコマンドの補完が使えます。

ただし、root ユーザ以外で操作する場合は、"/etc/vmware/ssl/rui.key" が読み取れずエラーが出るので、admin グループに読み取り権限を与えます。(操作するユーザは、admin グループに所属している必要がある。)
$ sudo chgrp admin /etc/vmware/ssl/rui.key
$ sudo chmod 440 /etc/vmware/ssl/rui.key
$ sudo /etc/init.d/vmware start ← VMware Server が停止している場合は、起動する。
$ vmware-vimsh ← VMware を操作するためのコマンドライン ツールを起動
[/]$ help COMMAND ← コマンドのヘルプを出力する。
[/]$ vmsvc/getallvms ← 仮想マシンを一覧する。Vmid を調べる
[/]$ vmsvc/power.getstate 16 ← 状態を調べる
[/]$ vmsvc/power.on 16 ← 電源を入れる
[/]$ vmsvc/power.suspend 16 ← サスペンドする
[/]$ vmsvc/power.off 16 ← 電源を切る
[/]$ vmsvc/snapshot.create 16 ← スナップショットを作成
[/]$ vmsvc/snapshot.get 16 ← スナップショットの情報を表示
[/]$ vmsvc/snapshot.revert 16 suppressPowerOff ← スナップショットを復元
[/]$ vmsvc/snapshot.remove 16 ← スナップショットを削除する
[/]$ exit ← vmware-vimsh を抜ける。
(参考)

2009年8月16日日曜日

VMware Server 2.0 と KVM (Kernel Based Virtual Machine) のパフォーマンス比較

あくまで参考程度で。

ホストマシン
  • CPU: AMD Phenom X4 クアッドコア・プロセッサ 9750 (4×512KB L2キャッシュ | 2.40GHz | HyperTransport 3.0)
  • メモリ: 8GB (2GB × 4)
  • ホスト OS: Ubuntu 9.04 (Kernel: 2.6.28-14)
ゲスト OS
  • ゲスト OS: Windows 7 RC 64-bit
  • CPU 数: 2
  • メモリ: 2GB
仮想環境
  • VMware Server: 2.0.1
    ※ Hard Disk - Policies - Write cashing: ● Optimize for performance とする。
    ※ VMware Tools をインストールする。
  • kvm: 1:84+dfsg-0ubuntu12.3
    ※ kvm は、リブート時やシャットダウン時に固まるので、"virsh destroy DOMAIN" で強制終了しなければならない。
Windows エクスペリエンス インデックスの結果
  • VMware Server
    プロセッサ: 5.9
    メモリ (RAM): 5.5
    グラフィックス: 1.0
    ゲーム用グラフィックス: 1.0
    プライマリ ハードディスク: 6.9
  • KVM
    プロセッサ: 5.9
    メモリ (RAM): 5.5
    グラフィックス: 1.0
    ゲーム用グラフィックス: 1.0
    プライマリ ハードディスク: 5.9

2009年6月1日月曜日

CentOS 5 に Plone をインストール

KVM (仮想マシン) で Plone という CMS を CentOS 5 にインストールしてみた。

インストール
  1. CentOS 5 をインストール DVD (CentOS-5.3-x86_64-bin-DVD.iso) でインストールする。
  2. インストーラの boot: プロンプトに「linux text 」と入力し、テキストモードでインストールする。
  3. [Package selection] では最小の構成でインストールしたいので、全てのチェックを外す。
  4. 最初の起動時に [Setup Agent] (setup) が起動するので、適宜設定する。
  5. 最新のパッケージに更新する。
    # yum update
  6. グループの確認
    # yum grouplist
  7. 「開発ツール」をインストールする。
    # yum groupinstall "開発ツール"
  8. ソースをダウンロード、コンパイル、インストールする。
    # wget http://launchpad.net/plone/3.2/3.2.2/+download/Plone-3.2.2-UnifiedInstaller.tgz
    # tar xzf Plone-3.2.2-UnifiedInstaller.tgz
    # cd Plone-3.2.2-UnifiedInstaller
    # ./install.sh standalone
    # iptables -I RH-Firewall-1-INPUT -p tcp --dport 8080 -m state --state NEW -j ACCEPT
    # iptables-save
    # /usr/local/Plone/zinstance/bin/plonectl start

参考

2009年5月27日水曜日

Ubuntu でシリアルポートからログインする

Linux でネットワーク経由で接続できない場合のために、シリアルポートからログインできるようにしておくと便利である。

そうすれば、邪魔なディスプレイもキーボード、マウスも片付けられる。



Ubuntu でシリアルポートからログインする設定



  1. /etc/event.d/ttyS0 を作成する
    $ sudo cp -p /etc/event.d/tty1 /etc/event.d/ttyS0
    $ sudo vi /etc/event.d/ttyS0
    ---- ---- ---- ----
    start on stopped rc2
    start on stopped rc3
    start on stopped rc4
    start on stopped rc5
    stop on runlevel 0
    stop on runlevel 1
    stop on runlevel 6
    respawn
    exec /sbin/getty -L 9600 ttyS0 vt100
    ---- ---- ---- ----



Ubuntu でシリアルポートからログインする設定 (9.10 以降)



  1. /etc/init/ttyS0.conf を作成する
    $ sudo cp -p /etc/init/tty1.conf /etc/init/ttyS0.conf
    $ sudo vi /etc/init/ttyS0.conf
    ---- ---- ---- ----
    start on stopped rc RUNLEVEL=[2345]
    stop on runlevel [!2345]

    respawn
    exec /sbin/getty -L 9600 ttyS0 vt100
    ---- ---- ---- ----



CentOS 5 でシリアルポートからログインする設定



  1. /etc/inittab に次の行を追加する
    S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt100

  2. /etc/securetty に次の行を追加する (root ログインに必要)
    ttyS0


CentOS 6 でシリアルポートからログインする設定






Debian (Lenny) でシリアルポートからログインする設定





  1. /etc/inittab の次の行のコメントを外す
    T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100





KVM でシリアルデバイスを追加する




また、KVM で virtsh 経由でコンソール接続するには、xml ファイルを編集してシリアルデバイスを追加する必要がある。



  1. 仮想マシンの xml ファイルを編集する。(仮想マシン: UbuntuJeOS11 の例)
    $ virsh
    virsh # edit UbuntuJeOS11
    :
    <devices>
    :
    <serial type='pty'>
    <source path='/dev/pts/0'>
    <target port='0'/>
    </serial>
    :
    </devices>

  2. 仮想マシンを起動する。
    virsh # start UbuntuJeOS11
    virsh # quit

  3. コンソールで仮想マシンに接続する。(root 権限が必要。コンソールから抜けるには、ctrl + ])
    sudo virsh console UbuntuJeOS11



参考