Upload
dominique-rodrigues
View
696
Download
2
Embed Size (px)
Citation preview
Vm_commitor How to Easily Handle
An Infinite Number of Versions
of Running QEMU/KVM
Virtual Machines
Dominique Rodrigues
Cloud Expo 2015 – Santa Clara
• Cloud
• Virtualization
• Scalability
• API
• Multi-tenant
• Collaborative
• Statistics usage
• HTML5 display
Main technologies used
Open source version: https://github.com/Nanocloud
VIRTUALIZATION USE
Server consolidation
Foundation for elasticity & instant deployment
in cloud computing
Massively used in enterprises
DOCKER
New orchestration of containers
° clone, pull/push, run, commit °
Hub to share application based containers
VCS oriented (like git)
° edit, share, deploy applications °
VM COMMIT - GOALS
Keep a version for any change in a VM
Rollback to any version
Make only incremental changes
Replay any version
All on the fly
CREATING A VM
JSON definition file (vm.json)
{
"VMs": [
{
"client_id": "docky",
"instance": "nano",
"persistent": "no",
"rental_mod": "free_use",
"os": "linux",
"osversion": "coreos",
"osrelease": "717.3.0",
"local_ip": "",
"public_ip": ""
}
]
}
nc_create_vm --file vm.json
BUILDING BLOCK #2: QEMU CONSOLE
echo \
'snapshot_blkdev -n vm_delta_commit.qcow2' \
| socat stdio unix:vm.socket
USE CASES
Incremental backups (on the fly, as in Docker)
Application development (versioning, as in Git)
OS upgrades (rollback in case of trouble)