การติดตั้ง OpenStack Mitaka ด้วย VirtualBox บน Notebook ที่มี Ram 8 GB (Part 7) 1

Blog ก่อนหน้า Part 6

ดู video (แบบง่วงๆ) ประกอบได้ที่ youtube openstack8GB playlist

ใน Blog นี้เราจะแสดงการใช้งาน OpenStack ที่ นศ เพิ่งติดตั้งเสร็จ ก่อนอื่นมีสิ่งหนึ่งที่ต้องระลึกไว้คือ RAM ของ notebook ที่ใช้มีขนาดจำกัดคือ 8 GB ดังนั้นในการใช้งานผมจะพยายามใช้วิธี สร้าง VM และทำอะไรอื่นๆที่ใช้ resource ประหยัดที่สุด

สิ่งหนึ่งที่ผมรู้จากประสบการณ์คือ novnc ที่ OpenStack ใช้รันเป็น VM console เพื่อให้ นศ login เข้า VM หรือใช้ VM ทาง browser ได้นั้นใช้ CPU resource และ network มากกว่าการ ssh ดังนั้นหลังจากสร้าง VM ขึ้นมาแล้ว ผมจะใช้ ssh เข้าไปใช้งาน VM นั้นแทนที่จะใช้ novnc console

1. login เข้า OpenStack Horizon

จากนี้ไป นศ สามารถใช้ openstack ได้ทาง

http://"IP address ของ host ony network บนเตรื่อง controller host"/horizon/ 

เช่น http://192.168.90.77/horizon/

จากที่ผ่านมาตอนติดตั้ง ใน stage 10 ได้มีการสร้าง user “admin” และ “demo” ขึ้นมาซึ่งเรากำหนดไว้แต่แรกใน install-paramrc.sh แล้วว่าให้มันมี Password คือ “adminpassword” และ “demopassword” ตามลำดับ ดังนั้น นศ สามารถ login เข้า user ทั้งสองนี้ได้ ความแตกต่างคือ admin มี role เป็น admin ทำอะไรได้มากกว่า demo เป็น user ธรรมดา (domain เป็น “default” ทั้งคู่)

นอกจากนั้น ขอทบทวนด้วยว่า ใน stage 31 ได้มีการสร้าง network เริ่มต้นสำหรับ OpenStack ของคุณไว้ได้แก่ ext-net คือ External Network สำหรับต่อ OpenStack cluster ของคุณออกสู่โลกภายนอก ผ่าน ISP whatever นอกจากนั้น ยังมีการสร้าง virtual network สำหรับ “demo” user ชื่อว่า demo-net และ virtual router ชื่อว่า demo-router ขึ้นด้วย (ขอให้ นศ ดูคำสั่ง OpenStack CLI สำหรับสร้าง virtual network และ virtual router จาก script ใน stage 31 นั้นได้)

2. ทดสอบการสร้าง VM และ virtual network ขั้นต้น

นศ สามารถลองทำสิ่งเหล่านี้ด้วย Dashboard เพื่อทดสอบว่า OpenStack ที่ติดตั้งใช้งานได้และมี High Availability Network แบบ Distributed Virtual Router (DVR)

  • อันแรก login เข้า admin
  • เปิด port ssh กับ icmp ใน “default” security group
  • สร้าง virtual network ชื่อ “localnet1” และสร้าง virtual router ชื่อ “router1” ต่อมันเข้าด้วยกัน และต่อ router ออก “ext-net” external network
  • สร้าง cirros virtual machine ให้ชื่อว่า “cirros1” ให้มี tiny flavor และต่อกับ “localnet1”
  • allocate Floating IP 1 อัน และ associate มันเข้ากับ “cirros1” VM
  • ssh หรือ putty จากเครื่อง notebook ของคุณ เข้าเครื่อง controller ผ่าน host-only network และ จาก controller ssh ไปยัง floating IP ของ “cirros1”
  • บน cirros1 ให้ ping www.google.com หรือ wget http://www.google.com เพื่อทดสอบการเข้าถึง internet
  • ให้สร้างเครื่อง cirros2 vm ขึ้น บน localnet1
  • ให้ ssh จากเครือง cirros1 ไปยังเครื่อง cirros2 และลอง ping www.google.com แล้วดูว่าโอเคหรือไม่

3. ทดสอบ High Availability ของ DVR

  • ให้ power off เครื่อง network
  • จากตอนที่แล้ว นศ กำลัง ssh อยู่ใน cirros2 ให้ลอง ping www.google.com ว่ายังทำได้หรือไม่ (ถ้าไม่ได้ให้ตอยว่าทำไม และถามด้วยว่าทำไม นศ จึงสามารถใช้ cirros2 ได้อยู่ทั้งๆที่ network host โดนปิดไปแล้ว)
  • ให้ exit (logount) ออกจาก cirros2 กลับมาที่ cirros1 แล้วลองใช้ ping www.google.com จะเห็นว่าทำได้ตามปกติ (ทำไม)
  • ให่ start เครื่อง network ขึ้นมาใหม่
  • หลังจากนั้น ให้ ssh จาก cirros1 ไป cirros2 อีกที และลอง ping www.googl.com อีกครั้งก็จะทำได้ เพราะเหตุใด

3. Trouble shooting เกี่ยวกับ nova

ถ้ามี error เกิดขึ้นตอนที่พยายามจะ launch cirros VM ขอให้ดูว่ามี nova-compute agent รันอยู่ที่ compute host หรือไม่

บนเครื่อง controller

$ cd OPSInstaller/controller
$ source ./admin-openrc.sh 
$ openstack compute service list
+----+------------------+------------+----------+----------+-------+----------------------------+
| Id | Binary           | Host       | Zone     | Status   | State | Updated At                 |
+----+------------------+------------+----------+----------+-------+----------------------------+
|  4 | nova-consoleauth | controller | internal | enabled  | up    | 2016-12-23T17:23:51.000000 |
|  5 | nova-scheduler   | controller | internal | enabled  | up    | 2016-12-23T17:23:51.000000 |
|  6 | nova-conductor   | controller | internal | enabled  | up    | 2016-12-23T17:23:49.000000 |
|  7 | nova-compute     | compute    | nova     | disabled | down  | 2016-12-23T16:03:11.000000 |
+----+------------------+------------+----------+----------+-------+----------------------------+
$

ถ้า nova บน compute node มีปัญหามันจะ down อันนี้อาจเกิดขึ้นได้บน notebook ของคุณเมื่อ memory ไม่พอ คุณอาจต้อง restart nova-compute โดย ssh ไปที่เครื่อง compute node และ restart nova-compute service

$ ssh openstack@10.0.0.31
password: 
$ cd OPSInstaller/compute/
$ sudo service nova-compute restart
stop: Unknown instance:
nova-compute start/running, process 15220
$
$ exit

กลับมาที่เครื่อง controller

$  openstack compute service list
+----+------------------+------------+----------+---------+-------+----------------------------+
| Id | Binary           | Host       | Zone     | Status  | State | Updated At                 |
+----+------------------+------------+----------+---------+-------+----------------------------+
|  4 | nova-consoleauth | controller | internal | enabled | up    | 2016-12-23T17:41:51.000000 |
|  5 | nova-scheduler   | controller | internal | enabled | up    | 2016-12-23T17:41:51.000000 |
|  6 | nova-conductor   | controller | internal | enabled | up    | 2016-12-23T17:41:49.000000 |
|  7 | nova-compute     | compute    | nova     | enabled | up    | 2016-12-23T17:41:45.000000 |
+----+------------------+------------+----------+---------+-------+----------------------------+
$ 

3. Trouble shooting เกี่ยวกับ neutron บนเครื่อง network

cirros vm ของคุณอาจมีปัญหาไม่สามารถ ping www.google.com ได้ ปัญหาหนึ่งอาจเกิดจาก network agent เช่น l3 agent ไม่ทำงาน เช็คได้ที่เครื่อง controller โดย

 
$ cd OPSInstaller/controller
$ source ./admin-openrc.sh 
$ neutron agent-list
+--------------------------------------+--------------------+---------+-------------------+-------+----------------+---------------------------+
| id                                   | agent_type         | host    | availability_zone | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+---------+-------------------+-------+----------------+---------------------------+
| 37704a87-d668-461b-96b0-48cc556ef7c1 | DHCP agent         | network | nova              | :-)   | True           | neutron-dhcp-agent        |
| 4359e27a-8fa2-496a-9236-26038e215570 | Open vSwitch agent | compute |                   | :-)   | True           | neutron-openvswitch-agent |
| 8842d747-b7d0-42e4-b5d4-a5f1f0f94595 | L3 agent           | compute | nova              | :-)   | True           | neutron-l3-agent          |
| 9cbd0dd3-9483-4f21-adbd-83145ab70fca | Metadata agent     | compute |                   | :-)   | True           | neutron-metadata-agent    |
| da560a59-6e84-4d22-87a2-552eea6d589c | Open vSwitch agent | network |                   | :-)   | True           | neutron-openvswitch-agent |
| e7267760-599a-4d22-8ceb-9d7873bace73 | Metadata agent     | network |                   | :-)   | True           | neutron-metadata-agent    |
| f421918a-bc97-4946-935c-1195f506fe44 | L3 agent           | network | nova              | xxx   | True           | neutron-l3-agent          |
+--------------------------------------+--------------------+---------+-------------------+-------+----------------+---------------------------+
$

จากตัวอย่างข้างบนจะเห็นว่า L3 agent บนเครื่อง network down คือมี status “XXX” แทนที่จะเป็นหน้ายิ้ม

ผมจะ login เข้าไปที่เครือง network และ restart agent ทั้งหมด

$ ssh 10.0.0.21
password: 
$
$ cd OPSInstaller/network
$ ดูตัวอย่าง cat  exe-stage27-SUDO-ovs-service.sh
$
$ $ sudo service neutron-openvswitch-agent restart
neutron-openvswitch-agent stop/waiting
neutron-openvswitch-agent start/running, process 19743
$ sudo service neutron-l3-agent restart
neutron-l3-agent stop/waiting
neutron-l3-agent start/running, process 20195
$ sudo service neutron-dhcp-agent restart
neutron-dhcp-agent stop/waiting
neutron-dhcp-agent start/running, process 20799
$ sudo service neutron-metadata-agent restart
neutron-metadata-agent stop/waiting
neutron-metadata-agent start/running, process 20948
$ 
$ exit

กลับมาที่เครื่อง controller

$ 
$ neutron agent-list
+--------------------------------------+--------------------+---------+-------------------+-------+----------------+---------------------------+
| id                                   | agent_type         | host    | availability_zone | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+---------+-------------------+-------+----------------+---------------------------+
| 37704a87-d668-461b-96b0-48cc556ef7c1 | DHCP agent         | network | nova              | :-)   | True           | neutron-dhcp-agent        |
| 4359e27a-8fa2-496a-9236-26038e215570 | Open vSwitch agent | compute |                   | :-)   | True           | neutron-openvswitch-agent |
| 8842d747-b7d0-42e4-b5d4-a5f1f0f94595 | L3 agent           | compute | nova              | :-)   | True           | neutron-l3-agent          |
| 9cbd0dd3-9483-4f21-adbd-83145ab70fca | Metadata agent     | compute |                   | :-)   | True           | neutron-metadata-agent    |
| da560a59-6e84-4d22-87a2-552eea6d589c | Open vSwitch agent | network |                   | :-)   | True           | neutron-openvswitch-agent |
| e7267760-599a-4d22-8ceb-9d7873bace73 | Metadata agent     | network |                   | :-)   | True           | neutron-metadata-agent    |
| f421918a-bc97-4946-935c-1195f506fe44 | L3 agent           | network | nova              | :-)   | True           | neutron-l3-agent          |
+--------------------------------------+--------------------+---------+-------------------+-------+----------------+---------------------------+
$

มีหน้ายิ้มหมดทุกอัน แสดงว่าโอเต

One comment on “การติดตั้ง OpenStack Mitaka ด้วย VirtualBox บน Notebook ที่มี Ram 8 GB (Part 7)

  1. Pingback: การติดตั้ง OpenStack Mitaka ด้วย VirtualBox บน Notebook ที่มี Ram 8 GB (Part 6) ← Science Cloud Community

Leave a Reply