https://manuais.iessanclemente.net/index.php?title=Escenario_2.G:_Configuraci%C3%B3n_dun_servidor_de_virtualizaci%C3%B3n_con_VirtualBox_en_Debian&feed=atom&action=historyEscenario 2.G: Configuración dun servidor de virtualización con VirtualBox en Debian - Historial de revisiones2024-03-28T13:00:41ZHistorial de revisiones de esta página en el wikiMediaWiki 1.36.2https://manuais.iessanclemente.net/index.php?title=Escenario_2.G:_Configuraci%C3%B3n_dun_servidor_de_virtualizaci%C3%B3n_con_VirtualBox_en_Debian&diff=48884&oldid=prevAntonio: /* Configuración de equipo debian como servidor de virtualización */2014-10-07T22:38:53Z<p><span dir="auto"><span class="autocomment">Configuración de equipo debian como servidor de virtualización</span></span></p>
<p><b>Página nueva</b></p><div>[[Image:00_Servizos_Virtualizacion_Escenarios_Semana_02_g.jpg|500px]]<br />
<br />
<br />
== Configuración de equipo debian como servidor de virtualización ==<br />
<br />
* Neste escenario imos configurar unha máquina física con Debian co obxectivo que faga de servidor para a execución de servidores virtualizados que presten servizos na rede.<br />
<br />
* A idea do escenario non é que nesta máquina se creen e configuren as máquinas que se van a executar, xa que co obxectivo de optimizar o seu rendemento e evitar problemas de seguridade nin sequera imos instalar nela un contorno gráfico. A estratexia será aproveitar a versatilidade e comodidade de uso da interfaz gráfica de VirtualBox para facer a instalación e configuración das máquinas en calquera equipo, para logo copiar ou exportar estas máquinas ao servidor de virtualización.<br />
<br />
* Porén, tamén se podería facer toda a definición das máquinas usando o comando ''VBoxManage'' directamente no servidor se se quixese; queda a elección do lector escoller a opción que máis lle interese.<br />
<br />
* En principio, esta máquina tamén poderíamos simulala con unha máquina virtual (sobre a que intalaríamos VirtualBox e executar a súa vez máquinas virtuais sobre ela), pero detectamos varios problemas con esta opción: as máquinas de 64 bits non poden arrancar e ademáis o escritorio remoto, que vai ser unha ferramenta básica neste escenario ao non contar no ''host'' con contorno gráfico tampouco funciona correctamente desta maneira. Por iso se opta por facer a instalación de Debian sobre un equipo físico.<br />
<br />
* A instalación farémola seguindo os pasos indicados na [[Instalación de Debian#Instalación do Sistema Operativo|instalación de Debian nunha MV]], destacando que:<br />
** No particionamento do disco, deberá crearse unha partición (o tamaño e posición da mesma dependerá da distribución do disco na máquina física) para instalar o sistema debian xunto cos que se teñan no equipo, salvo que se queiran borrar todos e deixar unicamente este sistema debian.<br />
** Na selección de software, non activaremos o ambiente de escritorio. Só se instalará o servidor SSH (que usaremos para poder configuralo dende unha máquina conectada en rede, copiar e pegar comandos e capturar pantallas) e as utilidades estádares do sistema.<br />
<br />
<br />
<gallery caption="Instalación de VirtualBox e pack de extensións" widths="350" heights="300px" perrow="2"><br />
Image:Sv_2013_servirt_01.png| Unha vez que o equipo Debian está instalado e temos configurada conexión de rede (ben porque a toma por DHCP ou ben porque o configuramos de forma manual, seguindo os pasos que se explican no [[Escenario 2.F: Configuración dun router virtualizado con Debian#Configuración das interfaces de rede|material para ''dserver3'']], conectámonos a el por ssh dende un equipo da rede. Neste caso o equipo Debian ten a dirección IP 10.0.0.8<br />
Image:Sv_2013_servirt_02.png| Imos engadir o repositorio de VirtualBox para instalar o programa. Editamos o ficheiro '''/etc/apt/sources.list''',<br />
Image:Sv_2013_servirt_03.png| engadindo a liña: '''deb http://download.virtualbox.org/virtualbox/debian wheezy contrib'''<br />
Image:Sv_2013_servirt_04.png| Descargamos o ficheiro de firma do repositorio e engadímolo no equipo, co comando: '''wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -'''<br />
Image:Sv_2013_servirt_05.png| Actualizamos os repositorios con '''apt-get update'''<br />
Image:Sv_2013_servirt_06.png| Instalamos o paquete de VirtualBox con '''apt-get install virtualbox-4.3'''<br />
Image:Sv_2013_servirt_07.png| Descargamos o pack de extensións de Oracle: '''wget http://download.virtualbox.org/virtualbox/4.3.16/Oracle_VM_VirtualBox_Extension_Pack-4.3.16-95972.vbox-extpack'''<br />
Image:Sv_2013_servirt_08.png| e instalámolo: '''VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.16-95972.vbox-extpack'''<br />
Image:Sv_2013_servirt_09.png| Comprobamos co comando '''VBoxManage list extpacks''' que o pack de extensións está instalado.<br />
</gallery><br />
<br />
== Rexistro das máquinas virtuais ==<br />
<br />
* Unha vez que xa temos instalado VirtualBox, xa só nos quedan rexistrar as máquinas que queremos executar sobre este servidor, ou tamén podemos importalas (con ''VBoxManage import'').<br />
<br />
* O que si é moi importante é que nestas máquinas teñamos activado o [[O escritorio remoto e arranque de máquinas virtuais en modo ''headless''|escritorio remoto]] xa que senón só as poderemos administrar utilizando algún servizo de acceso remoto ou administración remota que incorpore o S.O. convidado, como un servidor SSH ou o webmin, por exemplo.<br />
<br />
<gallery caption="Rexistro das máquinas virtuais" widths="350" heights="300px" perrow="2"><br />
Image:Sv_2013_servirt_10.png| Para poder engadir as máquinas, teremos que ter no equipo Debian ou ben unha copia das mesmas ou un ficheiro ''.ova'' resultado da exportación das máquinas. Neste caso, as máquinas están na carpeta '''/media/MVs'''.<br />
Image:Sv_2013_servirt_11.png| Comprobamos que non hai máquinas definidas. Rexistramos unha máquina e comprobamos que quedou rexistrada. Faríamos este proceso con todas as máquinas que quixésemos executar no equipo.<br />
</gallery><br />
<br />
== Arranque, parada e visualización das máquinas ==<br />
<br />
Simplemente nos queda utilizar o comando ''VBoxManage'' para iniciar as máquinas en modo ''headless'' (así reducimos o uso de recursos das MVs), e paralas cando queiramos. Con calquera cliente de escritorio remoto nun equipo conectado en rede co servidor de virtualización poderemos conectarnos ás máquinas para poder administralas e configuralas.<br />
<br />
<gallery caption="Arranque, parada e visualización das máquinas" widths="350" heights="300px" perrow="2"><br />
Image:Sv_2013_servirt_12.png| Arranque dunha MV en modo ''headless''<br />
Image:Sv_2013_servirt_13.png| Manexo da máquina co escritorio remoto conectándonos ao servidor de virtualización.<br />
Image:Sv_2013_servirt_14.png| Parada da máquina dende o servidor, gardando o estado.<br />
</gallery><br />
<br />
Seguro que ao lector non se lle escapa que non é excesivamente complexo escribir algún script facendo uso do comando ''VBoxManage'' ou ''VBoxHeadless'' que inicie as máquinas automaticamente no arranque do sistema e que garde o seu estado cando se apague. Por exemplo, no servidor debian poderíamos facer que as máquinas se arrancasen automaticamente no inicio do sistema introducindo a chamada ao comando no ficheiro ''/etc/rc.local'':<br />
<br />
<gallery caption="Arranque automático das máquinas virtuais" widths="350" heights="300px" perrow="2"><br />
Image:Sv_14_virt_serv_07.png| Dado que o script que executa automaticamente no arranque do sistema faino como usuario ''root'', é necesario rexistrar con este usuario a máquina virtual que queiramos executar (lémbrese que a lista de máquinas rexistradas é diferente para cada usuario do sistema ''host'').<br />
Image:Sv_14_virt_serv_08.png| Introducimos no ficheiro ''/etc/rc.local'' a chamada ao comando que inicia a execución da máquina, neste caso usando ''VBoxHeadless''.<br />
</gallery><br />
<br />
<br />
<div style="margin:0; background:#E6ECFF; font-size:100%; border:1px solid #cccccc; text-align:left; padding:0.2em 0.4em; -moz-border-radius:6px">[[Imagen:aprende.png|left]]'''TAMÉN PODES VER...'''<br />
<br />
Podería haber moitas opcións para definir scripts que inicien de forma automática as máquinas que executan os servizos virtualizados. Poderíamos por exemplo obter todas as máquinas rexistradas para o usuario ''root'' para arrancalas todas, gardar nun ficheiro as máquinas que queremos arrancar, facelo en función do nome da máquina, etc. Nos seguintes enlaces se mostran exemplos que arranca máquinas virtuais como un servizo, sobre distintas distribucións de Linux como ''host'':<br />
<br />
* https://forums.virtualbox.org/viewtopic.php?f=7&t=47629<br />
* http://gacimartin.com/2009/01/09/crear-servicio-para-virtualbox/<br />
* http://www.glump.net/howto/virtualbox_as_a_service<br />
<br />
</div><br />
<br />
== Consideracións para aumentar o rendemento das máquinas virtuais ==<br />
<br />
Se imos utilizar VirtualBox para a virtualización de servizos en rede e queremos optimizar o rendemento das máquinas, hai unha serie de aspectos importantes que debemos ter en conta sobre as características das máquinas virtuais:<br />
<br />
* No tocante aos '''discos duros''':<br />
** Non usar discos duros IDE a non ser que o sistema operativo convidado non soporte outra opción. Non hai gran diferenza no rendemento dos outros controladores (SATA, SCSI e SAS), así que pódese escoller calquera deles. <br />
** Usar discos de tamaño fixo, xa que o seu acceso é máis rápido que os de expansión dinámica.<br />
* Con respecto á '''xestión de RAM''', se as MVs teñen instaladas as ''Guest Additions'' VirtualBox ofrece dúas funcionalidades engadidas:<br />
** '''[https://www.virtualbox.org/manual/ch04.html#guestadd-balloon Memory ballooning]''': Esta funcionalidade permite que o hipervisor VirtualBox obteña memoria RAM dunha máquina virtual en execución para poder utilizala na execución de outras máquinas. Para poder facer uso desta función é necesario facer uso do comando ''VBoxManage controlvm "nome_da_máquina" guestmemoryballoon <n>'', onde ''<n>'' é a cantidade de memoria en Megabytes que se quere substraer da máquina virtual. Só está soportada para sistemas hosts de 64 bits.<br />
** '''[https://www.virtualbox.org/manual/ch04.html#guestadd-pagefusion Page Fusion]''': Simplemente activando este parámetro (co comando ''VBoxManage modifyvm "nome_da_máquina" --pagefusion on'') o que vai facer VirtualBox é fusionar as páxinas da RAM que sexan idénticas de varias máquinas virtuais en execución. Isto pode reducir considerablemente o uso de memoria RAM se sobre o mesmo ''host'' estamos executando múltiples máquinas que teñen o mesmo sistema operativo convidado. Só está soportada para sistemas hosts de 64 bits e sistemas convidados Windows 2000 ou superior.<br />
<br />
<br />
<gallery caption="Uso de Page Fusion" widths="350" heights="300px" perrow="2"><br />
Image:Sv_14_page_fus_01.png| Activamos en dúas máquinas co mesmo sistema convidado (neste caso, Windows 7) o parámetro ''page fusion''.<br />
Image:Sv_14_page_fus_02.png| Executamos as máquinas (como se pode ver na imaxe) e usamos o comando [https://www.virtualbox.org/manual/ch08.html#metrics VBoxManage metrics] que permite monitorizar o uso de recursos do hipervisor e das máquinas para comprobar o funcionamento do ''page fusion''. Utilizamos ''VBoxManage metrics setup'' para configurar a monitorización do parámetro da RAM que consume o hipervisor e logo con '''VBoxManage metrics query host RAM/VMM/Shared''' podemos ver a cantidade de RAM compartida entre as máquinas virtuais que están en execución.<br />
</gallery><br />
<br />
* E por último, no tocante á configuración das '''tarxetas de rede''':<br />
** Usar o modelo de tarxeta paravirtualizada, e se non o modelo ''Intel PRO/1000''.<br />
** Usar tarxetas conectadas en modo ponte, aínda que para evitar problemas na importación das máquinas é preferible primeiro poñer as tarxetas en modo NAT e logo cambiar o modo a ponte (''VBoxManage modifyvm "nome_da_maquina" --nic1 bridged'').<br />
<br />
<br />
<br />
-- [[Usuario:Antonio|Antonio de Andrés Lema]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] --</div>Antonio