Overview

General

I’m installing RHV Cluster on 6 Lenovo Servers ( x3850 X6,  1TB RAM, 4 CPUs, 2x 280 GB HDD and attached SAN Storage).  Servers have IMM (integrated management module II) in place.

  • I’m using RHEL as Hypervisor-Host (not RHVH).
  • I’m installing a self hosted engine.
  • I’m sitting at a Windows 7 Workstation.
  • As this is a PoC / Lab environment i disabled firewalls on all hosts. This is not recommended for production environments.

This will all be done manually due to lack of prerequisites (no Satellite Server, no prepared RHEL-images, no PXE server, etc.).

Information on Environment:

I put together all relevant Information here:

NTP-Servers:  10.15.232.65, 10.11.232.65, 10.14.232.65

DNS-Server (answering the example.com-Domain): 10.252.33.134 – set up only for this environment

NFS-Server:  10.252.33.135 – set up only for this environment
exporting: 10.252.33.135:/exports/data

To connect to the interent the following proxies exist:

Proxy: 10.15.62.146:8080

Networks and its VLANs:

HW-PROV-… 3001
CLD-MGMT- 3002
IMG-STREAM-… 3003
OSP-EXT-… 3004
Storage Mgmt 3005
Storage-Data-… 3006
OSP-API-… 3007
OSP-Tenant-… 3008
RHOSP-PROVIDER-… 3009
OCP-HMC-… 3010
OCP-ATEME-… 3011
OC-OCP-CISCO-… 3012
RHEV-LIVEM-… 3013

All  shall be run over a 10 GBit LACP bond and will be provided as “tagged VLAN”. The RHV Hypervisor Hosts will only get an IP adress on the LIVEMigration network as it is for RHV Live migration.

The Managment Network shall be on the 1 GBit LACP bond and is “untagged”.

Doing

Prepreparation of surrounding systems

preparation on the Windows 7 Workstation

As our DNS-Server will only be asked from inside the environment i added the host-names to the local hossts file of the Windows workstation. This is needed as rhvm-WebUi needs to be connected via hostname.

edit c:\windows\system32\drivers\etc\hosts

10.252.182.141 lab-1.example.com lab-1
10.252.182.142 lab-2.example.com lab-2
10.252.182.143 lab-3.example.com lab-3
10.252.182.144 lab-4.example.com lab-4
10.252.182.145 lab-5.example.com lab-5
10.252.182.146 lab-6.example.com lab-6
10.252.182.129 rhvm.example.com rhvm

Preparing NFS Server (as source of ISO Domain)

Hint: We first tried with an Ubuntu based NFS-Server, but this causes issues later and is not recommended.

configured the NFS-Server as follows:
[root@nfs-1 ~]# yum install nfs-utils libnfsidmap
[root@nfs-1 ~]# groupadd kvm -g 36
[root@nfs-1 ~]# useradd vdsm -u 36 -g 36
[root@nfs-1 ~]# mkdir -p /exports/data/
[root@nfs-1 ~]# mkdir -p /exports/export/
[root@nfs-1 ~]# chown -R 36:36 /exports/*/
[root@nfs-1 ~]# chmod 0755 /exports/*/
[root@nfs-1 ~]# vi /etc/exports
/exports/data 10.252.182.128/255.255.255.128(rw)
/exports/export 10.252.182.128/255.255.255.128(rw)
[root@nfs-1 ~]# systemctl enable rpcbind
[root@nfs-1 ~]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@nfs-1 ~]# systemctl start rpcbind
[root@nfs-1 ~]# systemctl start nfs-server
[root@nfs-1 ~]# systemctl start rpc-statd
[root@nfs-1 ~]# systemctl start nfs-idmapd
[root@nfs-1 ~]# showmount -e
Export list for nfs-1.example.com:
/exports/export 10.252.182.128/255.255.255.128
/exports/data 10.252.182.128/255.255.255.128
[root@nfs-1 ~]# systemctl stop firewalld
[root@nfs-1 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

Preparing DNS Server

I’ve also set up a DNS Server being master for

example.com.
182.252.10.in-addr.arpa.

and forwarding everything else to some official nameservers.

Preparing the Host & OS

[doing this on all 6 hosts seperately]
Using Internet Explorer (as Chrome does not get the console session opened) to conenct to the IMM and open a remote console.

I use “ActiveX Client” as Remote Console, as other oprtions did not work or did not deliver the right options (mounting local iso-image).
Befor powering on i connected the virtual media (first activate then  “connect virtual Media”) to connect local residing RHEL ISO-Image as DVD to the host.

I started to install RHEL and configured the local RAID 1 yust before configuring destination of installation. Doing the RAID config erlier ran into IMM exceptions..

Installing RHEL

On some of the hosts i needed to press F12 to select Boot-Device (and then selected my local DVD).

Installed RHEL interactively, with the following parameters:

Language: English (United States)
Keyboard: English (could have changed this to german for the console).

I configured Networking:

Hostname: lab-1.example.com (fqdn)  (lab-2, … accordingly)

Network:

  • enable the correct network interface
  • configured as static
  • ip-address, netmask, router, dns-servers, dns-search domain
    eno24
    DNS-Domain: example.com

I configured timezone and ntp-servers (upper right corner)

timezone: Berlin
NTP: 3 localy running NTP servers (as defined above)

Before configuring the local disks as installation destination i configured the RAID via IMM

Configuring RAID on IMM

Hint: You would think this might be the first thing todo before starting OS installation. At least on the Lenovo servers a running os was needed. Trying this beforehand I was not able to remove the JBOD-configuration and ran on an error.

Server Management > Local Storage > Tab “Storage RAID configuration > Create Volume

I first needed to wipe the JBOD konfiguration and then created a RAID 1 volume group and added one volume into this volume group. The volume offerd quite some options. But i kept the defaults:

  • Read Policy: No Read Ahead
  • Write Policy: Write Through
  • IO Policy Direct I/O
  • Access Policy Read Write
  • disk cache Policy unchange
  • initialization status: fast
    FINISH

I could then continue with the RHEL installation:

Continue with RHEL installation

After refreshing the recognized disk the installation frontend showed one local disk (the volume i just created). I configured the disk layout manually as follows:

configure manually => later on “create automatically” => then change

I changed /home to 1 GB, added /tmp, / var and increased size of swap. This ist the result:

/boot 1 GB
/boot/efi 200 MB
/ 50 GB
/home 1 GB
/tmp 10 GB
/var 50 GB
swap 100 GB

I left the installation type default: minimal installation.

After starting, i set the root password. I did not addd a user.

System needed a reboot.

preparation work on the hosts OS

Added ssh-connection from lab-1 to other lab-X Servers

[root@lab-1 ~]# ssh-keygen
[root@lab-1 ~]# for i in 1 2 3 4 5 6; do ssh-copy-id root@lab-$i.example.com; done

adopted /etc/hosts

[root@lab-1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.252.182.141 lab-1.example.com lab-1
10.252.182.142 lab-2.example.com lab-2
10.252.182.143 lab-3.example.com lab-3
10.252.182.144 lab-4.example.com lab-4
10.252.182.145 lab-5.example.com lab-5
10.252.182.146 lab-6.example.com lab-6
10.252.182.129 rhvm.example.com rhvm

Checked Bios-Config:

[root@lab-1 ~]# grep -E 'svm|vmx' /proc/cpuinfo | grep nx
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts
....

You must get a result from this grep on all 6 hosts. Otherwise change your bios settings.

Subscribing the hosts and providing needed SW repositories

Testing the interent connetion via proxy:

[ tested on one host only]
[root@lab-1 ~]# export http_proxy=http://10.15.62.146:8080/
[root@lab-1 ~]# export https_proxy=http://10.15.62.146:8080/
[root@lab-1 ~]# curl www.redhat.com

If curl is working you can start to your subscription work:

[run on all 6 hosts]
[root@lab-1 ~]# subscription-manager config --server.proxy_hostname=10.15.62.146 --server.proxy_port=8080

searching the pool id only on one host:

[run on one host]
[root@lab-1 ~]# subscription-manager list --available

attaching pool id to all 6 hosts

[run on all 6 hosts]
[root@lab-1 ~]# subscription-manager attach --pool=poolid

configuring repos as needed

[run on all 6 hosts]
[root@lab-1 ~]# subscription-manager repos --disable=* 
[root@lab-1 ~]# subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-rhv-4-mgmt-agent-rpms
[root@lab-1 ~]# yum update -y
[root@lab-1 ~]# yum install -y ovirt-hosted-engine-setup rhvm-appliance  screen

I’ve also installed and configured “Cockpit” on all 6 hosts:

[run on all 6 hosts]
[root@lab-1 ~]# yum install -y cockpit-ovirt-dashboard
[root@lab-1 ~]# systemctl enable cockpit.socket
[root@lab-1 ~]# systemctl start cockpit.socket
You can log in to the Cockpit user interface at https://HostFQDNorIP:9090.

Only for PoC / Lab environment….

[run on all 6 hosts]
[root@lab-1 ~]# systemctl stop firewalld
[root@lab-1 ~]# systemctl disable firewalld

configuring FC multipathing

See which scsi devices are available:

[run on all 6 hosts]
[root@lab-1 ~]# lsscsi
[0:0:0:0] cd/dvd IMM Virtual Media 0325 /dev/sr0
[1:2:0:0] disk IBM ServeRAID M5210 4.66 /dev/sda

Only local devices are found.
This maybe due to the fact that the FC Luns where not there when i started the whole process. Now they should be available. I need to rescan the fc.

Hint: The RHEL-provided script “rescan-scsi-bus.sh” did not work on my environment.

So we do bus rescanning manually:

See which hostbus adapters are there on our host:

[run on all 6 hosts]
[root@lab-1 ~]# ls -l /sys/class/fc_host/
total 0
lrwxrwxrwx. 1 root root 0 Oct 25 12:08 host2 -> ../../devices/pci0000:c0/0000:c0:03.0/0000:d5:00.0/host2/fc_host/host2
lrwxrwxrwx. 1 root root 0 Oct 25 12:08 host3 -> ../../devices/pci0000:c0/0000:c0:03.0/0000:d5:00.1/host3/fc_host/host3

Tell these adapters to rescan:

[run on all 6 hosts]
[root@lab-1 ~]# echo "1" > /sys/class/fc_host/host2/issue_lip
[root@lab-1 ~]# echo "1" > /sys/class/fc_host/host3/issue_lip

Note: On other Hosts the hostbus adapters where named differently.

After detecting the scsi devices. Things might look like this:

[root@lab-1 ~]# lsscsi
[0:2:0:0] disk IBM ServeRAID M5210 4.66 /dev/sda
[1:0:3:0] disk IBM 2145 0000 /dev/sdb
[1:0:3:1] disk IBM 2145 0000 /dev/sdc
[1:0:3:2] disk IBM 2145 0000 /dev/sdd
[1:0:3:3] disk IBM 2145 0000 /dev/sde
[1:0:4:0] disk IBM 2145 0000 /dev/sdf
[1:0:4:1] disk IBM 2145 0000 /dev/sdg
[1:0:4:2] disk IBM 2145 0000 /dev/sdh
[1:0:4:3] disk IBM 2145 0000 /dev/sdi
[1:0:5:0] disk IBM 2145 0000 /dev/sdj
[1:0:5:1] disk IBM 2145 0000 /dev/sdl
....
[3:0:0:0] cd/dvd IMM Virtual Media 0325 /dev/sr0

I now configure multipathing:

[run on all 6 hosts]
[root@lab-1 ~]# mpathconf --enable --with_multipathd y --user_friendly_names y --with_module y
[root@lab-1 ~]# systemctl start multipathd
[root@lab-1 ~]# systemctl enable multipathd

Installing RHV

Installing Self Hosted Engine on first Host

You start from plain RHEL-Installation (with the repositories and rpms available as mentioned above). While setting up the self hosted engine the host gets setup as well.

It is recommended to use screen when using ssh network connection :

[run on one host only]
[root@lab-1 ~]# screen
[root@lab-1 ~]# hosted-engine --deploy

continue => yes
Log file: /var/log/ovirt-hosted-engine-setup/ovirt-hosted-engine-setup-20171025191354-nio3m5.log

storage: fc
luns: 250 GiB

configure iptables => yes
please indicate NIC to set ovirtmgmt bridge on => eno24
use RHV-M-Appliance (not an ova file)
use VNC (not SPICE)
use cloud-init => yes
generate it

Do you want to enable ssh access for the root user (yes, no, without-password) [yes]:
Please specify the size of the VM disk in GB: [58]:
Please specify the memory size of the VM in MB (Defaults to appliance OVF value): [16384]:
The following CPU types are supported by this host:
– model_Broadwell: Intel Broadwell Family
– model_Broadwell-noTSX: Intel Broadwell-noTSX Family
– model_Haswell: Intel Haswell Family
– model_Haswell-noTSX: Intel Haswell-noTSX Family
– model_SandyBridge: Intel SandyBridge Family
– model_Westmere: Intel Westmere Family
– model_Nehalem: Intel Nehalem Family
– model_Penryn: Intel Penryn Family
– model_Conroe: Intel Conroe Family
Please specify the CPU type to be used by the VM [model_Broadwell]:
Please specify the number of virtual CPUs for the VM (Defaults to appliance OVF value): [4]:
You may specify a unicast MAC address for the VM or accept a randomly generated default [00:16:3e:1d:cd:60]:
How should the engine VM network be configured (DHCP, Static)[DHCP]? static
Please enter the IP address to be used for the engine VM [10.252.182.129]:
[ INFO ] The engine VM will be configured to use 10.252.182.129/25
Please provide a comma-separated list (max 3) of IP addresses of domain name servers for the engine VM
Engine VM DNS (leave it empty to skip) [10.252.33.134]:
Add lines for the appliance itself and for this host to /etc/hosts on the engine VM?
Note: ensuring that this host could resolve the engine VM hostname is still up to you
(Yes, No)[No] yes

–== HOSTED ENGINE CONFIGURATION ==–

Enter engine admin password:
Confirm engine admin password:
Please provide the name of the SMTP server through which we will send notifications [localhost]:
Please provide the TCP port number of the SMTP server [25]:
Please provide the email address from which notifications will be sent [root@localhost]:
Please provide a comma-separated list of email addresses which will get notifications [root@localhost]:
[ INFO ] Stage: Setup validation

–== CONFIGURATION PREVIEW ==–

Bridge interface : eno24
Engine FQDN : rhvm.example.com
Bridge name : ovirtmgmt
Host address : lab-1.example.com
SSH daemon port : 22
Firewall manager : iptables
Gateway address : 10.252.182.254
Storage Domain type : fc
LUN ID : 36005076801808657d800000000000103
Image size GB : 58
Host ID : 1
Console type : vnc
Memory size MB : 16384
MAC address : 00:16:3e:1d:cd:60
Number of CPUs : 4
OVF archive (for disk boot) : /usr/share/ovirt-engine-appliance/rhvm-appliance-4.1.20170914.0-1.el7.ova
Appliance version : 4.1.20170914.0-1.el7
Restart engine VM after engine-setup: True
Engine VM timezone : Europe/Berlin
CPU Type : model_Broadwell

Please confirm installation settings (Yes, No)[Yes]:
Generating answer file ‘/var/lib/ovirt-hosted-engine-setup/answers/answers-20171025193612.conf’
[ INFO ] Generating answer file ‘/etc/ovirt-hosted-engine/answers.conf’
[ INFO ] Stage: Pre-termination

Configuring RHV from RHV-Manager Web UI

Loging into https://rhvm.example.com/

Changinmg the Web UI language into US English:

Before clicking on a certain portal (the Admin portal in our case), i can choose the language on the lower left drop box. This defaults to the browser setting but I prefer Englisch to avoid translation issues.

Adding second Host to Datacenter

navigating to

System > Data Centers > Default > Clusters > Default > hosts

and press “New”

fill out the “General” Tab

NewHost.png

I’ve used the password, as i where to lazy to fix the ssh-key issues i faced.

I configured “Power Management” in the coresponding Tab:

  • Enable Power Management
  • Kdump integration
  • Add Power Management Agent
    • Adresse of MMI interace
    • Credentials as configured on the board (username and password)
    • Type: ipmilan

pressing “Test” and geting a “Test successful” message lets me press “OK”.

Important:

You need to navigate to the “Hosted Engine” Tab and select “Deploy” there. If you don’t you will not able to migrate the RHV-Manager VM (aka “Engine VM”) to this host. There is no way to mend this exept of deleting the host and creating it again.

 

I added the other remaing 4 hosts in the same manner.

On the initial Host we also needed to:

  • configure power management (as described above)

configuring the storage Domains

With the hosted engine installation you configured RHVM, an underlying RHV-Hypervisor and a storage domain in which the RHVM image resides. But you do not see the storage domain within the RHVM Web UI.

You make the allready existing storage domain visible first:

hosted_engine

Navigate towards

System > Data Centers > Default >Storage

You should not see any storage domain yet. Press “Import Domain

Select Storage Type “Fibre Channel” and select the “hosted_storage” domain

The hosted_domain storage domain should be soley for the hosted engine. Do not add any other hosts on this domain for safty reasons.

VMs

I created a second Fibre Channel storage domain called “VMs”  and selected the largest LUN i got offered from the UI.

Hint: The UI only offers LUNs available to all hosts in the cluster.

ISO

To provide ISO-Images, which you can mount into a VM, you need to hava an ISO-Domain, which needs to be NFS or Gluster Filesystem.

I use the NFS-Share created above,

  • defined the “Domain Function” as “ISO”,
  • the Name as “ISO”,
  • left the”Host to use” untouched
  • and provided the “Export Path”.

Hint:

First i tried with some wired NFS-Server (Ubuntu in this case) which introduced issues. RHV was not able to create the storage domain but had leftovers of this Storage Domain in it’s data base. So please use a well known NFS-product or use a RHEL Server as NFS Host.

Keith Tenzers Blog describes under the Headline “Troubleshooting” very steight forward how to get rid of half baked storage Domains again.  – Thank you Keith!

Subscribe rhvm as well

[run on rhvm]
[root@rhvm ~]# subscription-manager config --server.proxy_hostname=10.15.62.146 --server.proxy_port=8080

searching the pool id:

[run on rhvm]
[root@rhvm ~]# subscription-manager list --available

attaching pool id to the node

[run on rhvm]
[root@rhvm ~]# subscription-manager attach --pool=poolid

configuring repos as needed

[run on rhvm]
[root@rhvm ~]# subscription-manager repos --disable=*
[root@rhvm ~]# subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-supplementary-rpms --enable=rhel-7-server-rhv-4.1-rpms --enable=rhel-7-server-rhv-4-tools-rpms --enable=jb-eap-7-for-rhel-7-server-rpms

Update des RHVM

To update RHVM, you need to switch the whole RHV cluster in “global maintanance”. I then run engine-setup within the rhvm- VM to capture outstanding updates.

Hint: Documentation and my experiance do not fit 100%. So please consult the documentation for this step on how things should be done corretly.

[root@lab-1 ~]# hosted-engine --set-maintenance --mode=global
[run on rhvm]
[root@rhvm ~]# engine-setup
 --== CONFIGURATION PREVIEW ==--

Default SAN wipe after delete : False
 Firewall manager : firewalld
 Update Firewall : True
 Host FQDN : rhvm.example.com
 Engine database secured connection : False
 Engine database user name : engine
 Engine database name : engine
 Engine database host : localhost
 Engine database port : 5432
 Engine database host name validation : False
 Engine installation : True
 PKI organization : example.com
 DWH installation : True
 DWH database secured connection : False
 DWH database host : localhost
 DWH database user name : ovirt_engine_history
 DWH database name : ovirt_engine_history
 Backup DWH database : True
 DWH database port : 5432
 DWH database host name validation : False
 Configure Image I/O Proxy : True
 Configure VMConsole Proxy : True
 Configure WebSocket Proxy : True

run the update

[run on rhvm]
[root@rhvm ~]# yum update -y
[root@rhvm ~]# init 6

Funny enough, the Engine VM did not restart but just stopped. Therefore i needed to start the Engine again myself:

[run on one host]
[root@lab-1 ~]# hosted-engine --vm-start

Ensure the setup of the engine is aware of the new SW:

[run on rhvm]
[root@rhvm ~]# engine-setup

Stopping Firewall on RHVM

As i’m in a Lab / PoC environment i stopped the Firewall

[root@rhvm ~]# systemctl stop firewalld
[root@rhvm ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

Configuring RHV Networking

I set up the networking completely in the RHV Web UI. Don’t use Network Manager nor start editing ifcfg-* scripts.

Define the VLANs

The VLANs are predefined on the switch outside of RHV. You need to define them within RHV as well so you can connect your VMs directly to the needed VLANs.

Navigate towards:

System > Data Centers > Default > Networks

Pressing “New”

in the “General” Tag

  • Provide a predefined name (best to call it like it is called in on the switch)
  • Enable VLAN tagging
  • Enable “VM network” (Except for the RHEV-LIVEM network)

in the “Cluster” Tag

  • select “Attach”
  • deselect “Required”

You want your host be up and running, even when the network is not available for any reason. Therefor you deselected “required”.

You repete this step for all VLANs you might need on any of the future VMs.

Bonding of the interfaces

On each host we need to create the correct network configuration as well:

Navigate towards:

System > Data Centers > Default > Clusters > Default > Hosts

select one Host

assure to select the “Hosts” Tab on the upper tab bench.

select “Network Interfaces” on the lower Tab bench .

Press “Setup Host Networks”

This Menue works via “drag and drop”. So drag eno25 ontop of eno24 to create a bond. Define an appropriate name for your bond interface (e.g. bond0).

The bond will have Mode 4 (LACP) as default. Work with the network engineer to get this up and running.

Check the status on the command line:

[root@lab-1 ~]# for i in eno24 eno25 bond0 ; do ip a s $i; done
2: eno24: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
 link/ether e0:4f:43:07:89:18 brd ff:ff:ff:ff:ff:ff
3: eno25: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
 link/ether e0:4f:43:07:89:18 brd ff:ff:ff:ff:ff:ff
84: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovirtmgmt state UP qlen 1000
 link/ether e0:4f:43:07:89:18 brd ff:ff:ff:ff:ff:ff

As some interfaces where down before i focused to see “LOWER_UP” on the master as well as on both slave interfaces.

Looking at the bonding status:

[root@lab-1 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: e0:4f:43:07:89:18
Active Aggregator Info:
 Aggregator ID: 3
 Number of ports: 2
 Actor Key: 9
 Partner Key: 32825
 Partner Mac Address: 00:23:04:ee:be:66

Slave Interface: eno24
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: e0:4f:43:07:89:18
Slave queue ID: 0
Aggregator ID: 3
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 1
details actor lacp pdu:
 system priority: 65535
 system mac address: e0:4f:43:07:89:18
 port key: 9
 port priority: 255
 port number: 1
 port state: 61
details partner lacp pdu:
 system priority: 32667
 system mac address: 00:23:04:ee:be:66
 oper key: 32825
 port priority: 32768
 port number: 37895
 port state: 61

Slave Interface: eno25
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: e0:4f:43:07:89:19
Slave queue ID: 0
Aggregator ID: 3
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:
 system priority: 65535
 system mac address: e0:4f:43:07:89:18
 port key: 9
 port priority: 255
 port number: 2
 port state: 61
details partner lacp pdu:
 system priority: 32667
 system mac address: 00:23:04:ee:be:66
 oper key: 32825
 port priority: 32768
 port number: 21511
 port state: 61

For the bond itself you see:

  • Bonding Mode: IEEE 802.3ad Dynamic link aggregation
  • MII Status: up

This tells you, that you realy configured LACP (which is 802.3ad) and your bond is up.

You see both interfaces up “MII Status: up” and you see “… Chrun State: none” on both interfaces. Chrun state can be

  • chruned – this means something is wrong
  • monitorring – this means we are about to find out which state we have
  • none – no chrunning, which is the good state.

So having Chrun State: none on both interfaces on the actor and the partner side is perfect. Anything else means non-healthy status.

Adding the VLANs to the host

I did the same bonding for the 10 GBit interfaces (other device names though). Still being in the “Setup Host Networks” Window you drag all the available VLANs onto your second bond (which i named bond1).

For the live migration network i also defined a fixed IP-Address for each host. I clicked on the pen (right hand side of the network box) and

  • disabled IPv6
  • set IPv4 Boot protocol to Static
  • defined a unique ip-adress
  • provided the correct network mask
  • provided no gateway, as i do not need to route anywhere through this network

Functionality Check

Having configured networking on all hosts i logged in to one host and pinged the others over live migration network.

[root@lab-1 ~]# for i in 1 2 3 4 5 6; do ping -c 1 192.168.1.$i; done
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.049 ms

--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.049/0.049/0.049/0.000 ms
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.192 ms

--- 192.168.1.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.192/0.192/0.192/0.000 ms
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.162 ms

--- 192.168.1.3 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.162/0.162/0.162/0.000 ms
PING 192.168.1.4 (192.168.1.4) 56(84) bytes of data.
64 bytes from 192.168.1.4: icmp_seq=1 ttl=64 time=0.189 ms

--- 192.168.1.4 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.189/0.189/0.189/0.000 ms
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.
64 bytes from 192.168.1.5: icmp_seq=1 ttl=64 time=0.177 ms

--- 192.168.1.5 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.177/0.177/0.177/0.000 ms
PING 192.168.1.6 (192.168.1.6) 56(84) bytes of data.
64 bytes from 192.168.1.6: icmp_seq=1 ttl=64 time=0.160 ms

--- 192.168.1.6 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.160/0.160/0.160/0.000 ms

Switching “Live Migration” Service Network

We need to tell RHV to use the intended Network for live migration and therfore switch tle live migration functionality to the “Live Migration Network”

Navigate towards:

System > Data Centers > Default > Clusters

In the upper Tab Bench you only have one Tab “Clusters”.

On the lower Tab Bench select “Logical Networks” sub-tab.

Click the “Manage Networks” button.

Check the “Migration Network” radio button next to the Live Migration network we want to use for live migration.

Doing a full backup

As recommended i did a full backup of rhvm after having configured everything the way i wanted it:

[root@rhvm ~]# engine-backup --scope=all --mode=backup --file=/backup_$(date +%Y%M%d).backup --log=/backup_$(date +%Y%M%d).log

Preparing for your VMs

Providing ISO images

I have some iso-images on my (windows) desktop, which i’d like to provide as iso-images for installations.

I use winscp (found on the desktop) to copy the iso-files to rhvm.example.com:/root/iso_images

i then use the special uploader to upload the isos into the ISO storage domain.

[root@rhvm ~]# ovirt-iso-uploader list
Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort):
ISO Storage Domain Name | ISO Domain Status
ISO | ok
[root@rhvm ~]# ovirt-iso-uploader upload -i ISO /root/iso_images/rhel-server-7.4-x86_64-dvd.iso
Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort):
Uploading, please wait...
INFO: Start uploading /root/iso_images/rhel-server-7.4-x86_64-dvd.iso
Uploading: [########################################] 100%
INFO: /root/iso_images/rhel-server-7.4-x86_64-dvd.iso uploaded successfully
[root@rhvm ~]# ovirt-iso-uploader upload -i ISO /root/iso_images/RHEV-toolsSetup_4.1_7.iso
Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort):
Uploading, please wait...
INFO: Start uploading /root/iso_images/RHEV-toolsSetup_4.1_7.iso
Uploading: [########################################] 100%
INFO: /root/iso_images/RHEV-toolsSetup_4.1_7.iso uploaded successfully
[root@rhvm ~]# engine-iso-uploader --iso-domain=ISO upload /usr/share/virtio-win/virtio-win.iso /usr/share/virtio-win/virtio-win_x86.vfd /usr/share/virtio-win/virtio-win_amd64.vfd /usr/share/rhev-guest-tools-iso/rhev-tools-setup.iso
Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort):
Uploading, please wait...
INFO: Start uploading /usr/share/virtio-win/virtio-win.iso
Uploading: [########################################] 100%
INFO: /usr/share/virtio-win/virtio-win.iso uploaded successfully
INFO: Start uploading /usr/share/virtio-win/virtio-win_x86.vfd
Uploading: [########################################] 100%
INFO: /usr/share/virtio-win/virtio-win_x86.vfd uploaded successfully
INFO: Start uploading /usr/share/virtio-win/virtio-win_amd64.vfd
Uploading: [########################################] 100%
INFO: /usr/share/virtio-win/virtio-win_amd64.vfd uploaded successfully
INFO: Start uploading /usr/share/rhev-guest-tools-iso/rhev-tools-setup.iso
Uploading: [########################################] 100%
INFO: /usr/share/rhev-guest-tools-iso/rhev-tools-setup.iso uploaded successfully

 

Enabeling the console of VMs to be viewed on the windows workstation

From https://rhvm.example.com/ovirt-engine/

Click  “Console client ressources” and click on “Virt Viewer for 64-bit Windows”.   This tries to download “virt-viewer-64.msi”. Run this on you local windows workstation (need admin priviledges).

If i then click on the console -icon of a booted vm a console.vv file is downloaded and executed. If Windows does not know how to execute the console.vv  virt-viewer is not installed properly. See https://access.redhat.com/solutions/448883 for help.

Building first VM and testing it

In the RHVM WebUI navigate to

System > Data-Centers > Default > Clusters > Default > VMs

press “New VM”

in Tab “General” choose

OS: Linux

Type: Small

Name: allg1

Images -> press “create”

I created an “image” (which is the “local” disk of our VM)

  • 20 GB
  • Virtio-SCSI
  • on storage domain VMs
  • thin provisioned
  • disk profile: VMs
  • bootable

I added a NIC for each network i wanted to test (all networks except live migration)

I started the VM with the “Run Once” button and conencted RHEL ISO image to boot from to the VM.

I clicked through the manual installation.

I added a static ip configuration to each network and checked connectivity by pinging the router of each network.

I’Ve done a couple of life migrations of the VMs (the Management VM as well as the test-VM) to other nodes to proof the migration works as expected without interrupting the VM itself.

Conclusion

We set up a 6 Node RHV cluster as you would typically run it in a datacenter. We’ve shared Fibre Channel Storage prepared for the VM-images and have different VLAN’s prepared for the VMs to attach to.

We also set up one VM to prove the deployment will work and tested networking as well as life migration.

For production use you should keep the firewall enabled and run more tests.