OpenVZ
Este artículo necesita desarrollarse más. Ampliándolo ayudarás a mejorar Blogx Populi.
Tal vez puedas ayudarte con los wikis catalán e inglés si tienen una página equivalente.
OpenVZ es una tecnología de virtualización en el nivel de sistema operativo basada en el núcleo Linux. OpenVZ permite que un servidor físico ejecute múltiples instancias de sistemas operativos aislados, conocidos como Servidores Privados Virtuales (SPV) o Entornos Virtuales (EV).
[editar] Implementación de ejemplo (en Blogx Populi)
[editar] Instalación
- Agregar fuentes openvz en el sources.list
echo -e "\ndeb http://download.openvz.org/debian-systs lenny openvz" >> /etc/apt/sources.list
Nota: actualmente se puede poner las fuentes para etch o para lenny de i386 de 32 bits y x86_64
wget -q http://download.openvz.org/debian-systs/dso_archiv_signing_key.asc -O- | apt-key add - && apt-get update
- Instalar el kernel binario que trae debian y todas las dependencias que nos recomienda, importante comprobar si en las dependencias están los paquetes
vzctl vzquotasi no, después de reinciar tendremos que instalarlo.
apt-get install linux-image-openvz-amd64
En debian lenny, el grub se actualiza sólo para que arranque con el nuevo kernel. Si no, en otras distribuciones:
update-grub
Y modificar la variable default para que arranque el kernel de openvz. También se puede aprovechar para comentar los otros arranques que mete por defecto, para que arranque en modo monousuario.
Después de todo esto ya reiniciamos la máquina para poder trabajar con el nuevo kernel.
Una vez arrancada la máquina con el kernel 2.6.26-2-openvz-amd64. Si estás con Debian lenny o siguientes sáltate el siguiente paso, si no: tendrás que modificar el archivo /etc/sysctl.conf:
# On Hardware Node we generally need # packet forwarding enabled and proxy arp disabled net.ipv4.conf.default.forwarding=1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.ip_forward=1 # Enables source route verification net.ipv4.conf.all.rp_filter = 1 # Enables the magic-sysrq key kernel.sysrq = 1 # TCP Explict Congestion Notification #net.ipv4.tcp_ecn = 0 # we do not want all our interfaces to send redirects net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0
Si te da el warning:
vps-net_add WARNING: Function proxy_arp for eth1 is set to 0.
Se soluciona añadiendo la siguiente linea:
net.ipv4.conf.eth1.proxy_arp=1
- Podemos comprobar si todo funciona bien con el comando:
sysctl -p
Por temas de compatibilidad y ya que tenemos una partición /var, hacemos un enlace simbólico para meter alli la jaula de los Virtual Servers.
ln -s /var/lib/vz /vz
Ahora instalamos los templates para Debian, se puede hacer de manera diferente, como bien lo explica en el wiki de openvz. Creando el template que más nos guste, los repositorios de openVZ que hemos puesto al principio poseen unos paquetes que contienen la versión 4.0 (etch) y la versión 5.0 (lenny) de Debian, tanto si la base es etch o lenny he decido hacerlo desde apt:
apt-get install vzctl-ostmpl-debian-5.0-amd64-minimal
Para instalar squeeze hay que bajar el archivo debian-squeeze-testing-standard_6.0-1_amd64.tar.gz ahora mismo no disponible en lenny y copiarlo en /var/lib/vz/template/cache
Luego instalamos vzprocps, grupo de utilidades para darnos información del sistema y vzdump utilidad para hacer backups y restaurar VE:
apt-get install vzprocps vzdump
Y con esto ya tenemos creada nuestra máquina de openvz, asi que ya solo falta arrancarla o rearrancarla.
/etc/init.d/vz [start - stop -restart]
[editar] Administración
[editar] Creación de máquinas virtuales
Ahora es el momento de crear nuestras máquinas virtuales, primero tener en cuenta que openvz se reserva la numeración de la 0-100, asi que la primera máquina que podremos crear sera la 101.
- Crear la Máquina test101 (según la versión que desees crear):
vzctl create 101 --ostemplate debian-4.0-amd64-minimal
o
vzctl create 101 --ostemplate debian-5.0-amd64-minimal
o
vzctl create 101 --ostemplate debian-squeeze-testing-standard_6.0-1_amd64
Configuramos los parametros de red:
vzctl set 101 --ipadd x.x.x.101 --save
El DNS:
vzctl set 101 --nameserver x.x.x.x --save
Y el nombre del host virtual:
vzctl set 101 --hostname test101.moviments.net --save
Le indicamos que esa máquina arranque al inicio:
vzctl set 101 --onboot yes --save
Definimos el espacio de disco (ej 20Gb):
vzctl set 101 --diskspace 20000000:22000000 --save
[editar] Configuración de máquinas virtuales
Y la arrancamos ahora manualmente, para no reiniciar.
vzctl start 101
Una vez arrancada la máquina virtual para entrar en ella haremos:
vzctl enter 101
Una vez dentro, exportaremos la variable PATH:
export PATH=/sbin:/usr/sbin:/bin:/usr/bin
Actualizamos el sistema:
apt-get update apt-get upgrade
Desactivamos el acceso a Root.
usermod -L root
Desactivamos las consolas getty:
sed -i -e '/getty/d' /etc/inittab
Desactivamos haciendo sync () para escribir en todos los archivos de registro de syslog, para mejorar el rendimiento Entrada/Salida:
sed -i -e 's@\([[:space:]]\)\(/var/log/\)@\1-\2@' /etc/syslog.conf
Linkamos /proc/mounts a /etc/mtab:
rm -f /etc/mtab ln -s /proc/mounts /etc/mtab
Borramos todos aquellos servicios que no vamos a usar:
update-rc.d -f klogd remove update-rc.d -f quotarpc remove update-rc.d -f exim4 remove update-rc.d -f inetd remove
[editar] Modificación de máquinas virtuales
- Cambiar los parámetros equivalentes a la RAM (por ejemplo para 512MB):
vzctl set 101 --kmemsize 512m --save vzctl set 101 --privvmpages 512m --save
[editar] Copia de seguridad (usable) de máquina virtual
- In this example, a VPS 105 is cloned to create 106. The data that you will create for a VPS is located in the
/vz/private/directory. Be sure to use the switch -a when you use cp as it is important in getting the permissions right. The -a options maintains all of the archival attributes which is very important.
cp -a /vz/private/105 /vz/private/106
Next you need to copy the configuration for the VPS so that all of the settings are available. The configuration files are found in /etc/vz/conf. Once you have copied the configuration file over you will need to edit two lines:
HOSTNAME=”servidor105″ IP_ADDRESS=”192.168.1.15″
These two lines are important to set up the correct IP Address and the hostname to distinguish the virtual servers.
cp /etc/vz/conf/105.conf /etc/vz/conf/106.conf
para cambiarlas por las siguientes líneas:
HOSTNAME=”servidor106″ IP_ADDRESS=”192.168.1.16″
[editar] Copia de seguridad (para ser restaurada) de máquina virtual
Comprimir en directorio de backup
vzdump --compress --dumpdir /root/ 106
Restaurarla
vzrestore /root/vzdump-openvz-106-2011_06_09-13_17_26.tgz 107
[editar] Montar particiones del host amfitrión a la máquina virtual
Tenemos el ejemplo de un hd externo con los backups
amfitrión] mount -t auto /dev/sdc2 /mnt/hd amfitrión] mount -n -t simfs /mnt/hd /var/lib/vz/root/105/mnt/hd -o /mnt/hd
amfitrión] vzctl enter 105 root@v-www-conway:/# ls /mnt/hd backup_conway backups_vonneuman ibdata1 ib_logfile1 mysql wikies backup_sda3 debian-5.0.flag ib_logfile0 lost+found mysql_upgrade_info root@v-www-conway:/# mount /dev/simfs on / type simfs (rw) tmpfs on /lib/init/rw type tmpfs (rw,nosuid) proc on /proc type proc (rw,nosuid,nodev,noexec) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,nosuid,noexec) /dev/sdc2 on /mnt/hd type ext3 (rw,data=ordered) root@v-www-conway:/# fdisk -l cannot open /proc/partitions root@v-www-conway:/# df -h Filesystem Size Used Avail Use% Mounted on /dev/simfs 20G 13G 6.6G 66% / tmpfs 4.0G 0 4.0G 0% /lib/init/rw tmpfs 4.0G 0 4.0G 0% /dev/shm /dev/sdc2 114G 47G 62G 43% /mnt/hd
Mas info Bind mounts
[editar] Permitir montar tuneles TUN desde el Container
vzctl stop 101 vzctl set 101 --devnodes net/tun:rw --save vzctl set 101 --devices c:10:200:rw --save vzctl set 101 --capability net_admin:on --save
vzctl exec 101 mkdir -p /dev/net vzctl exec 101 chmod 600 /dev/net/tun vzctl start 101
vzctl enter 101
modprobe tun
y si no funciona
modprobe -n tun
con esta opción deberemos ejecutar este comando cada vez que se levanta la maquina
http://www.overdose.ro/2011/09/create-an-openvpn-server-inside-an-openvz-container/
nota: he tenido que instalar psmisc (para el killall) y module-init-tools (para modprobe), la maquina virtual era muy pero que muy básica hehe
[editar] Eliminar máquina virtual
Cuando nos cansemos de nuestra máquina virtual creada:
vzctl stop 101 vzctl destroy 101
Esto nos dejará, todavía, de seguridad la configuración de la máquina virtual en un archivo .destroyed
/etc/vz/conf/101.conf.destroyed
Que podemos borrar para deshacernos del todo.
[editar] Véase también
- Proxmox: frontend para las máquinas virtuales de OpenVZ