20
An OpenNebula Tale Pedro Dias

OpenNebulaConf2015 1.05 An OpenNebula Tale - Pedro Dias

Embed Size (px)

Citation preview

An OpenNebula TalePedro Dias

● Pedro Dias○ @pedromdias○ github.com/apocas

● CTO at ptisp.com○ github.com/ptisp

● Lecturer at ipt.pt● Freelancer

● Likes Node.js, created dockerode, nodechecker.com, ...

Who am i

PTisp.com

● Hosting provider○ 2 datacenters

○ ~36000 domains

○ ~700 virtual servers

○ ~800 physical servers

○ ~9000 active customers

What is this tale about?

● Why a new IaaS?

● Requirements

● Why OpenNebula?

● Making it fit

● Giving back to community

Why a new IaaS?

● Turnkey solution issues○ Value-added products are harder

○ Vendor lock-in

○ No control

● Expansion

● Licensing

Requirements

● Openness

● Avoid spaghetti stack

● Low maintenance

● Low entry barrier

● KVM

● API

● Support

Tested

● OpenStack○ High maintenance/operation

● Onapp○ Turnkey

● CloudStack○ Entry barrier

● OpenNebula

Why OpenNebula?

● Open

● Scenario adaptability

● Low maintenance

● Support

● API

Making it fit

1. cLVM vs LVM

2. VM image resize

3. Systems integration

4. Resellers

1. clvm… right...

● Hard to maintain

● Cluster recovery related with it’s

size/previous state

● Additional “moving” parts

● Critical layer

lvm

● Volume sanitization

○ Avoid data corruption by

simultaneous access

● Keeping volume directory

clean and sane

Solution

● Custom fs_lvm drivers

○ Activate volumes where and when they are needed.

(ex: premigrate)

○ Deactivate volumes when and there they are not

needed anymore. (ex: postmigrate)

ONE Janitor

● https://github.com/ptisp/one-janitor

● Uses API and SSH○ API for logic data○ SSH for infra/real data○ Matches them

● Storage sanitization● Virt sanitization● Boilerplate for other integrations

2. VM image resize

● Leverages libguestfs

● Strategy:

a. Stops VM

b. Creates a new volume (bigger size)

c. Copies old volume into the newer one

d. Expands fs

e. Renames old and new volumes

f. Starts VM

● Original volume is left untouched.

● Not yet integrated into ONE workflow

3. ONE Node.js addon

● https://github.com/OpenNebula/addon-nodejs

● Contributions are welcome○ Tests coverage need to be increased.

VM manipulationvar vm = one.getVM(12);

// query API for vm info

vm.info(function (err, data) {

console.log(data);

});

vm.action('reboot', function(err, data) {

console.log(data);

});

4. http://cloudash.one

What it is?

● Web panel for OpenNebula

● Abstracts IaaS○ Build a “DigitalOcean feeling” on top of OpenNebula

● Multi-tenant

● Optional built-in ticketing system

● Resources limits/plans per user and per

instance

Functionality

● VM ownership implied

● Resources editing

● Network manipulation

● Console

● Doesn’t need ONE admin privileges

● Templating or custom VM creation

demo.cloudash.one