Instalar servidor LXC en GNU/Linux

LXC (linux containers)

LXC (Linux Containers) es una tecnología de virtualización en el nivel de sistema operativo (SO) para Linux. LXC permite que un servidor físico ejecute múltiples instancias de sistemas operativos aislados, conocidos como Servidores Privados Virtuales (SPV o VPS en inglés) o Entornos Virtuales (EV). LXC no provee de una máquina virtual, más bien provee un entorno virtual que tiene su propio espacio de procesos y redes.

Es similar a otras tecnologías de virtualización en el nivel de SO como OpenVZ y Linux-VServer, asimismo se asemeja a aquellas de otros sistemas operativos como FreeBSD jail y Solaris Containers.

LXC se basa en la funcionalidad cgroups del Linux que está disponible desde la versión 2.6.29, desarrollada como parte de LXC. También se basa en otras funcionalidades de aislamiento de espacio de nombres, que fueron desarrolladas e integradas dentro de la línea principal del núcleo de Linux.

Instalación

 

Debian

apt-get install lxc bridge-utils libvirt-bin debootstrap cgroup-bin libcgroup1

 

Redhat

yum install lxc bridge-utils febootstrap debootstrap lxc-template

 

Creamos el directorio para el contenedor

root@docker:~#  mkdir /lxc
 root@docker:~# cd /lxc
 root@docker:~# mkdir contenedor

 

Habilitamos cgroup.

 

 

 root@docker:~# mkdir /cgroup
 root@docker:~# echo none /cgroup cgroup defaults 0 0 >>/etc/fstab
 root@docker:~# mount /cgroup
 root@docker:~# mkdir /cgroup/contenedor

Configuramos la interfaz de red:

Redhat:
[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
HWADDR=aa:bb:cc:dd:ee:ff:11:22
ONBOOT=yes
BRIDGE=br0
USERCTL=no
IPV6INIT=no
[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifcfg-br0
HOSTNANE=host1
DEVICE=br0
ONBOOT=yes
BOOTPROTO=static
DELAY=0
TYPE=Bridge
IPADDR=192.168.1.88
NETWORK=192.168.1.0
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
MTU=1500
DNS1=192.168.1.0
IPV6INIT=no
USERCTL=no

 

Añadimos para que inicie la interfaz br0

 

[root@docker /lxc]# vi /etc/sysconfig/network-scripts/ifup-post
if [ $DEVNAME = br0 ]
then
/usr/sbin/brctl setfd br0 0
fi
Debian:
 root@docker:~# vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_maxwait 5
post-up /usr/sbin/brctl setfd br0 0

Creamos el contenedor.

root@docker:/lxc/contenedor# lxc-create -n redorbita -t debian –lxcpath=/lxc/contenedor

Configuramos la interfaz de red

Añadimos la siguiente configuración (Modificando el nombre y la dirección IP):

 

root@docker:~#  cat /lxc/contenedor/redorbita/config

# Template used to create this container: /usr/share/lxc/templates/lxc-debian
# Parameters passed to the template:
# For additional config options, please look at lxc.container.conf(5)
lxc.network.type = empty
lxc.rootfs = /lxc/contenedor/redorbita/rootfs

# Common configuration
lxc.include = /usr/share/lxc/config/debian.common.conf

# Container specific configuration
lxc.mount = /lxc/contenedor/redorbita/fstab
lxc.utsname = redorbita
lxc.arch = amd64
lxc.autodev = 1
lxc.kmsg = 0

# Network configuration
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
#lxc.network.hwaddr = 00:16:3e:64:0b:6e

# Assegnazione IP Address
lxc.network.ipv4 = 192.168.1.80/24
lxc.network.ipv4.gateway = 192.168.1.1

# Autostart
lxc.start.auto = 1
lxc.start.delay = 5
lxc.start.order = 100

 

 Iniciamos el servidor

root@docker:/lxc/contenedor# lxc-start -f /lxc/contenedor/redorbita/config -n redorbita -P /lxc/contenedor/ -d

Accedemos por consola

root@docker:~# lxc-console -n redorbita -P /lxc/contenedor/

Connected to tty 1
Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself

Debian GNU/Linux 8 redorbita tty1

redorbita login: root
Password:

Algunos comandos utiles:
 mediante el comando lxc-ls podemos ver las maquinas que tenemos su estado, etc

root@docker:/lxc/contenedor#  lxc-ls -f -P /lxc/contenedor/
NAME          STATE    IPV4                        IPV6  AUTOSTART
——————————————————————
redorbita     RUNNING  192.168.1.80,                   –     YES
redorbitaweb  RUNNING  192.168.1.81                –     YES

 

Un saludo, rokitoh!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*