User Tools

Site Tools


informatica:linux:virtualizacion:lxc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatica:linux:virtualizacion:lxc [2014/01/10 11:58] javiinformatica:linux:virtualizacion:lxc [2015/08/06 23:09] (current) jose
Line 1: Line 1:
 **LXC** **LXC**
  
-http://linuxcontainers.org/+http://linuxcontainers.org/\\ 
 +https://launchpad.net/ubuntu/+source/lxc
  
   * Es un sistema de virtualizacion a nivel de Sistema Operativo, tambien conocido como virtualizacion por contenedores   * Es un sistema de virtualizacion a nivel de Sistema Operativo, tambien conocido como virtualizacion por contenedores
Line 12: Line 13:
   * Una maquina con una CPU que soporte virtualizacion. Lo podemos mirar en la BIOS o lanzando este comando:   * Una maquina con una CPU que soporte virtualizacion. Lo podemos mirar en la BIOS o lanzando este comando:
  
-sudo egrep '(vmx|svm)' --color=always /proc/cpuinfo+  sudo egrep '(vmx|svm)' --color=always /proc/cpuinfo
  
 SI soporta virtualizacion si vemos la siguiente salida: SI soporta virtualizacion si vemos la siguiente salida:
Line 27: Line 28:
   * Habilitar una serie de modulos en el user space del kernel   * Habilitar una serie de modulos en el user space del kernel
  
 +  grep -i _ns /boot/config-$(uname -r)
 +
 +<code>
 +CONFIG_UTS_NS=y
 +CONFIG_IPC_NS=y
 +CONFIG_USER_NS=y
 +CONFIG_PID_NS=y
 +CONFIG_NET_NS=y
 +CONFIG_NF_CONNTRACK_NETBIOS_NS=m
 +CONFIG_NSC_FIR=m
 +CONFIG_PATA_NS87415=m
 +CONFIG_PATA_NS87410=m
 +CONFIG_NS83820=m
 +CONFIG_GAMEPORT_NS558=m
 +CONFIG_TCG_NSC=m
 +CONFIG_NCPFS_NFS_NS=y
 +CONFIG_NCPFS_OS2_NS=y
 +</code>
 ======= Instalacion ======= ======= Instalacion =======
  
-Como se ha dicho basta con instalar un nucleo reciente de cualquier distribucion GNU/LinuxEn este ejemplo:+https://wiki.debian.org/LXC
  
-3.12-1-amd64+====== Paquetes ======
  
-En cuanto a las herramientas de usuarios hay dos opciones:+1. Elegir las herramientas de usuario. Hay dos opciones:
  
 +  * LXC
  
 +  sudo aptitude install lxc
 +  
 +  * Libvirt
 +
 +  sudo aptitude install libvirt-bin
 +
 +Yo he instalado tambien los siguientes paquetes
 +
 +2. Instalar mas paquetes (quiza son dependencias de los anteriores):
 +
 +  sudo aptitude install bridge-utils debootstrap
 +
 +3. (Comprobar si es estrictamente necesario) Montar cgroup
 +
 +3.1. Editar:
 +
 +  sudo vim /etc/fstab
 +  
 +Y anyadir la siguiente linea:
 +
 +  cgroup  /sys/fs/cgroup  cgroup  defaults  0   0
 +  
 +3.2. Montar:
 +
 +  sudo mount /sys/fs/cgroup
 +  
 +4. Para comprobar que todos los requisitos estan satisfechos:
 +
 +  sudo lxc-checkconfig
 +  
 +Salida esperada:
 +
 +<code>
 +--- Namespaces ---
 +Namespaces: enabled
 +Utsname namespace: enabled
 +Ipc namespace: enabled
 +Pid namespace: enabled
 +User namespace: enabled
 +Network namespace: enabled
 +Multiple /dev/pts instances: enabled
 +
 +--- Control groups ---
 +Cgroup: enabled
 +Cgroup clone_children flag: enabled
 +Cgroup device: enabled
 +Cgroup sched: enabled
 +Cgroup cpu account: enabled
 +Cgroup memory controller: enabled
 +Cgroup cpuset: enabled
 +
 +--- Misc ---
 +Veth pair device: enabled
 +Macvlan: enabled
 +Vlan: enabled
 +File capabilities: enabled
 +
 +Note : Before booting a new kernel, you can check its configuration
 +usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
 +</code>
 +
 +====== Cgroups ======
 +
 +http://libvirt.org/cgroups.html
 +
 +1. (Opcional) Instalo systemd y elimino la entrada en /etc/fstab
 +
 +====== Creación de máquinas ======
 +
 +Como root
 +  lxc-create -t <template> -n <nombre_servert>
 +Por ejemplo:
 +  lxc-create -t debian -n mldonkey
 +Cuando la crea te da la password de root.
 +
 +La podemos arrancar:
 +  root@alcala:~# lxc-start -n mldonkey -d
 +Mirar como está
 +  root@alcala:~# lxc-info -n mldonkey
 +  Name:           mldonkey
 +  State:          RUNNING
 +  PID:            15393
 +  CPU use:        0.07 seconds
 +  BlkIO use:      0 bytes
 +Todas los contenedores
 +  root@alcala:~# lxc-ls -f
 +  NAME      STATE    IPV4  IPV6  AUTOSTART  
 +  ----------------------------------------
 +  mldonkey  RUNNING  -         NO         
 +Podemos entrar en ella
 +  root@alcala:~# lxc-attach -n mldonkey
 +  root@mldonkey:~# 
 +
 +Vemos que tiene el mismo kernel que el host  
 +  root@alcala:~# uname -a
 +  Linux alcala 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u2 (2015-07-17) x86_64 GNU/Linux
 +  
 +  root@mldonkey:~# uname -a
 +  Linux mldonkey 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u2 (2015-07-17) x86_64 GNU/Linux
 +
 +====== RED ======
 +En el host tenemos que crear un bridge con nuestra tarjeta de red:
 +<code>
 +auto br0
 +iface br0 inet dhcp
 +        bridge_ports eth0
 +        bridge_fd 0
 +        bridge_maxwait 0
 +</code>
  
 +En el fichero de configuración por defecto ponemos que cada máquina tenga una interficie con el bridge:
 +  /etc/lxc/default.conf
 +  
 +  lxc.network.type = veth
 +  lxc.network.flags = up
 +  lxc.network.link = br0
 +  
 +Cuando creemos una máquina le pondrá esa configuración, por ejemplo:
 +  /var/lib/lxc/mldonkey/config
 +  
informatica/linux/virtualizacion/lxc.1389355125.txt.gz · Last modified: 2015/04/13 20:19 (external edit)