USB Redirection hack on “Two Node Controller&Compute Neutron GRE+OVS” Fedora 20 Cluster

 
    I clearly understand that only incomplete  Havana RDO setup allows me to activate spice USB redirection communicating with cloud instances. There is no dashboard ( Administrative Web Console ) on Cluster. All information regarding nova instances status, neutron subnets,routers,ports is supposed to be obtained via CLI as well as managing instances, subnets,routers,ports and rules is also supposed to be done via CLI, having  carefully watch sourcing “keystonerc_user”  file to manage in environment of particular user of particular tenant.    Also I have to mention that  to create new instance I must have in `nova list` no more then four entries. Then I will be able create new one instance for sure.  It has been tested on two  “Two Node Neutron GRE+OVS Systems” It is related with `nova quota-show`  for tenant (10 instances is default ). Having 3 vms on Compute I brought up openstack-nova-compute on Controller and was able to create 2 vms more on Compute and 5 vms on Controller. View https://ask.openstack.org/en/question/11746/openstack-nova-scheduler-service-cannot-any-longer-connect-to-amqp-server-performing-nova-boot-on-fedora-20/
Manual Setup  ( view [2]  http://bderzhavets.blogspot.com/2014/01/setting-up-two-physical-node-openstack.html )
- Controller node: Nova, Keystone, Cinder, Glance, Neutron (using Open vSwitch plugin and GRE tunneling )
– Compute node: Nova (nova-compute), Neutron (openvswitch-agent)

dwf02.localdomain   -  Controller (192.168.1.127)

dwf01.localdomain   -  Compute   (192.168.1.137)

[root@dfw02 ~(keystone_admin)]$ openstack-status

== Nova services ==

openstack-nova-api:                     active

openstack-nova-cert:                    inactive  (disabled on boot)
openstack-nova-compute:                 inactive  (disabled on boot)
openstack-nova-network:                 inactive  (disabled on boot)
openstack-nova-scheduler:               active
openstack-nova-volume:                  inactive  (disabled on boot)
openstack-nova-conductor:               active
== Glance services ==
openstack-glance-api:                   active
openstack-glance-registry:              active
== Keystone service ==
openstack-keystone:                     active
== neutron services ==
neutron-server:                         active
neutron-dhcp-agent:                     active
neutron-l3-agent:                       active
neutron-metadata-agent:                 active
neutron-lbaas-agent:                    inactive  (disabled on boot)
neutron-openvswitch-agent:              active
neutron-linuxbridge-agent:              inactive  (disabled on boot)
neutron-ryu-agent:                      inactive  (disabled on boot)
neutron-nec-agent:                      inactive  (disabled on boot)
neutron-mlnx-agent:                     inactive  (disabled on boot)
== Cinder services ==
openstack-cinder-api:                   active
openstack-cinder-scheduler:             active
openstack-cinder-volume:                active
== Ceilometer services ==
openstack-ceilometer-api:               inactive  (disabled on boot)
openstack-ceilometer-central:           inactive  (disabled on boot)
openstack-ceilometer-compute:           active
openstack-ceilometer-collector:         inactive  (disabled on boot)
openstack-ceilometer-alarm-notifier:    inactive  (disabled on boot)
openstack-ceilometer-alarm-evaluator:   inactive  (disabled on boot)
== Support services ==
mysqld:                                 inactive  (disabled on boot)
libvirtd:                               active
openvswitch:                            active
dbus:                                   active
tgtd:                                   active
qpidd:                                  active
== Keystone users ==
+———————————-+———+———+——-+
|                id                |   name  | enabled | email |
+———————————-+———+———+——-+
| 970ed56ef7bc41d59c54f5ed8a1690dc |  admin  |   True  |       |
| 162021e787c54cac906ab3296a386006 |  boris  |   True  |       |
| 1beeaa4b20454048bf23f7d63a065137 |  cinder |   True  |       |
| 006c2728df9146bd82fab04232444abf |  glance |   True  |       |
| 5922aa93016344d5a5d49c0a2dab458c | neutron |   True  |       |
| af2f251586564b46a4f60cdf5ff6cf4f |   nova  |   True  |       |
+———————————-+———+———+——-+

== Glance images ==

+————————————–+———————————+————-+——————+————-+——–+
| ID                                   | Name                            | Disk Format | Container Format | Size        | Status |
+————————————–+———————————+————-+——————+————-+——–+
| a6e8ef59-e492-46e2-8147-fd8b1a65ed73 | CentOS 6.5 image                | qcow2       | bare             | 344457216   | active |
| dc992799-7831-4933-b6ee-7b81868f808b | CirrOS31                        | qcow2       | bare             | 13147648    | active |
| 03c9ad20-b0a3-4b71-aa08-2728ecb66210 | Fedora 19 x86_64                | qcow2       | bare             | 237371392   | active |
| de93ee44-4085-4111-b022-a7437da8feac | Fedora 20 image                 | qcow2       | bare             | 214106112   | active |
| e70591fc-6905-4e57-84b7-4ffa7c001864 | Ubuntu Server 13.10             | qcow2       | bare             | 244514816   | active |
| b7d54434-1cc6-4770-82f3-c8619952575c | Ubuntu Trusty Tar 02/23/14      | qcow2       | bare             | 261029888   | active |
| 07071d00-fb85-4b32-a9b4-d515088700d0 | Windows Server 2012 R2 Std Eval | vhd         | bare             | 17182752768 | active |
+————————————–+———————————+————-+——————+————-+——–+

== Nova managed services ==

+—————-+——————-+———-+———+——-+—————————-+—————–+
| Binary         | Host              | Zone     | Status  | State | Updated_at                 | Disabled Reason |
+—————-+——————-+———-+———+——-+—————————-+—————–+
| nova-scheduler | dfw02.localdomain | internal | enabled | up    | 2014-02-28T06:32:03.000000 | None            |
| nova-conductor | dfw02.localdomain | internal | enabled | up    | 2014-02-28T06:32:03.000000 | None            |
| nova-compute   | dfw01.localdomain | nova     | enabled | up    | 2014-02-28T06:31:59.000000 | None            |
+—————-+——————-+———-+———+——-+—————————-+—————–+

== Nova networks ==

+————————————–+——-+——+
| ID                                   | Label | Cidr |
+————————————–+——-+——+
| 1eea88bb-4952-4aa4-9148-18b61c22d5b7 | int   | None |
| 426bb226-0ab9-440d-ba14-05634a17fb2b | int1  | None |
| 780ce2f3-2e6e-4881-bbac-857813f9a8e0 | ext   | None |
+————————————–+——-+——+

== Nova instance flavors ==

+—-+———–+———–+——+———–+——+——-+————-+———–+
| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+—-+———–+———–+——+———–+——+——-+————-+———–+
| 1  | m1.tiny   | 512       | 1    | 0         |      | 1     | 1.0         | True      |
| 2  | m1.small  | 2048      | 20   | 0         |      | 1     | 1.0         | True      |
| 3  | m1.medium | 4096      | 40   | 0         |      | 2     | 1.0         | True      |
| 4  | m1.large  | 8192      | 80   | 0         |      | 4     | 1.0         | True      |
| 5  | m1.xlarge | 16384     | 160  | 0         |      | 8     | 1.0         | True      |
+—-+———–+———–+——+———–+——+——-+————-+———–+

== Nova instances ==

+—-+——+——–+————+————-+———-+
| ID | Name | Status | Task State | Power State | Networks |
+—-+——+——–+————+————-+———-+

+—-+——+——–+————+————-+———-+
[root@dfw02 ~(keystone_boris)]$ nova list
+————————————–+———–+———–+————+————-+——————————+
| ID                                   | Name      | Status    | Task State | Power State | Networks                     |
+————————————–+———–+———–+————+————-+——————————+
| 5fcd83c3-1d4e-4b11-bfe5-061a03b73174 | UbuntuRSX | SUSPENDED | None       | Shutdown    | int1=40.0.0.5, 192.168.1.120 |
| 7953950c-112c-4c59-b183-5cbd06eabcf6 | VF19WXL   | SUSPENDED | None       | Shutdown    | int1=40.0.0.6, 192.168.1.121 |
| 784e8afc-d41a-4c2e-902a-8e109a40f7db | VF20GLS   | SUSPENDED | None       | Shutdown    | int1=40.0.0.4, 192.168.1.102 |
| 9b156b85-a6a1-4f15-bffa-6fdb124f8cff | VF20WXL   | SUSPENDED | None       | Shutdown    | int1=40.0.0.2, 192.168.1.101 |
+————————————–+———–+———–+————+————-+——————————+
 [root@dfw02 ~(keystone_admin)]$ nova-manage service list

Binary           Host                                 Zone             Status     State Updated_At
nova-scheduler   dfw02.localdomain                    internal         enabled    :-)   2014-02-28 11:47:25
nova-conductor   dfw02.localdomain                    internal         enabled    :-)   2014-02-28 11:47:25
nova-compute     dfw01.localdomain                    nova             enabled    :-)   2014-02-28 11:47:19

[root@dfw02 ~(keystone_admin)]$ neutron agent-list

+————————————–+——————–+——————-+——-+—————-+
| id                                   | agent_type         | host              | alive | admin_state_up |
+————————————–+——————–+——————-+——-+—————-+
| 037b985d-7a7d-455b-8536-76eed40b0722 | L3 agent           | dfw02.localdomain | :-)   | True           |
| 22438ee9-b4ea-4316-9492-eb295288f61a | Open vSwitch agent | dfw02.localdomain | :-)   | True           |
| 76ed02e2-978f-40d0-879e-1a2c6d1f7915 | DHCP agent         | dfw02.localdomain | :-)   | True           |
| 951632a3-9744-4ff4-a835-c9f53957c617 | Open vSwitch agent | dfw01.localdomain | :-)   | True           |
+————————————–+——————–+——————-+——-+—————-+

Create F20 instance per http://bderzhavets.blogspot.com/2014/01/setting-up-two-physical-node-openstack.html 

and run on newly built instance :-

# yum -y update
# yum -y install spice-vdagent
# reboot

Connect via virt-manager and switch to Properties tab :-

  

1. Switch to Spice Server
   2. Switch to Video QXL
   3. Add Hardware “Spice agent(spicevmc)”
   4. Add Hardware “USB Redirection”
       Spice channel
Then :- 

[root@dfw02 ~(keystone_boris)]$  nova reboot VF20GLS 

Plug in USB pen on Controller

[ 6443.772131] usb 1-2.1: USB disconnect, device number 5
[ 6523.996983] usb 1-2.1: new full-speed USB device number 6 using uhci_hcd
[ 6524.278848] usb 1-2.1: New USB device found, idVendor=0951, idProduct=160e
[ 6524.281206] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6524.282055] usb 1-2.1: Product: DataTraveler 2.0
[ 6524.284851] usb 1-2.1: Manufacturer: Kingston
[ 6524.290527] usb 1-2.1: SerialNumber: 000AEB920161SK861E1301F6
[ 6524.369667] usb-storage 1-2.1:1.0: USB Mass Storage device detected
[ 6524.379638] scsi4 : usb-storage 1-2.1:1.0
[ 6525.420794] scsi 4:0:0:0: Direct-Access     Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2
[ 6525.459504] sd 4:0:0:0: Attached scsi generic sg0 type 0
[ 6525.526419] sd 4:0:0:0: [sdb] 7856128 512-byte logical blocks: (4.02 GB/3.74 GiB)
[ 6525.554959] sd 4:0:0:0: [sdb] Write Protect is off
[ 6525.555010] sd 4:0:0:0: [sdb] Mode Sense: 23 00 00 00
[ 6525.571552] sd 4:0:0:0: [sdb] No Caching mode page found
[ 6525.573029] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 6525.667624] sd 4:0:0:0: [sdb] No Caching mode page found
[ 6525.669322] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 6525.816841]  sdb: sdb1
[ 6525.887493] sd 4:0:0:0: [sdb] No Caching mode page found
[ 6525.889142] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 6525.890478] sd 4:0:0:0: [sdb] Attached SCSI removable disk

$ sudo mount /dev/sdb1 /mnt/usbpen

[ 5685.621007] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

[ 5685.631218] SELinux: initialized (dev sdb1, type vfat), uses genfs_contexts

Setup Light X Windows System & Fluxbox on F20 instance ( [1] ) and make sure it’s completely functional and can read and wite to USB pen

   Nova status verification

 

 

   Neutron status verification

On the dfw02 (Controller) , run the following command:

ssh-keygen (Hit Enter to accept all of the defaults)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@dwf01 (Compute)

Add to /etc/rc.d/rc.local lines :-

ssh -L 5900:127.0.0.1:5900 -N -f -l root 192.168.1.137
ssh -L 5901:127.0.0.1:5901 -N -f -l root 192.168.1.137
ssh -L 5902:127.0.0.1:5902 -N -f -l root 192.168.1.137

to be comfortable with spicy connection to instances running on Compute node.

Build fresh spice-gtk packages :-

$ rpm -iv spice-gtk-0.23-1.fc21.src.rpm
$ cd ~/rpmbuild/SPEC
$ sudo yum install intltool gtk2-devel usbredir-devel libusb1-devel libgudev1-devel pixman-devel openssl-devel  libjpeg-turbo-devel celt051-devel pulseaudio-libs-devel pygtk2-devel python-devel zlib-devel cyrus-sasl-devel libcacard-devel gobject-introspection-devel  dbus-glib-devel libacl-devel polkit-devel gtk-doc vala-tools gtk3-devel spice-protocol opus-devel
$ rpmbuild -bb ./spice-gtk.spec
$ cd ../RPMS/x86_64

Install rpms been built , because spicy is not on the system

[boris@dfw02 x86_64]$  sudo yum install spice-glib-0.23-1.fc20.x86_64.rpm \
spice-glib-devel-0.23-1.fc20.x86_64.rpm \
spice-gtk-0.23-1.fc20.x86_64.rpm \
spice-gtk3-0.23-1.fc20.x86_64.rpm \
spice-gtk3-devel-0.23-1.fc20.x86_64.rpm \
spice-gtk3-vala-0.23-1.fc20.x86_64.rpm \
spice-gtk-debuginfo-0.23-1.fc20.x86_64.rpm \
spice-gtk-devel-0.23-1.fc20.x86_64.rpm  \
spice-gtk-python-0.23-1.fc20.x86_64.rpm \
spice-gtk-tools-0.23-1.fc20.x86_64.rpm

Verify new spice-gtk install on F20 :-

[boris@dfw02 x86_64]$ rpm -qa | grep spice-
spice-gtk-tools-0.23-1.fc20.x86_64
spice-server-0.12.4-3.fc20.x86_64
spice-glib-devel-0.23-1.fc20.x86_64
spice-gtk3-vala-0.23-1.fc20.x86_64
spice-gtk3-devel-0.23-1.fc20.x86_64
spice-gtk-python-0.23-1.fc20.x86_64
spice-vdagent-0.15.0-1.fc20.x86_64
spice-gtk-devel-0.23-1.fc20.x86_64
spice-gtk-0.23-1.fc20.x86_64
spice-gtk-debuginfo-0.23-1.fc20.x86_64
spice-glib-0.23-1.fc20.x86_64
spice-gtk3-0.23-1.fc20.x86_64
spice-protocol-0.12.6-2.fc20.noarch

Connection via spice will give  a warning :-

    just ignore this message.

References

1. http://bderzhavets.blogspot.com/2014/02/setup-light-weight-x-windows_2.html
2. http://bderzhavets.blogspot.com/2014/01/setting-up-two-physical-node-openstack.html

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: