# oVirt架构

## oVirt架构

oVirt环境包括：

* 使用基于Kernel-based Virtual Machine（KVM）的虚拟机主机
* 包括VDSM，QEMU和libvirt的代理和工具的主机：这些工具提供了虚拟机，网络和存储的本地管理
* oVirt：集中化管理oVirt环境的平台，提供了查看，管理资源的图形界面
* Storage domains：存储虚拟资源如虚拟机，模板，ISO镜像
* 数据库：跟踪环境的状态和变化
* 访问扩展的目录服务器提供用户认证
* 网络环境

![oVirt架构](/files/-M1TAIvvcBsi1hpHLsdz)

## oVirt系统组件

oVirt整个环境包含一个或多个主机（主机节点可以是RHEL6.5或Fedora 19，或者是oVirt Node 6.5等），以及至少一个oVirt会话。

运行虚拟机的主机使用KVM（Kernel-based Virtual Machine）虚拟技术。

oVirt运行在Red Hat Enterprise Linux（或类似服务器）以及Fedora 19，提供控制oVirt环境的接口，可以管理虚拟机和存储，连接协议，用户会话，虚拟机镜像以及高可用虚拟机。

## oVirt资源

在oVirt虚拟环境中分两类组件：物理资源和逻辑资源。物理资源包括物理对象，例如主机和存储服务器。逻辑资源是非物理组和处理，例如逻辑网络和虚拟机模板。

* 数据中心 - 数据中心是一个被管理虚拟环境中所有物理和逻辑资源最高层的容器。它是集群、虚拟机、存储和网络的集成。
* 集群 - 一个集群是被视为虚拟机统一资源池的一系列物理服务器的组成。在一个集群中的主机共享相同的网络架构和存储。这就组成了一个虚拟机可以从一个物理机迁移到另外一个主机的可迁移域。
* 逻辑网络 - 逻辑网络是一个物理网络的逻辑表述。逻辑网络在oVirt，主机，存储和虚拟机之间组合网络流量和通讯。
* 主机 - 主机是运行一个或多个虚拟机的物理服务器。主机组合成集群。虚拟机可以在一个集群内部的不同主机之间迁移。
* 存储池 - 存储池是一个包含各种类型独立镜像仓库的逻辑对象，存储可以使用iSCSI，Fibre Channel，NFS或POSIX。每个存储池可以包换多个域，用于存储虚拟机的磁盘镜像，ISO镜像文件，以及虚拟机镜像的导入和导出。
* 模板 - 模板是预先设置的虚拟机模式。一个虚拟机基于模板可以继承模板的设置。使用模板可以用一个步骤快速创建大量的虚拟机。
* 虚拟机池 - 虚拟机池是一组独立的虚拟机可以用于不同的组的需求。虚拟机池可以用于不同目的。例如，一个虚拟机池可以用于市场部门，或者研发部门等。
* 快照 - 快照是在某个时间点的虚拟机操作系统视图。视图可以用于在升级或者安装新应用程序前保存虚拟机的设置。当发生故障时，可以使用快照来恢复原先的状态。
* 用户类型 - oVirt支持各种层次的管理员和用户来隔离不同的权限。系统管理员可以管理物理架构的对象，例如数据中心，主机和存储。用户可以访问虚拟机池中的虚拟机池或者独立虚拟机。
* 事件和监控 - 告警和其他通知帮助管理员监控资源的性能和状态。
* 报告 - 基于JasperReports或数据集的报告模块。由报告模块生成的预先配置或ad hoc报告。用户也可以使用支持数据仓库的SQL查询工具来搜集主机、虚拟机和存储的数据。

## oVirt API支持状态

oVirt输出一系列接口用于和虚拟环境的组件交互。这些接口提供给系统管理员，用户和报告平台的用户界面。大多数界面是全功能的，也有部分界面是只读的。

### 支持读写访问的接口

* REST API - 通过REST API接口提供了oVirt所有的支持接口
* 软件开发包（SDK） - SDK提供了python-sdk和java-sdk包支持所有功能接口
* 命令行 - shell命令行提供了oVirt的所有功能接口
* VDSM钩子 - VDSM钩子用于触发虚拟机的定制属性修改。在oVirt节点使用VDSM钩子当前还不支持。

### 支持读取接口

* oVirt历史数据库 - oVirt历史数据库只读访问视图可以提供读取但不能写入
* 虚拟机的Libvirt - 可以使用`virsh -r`命令访问`libvirt`用户和虚拟机交互，但不能写入

### 不支持的接口

* vdsClient命令 - 和虚拟机交互的`vdsClient`命令不支持
* oVirt节点控制台 - oVirtjiedian之外的访问文本用户界面的控制台不被支持
* oVirts护具库 - 不支持直接访问和维护oVirt数据库

## oVirt组件

* [oVirt存储管理](/cloud-atlas-draft/iaas/ovirt/ovirt_storage.md)

## 参考

* [oVirt Introduction](http://www.ovirt.org/OVirt_Administration_Guide#Introduction)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://huataihuang.gitbook.io/cloud-atlas-draft/iaas/ovirt/ovirt_infrastructure.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
