今回のゴール
OpenStack上で仮想資源を作った際に、New Relic Infrastructreではどんな風に見えるのか?を見ていきます。今回は物理と仮想ネットワークを中心に確認してみます。
前提
cloud imageのアップロード
OpenStack上にcloud imageをアップロードしておきます。何でもいいのですが今回はUbuntu14を使います。
[root@honoka ~]# glance image-list
+--------------------------------------+-------------+
| ID | Name |
+--------------------------------------+-------------+
| b77d7a67-a68f-42fe-af7f-b5ceec6fc126 | cirros |
| be54e3ba-9f3f-4d37-9a22-e5dc689e795f | Ubuntu14.4 |
| 2e47061d-8e32-4be6-99ac-9dc23e5071fd | Ubuntu16.04 |
+--------------------------------------+-------------+
[root@honoka ~]#
インターフェース情報
前回(その1)の最後の状態から始めます。
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 1000
link/ether 00:0c:29:3c:92:39 brd ff:ff:ff:ff:ff:ff
inet {サーバのIP} brd {ブロードキャストアドレス} scope global ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3c:9239/64 scope link
valid_lft forever preferred_lft forever
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether 92:c4:e8:c3:05:97 brd ff:ff:ff:ff:ff:ff
4: br-tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether 12:0c:03:90:fb:43 brd ff:ff:ff:ff:ff:ff
5: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 00:0c:29:3c:92:39 brd ff:ff:ff:ff:ff:ff
inet {サーバのIP} brd {ブロードキャストアドレス} scope global br-ex
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3c:9239/64 scope link
valid_lft forever preferred_lft forever
6: br-int: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN
link/ether ca:9b:55:3f:de:4e brd ff:ff:ff:ff:ff:ff
#
ovs-vsctl show で仮想マシンとハイパーバイザー外部と通信できるよう、ens160がbr-exに割あたっていることを確認しておきます。
前準備
OpenStack上にcloud imageをアップロードしておきます。何でもいいのですが今回はUbuntu14を使います。
# source admin-openrc
# glance image-list
+--------------------------------------+-------------+
| ID | Name |
+--------------------------------------+-------------+
| b77d7a67-a68f-42fe-af7f-b5ceec6fc126 | cirros |
| be54e3ba-9f3f-4d37-9a22-e5dc689e795f | Ubuntu14.4 |
| 2e47061d-8e32-4be6-99ac-9dc23e5071fd | Ubuntu16.04 |
+--------------------------------------+-------------+
#
仮想資源作成
仮想ネットワークの作成はコマンドで行いました。外部ネットワークと内部ネットワークの接続確認がしやすいからです。こちらを参考にさせて頂きました。
RDO Neutron ネットワークの設定
ルータの作成
# neutron router-create router1
仮想ネットワークの作成
外部ネットワークはadminテナントに所属し、プライベートネットワークはservicesに所属させることにします。
# openstack project list
+----------------------------------+----------+
| ID | Name |
+----------------------------------+----------+
| a9621341aecb44e49110c456b75045b8 | admin |
| b39b2ab8bdec41bfa1062d29b21357b6 | services |
+----------------------------------+----------+
#
# neutron net-create public --router:external --tenant-id a9621341aecb44e49110c456b75045b8
# neutron net-create demo-net --shared --tenant-id 30f2cc33d5f8405895e5558b077a86c6
#
ネットワークサブネットの登録
# neutron subnet-create --name public_subnet --enable_dhcp=False \
--allocation-pool=start=172.16.0.115,end=172.16.0.119 --gateway=172.16.0.253 public 172.16.0.0/24
# neutron subnet-create --name demo-net_subnet --enable_dhcp=True \
--allocation-pool=start=192.168.1.100,end=192.168.1.254 --gateway=192.168.1.1 \
--dns-nameserver 8.8.8.8 demo-net 192.168.1.0/24
ゲートウェイの設定
neutron router-gateway-set router1 public
外部ネットワークと内部ネットワークの接続
# neutron router-interface-add router1 subnet=demo-net_subnet
仮想ルータが作られたことを確認
# ip netns
qrouter-f3e74f75-0fb6-4797-acdb-b553f7c874e6
qdhcp-d137a5f0-171c-481e-9761-81b12bf71b09
#
# ip netns exec `ip netns|grep qrouter` ip r
default via 172.16.0.253 dev qg-38c8b13d-d4
172.16.0.0/24 dev qg-38c8b13d-d4 proto kernel scope link src 172.16.0.117
192.168.1.0/24 dev qr-db18e68a-8a proto kernel scope link src 192.168.1.1
# ip netns exec `ip netns|grep qrouter` ping -c 3 -I qg-38c8b13d-d4 172.16.0.117
# ip netns exec `ip netns|grep qrouter` ping -c 3 -I qr-db18e68a-8a 192.168.1.1
# ip netns exec `ip netns|grep qrouter` ping -c 3 -I qg-38c8b13d-d4 8.8.8.8
インスタンス起動
仮想マシンの作成はHorizonから行いました。Ubuntu14をsmallで起動。鍵をopenstack.pemとして取得します。
Floating IPを172.16.0.118として割り当てました。
仮想マシンへのログインと外部通信ができることを確認
仮想マシンへのアクセスには鍵が必要です。openstack.pemの権限設定も必要です。
# ssh -i openstack.pem ubuntu@172.16.0.118
ubuntu@ubuntu14:~$
ubuntu@ubuntu14:~$
ubuntu@ubuntu14:~$ sudo apt-get update
仮想資源作成後
最初と比較して仮想ネットワーク資源が加わったことが確認できます。
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP qlen 1000
link/ether 00:0c:29:3c:92:39 brd ff:ff:ff:ff:ff:ff
inet 172.16.0.120/24 brd 172.16.0.255 scope global ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3c:9239/64 scope link
valid_lft forever preferred_lft forever
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether 92:c4:e8:c3:05:97 brd ff:ff:ff:ff:ff:ff
4: br-tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether 12:0c:03:90:fb:43 brd ff:ff:ff:ff:ff:ff
5: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 00:0c:29:3c:92:39 brd ff:ff:ff:ff:ff:ff
inet 172.16.0.120/24 brd 172.16.0.255 scope global br-ex
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3c:9239/64 scope link
valid_lft forever preferred_lft forever
6: br-int: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN
link/ether ca:9b:55:3f:de:4e brd ff:ff:ff:ff:ff:ff
22: qbr4cd007cd-86: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP
link/ether e6:d7:db:a5:3b:45 brd ff:ff:ff:ff:ff:ff
23: qvo4cd007cd-86@qvb4cd007cd-86: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast master ovs-system state UP qlen 1000
link/ether de:dc:ec:6f:f7:5d brd ff:ff:ff:ff:ff:ff
inet6 fe80::dcdc:ecff:fe6f:f75d/64 scope link
valid_lft forever preferred_lft forever
24: qvb4cd007cd-86@qvo4cd007cd-86: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast master qbr4cd007cd-86 state UP qlen 1000
link/ether e6:d7:db:a5:3b:45 brd ff:ff:ff:ff:ff:ff
inet6 fe80::e4d7:dbff:fea5:3b45/64 scope link
valid_lft forever preferred_lft forever
25: tap4cd007cd-86: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast master qbr4cd007cd-86 state UNKNOWN qlen 500
link/ether fe:16:3e:48:06:a0 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc16:3eff:fe48:6a0/64 scope link
valid_lft forever preferred_lft forever
#
Infrastructureでの見え方
物理基盤側からみたネットワークが表示されることがわかります。仮想マシンから外部にpingを打ち続けるとOVSのインターーフェースなどに通信が流れている状態が確認されました。さすがにOpenStack上のネットワーク名で表示されるわけではありませんが、負荷順にグラフが表示されますので障害の可視化・早期特定に貢献しそうです。
今回は以上です。