6 Ventajas de la virtualización – Casos reales
La virtualización se basa en unir, integrar, mejorar.
Unir: En los centros de computo por lo general vemos una gran cantidad de máquinas fisicas corriendo un servicio por máquina, dejando de utilizar todo el poder de los procesadores actuales. El administrador de infraestructura se siente orgulloso (y con razón) de que sus 30 servidores funcionan como un reloj, pero si una máquina falla por lo general no se tiene un segundo servidor que pueda reemplazarlo.Con virtualización puedo migrar o recuperar un backup en una nueva máquina para no tener largos tiempos muertos.
En ocasiones en un solo servidor (sin importar su tamaño) se encarga de 1 o 2 aplicaciones corriendo dentro de ella. Por ejemplo la pagina de tu compañía esta corriendo sobre 1 máquina física? Que % de uso de CPU está en uso?
Lo que un sysadmin por lo general implementaría en el anterior ejemplo es un servidor con poca memoria como para no desaprovechar mucho la máquina (estoy hablando de una pagina simple… nada de alto trafico / aplicaciones)
Si se virtualiza un número de esos sistemas infrautilizados en un solo servidor físico, se ahorrará energía, espacio, capacidad de refrigeración y administración, debido a que se ha reducido el número de servidores físicos.
Algunas ventajas de la virtualización son:
Aislamiento: las máquinas virtuales son totalmente independientes, entre sí y con el hypervisor. Por tanto un fallo en una aplicación o en una máquina virtual afectará únicamente a esa máquina virtual. El resto de máquinas virtuales y el hypervisor seguirán funcionando normalmente.
Un hipervisor (en inglés hypervisor) o monitor de máquina virtual (virtual machine monitor) es una plataforma que permite aplicar diversas técnicas de control de virtualización para utilizar, al mismo tiempo, diferentes sistemas operativos (sin modificar o modificados en el caso de paravirtualización) en una misma computadora. Es una extensión de un término anterior, “supervisor”, que se aplicaba a kernels de sistemas operativos. (Tomado de wikipedia – mas info: google)
Seguridad: cada máquina tiene un acceso privilegiado (root o administrador) independiente. Por tanto, un ataque de seguridad en una máquina virtual sólo afectará a esa máquina.
Flexibilidad: podemos crear las máquinas virtuales con las características de CPU, memoria, disco y red que necesitemos, inclusive especificando a que “vlan” debe estar conectada, sin necesidad de “comprar” un servidor con esas características. También podemos tener máquinas virtuales con distintos sistemas operativos, ejecutándose dentro de una misma máquina física.
Agilidad: el despliegue o creación de una máquina virtual es un proceso muy rápido, básicamente la ejecución de un comando. Por tanto, si necesitamos un nuevo servidor lo podremos tener casi al instante, sin pasar por el proceso de compra, configuración, etc.
Portabilidad: toda la configuración de una máquina virtual reside en uno o varios ficheros. Esto hace que sea muy fácil clonar o transportar la máquina virtual a otro servidor físico, simplemente copiando y moviendo dichos ficheros que encapsulan la máquina virtual.
Recuperación rápida en caso de fallo: si se dispone de una copia de los ficheros de configuración de la máquina virtual, en caso de desastre la recuperación será muy rápida, simplemente arrancar la máquina virtual con los ficheros de configuración guardados. No es necesario reinstalar, recuperar backups y otros procedimientos largos que se aplican en las máquinas físicas.
Estas ventajas tienen un precio, que consiste fundamentalmente en una pérdida de rendimiento, es decir, una aplicación generalmente correrá más despacio en una máquina virtual que en un servidor físico.
La degradación dependerá de la tecnología de virtualización utilizada, de la configuración realizada a nivel hypervisor y de la propia aplicación.
Por regla general, las aplicaciones que más repercuten la pérdida de rendimiento son las que realizan operaciones frecuentes de entrada/salida.
Y el hardware?
Otro aspecto a tener en cuenta es que la máquina física deberá contar con suficiente memoria para poder arrancar todas las máquinas virtuales.
Si queremos crear, por ejemplo, 10 máquinas virtuales en un servidor físico y que estén funcionando simultáneamente, hay tecnologías que permiten hacerlo con 1 sola CPU física. Pero al menos necesitaremos 1 GB de memoria para cada máquina virtual, más la requerida por el hypervisor, lo que daría lugar a unos requerimientos de unos 12 GB de memoria. Es decir, necesitaríamos un servidor con 1 CPU y 12 GB de memoria (lo que es una configuración bastante extraña). Recordemos sin embargo que la mayoría de servidores actuales manejan procesadores de múltiples núcleos y algunas herramientas para virtualización permiten asignar por ejemplo a una máquina virtual múltiples núcleos.
En casa por ejemplo se pueden desplegar múltiples máquinas virtuales con el fin de realizar pruebas (instalar al mismo tiempo Windows y todas las máquinas Linux que queramos probar sin necesidad de formatear el disco duro con cada instalación)
Comandos útiles para el Programa Vi / Vim
Si eres como yo una persona que utiliza Vi / Vim a diario y que no se sabe toodas las opciones escribo esta mini – guía para tu trabajo diario.
Para obtener un desplazamiento por páginas en el programa Vi / Vim:
Ctrl + f = Avanzar una página
Ctrl + b = Retroceder una página
Para obtener un desplazamiento en la línea donde se encuentra el cursor en el programa Vi / Vim:
$ = Ir al final de la línea
0 = Ir al principio de la línea (cero)
G = Ir a la última línea del documento
Eliminar info
x = Elimina el carácter donde se encuentra el cursor
dd = Elimina la línea donde se encuentre el cursor y desplaza todo el texto arriba.
D = Elimina el texto de la línea en la que se encuentra el cursor
Por ultimo en esta ocasión el comando más util:
u = Deshacer el último comando ejecutado
Si tienes preguntas, comentarios o felicitaciones te invito a plantearlas en mi cuenta de twitter
Rsync para sincronización local (2 directorios mismo pc)
El escenario
Tengo los datos importantes en mi disco duro local y deseo hacer una copia de seguridad ya sea en una memoria USB previamente montada o en un segundo disco duro dentro de la misma máquina la cual solo utilizo para backups.
Dentro de dicho directorio (origen) tengo archivos que no cambian de backup en backup (o cambian muy poco) y por lo tanto no es necesario sobre-escribirlos en el destino de backup. En el directorio origen adicional tengo subdirectorios algunos de los cuales están vacíos y por lo tanto no deben ser copiados.
Parece complejo cierto? pero la solución es simple
El comando
rsync -uarmzhP /dir/origen/ /dir/destino
-u : update
-a: archive mode
-r: recursive
-m: no envía los directorios vacíos
-z: comprime mientras transfiere (así se ahorra tiempo y ancho de banda)
-h: presentación para humanos
-P: muestra el progreso de la copia
Si deseo borrar en el directorio destino los archivos que ya no esten en el directorio origen el comando completo sería:
rsync -uarmzhP –delete /dir/origen/ /dir/destino
donde
- -delete: borra en el destin0 los archivos que ya no estén en el origen
Nota: son dos guiones seguidos (- -)
Si tienes preguntas, comentarios o felicitaciones te invito a plantearlas en mi cuenta de twitter
Una nueva etapa
El 14 de Mayo de 2007 comencé a escribir en este blog, con mis primeros escritos formales sobre Gnu/Linux y similares.
La idea original era (y aun es) compartir con las personas que les pueda beneficiar o interesar un poco de lo que se o aprendo y recibir de forma reciproca retroalimentación sobre los escritos.
Que puedo comentar sobre esta experiencia de 4 años en esta bitácora?
- Compartí mis primeras experiencias sobre el manejo de particiones NTFS en sistema Debian (ahora algo común en la mayoría de sistemas Gnu/Linux)
- Ilustré paso a paso como configurar una webcam, tarjetas wifi o implementar servicios prácticos.
- Escribí sobre el nacimiento, novedades, crecimiento, implementación y muerte lenta del sistema OpenSolaris
- Narré sucesos personales (muerte de mascotas, compra de mascotas, sueños y logros)
- Compartí con el mundo la aventura de mi matrimonio (algo que pocos creían que sucedería)
- Y otras cosas mas…
Ahora comienza una nueva etapa en la cual el ámbito laboral es idóneo para generar documentación técnica relacionada a Gnu/Linux y también (aunque no lo deseo) de vez en cuando sobre Microsoft Windows.
Para celebrar esto decidí inscribir esta bitácora en un nuevo dominio y pagarle a WordPress un pequeño canon para que ellos manejen y almacenen la info en sus servidores.
Por lo tanto declaro que blog.jmmejiav.co esta oficialmente abierto a su lectura y consideración. Que lo disfruten…
Una tarde de Julio 8 de 2011
Equipo Amd Phenom Quad-core
Esta máquina llamada “FEROZ” y que está en servicio desde el 16 de Octubre de 2008 tiene un procesador Amd Phenom Quad-core 9660 con 4 Gb en Ram, una tarjeta de video Nvidia (al fin) GeForce 7300 GT con 256 mb. La vieja unidad quemadora de dvds, un disco duro ide de 320 Gb (donde instalo el sistema operativo), dos discos SATA de 1 Tb montados en un sistema LVM dando un total de 1.82 Tb en LVM.
La versión mas reciente de Debian reconoce la tarjeta de red onboard que es una nvidia y la tarjeta de sonido es una Encore con chip VIA (maneja 5.1)
Actualmente está con multi boot instalado Windows Xp SP3 (un mal necesario) y mi confiable y amigable Gnu/Linux Debian.
La información técnica de dicha máquina es:
# cat /proc/cpuinfo (esto por 4 procesadores) processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 2 model name : AMD Phenom(tm) 9600 Quad-Core Processor stepping : 2 cpu MHz : 2299.977 cache size : 512 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 4 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs bogomips : 4599.94 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm stc 100mhzsteps hwpstate # cat /proc/meminfo MemTotal: 4060756 kB MemFree: 100344 kB Buffers: 1188852 kB Cached: 2435840 kB SwapCached: 0 kB Active: 268112 kB Inactive: 3543264 kB Active(anon): 114956 kB Inactive(anon): 76504 kB Active(file): 153156 kB Inactive(file): 3466760 kB Unevictable: 4 kB Mlocked: 4 kB SwapTotal: 7928824 kB SwapFree: 7928824 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 186768 kB Mapped: 63384 kB Shmem: 4700 kB Slab: 78368 kB SReclaimable: 58672 kB SUnreclaim: 19696 kB KernelStack: 2120 kB PageTables: 14684 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 9959200 kB Committed_AS: 458088 kB VmallocTotal: 34359738367 kB VmallocUsed: 122720 kB VmallocChunk: 34359609048 kB HardwareCorrupted: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 7040 kB DirectMap2M: 2088960 kB DirectMap1G: 2097152 kB
Luego les contaré como se va comportando y cambios que realizo.
