LinuxParty
La Máquina Virtual basada en Kernel (KVM) es un módulo de virtualización para el kernel de Linux que lo convierte en un hipervisor. ¿Cómo puedo instalar KVM con red en puente, configurar el sistema operativo invitado como la tecnología de virtualización de back-end para el servidor Debain Linux no gráfico?
Puede usar KVM para ejecutar múltiples sistemas operativos como Windows, *BSD, distribución de Linux usando máquinas virtuales. Cada máquina virtual tiene su disco privado, tarjeta gráfica, tarjeta de red y más.
Pasos para instalar el servidor KVM en el servidor Debian Linux 9.x/10.x
- El servidor host ubicado en el centro de datos remoto y es un servidor "sin cabeza". (desatendido)
- Todos los comandos de este tutorial se escribieron sobre la sesión basada en ssh.
- Necesita un cliente vnc para instalar el sistema operativo invitado.
- En este tutorial, aprenderá cómo instalar el software KVM en el servidor Debian Linux y cómo usar KVM para configurar su primera máquina virtual invitada.
Siga los pasos de instalación de KVM en el servidor desatendido Debian Linux
Paso 1: Instalar kvm
Escriba el siguiente comando apt-get / comando apt :
$ sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils libguestfs-tools genisoimage virtinst libosinfo-bin
Permitir que el usuario normal administre la máquina virtual
Si desea que el usuario normal/regular pueda administrar máquinas virtuales. Agregue el usuario vivek a libvirt y libvirt-qemu usando el comando usermod : Recargue la membresía del grupo con la ayuda del comando newgrp: Verifique la membresía de su grupo con el comando id : Tenga en cuenta que necesita usar el siguiente comando para conectarse al servidor KVM
$ sudo adduser vivek libvirt
$ sudo adduser vivek libvirt-qemu$ newgrp libvirt
$ newgrp libvirt-qemu$ id
$ virsh --connect qemu:///system
$ virsh --connect qemu:///system command
$ virsh --connect qemu:///system list --all
Paso 2: Verifique la instalación de kvm en Debain
Ejecute el siguiente comando egrep para verificar que Intel VMX o AMD SVM sean compatibles con su CPU:
$ egrep --color 'vmx|svm' /proc/cpuinfo
Salidas de muestra:
rf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
Paso 3: Configure la red en puente en Debian
Voy a crear Bridge Interface br0 como la conexión de red en la configuración de invitados de VM para la interfaz eth0:
$ sudo vi /etc/network/interfaces.d/br0
agregue lo siguiente:
## asegúrese de eliminar todas las configuraciones relacionadas con eth0 ##
auto br0 iface br0 inet static address 192.168.2.23 # configuración/máscara de red/transmisión/puerta de enlace según su configuración broadcast 192.168.2.255 netmask 255.255.255.0 gateway 192.168.2.254 bridge_ports eth0 # reemplace eth0 con su nombre de interfaz real bridge_stp off # deshabilitar el protocolo de árbol de expansión bridge_waitport 0 # sin demora antes de que un puerto esté disponible bridge_fd 0 # sin retraso de reenvío
Reinicie el servicio de red en Linux:
$ sudo systemctl restart network-manager
Para ver la configuración de red actual para KVM, ejecute:
$ sudo virsh net-list --all
Salidas de muestra:
Name State Autostart Persistent ---------------------------------------------------------- default inactive no yes
Debe configurar un dominio invitado KVM en una red con puente. Por lo tanto, cree un archivo llamado bridge.xml de la siguiente manera en un editor de texto como el comando vi:
$ sudo vi /root/bridged.xml
agregue la siguiente configuración:
<network> <name>br0</name> <forward mode="bridge"/> <bridge name="br0"/> </network>
Guarde y cierre el archivo en vi / vim .
$ sudo virsh net-define --file /root/bridged.xml
$ sudo virsh net-autostart br0
$ sudo virsh net-start br0
Paso 4: Cree su primera máquina virtual usando un instalador de imágenes ISO
Voy a crear una máquina virtual CentOS 7.x. Primero, tome la última imagen ISO de CentOS 7.x:
$ cd /var/lib/libvirt/boot/
$ sudo wget https://mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso
Crear máquina virtual CentOS 7
En este ejemplo, estoy creando CentOS 7.x VM con 2 GB de RAM, 2 núcleos de CPU, 1 NIC y 40 GB de espacio en disco, ingrese: Para configurar el inicio de sesión de vnc desde otro terminal a través de ssh y escriba: También puede usar el siguiente comando: Anote el valor del puerto (es decir, 5901). Debe usar un cliente SSH para configurar el túnel y un cliente VNC para acceder al servidor vnc remoto. Escriba el siguiente comando de reenvío de puerto SSH desde su cliente/escritorio: Una vez que haya establecido el túnel ssh, puede apuntar su cliente VNC a su propia dirección 127.0.0.1 (host local) y puerto 5901 de la siguiente manera:
$ sudo virt-install \
--virt-type=kvm \
--name centos7 \
--ram 2048 \
--vcpus=2 \
--os-variant=rhel7 \
--virt-type=kvm \
--hvm \
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1708.iso \
--network=bridge=br0,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2
Para configurar el inicio de sesión de vnc desde otro terminal a través de ssh y escriba:
$ sudo virsh dumpxml centos7 | grep vnc
<graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'>
También puede utilizar el siguiente comando:
$ sudo virsh vncdisplay centos7
$ ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. -L 5901:127.0.0.1:5901
Debería ver la pantalla de instalación de invitado de CentOS Linux 7 de la siguiente manera:
Ahora solo siga las instrucciones en pantalla e instale CentOS 7. Una vez instalado, continúe y haga clic en el botón de reinicio. El servidor remoto cerró la conexión con nuestro cliente VNC. Puede volver a conectarse a través del cliente KVM para configurar el resto del servidor, incluida la sesión basada en SSH o el firewall.
Paso 5: utilice virt-builder para crear una máquina virtual
El método anterior (virt-install) funciona bien, pero si necesita construir rápidamente nuevas máquinas virtuales, pruebe virt-builder.
Cómo enumerar las máquinas virtuales disponibles
$ virt-builder --list | more
Puede usar el comando grep para filtrar solo máquinas virtuales basadas en arquitectura x86_64:
$ virt-builder --list | grep x86_64
Salidas de muestra:
openSUSE- 13.1 x86_64 openSUSE 13.1 openSUSE- 13.2 x86_64 openSUSE 13.2 opensuse- 42.1 x86_64 openSUSE Leap 42.1 openSUSE-tumbleweed x86_64 openSUSE Tumbleweed centos- 6 x86_64 CentOS 6.6 centos- 7.0 x86_64 CentOS 7.0 centos- 7.1 x86_64 CentOS 7.1 centos- 7.2 x86_64 CentOS 7.2 centos- 7.3 x86_64 CentOS 7.3 centos- 7.4 x86_64 CentOS 7.4 cirros-0.3.1 x86_64 CirrOS 0.3.1 Cirros-0.3.5 x86_64 CirrOS 0.3.5 debian- 6 x86_64 Debian 6 ( Squeeze ) debian- 7 x86_64 Debian 7 ( wheezy ) debian- 8 x86_64 Debian 8 ( jessie ) debian- 9 x86_64 Debian 9 ( stretch ) fedora- 18 x86_64 Fedora® 18 fedora- 19 x86_64 Fedora® 19 fedora- 20 x86_64 Fedora®20 fedora- 21 x86_64 Servidor Fedora® 21 fedora- 22 x86_64 Servidor Fedora® 22 fedora- 23 x86_64 Servidor Fedora® 23 fedora- 24 x86_64 Servidor Fedora® 24 fedora- 25 x86_64 Servidor Fedora® 25 fedora- 26 x86_64 Servidor Fedora® 26 fedora- 27 x86_64 Servidor Fedora® 27 FreeBSD- 11.1 X86_64 FreeBSD 11.1 Scientificlinux- 6 x86_64 Científico Linux 6.5 Ubuntu- 10.04 x86_64 Ubuntu 10.04 ( LUCID ) Ubuntu- 12.04 x86_64 Ubuntu- 14.04 x86_64 Ubuntu 14.04 ( Trusty ) Ubuntu- 16.04 x86_64 Ubuntu- 16.04 x86_64 Ubuntu 16.04 ( Xenial ) 16.04 ( Xenial )
Para ver notas adicionales para cualquier ejecución del sistema operativo: Salidas de muestra:
$ virt-builder --notes ubuntu-16.04
$ virt-builder --notes debian-9
Salidas de muestra.
Debian 9 (stretch) This is a minimal Debian install. This image does not contain SSH host keys. To regenerate them use: --firstboot-command "dpkg-reconfigure openssh-server" This template was generated by a script in the libguestfs source tree: builder/templates/make-template.ml Associated files used to prepare this template can be found in the same directory.
Crear máquina virtual Debian 9.x
Cree una máquina virtual Debian 9 con 10 GB de espacio en disco, 2 GB de RAM, 2 vCPU y una contraseña aleatoria para la cuenta raíz, ejecute:
$ sudo virt-builder debian-9 \
--size=10G \
--format qcow2 -o /var/lib/libvirt/images/debian9-vm1.qcow2 \
--hostname debain9-vm1 \
--network \
--timezone Asia/Kolkata
Finalmente importe la imagen con el comando virt-install: Salidas de muestra:
$ sudo virt-install --import --name debian9-vm1 \
--ram 2048 \
--vcpu 2 \
--disk path=/var/lib/libvirt/images/debian9-vm1.qcow2,format=qcow2 \
--os-variant debian9 \
--network=bridge=br0,model=virtio \
--noautoconsole
Iniciando instalación... Creando dominio... Creación de dominio completada.
Puede iniciar sesión en su VM usando la contraseña x0E4iZ8sHjA6ekb6 para la cuenta raíz:
$ sudo virsh list --all
$ virsh console debian9-vm1
Debe deshabilitar la cuenta raíz para la sesión ssh y crear claves ssh para su máquina virtual . Inicie sesión como se indicó anteriormente: verifique que pueda iniciar sesión con una dirección IP para el usuario vivek y use 'su -' para convertirse en un usuario root:
# dpkg-reconfigure openssh-server
# useradd -r -m -d /home/vivek -s /bin/bash vivek
# passwd vivek
# systemctl enable ssh
### [ Disable root user login when using ssh ] ###
# echo 'PermitRootLogin no' >> /etc/ssh/sshd_config
# systemctl restart ssh
# ip a s$ ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
$ su -
Comandos útiles
Veamos algunos comandos útiles.
Encuentre la lista de las variantes de sistema operativo aceptadas
$ osinfo-query os | less
$ osinfo-query os | grep debian
$ osinfo-query os | grep freebsd
Enumere vms/dominios en ejecución
$ sudo virsh list
Cierra un/a VM/dominio llamado debian9-vm1
$ sudo virsh shutdown debian9-vm1
Inicie una máquina virtual/dominio llamada debian9-vm1
$ sudo virsh start debian9-vm1
Suspender un/a VM/dominio llamado debian9-vm1
$ sudo virsh suspend debian9-vm1
-
AMD
- 10 comandos "IP" útiles para configurar interfaces de red
- Nvidia anuncia la RTX 4070, una 'GPU de escritorio con un precio algo razonable'
- Los lenguajes de programación favoritos por los grandes directivos de Empresas TI y Sotware
- Cómo utilizar los volúmenes de Docker para programar más rápido
- Entrenador en el móvil, ya es posible para mantenerte en forma.
- Cómo monitorear, vigilar y controlar la actividad de los usuarios de Linux con las herramientas psacct o acct
- Un dron que se parece y mueve como un pájaro, vuela más de hora y media. ¿Podrían vigilar parques nacionales y naturales?
- Crear una nueva partición. Convertir un directorio /Home a una partición Linux
- Cómo colaborar en documentos usando ONLYOFFICE Workspace
- Dinamarca y Alemania ahora construyen el túnel sumergido más largo del mundo
- Ejecución de comandos en un host Linux/UNIX remoto
- Cómo instalar Drupal CMS en Centos, AlmaLinux Rocky Linux y RHEL 8
- Cómo convertir archivos a codificación UTF-8 en Linux
- El petroleo podría no ser fósil, según la teoria de algunos científicos.
- Descubren una técnica para rejuvenecer la piel 30 años