SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
Lightweight
Virtualization

  LXC containers & AUFS
 SCALE11x — February 2013, Los
Angeles

      Those slides are available at:
      http://goo.gl/bFHSh	
  
Outline
•  Intro: who, what, why?
•  LXC containers
•  Namespaces
•  Cgroups
•  AUFS
•  setns
•  Future developments
Who am I?
         Jérôme Petazzoni
            @jpetazzo
     SRE (=DevOps) at dotCloud




 dotCloud is the first "polyglot" PaaS,
 and we built it with Linux Containers!
What is this about?
LXC (LinuX Containers) let you run a Linux
  system within another Linux system.

A container is a group of processes on a Linux
  box, put together in an isolated environment.

Inside the box, it looks like a VM.
Outside the box, it looks like normal processes.
         This is "chroot() on steroids”
Why should I care?

1. I will try to convince you that it's awesome.

2. I will try to explain how it works.

3. I will try to get you involved!
Why should I care?

1. I will convince you that it's awesome.

2. I will explain how it works.

3. You will want to get involved!
Why is it awesome?



The 3 reasons why containers are awesome
Why?
  3) Speed!
                 Ships        Manual       Automated    Boots in ...
                 within ...   deployment   deployment
                              takes ...    takes ...

Bare Metal       days         hours        minutes      minutes


Virtualization   minutes      minutes      seconds      less than a
                                                        minute

Lightweight      seconds      minutes      seconds      seconds
Virtualization
Why?
 2) Footprint!
On a typical physical server, with average
 compute resources, you can easily run:
• 10-100 virtual machines
• 100-1000 containers

On disk, containers can be very light.
A few MB — even without fancy storage.
Why?
 1) It's still virtualization!
Each container has:
• its own network interface (and IP address)
     o    can be bridged, routed... just like $your_favorite_vm
•  its own filesystem
     o    Debian host can run Fedora container (&vice-versa)
•  isolation (security)
     o    container A & B can't harm (or even see) each other
•  isolation (resource usage)
     o    soft & hard quotas for RAM, CPU, I/O...
Some use-cases


       For developers,
      hosting providers,
      and the rest of us
Use-cases:
  Developers
•  Continuous Integration
  o    After each commit, run 100 tests in 100 VMs


•  Escape dependency hell
  o    Build (and/or run) in a controlled environment


•  Put everything in a VM
  o    Even the tiny things
Use-cases:
     Hosters
•    Cheap Cheaper Hosting (VPS providers)
     o  I'd rather say "less expensive", if you get my drift
     o  Already a lot of vserver/openvz/... around


•    Give away more free stuff
     o  "Pay for your production, get your staging for free!"
     o  We do that at dotCloud


•    Spin down to save resources
     o  And spin up on demand, in seconds
     o  We do that, too
Use-cases:
  Everyone
•  Look inside your VMs
  o    You can see (and kill) individual processes
  o    You can browse (and change) the filesystem


•  Do whatever you did with VMs
  o    ... But faster
Breaking news:
LXC can haz migration!

   This slide intentionally left blank

    (but the talk right before mine
   should have interesting results)
            oh yes indeed!
LXC lifecycle
•  lxc-­‐createSetup a container (root filesystem and
     config)
•    lxc-­‐startBoot the container (by default, you get a
     console)
•    lxc-­‐console
     Attach a console (if you started in background)
•    lxc-­‐stop
     Shutdown the container
•    lxc-­‐destroy
     Destroy the filesystem created with lxc-create
How does it work?
First time I tried LXC:
#	
  lxc-­‐start	
  -­‐-­‐name	
  thingy	
  -­‐-­‐daemon	
  
#	
  ls	
  /cgroup	
  
...	
  thingy/	
  ...	
  

"So, LXC containers are powered by cgroups?"

                           Wrong.
Namespaces


  Partition essential kernel structures
    to create virtual environments

    e.g., you can have multiple processes
    with PID 42, in different environments
Different kinds of
namespaces
•  pid (processes)
•  net (network interfaces, routing...)
•  ipc (System V IPC)
•  mnt (mount points, filesystems)
•  uts (hostname)
•  user (UIDs)
Creating namespaces
•  Extra flags to the clone() system call
•  CLI tool unshare	
  
Notes:
• You don't have to use all namespaces
• A new process inherits its parent's ns
• No easy way to attach to an existing ns
     o    Until recently! More on this later.
Namespaces: pid	
  
•  Processes in a pid don't see processes of
     the whole system
•    Each pid namespace has a PID #1
•    pid namespaces are actually nested
•    A given process can have multiple PIDs
     o    One in each namespace it belongs to
     o    ... So you can easily access processes of children ns
•  Can't see/affect processes in parent/sibling
     ns
Namespaces: net	
  
•  Each net namespace has its own…
  o    Network interfaces (and its own lo/127.0.0.1)
  o    IP address(es)
  o    routing table(s)
  o    iptables rules


•  Communication between containers:
  o    UNIX domain sockets (=on the filesystem)
  o    Pairs of veth interfaces
Setting up veth interfaces
    1/2
#	
  Create	
  new	
  process,	
  <PID>,	
  with	
  its	
  own	
  net	
  ns	
  
unshare	
  -­‐-­‐net	
  bash	
  
echo	
  $$	
  


#	
  Create	
  a	
  pair	
  of	
  (connected)	
  veth	
  interfaces	
  
ip	
  link	
  add	
  name	
  lehost	
  type	
  veth	
  peer	
  name	
  leguest	
  


#	
  Put	
  one	
  of	
  them	
  in	
  the	
  new	
  net	
  ns	
  
ip	
  link	
  set	
  leguest	
  netns	
  <PID>	
  
Setting up veth interfaces
   2/2
#	
  In	
  the	
  guest	
  (our	
  unshared	
  bash),	
  setup	
  leguest	
  
ip	
  link	
  set	
  leguest	
  name	
  eth0	
  
ifconfig	
  eth0	
  192.168.1.2	
  
ifconfig	
  lo	
  127.0.0.1	
  


#	
  In	
  the	
  host	
  (our	
  initial	
  environment),	
  setup	
  lehost	
  
ifconfig	
  lehost	
  192.168.1.1	
  


#	
  Alternatively:	
  
brctl	
  addif	
  br0	
  lehost	
  

#	
  ...	
  Or	
  anything	
  else!	
  
Namespaces: ipc	
  
•    Remember "System V IPC"?msgget, semget, shmget	
  
•    Have been (mostly) superseded by POSIX alternatives:
     mq_open, sem_open, shm_open	
  
•    However, some stuff still uses "legacy" IPC.
•    Most notable example: PostgreSQL

The problem: xxxget() asks for a key, usually derived
  from the inode of a well-known file
The solution: ipc namespace
Namespaces: mnt	
  
•  Deluxe chroot()	
  
•  A mnt namespace can have its own rootfs
•  Filesystems mounted in a mnt namespace
     are visible only in this namespace
•    You need to remount special filesystems,
     e.g.:
     o    procfs (to see your processes)
     o    devpts (to see your pseudo-terminals)
Setting up space efficient
containers (1/2)
/containers/leguest_1/rootfs	
  (empty	
  directory)	
  
/containers/leguest_1/home	
  (container	
  private	
  data)	
  
/images/ubuntu-­‐rootfs	
  (created	
  by	
  debootstrap)	
  


CONTAINER=/containers/leguest_1	
  
mount	
  -­‐-­‐bind	
  /images/ubuntu-­‐rootfs	
  $CONTAINER/rootfs	
  
mount	
  -­‐o	
  ro,remount,bind	
  /images/ubuntu-­‐rootfs	
  $CONTAINER/rootfs	
  
unshare	
  -­‐-­‐mount	
  bash	
  
mount	
  -­‐-­‐bind	
  $CONTAINER/home	
  $CONTAINER/rootfs/home	
  
mount	
  -­‐t	
  tmpfs	
  none	
  $CONTAINER/tmp	
  
#	
  unmount	
  what	
  you	
  don't	
  need	
  ...	
  
#	
  remount	
  /proc,	
  /dev/pts,	
  etc.,	
  and	
  then:	
  
chroot	
  $CONTAINER/rootfs	
  
Setting up space efficient
containers (2/2)
Repeat the previous slides multiple times
 (Once for each different container.)

But, the root filesystem is read-only...?

No problem, nfsroot howtos have been around
 since … 1996
Namespaces: uts	
  
Deals with just two syscalls:
gethostname(),sethostname()	
  

Useful to find out in which container you are

... More seriously: some tools might behave
   differently depending on the hostname (sudo)
Namespaces: user	
  
UID42 in container X isn't UID42 in container Y
• Useful if you don't use the pid namespace
  (With it, X42 can't see/touch Y42 anyway)
• Can make sense for system-wide, per-user
  resource limits if you don't use cgroups	
  
• Honest: didn't really play with those!
Control Groups

   Create as many cgroups as you like.
       Put processes within cgroups.
Limit, account, and isolate resource usage.

    Think ulimit, but for groups of processes
       … and with fine-grained accounting.
Cgroups: the basics
Everything exposed through a virtual filesystem
/cgroup, /sys/fs/cgroup... YourMountpointMayVary
Create a cgroup:
mkdir	
  /cgroup/aloha	
  

Move process with PID 1234 to the cgroup:
echo	
  1234	
  >	
  /cgroup/aloha/tasks	
  
Limit memory usage:
echo	
  10000000	
  >	
  /cgroup/aloha/memory.limit_in_bytes	
  
Cgroup: memory
•    Limit
      o  memory usage, swap usage
      o  soft limits and hard limits
      o  can be nested
•    Account
     o  cache vs. rss
     o  active vs. inactive
     o  file-backed pages vs. anonymous pages
     o  page-in/page-out
•    Isolate
      o  "Get Off My Ram!"
      o  Reserve memory thanks to hard limits
Cgroup: CPU (and friends)
•  Limit
   o    Set cpu.shares (defines relative weights)
•  Account
   o    Check cpustat.usage for user/system breakdown
•  Isolate
   o    Use cpuset.cpus (also for NUMA systems)


Can't really throttle a group of process.
But that's OK: context-switching << 1/HZ
Cgroup: Block I/O
•    Limit & Isolate
     o  blkio.throttle.{read,write}.{iops,bps}.device
     o  Drawback: only for sync I/O
        (i.e.: "classical" reads; not writes; not mapped files)
•    Account
     o  Number of IOs, bytes, service time...
     o  Drawback: same as previously


Cgroups aren't perfect if you want to limit I/O.
Limiting the amount of dirty memory helps a bit.
AUFS

   Writable single-system images

                  or

 Copy-on-write at the filesystem level
AUFS quick example
You have the following directories:
/images/ubuntu-­‐rootfs	
  
/containers/leguest/rootfs	
  
/containers/leguest/rw	
  

mount	
  -­‐t	
  aufs	
  	
  
   	
  	
  	
  	
  	
  	
  -­‐o	
  br=/containers/leguest/rw=rw:/images/ubuntu-­‐
   rootfs=ro	
  	
  
   	
  	
  	
  	
  	
  	
  none	
  /containers/leguest/rootfs	
  


Now, you can write in rootfs:
 changes will go to the rw directory.
Union filesystems benefits
•  Use a single image (remember the mnt
     namespace with read-only filesystem?)
•    Get read-writable root filesystem anyway
•    Be nice with your page cache
•    Easily track changes (rw directory)
AUFS layers
•  Traditional use
    o one read-only layer, one read-write layer
•  System image development
    o  one read-only layer, one read-write layer
    o  checkpoint current work by adding another rw layer
    o  merge multiple rw layers (or use them as-is)
    o  track changes and replicate quickly

•  Installation of optional packages
    o  one read-only layer with the base image
    o  multiple read-only layers with "plugins" / "addons"
    o  one read-write layer (if needed)
AUFS compared to others
•  Low number of developers
•  Not in mainstream kernel
     But Ubuntu ships with AUFS
     o 

•  Has layers, whiteouts, inode translation, proper
     support for mmap...
•    Every now and then, another Union FS makes it
     into the kernel (latest is overlayfs)
•    Eventually, (some) people realize that it lacks
     critical features (for their use-case)
     o    And they go back to AUFS
AUFS personal statement


AUFS is the worst union filesystems out there;
except for all the others that have been tried.

                         Not Churchill
Getting rid of AUFS
•  Use separate mounts for tmp, var, data...
•  Use read-only root filesystem
•  Or use a simpler union FS
  (important data is in other mounts anyway)
setns()	
  
     The use-case
Use-case: managing running containers
(i.e. "I want to log into this container")
•   SSH (inject authorized_keys file)
•   some kind of backdoor
•   spawn a process directly in the container

This is what we want!

•    no extra process (it could die, locking us out)
•    no overhead
setns()	
  
  In theory
•  LXC userland tools feature lxc-attach
•  It relies on setns() syscall…
•  …And on some files in /proc/<PID>/ns/	
  
fd	
  =	
  open("/proc/<pid>/ns/pid")	
  
setns(fd,	
  0)	
  

And boom, the current process joined the
 namespace of <pid>!
setns()	
  
  In practice
Problem (with kernel <3.8):

#	
  ls	
  /proc/1/ns/	
  
ipc	
  	
  net	
  	
  uts	
  

Wait, what?!? (We're missing mnt	
  pid	
  user)

You need custom kernel patches.
Linux 3.8 to the rescue!
Lightweight virtualization
at dotCloud
•  >100 LXC hosts
•  Up to 1000 running containers per host
•  Many more sleeping containers
•  Webapps
  o    Java, Python, Node.js, Ruby, Perl, PHP...
•  Databases
  o    MySQL, PostgreSQL, MongoDB...
•  Others
  o    Redis, ElasticSearch, SOLR...
Lightweight virtualization
at $HOME
•  We wrote the first lines of our current container
     management code back in 2010
•    We learned many lessons in the process
     (sometimes the hard way!)
•    It got very entangled with our platform
     (networking, monitoring, orchestration...)
•    We are writing a new container management
     tool, for a DevOps audience

            Would you like to know more?
Mandatory shameless
plug

  If you think that this was easy-peasy,
         or extremely interesting:
                  Join us!

          jobs@dotcloud.com
Thank you!
More about containers, scalability, PaaS...
       http://blog.dotcloud.com/
               @jpetazzo
Thank you!
More about containers, scalability, PaaS...
       http://blog.dotcloud.com/
               @jpetazzo

Weitere ähnliche Inhalte

Was ist angesagt?

Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConAnatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConJérôme Petazzoni
 
Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Dobrica Pavlinušić
 
Using Puppet on Linux, Windows, and Mac OSX
Using Puppet on Linux, Windows, and Mac OSXUsing Puppet on Linux, Windows, and Mac OSX
Using Puppet on Linux, Windows, and Mac OSXPuppet
 
Introduction to-linux
Introduction to-linuxIntroduction to-linux
Introduction to-linuxrowiebornia
 
Linux containers-namespaces(Dec 2014)
Linux containers-namespaces(Dec 2014)Linux containers-namespaces(Dec 2014)
Linux containers-namespaces(Dec 2014)Ralf Dannert
 
Linux Containers From Scratch: Makfile MicroVPS
Linux Containers From Scratch: Makfile MicroVPSLinux Containers From Scratch: Makfile MicroVPS
Linux Containers From Scratch: Makfile MicroVPSjoshuasoundcloud
 
Linux cgroups and namespaces
Linux cgroups and namespacesLinux cgroups and namespaces
Linux cgroups and namespacesLocaweb
 
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
 Build High-Performance, Scalable, Distributed Applications with Stacks of Co... Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...Yandex
 
Containers and Namespaces in the Linux Kernel
Containers and Namespaces in the Linux KernelContainers and Namespaces in the Linux Kernel
Containers and Namespaces in the Linux KernelOpenVZ
 
Make container without_docker_7
Make container without_docker_7Make container without_docker_7
Make container without_docker_7Sam Kim
 
Namespaces and cgroups - the basis of Linux containers
Namespaces and cgroups - the basis of Linux containersNamespaces and cgroups - the basis of Linux containers
Namespaces and cgroups - the basis of Linux containersKernel TLV
 
Linux container, namespaces & CGroup.
Linux container, namespaces & CGroup. Linux container, namespaces & CGroup.
Linux container, namespaces & CGroup. Neeraj Shrimali
 
Linux Containers From Scratch
Linux Containers From ScratchLinux Containers From Scratch
Linux Containers From Scratchjoshuasoundcloud
 
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템Sam Kim
 
pam_container -- jeszcze lżejsza wirtualizacja
pam_container -- jeszcze lżejsza wirtualizacjapam_container -- jeszcze lżejsza wirtualizacja
pam_container -- jeszcze lżejsza wirtualizacjagnosek
 
Two single node cluster to one multinode cluster
Two single node cluster to one multinode clusterTwo single node cluster to one multinode cluster
Two single node cluster to one multinode clustersushantbit04
 
Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Sam Kim
 

Was ist angesagt? (20)

Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConAnatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
 
Namespaces in Linux
Namespaces in LinuxNamespaces in Linux
Namespaces in Linux
 
Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)
 
Using Puppet on Linux, Windows, and Mac OSX
Using Puppet on Linux, Windows, and Mac OSXUsing Puppet on Linux, Windows, and Mac OSX
Using Puppet on Linux, Windows, and Mac OSX
 
Introduction to-linux
Introduction to-linuxIntroduction to-linux
Introduction to-linux
 
Linux containers-namespaces(Dec 2014)
Linux containers-namespaces(Dec 2014)Linux containers-namespaces(Dec 2014)
Linux containers-namespaces(Dec 2014)
 
Linux Containers From Scratch: Makfile MicroVPS
Linux Containers From Scratch: Makfile MicroVPSLinux Containers From Scratch: Makfile MicroVPS
Linux Containers From Scratch: Makfile MicroVPS
 
Linux cgroups and namespaces
Linux cgroups and namespacesLinux cgroups and namespaces
Linux cgroups and namespaces
 
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
 Build High-Performance, Scalable, Distributed Applications with Stacks of Co... Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
 
Containers and Namespaces in the Linux Kernel
Containers and Namespaces in the Linux KernelContainers and Namespaces in the Linux Kernel
Containers and Namespaces in the Linux Kernel
 
Make container without_docker_7
Make container without_docker_7Make container without_docker_7
Make container without_docker_7
 
Namespaces and cgroups - the basis of Linux containers
Namespaces and cgroups - the basis of Linux containersNamespaces and cgroups - the basis of Linux containers
Namespaces and cgroups - the basis of Linux containers
 
Linux container, namespaces & CGroup.
Linux container, namespaces & CGroup. Linux container, namespaces & CGroup.
Linux container, namespaces & CGroup.
 
Linux Containers From Scratch
Linux Containers From ScratchLinux Containers From Scratch
Linux Containers From Scratch
 
Lxc- Introduction
Lxc- IntroductionLxc- Introduction
Lxc- Introduction
 
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
 
Putting some "logic" in LVM.
Putting some "logic" in LVM.Putting some "logic" in LVM.
Putting some "logic" in LVM.
 
pam_container -- jeszcze lżejsza wirtualizacja
pam_container -- jeszcze lżejsza wirtualizacjapam_container -- jeszcze lżejsza wirtualizacja
pam_container -- jeszcze lżejsza wirtualizacja
 
Two single node cluster to one multinode cluster
Two single node cluster to one multinode clusterTwo single node cluster to one multinode cluster
Two single node cluster to one multinode cluster
 
Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1
 

Andere mochten auch

Linuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best PracticesLinuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best Practiceschristophm
 
IIoT : Old Wine in a New Bottle?
IIoT : Old Wine in a New Bottle?IIoT : Old Wine in a New Bottle?
IIoT : Old Wine in a New Bottle?Venu Vasudevan
 
Understanding cloud services brokerage
Understanding cloud services brokerageUnderstanding cloud services brokerage
Understanding cloud services brokerageAbel Gomez
 
Docker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityDocker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityJérôme Petazzoni
 
Realizing Linux Containers (LXC)
Realizing Linux Containers (LXC)Realizing Linux Containers (LXC)
Realizing Linux Containers (LXC)Boden Russell
 
AWS 101: Cloud Computing Seminar (2012)
AWS 101: Cloud Computing Seminar (2012)AWS 101: Cloud Computing Seminar (2012)
AWS 101: Cloud Computing Seminar (2012)Amazon Web Services
 
A Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container PlatformsA Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container PlatformsSalman Baset
 
Accenture Cloud Platform: Control, Manage and Govern the Enterprise Cloud
Accenture Cloud Platform: Control, Manage and Govern the Enterprise CloudAccenture Cloud Platform: Control, Manage and Govern the Enterprise Cloud
Accenture Cloud Platform: Control, Manage and Govern the Enterprise Cloudaccenture
 
Intro to the FIWARE Lab
Intro to the FIWARE LabIntro to the FIWARE Lab
Intro to the FIWARE LabFIWARE
 
Deploy Mediawiki Using FIWARE Lab Facilities
Deploy Mediawiki Using FIWARE Lab FacilitiesDeploy Mediawiki Using FIWARE Lab Facilities
Deploy Mediawiki Using FIWARE Lab FacilitiesFIWARE
 
How to Install & Configure Your Own Identity Manager GE
How to Install & Configure Your Own Identity Manager GEHow to Install & Configure Your Own Identity Manager GE
How to Install & Configure Your Own Identity Manager GEFIWARE
 
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE LabHow to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE LabFIWARE
 

Andere mochten auch (14)

LXC
LXCLXC
LXC
 
Linuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best PracticesLinuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best Practices
 
IIoT : Old Wine in a New Bottle?
IIoT : Old Wine in a New Bottle?IIoT : Old Wine in a New Bottle?
IIoT : Old Wine in a New Bottle?
 
Understanding cloud services brokerage
Understanding cloud services brokerageUnderstanding cloud services brokerage
Understanding cloud services brokerage
 
Docker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityDocker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and security
 
Realizing Linux Containers (LXC)
Realizing Linux Containers (LXC)Realizing Linux Containers (LXC)
Realizing Linux Containers (LXC)
 
Cloud security ppt
Cloud security pptCloud security ppt
Cloud security ppt
 
AWS 101: Cloud Computing Seminar (2012)
AWS 101: Cloud Computing Seminar (2012)AWS 101: Cloud Computing Seminar (2012)
AWS 101: Cloud Computing Seminar (2012)
 
A Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container PlatformsA Survey of Container Security in 2016: A Security Update on Container Platforms
A Survey of Container Security in 2016: A Security Update on Container Platforms
 
Accenture Cloud Platform: Control, Manage and Govern the Enterprise Cloud
Accenture Cloud Platform: Control, Manage and Govern the Enterprise CloudAccenture Cloud Platform: Control, Manage and Govern the Enterprise Cloud
Accenture Cloud Platform: Control, Manage and Govern the Enterprise Cloud
 
Intro to the FIWARE Lab
Intro to the FIWARE LabIntro to the FIWARE Lab
Intro to the FIWARE Lab
 
Deploy Mediawiki Using FIWARE Lab Facilities
Deploy Mediawiki Using FIWARE Lab FacilitiesDeploy Mediawiki Using FIWARE Lab Facilities
Deploy Mediawiki Using FIWARE Lab Facilities
 
How to Install & Configure Your Own Identity Manager GE
How to Install & Configure Your Own Identity Manager GEHow to Install & Configure Your Own Identity Manager GE
How to Install & Configure Your Own Identity Manager GE
 
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE LabHow to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
 

Ähnlich wie Scale11x lxc talk

LXC Containers and AUFs
LXC Containers and AUFsLXC Containers and AUFs
LXC Containers and AUFsDocker, Inc.
 
Lightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSLightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSJérôme Petazzoni
 
Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?Docker, Inc.
 
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Jérôme Petazzoni
 
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup SunnyvaleIntroduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup SunnyvaleJérôme Petazzoni
 
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQDocker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQJérôme Petazzoni
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Jérôme Petazzoni
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Jérôme Petazzoni
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xrkr10
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XJérôme Petazzoni
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker, Inc.
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionJérôme Petazzoni
 
WTF my container just spawned a shell!
WTF my container just spawned a shell!WTF my container just spawned a shell!
WTF my container just spawned a shell!Sysdig
 
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...Docker, Inc.
 
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Jérôme Petazzoni
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Praguetomasbart
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingDmitry Spodarets
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniTheFamily
 

Ähnlich wie Scale11x lxc talk (20)

LXC Containers and AUFs
LXC Containers and AUFsLXC Containers and AUFs
LXC Containers and AUFs
 
Lightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSLightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFS
 
Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?
 
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
 
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup SunnyvaleIntroduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
 
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQDocker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12x
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in Production
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
 
WTF my container just spawned a shell!
WTF my container just spawned a shell!WTF my container just spawned a shell!
WTF my container just spawned a shell!
 
Containers > VMs
Containers > VMsContainers > VMs
Containers > VMs
 
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...
DockerCon EU 2015: Persistent, stateful services with docker cluster, namespa...
 
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Prague
 
Docker 2014
Docker 2014Docker 2014
Docker 2014
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance Computing
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
 

Mehr von dotCloud

Immutable infrastructure with Docker and EC2
Immutable infrastructure with Docker and EC2Immutable infrastructure with Docker and EC2
Immutable infrastructure with Docker and EC2dotCloud
 
Docker at Spotify - Dockercon14
Docker at Spotify - Dockercon14Docker at Spotify - Dockercon14
Docker at Spotify - Dockercon14dotCloud
 
John Engates Keynote at Dockercon 14
John Engates Keynote at Dockercon 14John Engates Keynote at Dockercon 14
John Engates Keynote at Dockercon 14dotCloud
 
Building a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpBuilding a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpdotCloud
 
DockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubDockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubdotCloud
 
Are VM Passé?
Are VM Passé? Are VM Passé?
Are VM Passé? dotCloud
 
OpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQOpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQdotCloud
 
Docker in pratice -chenyifei
Docker in pratice -chenyifeiDocker in pratice -chenyifei
Docker in pratice -chenyifeidotCloud
 
Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2dotCloud
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...dotCloud
 
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQIntroduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQdotCloud
 
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire dotCloud
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewireIntroduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewiredotCloud
 
Dockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at TwilioDockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at TwiliodotCloud
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013dotCloud
 
Dockerizing your applications - Docker workshop @Twitter
Dockerizing your applications - Docker workshop @TwitterDockerizing your applications - Docker workshop @Twitter
Dockerizing your applications - Docker workshop @TwitterdotCloud
 
Introduction to Docker - Docker workshop @Twitter
Introduction to Docker - Docker workshop @TwitterIntroduction to Docker - Docker workshop @Twitter
Introduction to Docker - Docker workshop @TwitterdotCloud
 
Docker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registryDocker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registrydotCloud
 
Docker links | Docker workshop #2 at Twitter
Docker links | Docker workshop #2 at TwitterDocker links | Docker workshop #2 at Twitter
Docker links | Docker workshop #2 at TwitterdotCloud
 

Mehr von dotCloud (20)

Immutable infrastructure with Docker and EC2
Immutable infrastructure with Docker and EC2Immutable infrastructure with Docker and EC2
Immutable infrastructure with Docker and EC2
 
Docker at Spotify - Dockercon14
Docker at Spotify - Dockercon14Docker at Spotify - Dockercon14
Docker at Spotify - Dockercon14
 
John Engates Keynote at Dockercon 14
John Engates Keynote at Dockercon 14John Engates Keynote at Dockercon 14
John Engates Keynote at Dockercon 14
 
Building a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from YelpBuilding a smarter application Stack by Tomas Doran from Yelp
Building a smarter application Stack by Tomas Doran from Yelp
 
DockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubDockerCon Keynote Ben Golub
DockerCon Keynote Ben Golub
 
Are VM Passé?
Are VM Passé? Are VM Passé?
Are VM Passé?
 
OpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQOpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQ
 
Docker in pratice -chenyifei
Docker in pratice -chenyifeiDocker in pratice -chenyifei
Docker in pratice -chenyifei
 
Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
 
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQIntroduction to Docker and all things containers, Docker Meetup at RelateIQ
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
 
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
Introduction to dockerfile, SF Peninsula Software Development Meetup @Guidewire
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewireIntroduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
 
Dockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at TwilioDockerizing stashboard - Docker meetup at Twilio
Dockerizing stashboard - Docker meetup at Twilio
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
 
Dockerizing your applications - Docker workshop @Twitter
Dockerizing your applications - Docker workshop @TwitterDockerizing your applications - Docker workshop @Twitter
Dockerizing your applications - Docker workshop @Twitter
 
Introduction to Docker - Docker workshop @Twitter
Introduction to Docker - Docker workshop @TwitterIntroduction to Docker - Docker workshop @Twitter
Introduction to Docker - Docker workshop @Twitter
 
Docker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registryDocker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registry
 
Docker links | Docker workshop #2 at Twitter
Docker links | Docker workshop #2 at TwitterDocker links | Docker workshop #2 at Twitter
Docker links | Docker workshop #2 at Twitter
 

Kürzlich hochgeladen

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

Scale11x lxc talk

  • 1. Lightweight Virtualization LXC containers & AUFS SCALE11x — February 2013, Los Angeles Those slides are available at: http://goo.gl/bFHSh  
  • 2. Outline •  Intro: who, what, why? •  LXC containers •  Namespaces •  Cgroups •  AUFS •  setns •  Future developments
  • 3. Who am I? Jérôme Petazzoni @jpetazzo SRE (=DevOps) at dotCloud dotCloud is the first "polyglot" PaaS, and we built it with Linux Containers!
  • 4. What is this about? LXC (LinuX Containers) let you run a Linux system within another Linux system. A container is a group of processes on a Linux box, put together in an isolated environment. Inside the box, it looks like a VM. Outside the box, it looks like normal processes. This is "chroot() on steroids”
  • 5. Why should I care? 1. I will try to convince you that it's awesome. 2. I will try to explain how it works. 3. I will try to get you involved!
  • 6.
  • 7. Why should I care? 1. I will convince you that it's awesome. 2. I will explain how it works. 3. You will want to get involved!
  • 8. Why is it awesome? The 3 reasons why containers are awesome
  • 9. Why? 3) Speed! Ships Manual Automated Boots in ... within ... deployment deployment takes ... takes ... Bare Metal days hours minutes minutes Virtualization minutes minutes seconds less than a minute Lightweight seconds minutes seconds seconds Virtualization
  • 10. Why? 2) Footprint! On a typical physical server, with average compute resources, you can easily run: • 10-100 virtual machines • 100-1000 containers On disk, containers can be very light. A few MB — even without fancy storage.
  • 11. Why? 1) It's still virtualization! Each container has: • its own network interface (and IP address) o  can be bridged, routed... just like $your_favorite_vm •  its own filesystem o  Debian host can run Fedora container (&vice-versa) •  isolation (security) o  container A & B can't harm (or even see) each other •  isolation (resource usage) o  soft & hard quotas for RAM, CPU, I/O...
  • 12. Some use-cases For developers, hosting providers, and the rest of us
  • 13. Use-cases: Developers •  Continuous Integration o  After each commit, run 100 tests in 100 VMs •  Escape dependency hell o  Build (and/or run) in a controlled environment •  Put everything in a VM o  Even the tiny things
  • 14. Use-cases: Hosters •  Cheap Cheaper Hosting (VPS providers) o  I'd rather say "less expensive", if you get my drift o  Already a lot of vserver/openvz/... around •  Give away more free stuff o  "Pay for your production, get your staging for free!" o  We do that at dotCloud •  Spin down to save resources o  And spin up on demand, in seconds o  We do that, too
  • 15. Use-cases: Everyone •  Look inside your VMs o  You can see (and kill) individual processes o  You can browse (and change) the filesystem •  Do whatever you did with VMs o  ... But faster
  • 16. Breaking news: LXC can haz migration! This slide intentionally left blank (but the talk right before mine should have interesting results) oh yes indeed!
  • 17. LXC lifecycle •  lxc-­‐createSetup a container (root filesystem and config) •  lxc-­‐startBoot the container (by default, you get a console) •  lxc-­‐console Attach a console (if you started in background) •  lxc-­‐stop Shutdown the container •  lxc-­‐destroy Destroy the filesystem created with lxc-create
  • 18. How does it work? First time I tried LXC: #  lxc-­‐start  -­‐-­‐name  thingy  -­‐-­‐daemon   #  ls  /cgroup   ...  thingy/  ...   "So, LXC containers are powered by cgroups?" Wrong.
  • 19. Namespaces Partition essential kernel structures to create virtual environments e.g., you can have multiple processes with PID 42, in different environments
  • 20. Different kinds of namespaces •  pid (processes) •  net (network interfaces, routing...) •  ipc (System V IPC) •  mnt (mount points, filesystems) •  uts (hostname) •  user (UIDs)
  • 21. Creating namespaces •  Extra flags to the clone() system call •  CLI tool unshare   Notes: • You don't have to use all namespaces • A new process inherits its parent's ns • No easy way to attach to an existing ns o  Until recently! More on this later.
  • 22. Namespaces: pid   •  Processes in a pid don't see processes of the whole system •  Each pid namespace has a PID #1 •  pid namespaces are actually nested •  A given process can have multiple PIDs o  One in each namespace it belongs to o  ... So you can easily access processes of children ns •  Can't see/affect processes in parent/sibling ns
  • 23. Namespaces: net   •  Each net namespace has its own… o  Network interfaces (and its own lo/127.0.0.1) o  IP address(es) o  routing table(s) o  iptables rules •  Communication between containers: o  UNIX domain sockets (=on the filesystem) o  Pairs of veth interfaces
  • 24. Setting up veth interfaces 1/2 #  Create  new  process,  <PID>,  with  its  own  net  ns   unshare  -­‐-­‐net  bash   echo  $$   #  Create  a  pair  of  (connected)  veth  interfaces   ip  link  add  name  lehost  type  veth  peer  name  leguest   #  Put  one  of  them  in  the  new  net  ns   ip  link  set  leguest  netns  <PID>  
  • 25. Setting up veth interfaces 2/2 #  In  the  guest  (our  unshared  bash),  setup  leguest   ip  link  set  leguest  name  eth0   ifconfig  eth0  192.168.1.2   ifconfig  lo  127.0.0.1   #  In  the  host  (our  initial  environment),  setup  lehost   ifconfig  lehost  192.168.1.1   #  Alternatively:   brctl  addif  br0  lehost   #  ...  Or  anything  else!  
  • 26. Namespaces: ipc   •  Remember "System V IPC"?msgget, semget, shmget   •  Have been (mostly) superseded by POSIX alternatives: mq_open, sem_open, shm_open   •  However, some stuff still uses "legacy" IPC. •  Most notable example: PostgreSQL The problem: xxxget() asks for a key, usually derived from the inode of a well-known file The solution: ipc namespace
  • 27. Namespaces: mnt   •  Deluxe chroot()   •  A mnt namespace can have its own rootfs •  Filesystems mounted in a mnt namespace are visible only in this namespace •  You need to remount special filesystems, e.g.: o  procfs (to see your processes) o  devpts (to see your pseudo-terminals)
  • 28. Setting up space efficient containers (1/2) /containers/leguest_1/rootfs  (empty  directory)   /containers/leguest_1/home  (container  private  data)   /images/ubuntu-­‐rootfs  (created  by  debootstrap)   CONTAINER=/containers/leguest_1   mount  -­‐-­‐bind  /images/ubuntu-­‐rootfs  $CONTAINER/rootfs   mount  -­‐o  ro,remount,bind  /images/ubuntu-­‐rootfs  $CONTAINER/rootfs   unshare  -­‐-­‐mount  bash   mount  -­‐-­‐bind  $CONTAINER/home  $CONTAINER/rootfs/home   mount  -­‐t  tmpfs  none  $CONTAINER/tmp   #  unmount  what  you  don't  need  ...   #  remount  /proc,  /dev/pts,  etc.,  and  then:   chroot  $CONTAINER/rootfs  
  • 29. Setting up space efficient containers (2/2) Repeat the previous slides multiple times (Once for each different container.) But, the root filesystem is read-only...? No problem, nfsroot howtos have been around since … 1996
  • 30. Namespaces: uts   Deals with just two syscalls: gethostname(),sethostname()   Useful to find out in which container you are ... More seriously: some tools might behave differently depending on the hostname (sudo)
  • 31. Namespaces: user   UID42 in container X isn't UID42 in container Y • Useful if you don't use the pid namespace (With it, X42 can't see/touch Y42 anyway) • Can make sense for system-wide, per-user resource limits if you don't use cgroups   • Honest: didn't really play with those!
  • 32. Control Groups Create as many cgroups as you like. Put processes within cgroups. Limit, account, and isolate resource usage. Think ulimit, but for groups of processes … and with fine-grained accounting.
  • 33. Cgroups: the basics Everything exposed through a virtual filesystem /cgroup, /sys/fs/cgroup... YourMountpointMayVary Create a cgroup: mkdir  /cgroup/aloha   Move process with PID 1234 to the cgroup: echo  1234  >  /cgroup/aloha/tasks   Limit memory usage: echo  10000000  >  /cgroup/aloha/memory.limit_in_bytes  
  • 34. Cgroup: memory •  Limit o  memory usage, swap usage o  soft limits and hard limits o  can be nested •  Account o  cache vs. rss o  active vs. inactive o  file-backed pages vs. anonymous pages o  page-in/page-out •  Isolate o  "Get Off My Ram!" o  Reserve memory thanks to hard limits
  • 35. Cgroup: CPU (and friends) •  Limit o  Set cpu.shares (defines relative weights) •  Account o  Check cpustat.usage for user/system breakdown •  Isolate o  Use cpuset.cpus (also for NUMA systems) Can't really throttle a group of process. But that's OK: context-switching << 1/HZ
  • 36. Cgroup: Block I/O •  Limit & Isolate o  blkio.throttle.{read,write}.{iops,bps}.device o  Drawback: only for sync I/O (i.e.: "classical" reads; not writes; not mapped files) •  Account o  Number of IOs, bytes, service time... o  Drawback: same as previously Cgroups aren't perfect if you want to limit I/O. Limiting the amount of dirty memory helps a bit.
  • 37. AUFS Writable single-system images or Copy-on-write at the filesystem level
  • 38. AUFS quick example You have the following directories: /images/ubuntu-­‐rootfs   /containers/leguest/rootfs   /containers/leguest/rw   mount  -­‐t  aufs                -­‐o  br=/containers/leguest/rw=rw:/images/ubuntu-­‐ rootfs=ro                none  /containers/leguest/rootfs   Now, you can write in rootfs: changes will go to the rw directory.
  • 39. Union filesystems benefits •  Use a single image (remember the mnt namespace with read-only filesystem?) •  Get read-writable root filesystem anyway •  Be nice with your page cache •  Easily track changes (rw directory)
  • 40. AUFS layers •  Traditional use o one read-only layer, one read-write layer •  System image development o  one read-only layer, one read-write layer o  checkpoint current work by adding another rw layer o  merge multiple rw layers (or use them as-is) o  track changes and replicate quickly •  Installation of optional packages o  one read-only layer with the base image o  multiple read-only layers with "plugins" / "addons" o  one read-write layer (if needed)
  • 41. AUFS compared to others •  Low number of developers •  Not in mainstream kernel But Ubuntu ships with AUFS o  •  Has layers, whiteouts, inode translation, proper support for mmap... •  Every now and then, another Union FS makes it into the kernel (latest is overlayfs) •  Eventually, (some) people realize that it lacks critical features (for their use-case) o  And they go back to AUFS
  • 42. AUFS personal statement AUFS is the worst union filesystems out there; except for all the others that have been tried. Not Churchill
  • 43. Getting rid of AUFS •  Use separate mounts for tmp, var, data... •  Use read-only root filesystem •  Or use a simpler union FS (important data is in other mounts anyway)
  • 44. setns()   The use-case Use-case: managing running containers (i.e. "I want to log into this container") •  SSH (inject authorized_keys file) •  some kind of backdoor •  spawn a process directly in the container This is what we want! •  no extra process (it could die, locking us out) •  no overhead
  • 45. setns()   In theory •  LXC userland tools feature lxc-attach •  It relies on setns() syscall… •  …And on some files in /proc/<PID>/ns/   fd  =  open("/proc/<pid>/ns/pid")   setns(fd,  0)   And boom, the current process joined the namespace of <pid>!
  • 46. setns()   In practice Problem (with kernel <3.8): #  ls  /proc/1/ns/   ipc    net    uts   Wait, what?!? (We're missing mnt  pid  user) You need custom kernel patches. Linux 3.8 to the rescue!
  • 47. Lightweight virtualization at dotCloud •  >100 LXC hosts •  Up to 1000 running containers per host •  Many more sleeping containers •  Webapps o  Java, Python, Node.js, Ruby, Perl, PHP... •  Databases o  MySQL, PostgreSQL, MongoDB... •  Others o  Redis, ElasticSearch, SOLR...
  • 48. Lightweight virtualization at $HOME •  We wrote the first lines of our current container management code back in 2010 •  We learned many lessons in the process (sometimes the hard way!) •  It got very entangled with our platform (networking, monitoring, orchestration...) •  We are writing a new container management tool, for a DevOps audience Would you like to know more?
  • 49. Mandatory shameless plug If you think that this was easy-peasy, or extremely interesting: Join us! jobs@dotcloud.com
  • 50. Thank you! More about containers, scalability, PaaS... http://blog.dotcloud.com/ @jpetazzo
  • 51. Thank you! More about containers, scalability, PaaS... http://blog.dotcloud.com/ @jpetazzo