Skip to content

RYU OpenStack environment VM image file Japanese HOWTO

hiya-m edited this page May 18, 2012 · 2 revisions

RYU OpenStack environment VM image file Japanese HOWTO

■ 動作環境

  • ホストOS: ubuntu12.04
  • 必要なパッケージ: kvm, virtinst

■ VMイメージファイルの入手先

http://sourceforge.net/projects/ryu/files/vmimages/ryuvm.qcow2/download (the size is 217.9 MB)

■ 使い方

[all in one node] + [compute node] の2台構成を構築します。

[compute node] の構築手順を繰り返すことで、3台、4台とノードを増やすことができます。

1. イメージファイルのコピー

ダウンロードしたイメージファイルを適切な場所へコピーします。

$ sudo cp ryuvm.qcow2 /var/lib/libvirt/images/ryu1.qcow2
$ sudo cp ryuvm.qcow2 /var/lib/libvirt/images/ryu2.qcow2

2. all in one node の構築

2.1 VMの作成

virt-installを使ってVMを作成します。

$ sudo virt-install --name ryu1 --ram 1024 --vcpus 1 --import --os-type linux \
--os-variant ubuntuprecise --disk path=/var/lib/libvirt/images/ryu1.qcow2 \
--network network=default --hvm --virt-type kvm --arch x86_64 --nographics

新しくVMが作成されて自動起動し、ログインプロンプトが表示されます。

"Escape character is ^]" と表示されたら'Enter'を入力します。

Starting install...
Creating domain...
Connected to domain ryuvm
Escape character is ^]    <------------- press [Enter]

Ubuntu 12.04 LTS ryu ttyS0

ryu login:

ユーザ名/パスワードにubuntu/ubuntuを入力してログインします。

ryu login: ubuntu
Password: 

ログインプロンプトを抜けるには、Ctrl+"]"を入力します。

再度VMにログインするには、"virsh console "コマンドを実行します。

$ sudo virsh console ryu1

2.2 VMの設定

2.2.1. IPアドレスの設定

デフォルトではDHCPでIPアドレスを取得するようになっているので、これを固定IPアドレスに変更します。

$ sudo vi /etc/network/intarefaces

下記の例では、192.168.122/24 のサブネットを使用して、192.168.122.10 を割り当てています。

iface eth0 inet static
      address 192.168.122.10
      netmask 255.255.255.0
      gateway 192.168.122.1
      dns-nameservers 192.168.122.1

2.2.2. ホスト名の変更

デフォルトでは"ryu"となっています。実害はありませんが、以下の手順で変更することができます。

$ sudo sh -c 'echo ryu1 > /etc/hostname'
$ sudo sed -i 's/ryu/ryu1/g' /etc/hosts

2.2.3. VMの再起動

VMをrebootすると、再起動後にコマンドプロンプトが表示されます。

$ sudo reboot
The system is going down for halt NOW!

Ubuntu 12.04 LTS ryu ttyS0

ryu1 login:

2.3 devstackの実行

devstack (http://devstack.org) を使用して、openstack環境を構築することができます。

2.3.1 devstack環境設定

再度VMにログインします。~/devstack/localrcを編集し、SERVICE_HOSTの値を変更します。

$ cd devstack
$ vi localrc

SERVICE_HOSTには、all in one node のIP addressを設定します。

SERVICE_HOST=192.168.122.10

2.3.2 devstack起動

devstackを起動します。

$ ./stack.sh

3. compute node の構築

手順は "2.all in one node の構築" と同じです。

IP address は all in one node と同じサブネットのアドレスを指定して下さい。

iface eth0 inet static
      address 192.168.122.11
      netmask 255.255.255.0
      gateway 192.168.122.1
      dns-nameservers 192.168.122.1

4. openstack環境の使用例

実際にopenstack上でインスタンスを起動します。 tenant-idは"demo"と"mode"が用意されており、同一のtenant-idをもつインスタンス同士のみがアクセス可能となっています。

環境変数を設定します。

$ source eucarc admin admin

[all in one node] と [compute node] 上でnova-computeが動作していることを確認します。

$ euca-describe-availability-zones  verbose
AVAILABILITYZONE        nova    available
AVAILABILITYZONE        |- ryu1
AVAILABILITYZONE        | |- nova-compute       enabled :-) 2012-05-14 03:13:41
AVAILABILITYZONE        | |- nova-cert          enabled :-) 2012-05-14 03:13:42
AVAILABILITYZONE        | |- nova-volume        enabled :-) 2012-05-14 03:13:44
AVAILABILITYZONE        | |- nova-scheduler     enabled :-) 2012-05-14 03:13:47
AVAILABILITYZONE        | |- nova-network       enabled :-) 2012-05-14 03:13:44
AVAILABILITYZONE        | |- nova-consoleauth   enabled :-) 2012-05-14 03:13:42
AVAILABILITYZONE        |- ryu2
AVAILABILITYZONE        | |- nova-compute       enabled :-) 2012-05-14 03:13:47

起動するインスタンスのimage-idを確認します。

$  euca-describe-images | grep ami
IMAGE   ami-00000002    None (cirros-0.3.0-x86_64-uec)          available ...
        ^^^^^^^^^^^^

tenant-id:"demo" のインスタンスを、[all in one node] と [compute node] でそれぞれ1つ、起動します。

$ source eucarc demo demo
$ euca-run-instances -t mini -z nova:ryu1 ami-00000002
$ euca-run-instances -t mini -z nova:ryu2 ami-00000002
$ nova list
+--------------------------------------+----------+--------+----------+
|                  ID                  |   Name   | Status | Networks |
+--------------------------------------+----------+--------+----------+
| c319f802-5367-433c-a4f2-a5aecf047914 | Server 2 | BUILD  |          |
| dd2e8072-fbad-44b7-8779-e840ade6e988 | Server 1 | BUILD  |          |
+--------------------------------------+----------+--------+----------+

起動後しばらくするとインスタンスが起動し、StatusがBUILD→ACTIVEに変わります。

$ nova list
+--------------------------------------+----------+--------+---------------+
|                  ID                  |   Name   | Status |    Networks   |
+--------------------------------------+----------+--------+---------------+
| c319f802-5367-433c-a4f2-a5aecf047914 | Server 2 | ACTIVE | demo=10.0.1.3 |
| dd2e8072-fbad-44b7-8779-e840ade6e988 | Server 1 | ACTIVE | demo=10.0.1.2 |
+--------------------------------------+----------+--------+---------------+

tenant-id:"mode"のインスタンスも同様に起動します。

$ source eucarc mode mode
$ euca-run-instances -t mini -z nova:ryu1 ami-00000002
$ euca-run-instances -t mini -z nova:ryu2 ami-00000002
$ nova list
+--------------------------------------+----------+--------+---------------+
|                  ID                  |   Name   | Status |    Networks   |
+--------------------------------------+----------+--------+---------------+
| 869f734a-adf1-4092-bbe1-037aec2940e1 | Server 3 | ACTIVE | mode=10.0.2.2 |
| 99689a55-467e-4203-a618-7384f16ab7dc | Server 4 | ACTIVE | mode=10.0.2.3 |
+--------------------------------------+----------+--------+---------------+

4つのインスタンスが起動していることを確認します。

$ source eucarc admin admin
$ nova list --all_tenants
+--------------------------------------+----------+--------+----------------+
|                  ID                  |   Name   | Status |    Networks    |
+--------------------------------------+----------+--------+----------------+
| 869f734a-adf1-4092-bbe1-037aec2940e1 | Server 3 | ACTIVE | mode=10.0.2.2  |
| 99689a55-467e-4203-a618-7384f16ab7dc | Server 4 | ACTIVE | mode=10.0.2.3  |
| c319f802-5367-433c-a4f2-a5aecf047914 | Server 2 | ACTIVE | demo=10.0.1.3  |
| dd2e8072-fbad-44b7-8779-e840ade6e988 | Server 1 | ACTIVE | demo=10.0.1.2  |
+--------------------------------------+----------+--------+----------------+

下図のような構成でインスタンスが起動しています。

<--- all in one node ---> <---- compute node  ---->
+----------+ +----------+ +----------+ +----------+
| Server 1 | | Server 3 | | Server 2 | | Server 4 |
| 10.0.1.2 | | 10.0.2.2 | | 10.0.1.3 | | 10.0.2.3 | 
+----------+ +----------+ +----------+ +----------+
|   demo   | |   mode   | |   demo   | |   mode   |
+----------+-+----------+ +----------+-+----------+
|       devstack        | |       devstack        |
+-----------------------+ +-----------------------+

tenant-id:"demo"上のインスタンス同士でアクセスが可能なことを確認します。

インスタンスのlogin userは"cirros"、passwordは"cubswin:)"です。

$ ssh [email protected] "ping -c3 10.0.1.3"
The authenticity of host '10.0.1.3 (10.0.1.2)' can't be established.
RSA key fingerprint is d9:f9:3b:28:7b:62:7a:03:17:1e:af:c5:1b:80:37:f4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.1.3' (RSA) to the list of known hosts.
[email protected]'s password: cubswin:)
PING 10.0.1.3 (10.0.1.3): 56 data bytes
64 bytes from 10.0.1.3: seq=0 ttl=64 time=10.102 ms
64 bytes from 10.0.1.3: seq=1 ttl=64 time=2.126 ms
64 bytes from 10.0.1.3: seq=2 ttl=64 time=1.615 ms

--- 10.0.1.3 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.752/5.534/13.029 ms

tenant-id:"demo"上のインスタンスから、tenant-id:"mode"上のインスタンスへはアクセスできないことを確認します。

$ ssh [email protected] "ping -c3 10.0.2.2"
[email protected]'s password: cubswin:)
PING 10.0.2.2 (10.0.2.2): 56 data bytes

--- 10.0.2.2 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss


$ ssh [email protected] "ping -c3 10.0.2.3"
[email protected]'s password: cubswin:)
PING 10.0.2.3 (10.0.2.3): 56 data bytes

--- 10.0.2.3 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss

同様に、tenant-id:"mode"上のインスタンス同士、"mode"から"demo"へのアクセスを確認します。

$ ssh [email protected] "ping -c3 10.0.2.2"
[email protected]'s password: cubswin:)
PING 10.0.2.2 (10.0.2.2): 56 data bytes
64 bytes from 10.0.2.2: seq=0 ttl=64 time=4.671 ms
64 bytes from 10.0.2.2: seq=1 ttl=64 time=1.845 ms
64 bytes from 10.0.2.2: seq=2 ttl=64 time=1.749 ms

--- 10.0.2.2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.749/2.755/4.671 ms


$ ssh [email protected] "ping -c3 10.0.1.2"
[email protected]'s password:
PING 10.0.1.2 (10.0.1.2): 56 data bytes

--- 10.0.1.2 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss


$ ssh [email protected] "ping -c3 10.0.1.3"
[email protected]'s password:
PING 10.0.1.3 (10.0.1.3): 56 data bytes

--- 10.0.1.3 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
Clone this wiki locally