Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
“Multi-tenant, highly
scalable, performant, fault-
tolerant, scriptable
virtualization platform for
lazy researchers“
Markku Vajaranta
(53 slides)
“Multi-tenant, highly
scalable, performant, fault-
tolerant, scriptable
virtualization platform for
lazy researchers“
-
As we use to say
Acknowledgements
• Thanks to: Kristian Köhntopp, Cloud Architect at
SysEleven GmbH Openstack reality check :
http://www.slideshare.net/isotopp/openstack-reality-
check-dach-tag-edition
• Thanks to the Department of Pervasive Comp. For the
playground
• Thanks to Otto Hylli for Openstack slides and guide
(http://docs.openstack.org/admin-guide/index.html)
13.4.2016 Markku Vajaranta 3
Terminology
• IaaS, infrastructure as a service. E.g.
Openstack cloud. VMWare ESXi server.
• DFS, Distributed filesystem
• SW, Switch
13.4.2016 Markku Vajaranta 4
Use case #1 - VMs for
research and development
13.4.2016 Markku Vajaranta 5
Use case #2 VMs for students
13.4.2016 Markku Vajaranta 6
Use case #3 – Student VMs
13.4.2016 Markku Vajaranta 7
Multi-tenant
• Different permissions
• Different needs
• Different virtual machine requirements
13.4.2016 Markku Vajaranta 8
High Scalable
• Did you see the amount of VMs on the use
cases?
– Not always
• Different use cases
13.4.2016 Markku Vajaranta 9
Performant
• Did you see the amount of VMs on the use
cases?
• Peaks might occur e.g. in surveillance VMs in
research tenant
13.4.2016 Markku Vajaranta 10
Scriptable
• Would you like to copy manually those 81
VMs ?
• Copy, Delete, Restore
13.4.2016 Markku Vajaranta 11
Virtualization platform(s)
software stuff
• VMWare
• Xenserver
• Openstack
• HPE Helion
Eucalyptus
• KVM
• Microsoft Hyper-V
13.4.2016 Markku Vajaranta 12
• LXC
• OpenVZ
• Docker
• Vagrant
Hold the horses!
• What is that we want ?
13.4.2016 Markku Vajaranta 13
• Any VM, Anywhere
13.4.2016 Markku Vajaranta 14
• Infrastructure as Code
13.4.2016 Markku Vajaranta 15
VMWare
• Multi-tenant
• High scalable
• Performant
• Fault-tolerant
• Scriptable
• Virtualization platform
13.4.2016 Markku Vajaranta 16
VMWare
• Multi-tenant
– Active Directory
– vSphere centralized management
– Costly licenses
– Management in 5.5. through vmware vsphere
client for Windows or WebUI
• in 6.x through WebUI
13.4.2016 Markku Vajaranta 17
VMWare
• High Scalable
– Several Servers
– In 5.5.x requires fiber channel database
– 6.x can have VSAN
– Networking using virtual switches
13.4.2016 Markku Vajaranta 18
VMWare
• Performant
– One HP Gen8 can handle
100 machines nicely
2x Xeon E5-2640 and 160Gb Ram
– resource pools
– Fast VM deployment… NOT
13.4.2016 Markku Vajaranta 19
VMWare
• Fault-tolerant
– Live migration to host
– Requires FC disks
– Requires costly enterprise licenses
– Can though occur automatically
13.4.2016 Markku Vajaranta 20
VMWare
• Scriptable
– NOT
– vSphere Management Assistant (VMA)
machine (SLES)
– Microsoft powershell
13.4.2016 Markku Vajaranta 21
VMWare, VMA
source /opt/vmware/vma/bin/vifptarget -s seclab-esxi2.sec.rd.tut.fi
for i in {3801..3827}
do
vlan_number=$i
vlan_name=VLAN-$i-Shellshock_LAB
echo $vlan_number
echo $vlan_name
vicfg-vswitch -A $vlan_name vSwitch1
vicfg-vswitch -v=$vlan_number -p $vlan_name vSwitch1
done
13.4.2016 Markku Vajaranta 22
VMWare, Powershell
$nameOfFW="Shellshock_FW_"
$nameOfXP="Shellshock_XP_"
$nameOfUBUNTU="Shellshock_UBUNTU_"
$nwPRE="VLAN-"
$nwPOST="-Shellshock_LAB"
$first_VLAN=3801
$last_VLAN=3827
for($i=$first_VLAN; $i -le $last_VLAN; $i++)
{
$nameIs=$nameOfUBUNTU + $i
$nwIs=$nwPRE + $i + $nwPOST
New-VM -name $nameIs -template TEMPLATE_piglet_Ubuntu_Apache -Resourcepool shellshock
Get-VM $nameIs | Get-NetworkAdapter -name "Network adapter 1" | Set-NetworkAdapter -NetworkName $nwIs -Confirm:$false
}
13.4.2016 Markku Vajaranta 23
VMWare
• Virtualization platform
– Did I say about the licenses?
– Yearly renewal! (in academic licence)
– Clear separation for each single different
component in bigger environment
13.4.2016 Markku Vajaranta 24
Xenserver
• Pros
– Scriptability
– Open source
– Pools
– Migration
– Xen-orchestra
brings the WebUI
and cloud-init
– Openvswitch
13.4.2016 Markku Vajaranta 25
• Cons
– Scriptability
– VM deployment
– Management SW
only for Windows
– FC, iSCSI NFS
– Messy component
structure
– User policies
Xenserver, OVS
13.4.2016 Markku Vajaranta 26
Xenserver, scripting
13.4.2016 Markku Vajaranta 27
For i in {1..100}
do
xe vm-clone vm="$TEMPLATE" new-name-label="$NAME_$i“
done
DFS
13.4.2016 Markku Vajaranta 28
• GlusterFS + iSCSI / NFS
• Ceph
GlusterFS
13.4.2016 Markku Vajaranta 29
• http://www.gluster.org/community/documentation/index.php/Setting_Volumes
Openstack
• Very popular IaaS cloud
• Great number of great developers
• Used widely in industry
13.4.2016 Markku Vajaranta 30
Openstack
• Pros
– Scriptable through
API
– Fast VM
deployment
– True multi-tenant
– High-scalable
– Performant
13.4.2016 Markku Vajaranta 31
• Cons
– Networking messy
– Installation messy
– * messy
– Big needs for HW
– Storage
Openstack
13.4.2016 Markku Vajaranta 32
• Mirantis
• Foreman
• Ubuntu openstack cloud
– Requirements • At least five machines with two disks
• Two machines with x2 network interfaces (NICs)
• A dedicated switch to create a private cloud LAN
• Internet access through a router on that LAN
Openstack
13.4.2016 Markku Vajaranta 33
Openstack
13.4.2016 Markku Vajaranta 34
Openstack
13.4.2016 Markku Vajaranta 35
Openstack
13.4.2016 Markku Vajaranta 36
Openstack
13.4.2016 Markku Vajaranta 37
Openstack
13.4.2016 Markku Vajaranta 38
Openstack
13.4.2016 Markku Vajaranta 39
Openstack
13.4.2016 Markku Vajaranta 40
• Ridiculous requirements
• Must do everything manually, the whole stack
• Networking is terrible. Not gonna work. Using
floating IP and GRE(Generic routing
encapsulation)
• ”Where is my VM?”
• If network or storage has a bug, everything
stops.
LXC / Docker / OpenVZ
• Not a VM environment
• Scriptable
• Fast to deploy – development tools
• User control since tools used through bash
• Fault-tolerant.. err
• Networking?
13.4.2016 Markku Vajaranta 41
LXC / Docker / OpenVZ
• LXC Networking
13.4.2016 Markku Vajaranta 42
LXC / Docker / OpenVZ
nano /var/lib/lxc/MavaHOST/config
# Network configuration
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 00:ca:fe:07:49:ba
lxc.network.ipv4 = 192.168.14.5/24
lxc.network.ipv4.gateway = 192.168.14.1
# autostart configuration
lxc.start.auto = 1
lxc.start.delay = 5
13.4.2016 Markku Vajaranta 43
Vagrant + Oracle Virtualbox
• Fast to deploy directly from command line
• True VM
• Scriptable
• Fault tolerance as bad as LXC etc case
• Networking even more horrible. Not possible
in Virtualbox since Vagrant utilizes Cloudinit
and requires NAT interface
13.4.2016 Markku Vajaranta 44
Lets forget the software and grab a
To see what we have and what we need
13.4.2016 Markku Vajaranta 45
So, What did we need?
• Multi-tenant, highly scalable, performant,
fault-tolerant, scriptable virtualization platform
for lazy researchers
• Any VM, Anywhere
• Infrastructure as a code
13.4.2016 Markku Vajaranta 46
So, What did we REALLY
need?
• User control
• Easy management
• Good network, several VLANs
• High availability for VMs
• Fast VM deployment
• Scriptability
13.4.2016 Markku Vajaranta 47
Hardware to build it
• 2 identical servers
– Enough of RAM and CPU
– 10Tb disk per machine
– 6 Nics, 2x10Gb + 4x1Gb
13.4.2016 Markku Vajaranta 48
What does it look like
13.4.2016 Markku Vajaranta 49
And the software review
• VMware
• Openstack
• Xenserver
13.4.2016 Markku Vajaranta 50
And the solution
• Debian: Platform, scriptability
• AD: User control
• KVM/XEN: Virtualization
• GlusterFS: Storage
• OpenvSwitch: Networking
• Vagrant/Cloudinit/??: for deployment
13.4.2016 Markku Vajaranta 51
And the solution
• Debian: Platform, scriptability
• AD: User control
• KVM/XEN: Virtualization
• GlusterFS: Storage
• OpenvSwitch: Networking
• Vagrant/Cloudinit/??: for deployment
13.4.2016 Markku Vajaranta 52
Questions ?
13.4.2016 Markku Vajaranta 53