本文概述
借助OS虚拟化, 无需在本地设备上预先安装或永久加载任何内容, 并且不需要硬盘。一切都使用一种虚拟磁盘从网络运行。该虚拟磁盘实际上是存储在远程服务器, SAN(存储区域网络)或NAS(非易失性附加存储)上的磁盘映像文件。客户端将通过网络连接到该虚拟磁盘, 并在虚拟磁盘上安装了操作系统的情况下启动。
OS虚拟化如何工作?
在基础架构中使用OS虚拟化所需的组件如下:
第一个组件是OS虚拟化服务器。该服务器是OS虚拟化基础架构的中心。服务器管理客户端虚拟磁盘上信息的流, 并确定哪个客户端将连接到哪个虚拟磁盘(使用数据库存储此信息)。服务器还可以在本地托管虚拟磁盘的存储, 或者服务器通过SAN(存储区域网络)连接到虚拟磁盘。在高可用性环境中, 可能会有更多的OS Virtualization服务器无法创建冗余和负载平衡。服务器还确保客户端在基础架构中将是唯一的。
其次, 有一个客户端, 它将与服务器联系以连接到虚拟磁盘, 并要求存储在虚拟磁盘上的用于运行操作系统的组件。
可用的支持组件包括用于存储服务器配置和设置的数据库, 用于虚拟磁盘内容的流服务, 用于将客户端连接到OS Virtualization服务器的(可选)TFTP服务以及(也可选)PXE引导服务。
如前所述, 虚拟磁盘包含系统中物理磁盘的映像, 该映像将反映将使用虚拟磁盘的那些系统的配置和设置。创建虚拟磁盘后, 需要将该磁盘分配给将使用该磁盘启动的客户端。客户端和磁盘之间的连接是通过管理工具建立的, 并保存在数据库中。当客户端有分配的磁盘时, 可以通过以下过程使用虚拟磁盘启动计算机, 如下图所示:
1)连接到OS Virtualization服务器
首先, 我们启动机器并建立与OS Virtualization服务器的连接。大多数产品提供了几种与服务器连接的可能方法。最流行和使用的方法之一是使用PXE服务, 但也经常使用引导带(由于PXE服务的缺点)。尽管每种方法都会初始化网络接口卡(NIC), 但会接收(基于DHCP的)IP地址和与服务器的连接。
2)连接虚拟磁盘
在客户端与服务器之间建立连接后, 服务器将查看其数据库, 以检查客户端是否已知或未知以及将哪个虚拟磁盘分配给客户端。如果连接了多个虚拟磁盘, 则客户端上将显示启动菜单。如果仅分配了一个磁盘, 则该磁盘将连接到第3步中提到的客户端。
3)将VDisk连接到客户端
客户端选择所需的虚拟磁盘后, 该虚拟磁盘通过OS Virtualization服务器连接。在后端, OS虚拟化服务器确保客户端在基础架构中将是唯一的(例如, 计算机名称和标识符)。
4)操作系统“流式传输”到客户端
磁盘连接后, 服务器将开始流式传输虚拟磁盘的内容。该软件知道哪些部分是顺利启动操作系统所必需的, 因此这些部分将首先流式传输。系统中流式传输的信息应存储在某个位置(即缓存)。大多数产品提供几种缓存信息的方法。例如在客户端硬盘或OS Virtualization服务器的磁盘上。
5)附加流
在流传输第一部分之后, 操作系统将开始按预期运行。当需要运行或启动用户调用的功能(例如, 启动虚拟磁盘中可用的应用程序)时, 将传输其他虚拟磁盘数据。