the new vvorld - bsdcan · virtualization what is virtualization • term more and more popular...
TRANSCRIPT
![Page 1: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/1.jpg)
The new VVorldFreeBSD jail based virtualization
Bjoern Zeeb, Robert Watson
The FreeBSD Project
BSDCan 2010
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 1 / 33
![Page 2: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/2.jpg)
Overview
1 Virtualization
2 Virtualization at OS level
3 Virtual Network Stack
4 Use cases and numbers
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 2 / 33
![Page 3: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/3.jpg)
Virtualization
What is virtualization
• Term more and more popular during the last decade.
• Have one real something but pretend to provide several.
• Q: Why doesn’t it work with apples or oranges?
• Q: How does IT solve it?
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 3 / 33
![Page 4: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/4.jpg)
Virtualization
What is virtualization, samples
• In networking: VLANs, MPLS VPNs, . . .
• For machines: 1 piece of hardware, many virtual instances.
• In operating systems: VM address spaces, . . .
• In FreeBSD: Jails, as well as Xen, Virtualbox, . . .
• A: Add a level of indirection.
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 4 / 33
![Page 5: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/5.jpg)
Virtualization
Why virtualize?
• Use resources more efficiently.
• Make people believe they get it all but still share.
• Allow for (managed) overcommits.
• Consolidate resources.
• Delegation of administration.
• Build systems with better security footprints.
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 5 / 33
![Page 6: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/6.jpg)
Virtualization
Virtualization spectrum
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 6 / 33
![Page 7: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/7.jpg)
Virtualization at OS level
History of Jails
• April 1999: commit of the “mumbled about Jail feature”.
• May 1999: VMware Workstation 1.0
• 2002 M. Zec BSD network stack virtualization, BSDCon Europe
• 2007 Jail friendly file systems (ZFS).
• 2008 multi-IPv4/v6/no-IP patches.
• 2008 integration of virtual network stack starts.
• 2009 hierachical jails.
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 7 / 33
![Page 8: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/8.jpg)
Virtualization at OS level
What are “Jails”?
• Operating system-level virtualization.
• One kernel.
• Chroot, IP address subsetting, . . .
• Safe super user delegation with restrictions.
• Efficient resoures sharing, allows overcommits.
• Very lightweight (no hypervisor, no virtual device overhead)
• Nowadays: multi IPv4/v6/no-IP jails, cpuset support, jail-friendlyfilesystems (ZFS).
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 8 / 33
![Page 9: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/9.jpg)
Virtualization at OS level
Jails - what improvements?
• lightweight, secure, fast, simple (keep this).
• Does not depend on hardware support (keep it like this).
• ”ping does not work”, no loopback, . . . (improve).
• System V IPC troubles (improve).
• Why is that? Jails “subset” rather than “virtualize”.
• Cannot run “unnamed commercial OSes” (not going to happen).
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 9 / 33
![Page 10: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/10.jpg)
Virtualization at OS level
What to virtualize?
• Start with network stack.
• Immediate demand as just an address wasn’t good enoughanymore.
• Marko Zec 2002 Prototype.
• Make sure performance does not change noticably.
• Future: VIPC, . . .
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 10 / 33
![Page 11: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/11.jpg)
Virtualization at OS level
Subsystem virtualization - what to take care of?
• Global variables.
• Callouts (timers).
• Eventhandlers.
• Sysctl MIBs.
• Startup and shutdown.
• Debugging.
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 11 / 33
![Page 12: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/12.jpg)
Virtualization at OS level
How to handle things?
• Have “virtual instances” as abstraction level.
• Replicate global variables per instance.
• Duplicate or multiplex eventhandlers/timers per instance.
• Mark objects as part of an instance.
• Keep a clear security concept - do not grant insecure privileges.
• Be prepared for inter-instance interaction.
• Starting and Stopping?
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 12 / 33
![Page 13: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/13.jpg)
Virtual Network Stack
Step by step walkthrough
• Step by step walkthrough - how virtualization works.
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 13 / 33
![Page 14: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/14.jpg)
Virtual Network Stack
Standard kernel
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 14 / 33
![Page 15: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/15.jpg)
Virtual Network Stack
Virtualized kernel
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 15 / 33
![Page 16: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/16.jpg)
Virtual Network Stack
The base system network
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 16 / 33
![Page 17: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/17.jpg)
Virtual Network Stack
Start more instances, procs/threads not virtualized
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 17 / 33
![Page 18: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/18.jpg)
Virtual Network Stack
Globals
Unvirtualized globals:
static int question;int answer = 42;
Now virtualize this:
static VNET_DEFINE(int, question);static VNET_DEFINE(int, answer) = 42;#define V_question VNET(question);#define V_answer VNET(answer);
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 18 / 33
![Page 19: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/19.jpg)
Virtual Network Stack
Sysctls, System initialization
SYSCTL_VNET_INT(_hhgttg, OID_AUTO, question,CTLFLAG_RW, &VNET_NAME(question), 0, "Q:");
SYSCTL_VNET_INT(_hhgttg, OID_AUTO, answer,CTLFLAG_RW, &VNET_NAME(answer), 0, "A:");
static voidhhgttg_init(void __unused){
if (V_question)goto_page(V_answer);
}VNET_SYSINIT(hhgttg_init, SI_SUB_PSEUDO,
SI_ORDER_FIRST, hhgttg_init, NULL);
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 19 / 33
![Page 20: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/20.jpg)
Virtual Network Stack
Virtual Network Stack
• own loopback interface
• virtual iterfaces or netgraph subsystem to get connectivity tonetwork stacks
• can give dedcicated hardware resources (NIC) to a virtual networkstack
• own statistics
• own IPsec, firewalls, . . .
• own everything network stacky basically
• use forwarding or bridging between instances or outer world
• still very lightweight
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 20 / 33
![Page 21: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/21.jpg)
Virtual Network Stack
What’s the major problem left?
• Shutdown is really hard. “Why?”, you ask?
• Up to now we booted and the reset pin handled did the”shutdown” for us.
• We need destructors.
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 21 / 33
![Page 22: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/22.jpg)
Virtual Network Stack
Where are we?
• VIMAGE is a “highly experimental” feature in FreeBSD 8.0.
• Known memory leaks, known crash conditions.
• A bit this and that left todo: (IPX, Appletalk, 1.5 firewalls, . . . ).
• FreeBSD Foundation helps to make us make progress.
• Goal: production quality VIMAGE somewhen in 9.x.
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 22 / 33
![Page 23: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/23.jpg)
Virtual Network Stack
Virtual Network stack sample 1
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 23 / 33
![Page 24: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/24.jpg)
Virtual Network Stack
Virtual Network stack sample 2
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 24 / 33
![Page 25: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/25.jpg)
Virtual Network Stack
Virtual Network stack sample 3
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 25 / 33
![Page 26: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/26.jpg)
Use cases and numbers
Protocol development or Admin/Operation
• BSD the classic OS for (network protocol) research.
• Easily test with various nodes on one piece of metal.
• Have all the debugging tools available, like tcpdump, DTrace, . . .
• Can more easily correlate data.
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 26 / 33
![Page 27: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/27.jpg)
Use cases and numbers
Simulations
Arbitrary structure, 1000s of nodes with independent network stacks
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 27 / 33
![Page 28: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/28.jpg)
Use cases and numbers
ISPs and Hosters
• Run tens, hundreds or thousands of jails on a box.
• As low as 2MB + user data per virtual instance using a read onlybase image and nullfs mounts technique or ZFS.
• Allow shell logins and root access to a virtual instance.
• Add dedicated/virtual resources only where needed.
• Provide IPsec, own firewall, ability to tcpdump, ping, . . . to users.
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 28 / 33
![Page 29: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/29.jpg)
Use cases and numbers
Scalability
• A classic jail w/o process is about 5k on 64bit.
• A jail + vnet w/o processes is about 300-500k on 64bit.Depending on kernel configuration.
• We can give you six 9s (at least sounds good:)
• A 64bit machine, netbooted, 8GB RAM can start >5000 jails +vnet + epair(*) actually higher number.
• The number will always depend on your environment, number ofprocesses, workload, . . .
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 29 / 33
![Page 30: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/30.jpg)
Use cases and numbers
How to try it out?
• Use 8-STABLE or 9-CURRENT.
• Compile kernel with options VIMAGE
• Still simple commands:
jail -i -c vnet name=foo \host.hostname=foo.example.net path=/ persist
ifconfig epair0 createifconfig epair0a vnet foojexec foo /bin/csh
• http://wiki.freebsd.org/Image
• Experimental - you have been warned.
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 30 / 33
![Page 31: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/31.jpg)
Use cases and numbers
Conclusions
• Virtual kernel subsystem, like vnet, become reality.
• Prototype increasingly stable.
• Very little performance overhead.
• Enlarges FreeBSD’s portfolio, can be combined with Xen.
• Coming soon(ish).
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 31 / 33
![Page 32: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/32.jpg)
Use cases and numbers
So long for now
• Special thanks to the FreeBSD Foundation.
• If you are interested let us know:[email protected], [email protected].
• We will have ideas how you could help.
• That’s it. Thanks!
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 32 / 33
![Page 33: The new VVorld - BSDCan · Virtualization What is virtualization • Term more and more popular during the last decade. • Have one real something but pretend to provide several](https://reader035.vdocument.in/reader035/viewer/2022070800/5f0212ef7e708231d4027153/html5/thumbnails/33.jpg)
Use cases and numbers
Demo
Zeeb, Watson (FreeBSD) The new VVorld 2010-05-13 33 / 33