使用 RemoteBox 远程管理 VirtualBox 虚拟机

IBMdW 发布于 2013/01/05 08:24
阅读 1K+
收藏 8

RemoteBox 是一个图形化的工具,用来管理远程服务器或者本机的 VirtualBox 虚拟机。虽然 VirtualBox 的管理介面已经足以应付大部份的使用需求,但较为可惜的是本身并未提供远端管理虚拟机器的功能。也就是说只要虚拟机器一关机,除非使用者回到安装 VirtualBox 的主机前面并直接进行操作,否则将无法针对虚拟机器之中的资料进行任何处理。这样的问题今后将不复存在,因为这个取名为 RemoteBox 的工具正是解决相关问题的最佳帮手。

配置 VBoxHeadless 连接你的虚拟机

什么是 Headless 模式

Headless 模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。Headless 模式针对在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供 Web 服务的主机)往往可能缺少前述设备,但又需要使用它们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主 机)。一般来说,我们会经常在桌面版本的 Linux 用 VirtualBox GUI 来管理的虚拟机,但是服务器一般没有 GUI,这个时候我们应该怎么管理我们的虚拟机呢。不过别担心,VirtualBox 开发了 VBoxHeadless 这样一个工具。VBoxHeadless 可以通过远程桌面连接到我们的虚拟机,如此一来,服务器上面就算没有 VirtualBox GUI ,也能远程管理我们的虚拟机了。本文运行环境是 Ubuntu 12.04 上运行 的 VirtualBox(版本 4.1.18) ,IP 地址是 192.168.0.100 。

VirtualBox 是一个轻量级虚拟机,容量只有 63MB,对于 570MB 的 VMware Workstation 7.1 来说是个优势。安装完毕后启动软件,直接支持简繁体中文,这对于英文版的 VMware Workstation 7.1 来说又是一个优点。2011 年 7 月 19 日正式发布的 4.1 系列的 VirtualBox(目前最新版本是 4.1.22)。VirtualBox 4.1 系列主要改进内容包括 :

  • 支持虚拟机的克隆
  • 改进了创建虚拟磁盘和复制虚拟磁盘的 GUI 界面
  • 64 位的内存限制提升到 1TB
  • 支持 Linux 下的 PCI passthrough
  • 增加 WDDM 图形卡驱动
  • 支持 SATA 硬盘的热插拔

安装 VirtualBox

本文以 64 位操作系统为例,使用在线安装方式。

$sudo vi /etc/apt/sources.list

添加如下内容:

deb http://download.virtualbox.org/virtualbox/debian precise contrib 
 $wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | \
 sudo apt-key add - 
 $sudo apt-get update 
 $sudo apt-get install linux-headers-$(uname -r) build-essential virtualbox-4.1 dkms

安装 VirtualBox 增强功能

4.0 以上版本分出来一个扩展 Oracle VM VirtualBox Extension Pack,请用 root 权限安装下,否则很多增强功能不能用。

# cd /tmp 
# wget http://download.virtualbox.org/virtualbox/4.1.18/Oracle_VM_VirtualBox_Extension_\
Pack-4.1.18-78361.vbox-extpack
#VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack
#adduser administrator vboxusers

RemoteBox 的安装配置和使用

RemoteBox 简介

VirtualBox 3 的某个版本开始支持了 web service 接口,这样就使得 web 界面的编写极大简化,不要再调用 vboxmanage 了。自从官方的 vboxweb 面世后,激励了一大批优秀的第三方 web interface 的出现。RemoteBox 就是其中一个 ,RemoteBox 是一个 VirtualBox 用户接口,提供一个高级的 Web 接口,可通过远程来访问和控制 VirtualBox 虚拟机。

RemoteBox 主要功能有:

  • 向导方式创建新的虚拟机。
  • 启动 / 关闭虚拟机。
  • 创建、删除、恢复 Snapshot。
  • 虚拟机配置。
  • 查看虚拟机日志。
  • 管理 CD/DVD ISO 镜像等媒体文件。
  • 全局网络配置。
  • 导入 / 导出虚拟机等。

或许有人会担心 RemoteBox 本身所支持的远程管理功能是否只支持开机前的设定与开机后的操作功能。事实上因为 VirtualBox 会将所有信息传回至 RemoteBox,因此只要是在本地端实际操作 VirtualBox 所能处理的工作,RemoteBox 也几乎可以全数进行处理。例如启动尚未开机的虚拟机器,或是将目前正在执行中的虚拟机器直接关机等功能皆可通过 RemoteBox 进行处理。如果需要暂停虚拟机器的运作,或是储存虚拟机器的状态,也有 RemoteBox 发挥的空间。甚至在虚拟机器开机后,在正式进入操作系统画面之前,也能使用 RemoteBox 进行 BIOS 的设定工作。如果需要使用或设定较为进阶的选项,例如是否采用大量分页技术、CPU 热插拔等功能,亦可使用 RemoteBox 进行处理,不需要担心会有无法进行操作的情况发生。如果需要将远程主机 Host OS 上的 USB 装置连接至 VirtualBox 所建立的虚拟机器之中,或是要建立新的磁盘装置并连接至虚拟机器,这些工作也都能直接透过 RemoteBox 加以完成。

至于在网络设定方面,RemoteBox 也可以直接支持 VirtualBox 所提供的各种网络设定。无论虚拟机器要使用的是桥接式或 NAT 方式的网络,或是建立一个本地网络,其成员只有虚拟机器与其 Host OS,都不会有任何问题产生。由于 RemoteBox 在使用时可以将虚拟机器的所有执行结果显示在本地端,因此无论要连接的远程主机与其虚拟机器是否有连接显示器,都不会影响 RemoteBox 的正常操作。这是因为 RemoteBox 本身支持远程桌面协议 (Remote Desktop Protocol, RDP),因此可以在本地端直接看到远程虚拟机器的操作画面,并且透过此通讯协议与虚拟机器进行互动,包括鼠标与键盘等输入装置都能直接使用。如果有其必 要性,甚至也能利用 RDP 直接播放远程虚拟机器所产生的音效。输入输出都能利用 RemoteBox 进行,自然不必要求远程的虚拟机器必须安装屏幕或其它装置。此外,RemoteBox 使用的技术为 VirtualBox 本身所提供的 API 函式与 SOAP 接口为主,而这些技术只要启用 VirtualBox 的网页服务功能即可开始使用。RemoteBox 工作原理如图 1


图 1. RemoteBox 工作原理图
图 1. RemoteBox 工作原理图

RemoteBox 的安装配置

首先设置用户组

#useradd -m vbox -G vboxusers 
 #passwd vbox

修改配置文件

#vi /etc/default/virtualbox 
 VBOXWEB_USER="<myuser>"
 VBOXWEB_TIMEOUT=0 
 VBOXWEB_HOST=<ip>

#update-rc.d vboxweb-service defaults 
 #/etc/init.d/vboxweb-service start 
 # yum install -y perl-Gtk2 perl-SOAP-Lite rdesktop 
 #wget http://remotebox.knobgoblin.org.uk/downloads/RemoteBox-1.2.tar.bz2
 #bunzip2 RemoteBox-1.2.tar.bz2;cd RemoteBox-1.2 
 # ./remotebox

使用 RemoteBox

连接虚拟机

点击“connect”按钮进行连接如图 2 。


图 2. 点击“connect”按钮进行连接
图 2. 点击“connect”按钮进行连接

在对话框内输入相关数据即可如图 3 。


图 3.
图 3.

然后按”connect”按钮 即可。

使用 RemoteBox 建立一个虚拟机

在用户界面中单击“new”按钮,将会引导用户设置新的虚拟机(VM)。单击按钮后将会显示创建向导。在下面的页面中,向导会要求用户提供创 建 VM 所需的最少信息。一般有:你的 VM 所要显示的名字,并输入你要安装的操作系统的种类,这个名字将会在 VirtualBox 主窗口上显示,并会保存用户的相关设置。这只是纯粹的信息,但后面如果用户创建多个 VM,用户将会为这些 VM 提供的信息而感觉到方便。因此,“Windows XP SP3”会比“My VM”的名字更有用。“操作系统类型”,选择稍后想安装的操作系统。虽然这个设置就目前来说不会有长远的影响,但 VirtualBox 将使用此设置来显示操作系统并根据用户的选择提供推荐配置(内存和硬盘空间量的分配)。因此建议用户将它设置为正确的操作系统类型。分配虚拟机使用内存: 虚拟机的内存容量是独立拥有的。一旦一台虚拟机启动,VirtualBox 会从主机中分配出已经设定的容量大小给这个客户机系统。客户机操作系统也能确实地反映它的内存容量大小。注意:要谨慎使用此设置!在 VM 运行时,用户给 VM 的内存容量是无法用于用户的主机操作系统的。所以不要设置过多。例如,如果主机具有 1 GB 内存,而用户为一个特定的虚拟机设置了 512MB 的内存大小,那么当这个 VM 运行时,用户的主机系统与在其上的其他软件将只能使用剩下的 512MB 内存。

设置虚拟硬盘,接下来,要为 VM 指定一个虚拟硬盘。VirtualBox 可以有多种方法为 VM 提供硬盘空间,但最常见的方法是在“真正”硬盘上使用一个大容量的镜像文件,VirtualBox 会向 VM 展示它的特性犹如是一个完整的硬盘。向导会向用户显示如图 4 所示的窗口。


图 4. 设置虚拟硬盘
图 4. 设置虚拟硬盘

该向导允许用户创建一个镜像文件或使用现有的镜像文件。此外请注意,磁盘镜像与 VM 是相隔离的,这样即使用户删除了 VM,也可以保留镜像文件,或将其复制到另一台主机并为它创建一个新的 VM。

在向导中有以下选项。

如果以前创建的虚拟硬盘并没有附加到其他虚拟机上,那么用户可以在向导窗口的下拉列表中选择这些虚拟硬盘。或者,单击“新建”按钮创建新的虚拟硬盘。最后,单击“现有”按钮,启动虚拟磁盘管理器。

如果用户首次使用 VirtualBox,要创建新的磁盘镜像。单击“新建”按钮,将打开一个“创建新虚拟磁盘向导”窗口。VirtualBox 支持两种类型的镜像文件:

  • 动态扩展镜像文件。它的尺寸大小只随客户系统在虚拟硬盘上存储数据时的容量大小的增大而增大。因此,动态扩展镜像文件最初在主机硬盘驱动器上一般较小,之后只增大到它所填充数据的大小。

  • 固定大小镜像文件。创建时将立即在主机硬盘上占用指定的容量大小。即使在刚开始时,只使用了虚拟硬盘的部分空间,但在主机硬盘上却占用了指定大小的空间。当占用更多的空间时,固定大小文件将花费较少的开销,因此略高效于动态扩展镜像文件。

设置 CD/DVD-ROM,如果用户刚创建了一个空的 VM,为了安装客户操作系统,可能想要通过 CD-ROM 或 DVD-ROM 来首次启动它,那么用户可能最有兴趣来关注设置“CD/DVD-ROM”部分。因此,有两个可用的选择:

  • 如果用户有真正的 CD 或 DVD 媒介,并用它来安装客户操作系统(如一张安装系统的 DVD 光盘),那么可以把它放入主机 DVD 驱动器中。然后,在设置对话框中转到“CD/DVD-ROM”部分,并选择“主机驱动器”,选中正确的驱动器盘符这将允许 VM 访问用户的主机驱动器上的媒介,然后就可以继续从光盘进行安装了。

  • 如果用户已从互联网下载了安装媒介 ISO 映像文件,在 VirtualBox 中可以直接装入 ISO 文件。VirtualBox 会提交该文件为 CD 或 DVD-ROM 驱动器到虚拟硬盘,磁盘就像使用虚拟硬盘映像一样。 单击“添加”按钮,将用户的 ISO 文件添加到注册镜像列表。这将会显示一个普通的文件对话框,允许用户找到在自己主机计算机上的 ISO 文件。回到管理器窗口,选择刚添加的 ISO 文件并单击“选择”按钮,为 VM 选择 ISO 文件,如图 5 所示。


    图 5. 设置 CD/DVD-ROM
    图 5. 设置 CD/DVD-ROM

设置完成后可以按“start”按钮即可启动虚拟机,启动虚拟机后可以使用右侧的 remote display 按钮显示客户机运行情况如图 6。


图 6 使用右侧的 Console 按钮显示客户机运行情况
图 6 使用右侧的 Console 按钮显示客户机运行情况

RemoteBox 应用技巧

快照功能

VirtualBox 另外也支持名为 Snapshot 的系统快照功能,可以将目前 Guest 的状态储存在 Host 的磁盘当中。如果将来 Guest 发生任何问题,只需要回溯先前所建立的快照,即可恢复整个系统的状态至正常情况。这样的快照功能是 VirtualBox 相当广受好评的功能之一,RemoteBox 自然也不会忘记要支持这样的功能。如果需要远程进行虚拟机器的快照处理,只需要在 RemoteBox 的画面上点选适当的按键,并输入相关的信息即可立即产生快照如图 7 。


图 7. 快照功能
图 7. 快照功能

收缩虚拟机磁盘文件大小

使用过虚拟机的都知道,为了节省硬盘空间,一般都使用动态扩展映像。它不会在一开始就占用指定大小的硬盘空间,而是随着实际使用的需要动态扩 展。但是在虚拟系统里删除了文件,使用过的空间并不会自动收回。虚拟系统使用久了以后,磁盘映像文件会变得越来越大。收缩虚拟机磁盘文件大小只需要三个步 骤:

第一步:在 Guest OS 中整理磁盘碎片。可以使用 Windows 自带的碎片整理工具,也可以使用 Defraggler。这是一款免费的磁盘碎片整理工具,整理速度很快。

第二步:将 Guest OS 的磁盘剩余空间清零,也就是把 0 值写入磁盘未使用空间的每一个字节。这一步是关键,因为在下一步里,所有只包含 0 值的磁盘空间将被收回。可以用 Sysinternals 出品的一个命令行工具 SDelete 来完成这一步。在 Guest OS 的命令行里执行:

sdelete -c c:

其中 c: 是要清零的磁盘分区。

第三步:使用 VirtualBox 提供的 VBoxManage 工具收缩磁盘映像文件。在 Host OS 中执行:

VBoxManage modifyvdi "Windows XP.vdi" compact

其中 Windows XP.vdi 是要收缩的磁盘映像文件名,请根据实际名称修改,不用指定路径。

经过这三个步骤以后,我的 vdi 文件从 2.5G 收缩到了 1.3G,效果非常明显。以上介绍的前两个步骤所使用的工具是针对 Guest OS 是 Windows Xp。

结束语

虽然 VirtualBox 的管理介面已经足以应付大部份的使用需求,但较为可惜的是本身并未提供远端管理虚拟机器的功能。也就是说只要虚拟机器一关机,除非使用者回到安装 VirtualBox 的主机前面并直接进行操作,否则将无法针对虚拟机器之中的资料进行任何处理。只是这样的问题今后将不复存在,因为取名为 RemoteBox 的工具正是解决相关问题的最佳帮手。

原文出处:IBM developerWorks

加载中
返回顶部
顶部