我注意到在使用virsh
虚拟机时被称为“域”。为什么它们被称为域而不是虚拟机?
$ 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
它们不是 kvm 专有术语(xen 也将机器称为域)。管理程序大致相当于域零或dom0,它是在内核上初始化并具有特殊权限的第一个系统。稍后启动的其他域称为domU,相当于来宾系统或虚拟机。
原因可能是两者非常相似,因为它们是在处理它们的内核上执行的。
像其他人一样重申,调用虚拟机域的是 virsh/libvirt,而不是 QEMU/KVM。
Xen 最初称为虚拟机域的事实提供了一个很好的历史视角,但它仍然引出了一个问题——为什么?
我认为答案在逻辑上来自域的定义。
域的原始定义:“由特定统治者或政府拥有或控制的领土区域。”
在计算机网络中,域名“定义了互联网内的行政自治、权威或控制领域”
因此,域只是更大空间中的一个子集。在计算机网络中,它是地址空间的子集。
而在计算机虚拟化中,域(虚拟机)是硬件资源空间的一个子集。
换句话说,主机只是包含资源池(CPU 处理能力、内存、存储等)的服务器。虚拟机是该资源池的子集,专用于运行操作系统或应用程序。
根据 Xen wiki ( https://wiki.xen.org/wiki/Domain ),
Xen 项目极大地影响了虚拟化工具的开发人员。这个名字当然来自那里。
我不认为它们在 KVM 或 QEMU 中被称为。
QEMU 手册确实在Unix 域套接字、DNS 域和 Xen 域的上下文中提到了“域”,但该术语与 QEMU 本身无关。该手册似乎将程序本身称为“系统模拟器”,并多次将虚拟机称为“客人”。
KVM 网站随后提到了“正在运行的虚拟机”。原始公告中还提到了虚拟机和来宾。我看不到任何关于域的提及。