はじめに
前回の記事「ProxmoxVE上でOpenNebulaをOneDeploy(Ansible)で構築してみた」で構築した環境を使って、実際に仮想マシンを作成してみます。
前提条件
- OpenNebula 7.0 が正常にインストールされていること
- ネットワークブリッジ (
br0) が正しく設定されていること - 仮想ネットワーク
admin_netが利用可能であること - データストアの
TM_MADがsshに設定されていること - SSH 鍵認証が
oneadminユーザーで設定されていること
【画像掲載位置】記事のサムネイル画像
1. OpenNebula サービスの確認
まず、OpenNebula の各サービスが正常に動作しているか確認します。
1.1 oneadmin ユーザーへの切り替え
Frontend (nebula-f1) で、flathill ユーザーから oneadmin ユーザーに切り替えます:
sudo -i -u oneadmin
ユーザー切り替えコマンドの実行結果
flathill@nebula-f1:~$ sudo -i -u oneadmin
1.2 ホストの確認
onehost list
期待される出力:
ID NAME CLUSTER RVM ALLOCATED_CPU ALLOCATED_MEM STAT
0 192.168.11.111 default 0 0 / 400 (0%) 0K / 7.7G (0%) on
1 192.168.11.112 default 0 0 / 400 (0%) 0K / 7.7G (0%) on
onehost list の実行結果
oneadmin@nebula-f1:~$ onehost list
ID NAME CLUSTER TVM ALLOCATED_CPU ALLOCATED_MEM STAT
1 192.168.11.111 default 0 0 / 400 (0%) 0K / 7.7G (0%) on
0 192.168.11.112 default 0 0 / 400 (0%) 0K / 7.7G (0%) on
すべてのホストの STAT が on であることを確認します。
1.3 データストアの確認
onedatastore list
期待される出力:
ID NAME SIZE AVAIL CLUSTER IMAGES TYPE DS TM
2 files - - - 0 fil fs ssh
1 default 98.3G 77% - 0 img fs ssh
0 system 98.3G 77% - 0 sys - ssh
onedatastore list の実行結果
oneadmin@nebula-f1:~$ onedatastore list
ID NAME SIZE AVA CLUSTERS IMAGES TYPE DS TM STAT
2 files 96.4G 86% 0 0 fil fs ssh on
1 default 96.4G 86% 0 0 img fs ssh on
0 system - - 0 0 sys - ssh on
重要: すべてのデータストアの TM が ssh になっていることを確認します。もし local になっている場合は、前回の記事「8. データストア設定の検証と修正」を参照して修正してください。
# 詳細確認
onedatastore show 0 | grep TM_MAD
onedatastore show 1 | grep TM_MAD
両方とも TM_MAD : ssh となっていることを確認します。
TM_MAD の確認結果
oneadmin@nebula-f1:~$ onedatastore show 0 | grep TM_MAD
TM_MAD : ssh
TM_MAD="ssh"
oneadmin@nebula-f1:~$ onedatastore show 1 | grep TM_MAD
TM_MAD : ssh
TM_MAD="ssh"
1.4 仮想ネットワークの確認
onevnet list
期待される出力:
ID USER GROUP NAME CLUSTERS BRIDGE STATE LEASES
0 oneadmin oneadmin admin_net 0 br0 rdy 0
onevnet list の実行結果
oneadmin@nebula-f1:~$ onevnet list
ID USER GROUP NAME CLUSTERS BRIDGE STATE LEASES OUTD ERRO
0 oneadmin oneadmin admin_net 0 br0 rdy 0 0 0
STATE が rdy (ready) であることを確認します。
詳細情報を確認:
onevnet show admin_net
onevnet show admin_net の実行結果
oneadmin@nebula-f1:~$ onevnet show admin_net
VIRTUAL NETWORK 0 INFORMATION
ID : 0
NAME : admin_net
USER : oneadmin
GROUP : oneadmin
LOCK : None
CLUSTERS : 0
BRIDGE : br0
STATE : READY
VN_MAD : bridge
PHYSICAL DEVICE : enp6s18
AUTOMATIC VLAN ID : NO
AUTOMATIC OUTER VLAN ID : NO
USED LEASES : 0
PERMISSIONS
OWNER : um-
GROUP : ---
OTHER : ---
VIRTUAL NETWORK TEMPLATE
BRIDGE="br0"
BRIDGE_TYPE="linux"
DNS="1.1.1.1"
GATEWAY="192.168.11.1"
NETWORK_ADDRESS="192.168.11.0"
NETWORK_MASK="255.255.255.0"
OUTER_VLAN_ID=""
PHYDEV="enp6s18"
SECURITY_GROUPS="0"
VLAN_ID=""
VN_MAD="bridge"
ADDRESS RANGE POOL
AR 0
SIZE : 48
LEASES : 0
RANGE FIRST LAST
MAC 02:00:c0:a8:0b:80 02:00:c0:a8:0b:af
IP 192.168.11.128 192.168.11.175
LEASES
AR OWNER MAC IP PORT_FORWARD IP6
VIRTUAL ROUTERS
VIRTUAL MACHINES
UPDATED :
OUTDATED :
ERROR :
以下の情報が正しく設定されていることを確認:
-
BRIDGE:br0 -
NETWORK ADDRESS:192.168.11.0 -
NETWORK MASK:255.255.255.0 -
GATEWAY:192.168.11.1 -
LEASES: IP アドレス範囲 (例: 192.168.11.128 ~ 192.168.11.175)
2. テンプレートの準備
OpenNebula Marketplace から Alpine Linux イメージをダウンロードします。これは軽量でテストに最適です。
2.1 Marketplace の確認
onemarket list
期待される出力:
ID NAME SIZE AVAIL MARKET STATE
0 OpenNebula Public - yes 0 on
onemarket list の実行結果
oneadmin@nebula-f1:~$ onemarket list
ID NAME SIZE AVAIL APPS MAD ZONE STAT
1 Linux Containers 0M - 0 linuxco 0 off
0 OpenNebula Public 0M - 127 one 0 on
2.2 イメージのダウンロード
OpenNebula MarketplaceからAlpine Linuxをダウンロードします。
onemarketapp export -d default 'Alpine Linux 3.17' alpine.
onemarketapp export の実行結果
oneadmin@nebula-f1:~$ onemarketapp export -d default 'Alpine Linux 3.17' alpine
IMAGE
ID: 0
VMTEMPLATE
ID: 0
2.3 イメージの確認
oneimage list
期待される出力:
ID USER GROUP NAME DATASTORE SIZE TYPE PER STAT RVMS
0 oneadmin oneadmin Alpine Linux... default 528M OS No rdy 0
oneimage list の実行結果
oneadmin@nebula-f1:~$ oneimage list
ID USER GROUP NAME DATASTORE SIZE TYPE PER STAT RVMS
0 oneadmin oneadmin alpine. default 256M OS No rdy 0
STAT が rdy になるまで待ちます。lock や used の場合はまだダウンロード中です。
3. テスト VM の作成
VM をインスタンス化します。
3.1 VM の作成
onetemplate instantiate --nic admin_net alpine
期待される出力:
VM ID: 0
onetemplate instantiate の実行結果
oneadmin@nebula-f1:~$ onetemplate instantiate --nic admin_net alpine
VM ID: 0
3.2 VM ステータスの確認
onevm list
期待される出力:
ID USER GROUP NAME STAT UCPU UMEM HOST TIME
0 oneadmin oneadmin alpine-test-1 runn 0 512M 192.168.11.111 0d 00h01
onevm list の実行結果
oneadmin@nebula-f1:~$ onevm list
ID USER GROUP NAME STAT CPU MEM HOST TIME
0 oneadmin oneadmin alpine-0 runn 1 128M 192.168.11.111 0d 00h00
STAT が runn (running) になれば VM は起動しています。
ステータスの遷移:
-
pend(pending): VM 作成待ち -
hold(hold): ユーザーによる保留 -
prol(prolog): ディスクイメージの転送中 -
boot(boot): ブート処理中 -
runn(running): 実行中 -
fail(failed): エラー
もし fail になった場合は、トラブルシューティングセクションを参照してください。
3.3 VM 詳細情報の確認
onevm show 0
onevm show の実行結果
oneadmin@nebula-f1:~$ onevm show 0
VIRTUAL MACHINE 0 INFORMATION
ID : 0
NAME : alpine-0
USER : oneadmin
GROUP : oneadmin
STATE : ACTIVE
LCM_STATE : RUNNING
LOCK : None
RESCHED : No
HOST : 192.168.11.111
CLUSTER ID : 0
CLUSTER : default
START TIME : 12/04 02:51:20
END TIME : -
DEPLOY ID : 590a6f57-0671-4bf1-ae13-6bec6e0f546a
VIRTUAL MACHINE MONITORING [Thu Dec 4 02:52:23 2025]
METRIC VALUE FORECAST FORECAST_FAR
CPU 1.0 0.5 -
MEMORY 174.3M 174.3M -
NETTX 0K - -
NETTX_BW 0K 0K -
NETRX 138K - -
NETRX_BW 2K 2K -
DISKRDBYTES 38.8G - -
DISKRDBYTES_BW 1024K 1024K -
DISKRDIOPS 1499 - -
DISKRDIOPS_BW 0.16 0.16 -
DISKWRBYTES 352M - -
DISKWRBYTES_BW 1.5M 1.5M -
DISKWRIOPS_BW 0.35 0.35 -
DISKWRIOPS 64 - -
GPU_COUNT - - -
GPU_UTILIZATION - - -
GPU_MEMORY_UTILIZATI - - -
GPU_MEMORY_FREE - - -
GPU_POWER_USAGE - - -
VM_QEMU_PING : QEMU Guest Agent monitoring disabled
PERMISSIONS
OWNER : um-
GROUP : ---
OTHER : ---
VM DISKS
ID DATASTORE TARGET IMAGE SIZE TYPE SAVE
0 default vda alpine 66M/256M file NO
1 - hda CONTEXT 1M/- - -
VM NICS
ID NETWORK BRIDGE IP MAC PCI_ID
0 admin_net br0 192.168.11.128 02:00:c0:a8:0b:80
SECURITY
NIC_ID NETWORK SECURITY_GROUPS
0 admin_net 0
SECURITY GROUP TYPE PROTOCOL NETWORK RANGE
ID NAME VNET START SIZE
0 default OUTBOUND ALL
0 default INBOUND ALL
VIRTUAL MACHINE HISTORY
SEQ UID REQ HOST ACTION DS START TIME PROLOG
0 - - 192.168.11.1 none 0 12/04 02:51:25 0d 00h01m 0h00m02s
USER TEMPLATE
HYPERVISOR="kvm"
LOGO="images/logos/linux.png"
LXD_SECURITY_PRIVILEGED="true"
SCHED_REQUIREMENTS="HYPERVISOR=kvm"
VIRTUAL MACHINE TEMPLATE
AUTOMATIC_DS_REQUIREMENTS="(\"CLUSTERS/ID\" @> 0)"
AUTOMATIC_NIC_REQUIREMENTS="(\"CLUSTERS/ID\" @> 0)"
AUTOMATIC_REQUIREMENTS="(CLUSTER_ID = 0) & !(PIN_POLICY = PINNED)"
CONTEXT=[
DISK_ID="1",
ETH0_DNS="1.1.1.1",
ETH0_EXTERNAL="",
ETH0_GATEWAY="192.168.11.1",
ETH0_IP="192.168.11.128",
ETH0_IP6="",
ETH0_IP6_GATEWAY="",
ETH0_IP6_METHOD="",
ETH0_IP6_METRIC="",
ETH0_IP6_PREFIX_LENGTH="",
ETH0_IP6_ULA="",
ETH0_MAC="02:00:c0:a8:0b:80",
ETH0_MASK="255.255.255.0",
ETH0_METHOD="",
ETH0_METRIC="",
ETH0_MTU="",
ETH0_NETWORK="192.168.11.0",
ETH0_SEARCH_DOMAIN="",
ETH0_VLAN_ID="",
ETH0_VROUTER_IP="",
ETH0_VROUTER_IP6="",
ETH0_VROUTER_MANAGEMENT="",
NETWORK="YES",
SSH_PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCOuT3on4z/2lDzDQ6NjoMxwy2awKSAdCni35Lfpy+Ucnzot8JQLDtiQhkpRC3Bz5jeG7aLZZgn920WrMnyqyzigOQMvgsgZQJ+k3klY3tb5uEIqiyOmd1ea1TRzq9nvoJUrkBxvNIabRXrw5tUQSccBDw3RCNaGB3rl+Z5iVBEV2R7gyRSj2OXJKilmnC6pDEH0Q62N28uHjH6fvygjPNDVY9RPg78FnCDfuYV6zMZhmZZSrQeI6tLG5I5XlnNp8xo9IAjrVfJ43yLmSFsD3ytLjTfJJMQ+vGcaCmPsbBvze1PWqbjQpiMPfZjsqIaJm7DQutIknvkbYmU+LUqlEzqEIW++FwaubACDVfk5Z/I7VP+90rKaZQdWCBmUUDiA1z3sgYRfzYfj8TDGoUv4LpafzU908TAYjpGKnNypsSR3u2KCMkUGLkx1DiopjK4DXyK5BMkgjQ17NPfafCBADw5nuqf0VsxGKDbpypeJ5ud41Vxz1nvuqCn1l681Awv2Hk= oneadmin@nebula-f1",
TARGET="hda" ]
CPU="1"
GRAPHICS=[
LISTEN="0.0.0.0",
PORT="5900",
TYPE="vnc" ]
MEMORY="128"
NIC_DEFAULT=[
MODEL="virtio" ]
OS=[
ARCH="x86_64",
UUID="590a6f57-0671-4bf1-ae13-6bec6e0f546a" ]
TEMPLATE_ID="3"
TM_MAD_SYSTEM="ssh"
VMID="0"
以下の情報を確認:
-
状態 (STATE):
ACTIVE/RUNNING -
IP アドレス:
192.168.11.xxx(admin_net の範囲内) -
ホスト (HOST):
192.168.11.111または192.168.11.112 - VNC ポート: VNC 接続用のポート番号
IP アドレスをメモしておきます (後で使用します)。
4. ネットワーク接続の確認
4.1 VM への ping テスト
Frontend (nebula-f1) から VM に ping します:
# onevm show で確認した VM の IP アドレスを使用
ping -c 1 192.168.11.128
期待される出力:
PING 192.168.11.xxx (192.168.11.xxx) 56(84) bytes of data.
64 bytes from 192.168.11.xxx: icmp_seq=1 ttl=64 time=0.5 ms
64 bytes from 192.168.11.xxx: icmp_seq=2 ttl=64 time=0.4 ms
64 bytes from 192.168.11.xxx: icmp_seq=3 ttl=64 time=0.3 ms
ping テストの成功結果
oneadmin@nebula-f1:~$ ping -c 1 192.168.11.128
PING 192.168.11.128 (192.168.11.128) 56(84) bytes of data.
64 bytes from 192.168.11.128: icmp_seq=1 ttl=64 time=0.225 ms
--- 192.168.11.128 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.225/0.225/0.225/0.000 ms
ping が通れば、VM のネットワーク設定は正常です。
4.2 VM への SSH 接続
Alpine Linux のデフォルトユーザーは root です:
ssh root@192.168.11.128
初回接続時はホスト鍵の確認があるので yes と入力します。
SSH 接続の成功画面
oneadmin@nebula-f1:~$ ssh root@192.168.11.128
Warning: Permanently added '192.168.11.128' (ED25519) to the list of known hosts.
VM 内で以下のコマンドを実行して動作確認:
# ホスト名確認
hostname
# IP アドレス確認
ip a
# インターネット接続確認
ping -c 1 8.8.8.8
VM 内でのコマンド実行結果
localhost:~# hostname
localhost
localhost:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 02:00:c0:a8:0b:80 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.128/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::c0ff:fea8:b80/64 scope link
valid_lft forever preferred_lft forever
localhost:~# ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=118 time=22.637 ms
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 22.637/22.637/22.637 ms
確認が終わったら VM から抜けます:
exit
5. Sunstone WebUI での確認
5.1 Sunstone へのアクセス
ブラウザで以下にアクセス:
http://192.168.11.110:2616
-
ユーザー名:
oneadmin -
パスワード:
opennebulapass
5.2 VM ダッシュボード
左メニューから Instances → VMs をクリックします。
作成した VM (alpine-test-1) が表示され、状態が RUNNING になっていることを確認します。
5.3 VM 詳細画面
VM 名をクリックして詳細画面を開きます。
以下の情報を確認:
- Info: VM の基本情報 (CPU, メモリ, 状態など)
- Storage: ディスク使用状況
- Network: IP アドレス, MAC アドレス
- Monitoring: CPU/メモリ使用率のグラフ
- Log: VM 作成/起動時のログ
5.4 VNC コンソール
VM一覧画面右の VNC アイコンをクリックすると、VNC 経由で VM のコンソールにアクセスできます。
ログインプロンプトが表示されれば、VM は正常に動作しています。
6. 複数 VM の作成
負荷分散やホスト配置を確認するため、複数の VM を作成します。
6.1 2つ目の VM を作成
onetemplate instantiate alpine --name alpine-test-2
oneadmin@nebula-f1:~$ onetemplate instantiate alpine --name alpine-test-2
VM ID: 1
6.2 3つ目の VM を作成
onetemplate instantiate alpine --name alpine-test-3
oneadmin@nebula-f1:~$ onetemplate instantiate alpine --name alpine-test-3
VM ID: 2
6.3 VM 一覧の確認
onevm list
期待される出力:
ID USER GROUP NAME STAT UCPU UMEM HOST TIME
2 oneadmin oneadmin alpine-test-3 runn 0 512M 192.168.11.112 0d 00h01
1 oneadmin oneadmin alpine-test-2 runn 0 512M 192.168.11.111 0d 00h01
0 oneadmin oneadmin alpine-test-1 runn 0 512M 192.168.11.112 0d 00h05
複数 VM の一覧
oneadmin@nebula-f1:~$ onevm list
ID USER GROUP NAME STAT CPU MEM HOST TIME
2 oneadmin oneadmin alpine-test-3 prol 1 128M 192.168.11.111 0d 00h00
1 oneadmin oneadmin alpine-test-2 runn 1 128M 192.168.11.112 0d 00h00
0 oneadmin oneadmin alpine-0 runn 1 128M 192.168.11.111 0d 00h12
OpenNebula のスケジューラーが自動的に VM を複数のホストに分散配置していることが確認できます。
6.4 ホストリソースの確認
onehost list
期待される出力:
ID NAME CLUSTER RVM ALLOCATED_CPU ALLOCATED_MEM STAT
0 192.168.11.111 default 2 200 / 400 (50%) 1.0G / 7.7G (13%) on
1 192.168.11.112 default 1 100 / 400 (25%) 512M / 7.7G (6%) on
ホストリソースの使用状況
oneadmin@nebula-f1:~$ onehost list
ID NAME CLUSTER TVM ALLOCATED_CPU ALLOCATED_MEM STAT
1 192.168.11.111 default 2 200 / 400 (50%) 256M / 7.7G (3%) on
0 192.168.11.112 default 1 100 / 400 (25%) 128M / 7.7G (1%) on
RVM (Running VMs) 列で各ホストで稼働している VM 数が確認できます。
7. VM の基本操作
7.1 VM の停止
onevm poweroff alpine-test-2
onevm poweroff の実行結果
oneadmin@nebula-f1:~$ onevm poweroff alpine-test-2
確認:
onevm list
alpine-test-2 の STAT が poff (powered off) になります。
停止後の VM 一覧
oneadmin@nebula-f1:~$ onevm list
ID USER GROUP NAME STAT CPU MEM HOST TIME
2 oneadmin oneadmin alpine-test-3 runn 1 128M 192.168.11.111 0d 00h02
1 oneadmin oneadmin alpine-test-2 poff 1 128M 192.168.11.112 0d 00h02
0 oneadmin oneadmin alpine-0 runn 1 128M 192.168.11.111 0d 00h14
7.2 VM の再開
onevm resume alpine-test-2
onevm resume の実行結果
oneadmin@nebula-f1:~$ onevm resume alpine-test-2
確認:
onevm list
alpine-test-2 の STAT が再び runn になります。
再開後の VM 一覧
oneadmin@nebula-f1:~$ onevm list
ID USER GROUP NAME STAT CPU MEM HOST TIME
2 oneadmin oneadmin alpine-test-3 runn 1 128M 192.168.11.111 0d 00h02
1 oneadmin oneadmin alpine-test-2 runn 1 128M 192.168.11.112 0d 00h03
0 oneadmin oneadmin alpine-0 runn 1 128M 192.168.11.111 0d 00h15
7.3 VM の再起動
onevm reboot alpine-0
onevm reboot の実行結果
oneadmin@nebula-f1:~$ onevm reboot alpine-0
7.4 VM の削除
onevm terminate alpine-test-3
onevm terminate の実行結果
oneadmin@nebula-f1:~$ onevm terminate alpine-test-3
確認:
onevm list
alpine-test-3 が一覧から削除されます。
削除後の VM 一覧
oneadmin@nebula-f1:~$ onevm list
ID USER GROUP NAME STAT CPU MEM HOST TIME
2 oneadmin oneadmin alpine-test-3 shut 1 128M 192.168.11.111 0d 00h05
1 oneadmin oneadmin alpine-test-2 runn 1 128M 192.168.11.112 0d 00h05
0 oneadmin oneadmin alpine-0 runn 1 128M 192.168.11.111 0d 00h17
oneadmin@nebula-f1:~$ onevm list
ID USER GROUP NAME STAT CPU MEM HOST TIME
2 oneadmin oneadmin alpine-test-3 epil 1 128M 192.168.11.111 0d 00h05
1 oneadmin oneadmin alpine-test-2 runn 1 128M 192.168.11.112 0d 00h05
0 oneadmin oneadmin alpine-0 runn 1 128M 192.168.11.111 0d 00h17
oneadmin@nebula-f1:~$ onevm list
ID USER GROUP NAME STAT CPU MEM HOST TIME
1 oneadmin oneadmin alpine-test-2 runn 1 128M 192.168.11.112 0d 00h05
0 oneadmin oneadmin alpine-0 runn 1 128M 192.168.11.111 0d 00h17
8. VM の監視とログ
8.1 VM モニタリング情報
onevm show 0 --json
VM モニタリング情報の JSON 出力
oneadmin@nebula-f1:~$ onevm show 0 --json
{
"VM": {
"ID": "0",
"UID": "0",
"GID": "0",
"UNAME": "oneadmin",
"GNAME": "oneadmin",
"NAME": "alpine-0",
"PERMISSIONS": {
"OWNER_U": "1",
"OWNER_M": "1",
"OWNER_A": "0",
"GROUP_U": "0",
"GROUP_M": "0",
"GROUP_A": "0",
"OTHER_U": "0",
"OTHER_M": "0",
"OTHER_A": "0"
},
"LAST_POLL": "1764817933",
"STATE": "3",
"LCM_STATE": "3",
"PREV_STATE": "3",
"PREV_LCM_STATE": "3",
"RESCHED": "0",
"STIME": "1764816680",
"ETIME": "0",
"DEPLOY_ID": "590a6f57-0671-4bf1-ae13-6bec6e0f546a",
"MONITORING": {
"CPU": "2.0",
"CPU_FORECAST": "2.45",
"DISKRDBYTES": "81220204",
"DISKRDBYTES_BW": "0.0",
"DISKRDBYTES_BW_FORECAST": "32742.24",
"DISKRDIOPS": "3047",
"DISKRDIOPS_BW": "0.0",
"DISKRDIOPS_BW_FORECAST": "1.25",
"DISKWRBYTES": "949248",
"DISKWRBYTES_BW": "99.1",
"DISKWRBYTES_BW_FORECAST": "514.48",
"DISKWRIOPS": "352",
"DISKWRIOPS_BW": "0.06",
"DISKWRIOPS_BW_FORECAST": "0.24",
"DISK_SIZE": [
{
"ID": "0",
"SIZE": "66"
},
{
"ID": "1",
"SIZE": "1"
}
],
"ID": "0",
"MEMORY": "184916",
"MEMORY_FORECAST": "181512.39",
"NETRX": "3181421",
"NETRX_BW": "2543.29",
"NETRX_BW_FORECAST": "4654.77",
"NETTX": "53321",
"NETTX_BW": "37.94",
"NETTX_BW_FORECAST": "39.5",
"TIMESTAMP": "1764817933",
"VM_QEMU_PING": "QEMU Guest Agent monitoring disabled"
},
"SCHED_ACTIONS": {},
"TEMPLATE": {
"AUTOMATIC_DS_REQUIREMENTS": "(\"CLUSTERS/ID\" @> 0)",
"AUTOMATIC_NIC_REQUIREMENTS": "(\"CLUSTERS/ID\" @> 0)",
"AUTOMATIC_REQUIREMENTS": "(CLUSTER_ID = 0) & !(PIN_POLICY = PINNED)",
"CONTEXT": {
"DISK_ID": "1",
"ETH0_DNS": "1.1.1.1",
"ETH0_EXTERNAL": "",
"ETH0_GATEWAY": "192.168.11.1",
"ETH0_IP": "192.168.11.128",
"ETH0_IP6": "",
"ETH0_IP6_GATEWAY": "",
"ETH0_IP6_METHOD": "",
"ETH0_IP6_METRIC": "",
"ETH0_IP6_PREFIX_LENGTH": "",
"ETH0_IP6_ULA": "",
"ETH0_MAC": "02:00:c0:a8:0b:80",
"ETH0_MASK": "255.255.255.0",
"ETH0_METHOD": "",
"ETH0_METRIC": "",
"ETH0_MTU": "",
"ETH0_NETWORK": "192.168.11.0",
"ETH0_SEARCH_DOMAIN": "",
"ETH0_VLAN_ID": "",
"ETH0_VROUTER_IP": "",
"ETH0_VROUTER_IP6": "",
"ETH0_VROUTER_MANAGEMENT": "",
"NETWORK": "YES",
"SSH_PUBLIC_KEY": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCOuT3on4z/2lDzDQ6NjoMxwy2awKSAdCni35Lfpy+Ucnzot8JQLDtiQhkpRC3Bz5jeG7aLZZgn920WrMnyqyzigOQMvgsgZQJ+k3klY3tb5uEIqiyOmd1ea1TRzq9nvoJUrkBxvNIabRXrw5tUQSccBDw3RCNaGB3rl+Z5iVBEV2R7gyRSj2OXJKilmnC6pDEH0Q62N28uHjH6fvygjPNDVY9RPg78FnCDfuYV6zMZhmZZSrQeI6tLG5I5XlnNp8xo9IAjrVfJ43yLmSFsD3ytLjTfJJMQ+vGcaCmPsbBvze1PWqbjQpiMPfZjsqIaJm7DQutIknvkbYmU+LUqlEzqEIW++FwaubACDVfk5Z/I7VP+90rKaZQdWCBmUUDiA1z3sgYRfzYfj8TDGoUv4LpafzU908TAYjpGKnNypsSR3u2KCMkUGLkx1DiopjK4DXyK5BMkgjQ17NPfafCBADw5nuqf0VsxGKDbpypeJ5ud41Vxz1nvuqCn1l681Awv2Hk= oneadmin@nebula-f1",
"TARGET": "hda"
},
"CPU": "1",
"DISK": [
{
"ALLOW_ORPHANS": "YES",
"CLONE": "YES",
"CLONE_TARGET": "SYSTEM",
"CLUSTER_ID": "0",
"DATASTORE": "default",
"DATASTORE_ID": "1",
"DEV_PREFIX": "vd",
"DISK_ID": "0",
"DISK_SNAPSHOT_TOTAL_SIZE": "0",
"DISK_TYPE": "FILE",
"DRIVER": "qcow2",
"FORMAT": "qcow2",
"IMAGE": "alpine",
"IMAGE_ID": "3",
"IMAGE_STATE": "2",
"LN_TARGET": "SYSTEM",
"ORIGINAL_SIZE": "256",
"PERSISTENT_SNAPSHOTS": "YES",
"READONLY": "NO",
"SAVE": "NO",
"SIZE": "256",
"SOURCE": "/var/lib/one//datastores/1/27db6357c422d1a2d4ff506adda5ca52",
"TARGET": "vda",
"TM_MAD": "ssh",
"TYPE": "FILE"
}
],
"GRAPHICS": {
"LISTEN": "0.0.0.0",
"PORT": "5900",
"TYPE": "vnc"
},
"MEMORY": "128",
"NIC": [
{
"AR_ID": "0",
"BRIDGE": "br0",
"BRIDGE_TYPE": "linux",
"CLUSTER_ID": "0",
"DNS": "1.1.1.1",
"GATEWAY": "192.168.11.1",
"IP": "192.168.11.128",
"MAC": "02:00:c0:a8:0b:80",
"MODEL": "virtio",
"NAME": "NIC0",
"NETWORK": "admin_net",
"NETWORK_ID": "0",
"NIC_ID": "0",
"PHYDEV": "enp6s18",
"SECURITY_GROUPS": "0",
"TARGET": "one-0-0",
"VN_MAD": "bridge"
}
],
"NIC_DEFAULT": {
"MODEL": "virtio"
},
"OS": {
"ARCH": "x86_64",
"UUID": "590a6f57-0671-4bf1-ae13-6bec6e0f546a"
},
"SECURITY_GROUP_RULE": [
{
"PROTOCOL": "ALL",
"RULE_TYPE": "OUTBOUND",
"SECURITY_GROUP_ID": "0",
"SECURITY_GROUP_NAME": "default"
},
{
"PROTOCOL": "ALL",
"RULE_TYPE": "INBOUND",
"SECURITY_GROUP_ID": "0",
"SECURITY_GROUP_NAME": "default"
}
],
"TEMPLATE_ID": "3",
"TM_MAD_SYSTEM": "ssh",
"VMID": "0"
},
"USER_TEMPLATE": {
"HYPERVISOR": "kvm",
"LOGO": "images/logos/linux.png",
"LXD_SECURITY_PRIVILEGED": "true",
"SCHED_REQUIREMENTS": "HYPERVISOR=kvm"
},
"HISTORY_RECORDS": {
"HISTORY": {
"OID": "0",
"SEQ": "0",
"HOSTNAME": "192.168.11.111",
"HID": "1",
"CID": "0",
"STIME": "1764816685",
"ETIME": "0",
"VM_MAD": "kvm",
"TM_MAD": "ssh",
"DS_ID": "0",
"PLAN_ID": "-1",
"ACTION_ID": "0",
"PSTIME": "1764816685",
"PETIME": "1764816687",
"RSTIME": "1764816687",
"RETIME": "0",
"ESTIME": "0",
"EETIME": "0",
"ACTION": "0",
"UID": "-1",
"GID": "-1",
"REQUEST_ID": "-1"
}
},
"BACKUPS": {
"BACKUP_CONFIG": {},
"BACKUP_IDS": {}
}
}
}
リアルタイムの CPU, メモリ, ディスク, ネットワーク使用率が取得できます。
8.2 VM ログの確認
onevm show 0 --xml | grep -A 10 '<LOG>'
VM ログの出力
oneadmin@nebula-f1:~$ onevm show 0 --xml | grep -A 10 '<LOG>'
VM の作成・起動時のログが表示され、エラーが発生した場合はここに詳細が記録されます。
8.3 Sunstone でのモニタリング
Sunstone の VM 詳細画面の Info タブで、グラフィカルにリソース使用状況を確認できます。
まとめ
OpenNebula 7.0 でテスト VM を作成し、以下を確認しました:
- サービスの正常動作確認: ホスト, データストア, 仮想ネットワーク
- イメージのダウンロード: OpenNebula Marketplace から Alpine Linux イメージを取得
- VM テンプレートの作成: カスタムテンプレートの作成方法
- VM の作成と起動: CLI と Sunstone WebUI での操作
- ネットワーク接続確認: ping と SSH でのアクセス
- 複数 VM の作成: ホストへの自動分散配置
- VM の基本操作: 停止, 再開, 再起動, 削除
- モニタリングとログ: リソース使用状況の確認
OpenNebula の基本的な使い方を理解できたので、次は以下のステップに進めます:
- カスタム VM イメージの作成
- より高度なネットワーク構成 (VLAN, 複数ネットワーク)
- 自動スケーリングやロードバランシング
- ストレージバックエンドの追加 (Ceph など)



