xVM上安装Paravirtual opensolaris Guest 时建立vnc连接的方法
什么是xVM:
如果说Linux 上的xen 相信很人都有所了解,目前所谓的SUN xVM Hypervisor 其实就是以solaris 或opensolaris 作为Dom0的xen 主机虚拟化技术,xen“移植”到solaris内核的系统上以后,被SUN重新命名为xVM,xen 和 xVM 的主要区别除了Dom0 基于的系统不同(xen 是Linux ,xVM 是solaris)外,xVM 还支持与solaris 的一些特色技术配合使用,比如Crossbow 网络虚拟化技术。
xen 的特色就在于 para-Virtualization 比VMware 的full-Virtualization模式具有更佳的性能!
xen/ xVM上Guest domain的两种虚拟化模式和安装过程差异
xVM和xen一样,虚拟主机服务器(Host:管理端)称为dom0,虚拟主机(guest)称为domU (guest domain)。同样虚拟主机的安装时的虚拟化模式也有para-Virtualization(PV)和full- Virtualization(HVM)。安装HVM模式的虚拟机需要CPU支持 Intel-VT或AMD-V。
安装HVM模式的虚拟机相对简单,因为安装时的操作控制台窗口是图形模式,也就是说默认就可以看到虚拟机操作系统的图形安装界面。
而PV模式安装虚拟机时,操作控制台只能使用字符终端模式,需要在虚拟机操作系统安装程序引导虚拟机到特定状态下(比如安装opensolaris live CD 引导主机到提示终端登陆时)通过vnc连接到虚拟机,才能操作其图形安装界面。这在安装某些必须要图形安装界面进行安装的系统(如 opensolaris)时,就可能会对很多新用户造成困扰。
安装opensolaris pv Guest Domain 时,建立vnc连接的方法
首先我们看下 opensolaris 官方网站上的说明:
How to Set up OpenSolaris 2008.11 or later as a Paravirtual Guest
To start the installation of the OpenSolaris 2008.11 or later release, run the following commands:
//官网的示例是使用zfs zvol 作为虚拟机的虚拟硬盘,所以示例中第一步就是创建一个新的zvol。
# zfs create rpool/zvol
# zfs create -V 10G rpool/zvol/domu-220-root
//然后是安装新的虚拟机(guest domain)
# virt-install --nographics --paravirt --ram 1024 --name domu-220 -f
/dev/zvol/dsk/rpool/zvol/domu-220-root -l /isos/osol-2008.11.iso
//官网示例是使用virt-install命令来创建新domain ,其实我也可以使用xen 的GUI管理工具的新建主机向导来操作。
//这个工具在opensolaris 称为:“Virtual Machine Manager” ,在opensolaris 桌面的 “应用程序”->“系统工具”菜单下。
//具体使用示例参见: 这篇主题11楼的内容。
Note - This procedure assumes that your server is set up to assign dynamic addresses. If you want to assign static addresses, specify the --mac option.
//上面这句官网的说明意为: opensolaris默认使用动态模式分配网卡地址,如果要分配静态地址,需要使用--mac 设定相应的静态mac地址。
For the purposes of this installation, choose the defaults on the console for the two questions regarding the server setup.
#
//新虚拟机的初始配置完成会自动启动,并尝试从指定的操作系统安装源(系统安装盘的iso文件)引导虚拟机。同时会自动打开一个连接到虚拟机的字符终端窗口。
//常规的,opensolaris 的live cd 在引导过程中会提示你选择键盘语言类型和默认的桌面语言。
After the OpenSolaris 2008.11 Live CD has finished booting, a VNC session is available from within the guest domain.
/*因为此时虚拟机的控制终端窗口是字符终端模式,所以opensolaris live cd 完成引导后,你只能在终端看到”opensolaris console login “的提示,而不会像在HVM模式其他虚拟主机软件上安装时出现登录后的图像用户界面。这时,我们就需要通过vnc连接到虚拟机,以操作图形界面进行后续的安装opensolaris到硬盘的工作。
opensolaris live cd 完成系统引导后默认会开启vnc服务*/
//官网给出的vnc连接方法如下:
You can connect to the guest domain's VNC session as follows:
# domid=`virsh domid domu-220`
# ip=`/usr/lib/xen/bin/xenstore-read /local/domain/$domid/ipaddr/0`
# port=`/usr/lib/xen/bin/xenstore-read /local/domain/$domid/guest/vnc/port`
# /usr/lib/xen/bin/xenstore-read /local/domain/$domid/guest/vnc/passwd
DJP9tYDZ
# vncviewer $ipport
//在dom0上打开一个终端
//首先通过virsh 获取虚拟机的id (xen/xVM 中称为domid),并将virsh取到的domid 赋值给系统shell 变量domid
//然后使用xenstore-read 工具,从虚拟机配置数据库中读取虚拟主机的当前IP 和vnc 服务的端口号,并把命令返回赋值给shell 变量 ip 和port
//随后最关键的一步:通过 xenstore-read工具,从虚拟机配置数据库中读取虚拟机vnc 连接的密码。
//最后将ip和port shell变量作为vncviewer的参数启动vncviewer 连接到虚拟机。
Enter the given password at the VNC password prompt. This will bring up a VNC session.
//vncviewer 会提示你输入vnc连接的验证密码,输入刚才通过xenstore-read读取到的密码。(区分大小写)
//如果密码通过验证,你就能看到opensolaris 的桌面了!
在实际操作中,你可能会和我一样遇到一个问题,按照官网示例执行以下命令无法成功获取vnc连接验证密码:
root@qhoxvm: /usr/lib/xen/bin/xenstore-read /local/domain/$domid/guest/vnc/passwd
/usr/lib/xen/bin/xenstore-read: couldn't read path /local/domain/virsh
通过查阅xen与vnc的相关文档和不断的尝试,终于找到了正确的方法:
下面是我的操作步骤:
1.使用VM manager 的向导完成新虚拟机的配置
2.在guest domain的控制台出现opensolaris console login 的提示后 首先使用 jack / jack (uname/pwd) 登陆终端。
3.su 到root 用户,默认密码是opensolaris
4. ifconfig -a 查看到之前分配给虚拟机的网卡设备名称 (xnf0)
//xVM 结合了Crossbow 网络虚拟化技术,默认会自动在Dom0 中创建一块虚拟网卡(可以动感 dladm show-link 命令查看到),并且自动桥接到指定的物理网卡。
5.ifconfig xnf0 xx.xx.xx.xx //在虚拟机中为网卡设定一个静态ip地址,(否则你需要配置一台dhcp服务器来为guest domain 分配IP)
6.回到dom0 的桌面,在"Virtual Machine Manager"主窗口中你会看到目前系统上的主机列表 最前面有个ID ,这个值就是domid,所以我们不必使用终端命令来获取。
(Domain-0 的id 是 0,其他Guest Domain 的ID是系统自动分配的。)
/*通过终端命令获取domid 的方法是:首先在终端输入 命令: virsh ,然后在 virsh # 提示符下输入 domid xxxxx(虚拟主机的名称),然后virsh程序会返回主机名对应的domid ,最后输入quit 退出virsh 虚拟机调试程序。
7.输入以下命令获取vnc 的连接验证密码
root@qhoxvm: /usr/lib/xen/bin/xenstore-read /local/domain/6/guest/vnc/passwd
//6 是那部虚拟机对应的domid
8.在dom0 的终端输入vncviewer 命令启动vnc 客户端 ,然后输入刚才在虚拟机的终端中设置的网卡IP,当vnc viewer提示输入连接验证密码时,输入刚才得到的vnc 连接密码,然后你就能看opensolaris 的桌面了。
//因为用Virtual Machine Manager 中的向导创建的新虚拟机,虚拟机配置程序自动创建的虚拟网卡是默认桥接到指定的物理网卡的,所以在虚拟机中给网卡设定了IP后,就可以从局域网中的其他主机用vnc客户端连接到这部虚拟机进行操作。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论