¿Por qué las máquinas virtuales en KVM/QEMU se llaman dominios?

¿Por qué las máquinas virtuales en KVM/QEMU se llaman dominios?

Al usarlo, noté virshque las máquinas virtuales se denominan "dominios". ¿Por qué se llaman dominios en lugar de Máquinas Virtuales?

$ virsh

virsh # help
...
 Domain Monitoring (help keyword 'monitor'):
    domblkerror                    Show errors on block devices
    domblkinfo                     domain block device size information
    domblklist                     list all domain blocks
    domblkstat                     get device block stats for a domain
    domcontrol                     domain control interface state
    domif-getlink                  get link state of a virtual interface
    domifaddr                      Get network interfaces' addresses for a running domain
    domiflist                      list all domain virtual interfaces
    domifstat                      get network interface stats for a domain
    dominfo                        domain information
    dommemstat                     get memory statistics for a domain
    domstate                       domain state
    domstats                       get statistics about one or multiple domains
    domtime                        domain time
    list                           list domains
...

virsh # list --all
 Id    Name                           State
----------------------------------------------------
 -     centos_vagrant_test_test_vm    shut off
 -     collectd01                     shut off
 -     grafana01                      shut off
 -     influxdb01                     shut off
 -     JobDBWin7_Stable               shut off
 -     OpenWRT_Red                    shut off

Respuesta1

No son terminología exclusiva de kvm (xen también se refiere a las máquinas como dominios). Un hipervisor es un equivalente aproximado al dominio cero, odom0, que es el primer sistema inicializado en el kernel y tiene privilegios especiales. Otros dominios iniciados más tarde se llamandomUy son equivalentes a un sistema invitado o máquina virtual.

Probablemente la razón es que ambos son muy similares ya que se ejecutan en el kernel que los maneja.

Respuesta2

Para reiterar, como lo han hecho otros, es virsh/libvirt el que llama a los dominios de las máquinas virtuales, no QEMU/KVM.

El hecho de que Xen originalmente llamara dominios a las máquinas virtuales brinda una gran perspectiva histórica, pero aún plantea la pregunta: ¿por qué?

Creo que la respuesta se deriva lógicamente de la definición de dominio.

Definición original de dominio: "un área de territorio propiedad o controlada por un gobernante o gobierno en particular".

En las redes informáticas, un nombre de dominio "define un ámbito de autonomía, autoridad o control administrativo dentro de Internet".

Entonces un dominio es sólo un subconjunto dentro de un espacio mayor. En las redes de computadoras, es un subconjunto de unDIRECCIÓNespacio.

Y en la virtualización de computadoras, un dominio (máquina virtual) es un subconjunto de hardware.recursoespacio.

Para decirlo de otra manera, un host es simplemente un servidor que contiene un conjunto de recursos (potencia de procesamiento de la CPU, memoria, almacenamiento, etc.). Una máquina virtual es un subconjunto de ese conjunto de recursos, dedicado a ejecutar un sistema operativo o una aplicación.

ingrese la descripción de la imagen aquí

Respuesta3

Según Xenwiki (https://wiki.xen.org/wiki/Dominio),

Un dominio es una de las máquinas virtuales que se ejecutan en el sistema. Domain0 es el primer dominio iniciado por el hipervisor Xen en el arranque y ejecutará un sistema operativo Linux.

El proyecto Xen ha influido mucho en los desarrolladores de herramientas de virtualización. Sin duda este nombre viene de ahí.

Respuesta4

Este artículotiene una gran explicación para la terminología. En breve:

  • Dominioes un conjunto de recursos de hardware.
  • Invitadoes un sistema operativo virtualizado que se ejecuta dentro del dominio.
  • Máquina virtuales el sistema operativo invitado más algún software de aplicación.

Estos términos significan casi lo mismo, por lo que se usan indistintamente. Libvirt probablemente esté más enfocado en asignar recursos, no en qué software se ejecutará dentro, por lo que los llama dominios.

información relacionada