Upload
kirill-kolyshkin
View
830
Download
1
Embed Size (px)
Citation preview
openvz.org | criu.org | virtuozzo.com
Agenda
● The history of containers● Virtuozzo relaunch
– and an important announce
● Docker: in, out, and on the side
openvz.org | criu.org | virtuozzo.com
1999: the idea
● Our chief scientist, an MIPT professor proposed an idea of virtual environments as groups of processes
● Three main components were:– groups of processes with namespace isolation
– file system to share code and save RAM
– resource isolation / management
openvz.org | criu.org | virtuozzo.com
2000: the first steps
● Feb: 3 engineers started working on it in MIPT– plus a sysadmin and a manager
– and a guy to write web management
● Jul: public beta testing:– one server for VEs, one for web mgmt
– around 5000 VEs (virtual environments)
● Sep: hired a mathematician from MSU to work on resource management (User Beancounters)
openvz.org | criu.org | virtuozzo.com
2001
● Virtuozzo for Windows (VZWIN) started– really crazy idea!
– no source code – lot of reverse engineering
– implemented by live kernel patching
– in Windows everything is an object, so those objects are virtualized / namespaced
– “most advanced software ever written for Windows”
● Linux-VServer project appeared
openvz.org | criu.org | virtuozzo.com
2002: release
● Jan: first Virtuozzo for Linux release: 2.0● Feb: first commercial customers
openvz.org | criu.org | virtuozzo.com
2004
● Feb: Solaris Zones/Containers released– btw kudos to Sun for the term “containers”
● Dec: first Virtuozzo for Windows release
openvz.org | criu.org | virtuozzo.com
2006
● Jan: port to kernel 2.6.15● Apr: port to Fedora Core 5 kernel● Aug: Debian includes OpenVZ kernel/tools● Aug: rebase to RHEL 4 kernel● Oct: port to SPARC[8] and PPC● Nov: port to 2.6.18 kernel● Nov: live migration
openvz.org | criu.org | virtuozzo.com
2007
● IBM AIX WPARs, HP-UX SRP containers● Mar: Rebase to RHEL5 kernel● Mar: Port to 2.6.20 kernel● May: Knoppix-based OpenVZ Live CD● Sep: CentOS-based OpenVZ Live CD
openvz.org | criu.org | virtuozzo.com
2008
● Lots of patches to upstream kernel:– network namespace – PID namespace– IPC namespace
– et cetera
● LXC (userspace tool a la vzctl)● Apr: port to kernel 2.6.25● Oct: Port to ARM
openvz.org | criu.org | virtuozzo.com
2010
● Port to RHEL6● VSwap (RAM/swap limits, simplified UBC)● ploop aka CT filesystem in a file
– on-demand allocation
– instant snapshots
– online resize, merge, compact
– write tracker (improved live migration)
openvz.org | criu.org | virtuozzo.com
2011
● Jul: initial proposal for CRIU● The idea is to implement
most of CR in userspace● Checkpoint: takes most of
task info from /proc etc.● Restore: read dump,
recreate environment
openvz.org | criu.org | virtuozzo.com
2012
● Jul: initial CRIU release (v0.1)● Oct: vzctl 4.0 with vanilla kernel support● ???: started working on RHEL7-based kernel
openvz.org | criu.org | virtuozzo.com
2013
● Docker appeared● lmctfy appeared● CoreOS appeared● vzctl adds io/iops limit support● May: OpenVZ maintenance partnership
https://openvz.org/Support
openvz.org | criu.org | virtuozzo.com
2014
● vzctl 4.8, faster live mirgation● Dec: Parallels announces merging OpenVZ
and Parallels Cloud Server into single common open source codebase
blog.openvz.org/49158.html
openvz.org | criu.org | virtuozzo.com
Current OpenVZ problems
● Kernel development is not quite open– devel@ list is deserted, no kernel git repo, ...
● OpenVZ and Virtuozzo have forked userspace– Userspace development effort is doubled
– OpenVZ can't be easily upgraded to VZ
– Some features are missing (vzpkg anyone?)
– Unnecessary complications for QA and support
openvz.org | criu.org | virtuozzo.com
What is the new Virtuozzo?
● Open source development process– for real, this time– open discussions via public mailing list– source code repository for the kernel
– https://openvz.org/Contribute
● Unified code base● Bare metal distro (with installer etc.)● KVM support (coming later)
openvz.org | criu.org | virtuozzo.com
The (long-awaited) announce
● Today we open src.openvz.org with
RHEL7-based VZ kernel git repo
src.openvz.org
● Site is still in beta, but registration works● Will be integrated with JIRA bug tracking
openvz.org | criu.org | virtuozzo.com
RHEL7-based OpenVZ kernel
● Is beta● Uses CRIU for migration :)
● Container API has changed, so
current vzctl doesn't work
● To contribute:
openvz.org/Contribute
openvz.org/How_to_submit_patches
openvz.org | criu.org | virtuozzo.com
Nearest future (sorry no ETAs)
● Publish VZ tools● Establish all the processes● Release beta● …● PROFIT!!!
openvz.org | criu.org | virtuozzo.com
What about Docker?
● We love Docker● We support Docker everywhere
– Docker inside (in OpenVZ containers)– Docker outside (using OpenVZ kernel)– Docker live migration with CRIU
openvz.org | criu.org | virtuozzo.com
Docker inside VZ containers
● openvz.org/Docker_inside_CT● Available since Feb (kernel 042stab105.4)● Current limitations:
– no checkpointing / live migration
– only vfs graph driver
– no bridges inside Docker containers inside VZ CTs
openvz.org | criu.org | virtuozzo.com
Russian dolls for Docker
● allow nested net, pid, IPC, UTC namespaces● allow bridges, disable venet inside nested netns● allow eth devices renaming inside CT● some sysfs and caps hacks here and there● bogus cpusets and cgroups● many small fixes here and there
openvz.org | criu.org | virtuozzo.com
Docker on top of OpenVZ
● Upstream kernel is not as good as OpenVZ(resource mgmt, /proc and /sys virt., etc)
● Why not use OpenVZ kernel?● Implementation: libct for libcontainer, Oct 2014github.com/avagin/libct
● About to be included, pull request opened Mar:github.com/docker/libcontainer/pull/434
openvz.org | criu.org | virtuozzo.com
Docker on the side: checkpointing
● CRIU 1.3 (1 Sep 2014), external CR works– external as in Docker knows nothing about it
– docker ps, stop, kill, logs will not work correctly
● Solution: native docker checkpoint / restore● CRIU 1.5.1, released 31 Mar 2015github.com/SaiedKazemi/docker/wiki
openvz.org | criu.org | virtuozzo.com
Docker C/R use cases
● Live migration● Restart Docker daemon w/o losing Cts● Reboot the host w/o losing Cts● “Forensic debugging” (CRIU image analisys)● Docker CR demo: youtu.be/HFt9v6yqsXo
openvz.org | criu.org | virtuozzo.com
Contacts
● Google+: OpenVZ● Twitter: @_openvz_● Facebook: openvz.org● blog.openvz.org● openvz.org/Contacts
Kirill Kolyshkin <[email protected]>