Por que os vms no KVM/QEMU são chamados de domínios?

Por que os vms no KVM/QEMU são chamados de domínios?

Percebi ao usar virshque as VMs são chamadas de "domínios". Por que eles são chamados de domínios em vez de máquinas virtuais?

$ 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

Responder1

Eles não são terminologia exclusiva do kvm (xen também se refere a máquinas como domínios). Um hipervisor é um equivalente aproximado ao domínio zero, oudom0, que é o primeiro sistema inicializado no kernel e possui privilégios especiais. Outros domínios iniciados posteriormente são chamadosdomUe são equivalentes a um sistema convidado ou máquina virtual.

A razão provavelmente é que ambos são muito semelhantes, pois são executados no kernel que os manipula.

Responder2

Para reiterar como outros fizeram, é virsh/libvirt que chama domínios de máquinas virtuais - não QEMU/KVM.

O fato de o Xen originalmente ter chamado de domínios de máquinas virtuais oferece uma excelente perspectiva histórica, mas ainda levanta a questão: por quê?

Acho que a resposta decorre logicamente da definição de domínio.

Definição original de domínio: “uma área de território pertencente ou controlada por um determinado governante ou governo”.

Nas redes de computadores, um nome de domínio “define um domínio de autonomia administrativa, autoridade ou controle dentro da Internet”

Portanto, um domínio é apenas um subconjunto dentro de um espaço maior. Nas redes de computadores, é um subconjunto de umendereçoespaço.

E na virtualização de computadores, um domínio (máquina virtual) é um subconjunto de hardwarerecursoespaço.

Em outras palavras, um host é apenas um servidor que contém um conjunto de recursos (poder de processamento da CPU, memória, armazenamento, etc.). Uma máquina virtual é um subconjunto desse conjunto de recursos, dedicado à execução de um sistema operacional ou aplicativo.

insira a descrição da imagem aqui

Responder3

De acordo com o wiki do Xen (https://wiki.xen.org/wiki/Domínio),

Um domínio é uma das máquinas virtuais executadas no sistema. Domain0 é o primeiro domínio iniciado pelo hipervisor Xen na inicialização e executará um sistema operacional Linux.

O projeto Xen influenciou muito os desenvolvedores de ferramentas de virtualização. Esse nome certamente vem daí.

Responder4

Este artigotem uma ótima explicação para a terminologia. Resumidamente:

  • Domínioé um conjunto de recursos de hardware.
  • Convidadoé um sistema operacional virtualizado em execução no domínio.
  • Máquina virtualé o sistema operacional convidado mais algum software aplicativo.

Esses termos significam quase a mesma coisa, por isso são usados ​​de forma intercambiável. Libvirt provavelmente está mais focado na atribuição de recursos, não no software que será executado dentro dele, por isso os chama de domínios.

informação relacionada