创建首台虚拟机器
PS:Xen 的主机操作系统称为 Dom0。通过 Xen 来执行的虚拟操作系统(VM)称为 DomU。在缺省情况下,libvirt 会在缺省网络卡(一般是 eth0)背后创建一个 192.168.122.0/24 的 NAT 网络。在这个 NAT 网络上运行的 DomU VM 可以互相连接及通过 Dom0 的网络向外连接,但你只能在 Dom0 上通过 libvirt(或 xen)连接到它们。你可以把缺省的 NAT 网络改为一个桥接式网络,这样你便能连接到 DomU VM,仿如它们与 Dom0 在同一个实体网络上。有关桥接的讨论收录在下文(第 7 部份)。
-
作业环境
#服务器端Dom0: #操作系统:CentOS-6.5-x86_64-minimal #IP:192.168.8.118 #客户端: #操作系统:带有图形界面的CentOS6.5
-
先决条件
此页假设你已经遵照Xen之安装和配置指引把 Xen 内核安装在你的 Dom0 机器上,并启用了 xend 后台服务,而 xm info 这个指令也有正确输出,确保了xen安装成功
#安装常用系统软件包,因为它们稍后也许会有用 [root@local ~]# yum install rsync wget vim-enhanced openssh-clients
-
安装 libvirt(Dom0)
首先我们要安装 libvirt 所需的基本组件
[root@local ~]# yum install libvirt python-virtinst libvirt-daemon-xen #增加开机启动 [root@local ~]# service libvirtd start Starting libvirtd daemon: [ 确定 ] [root@local ~]# chkconfig libvirtd on
安装后,请重新引导你的 Dom0 机器。
-
通过远程访问Dom0服务器上LibVirt,来创建DomU虚拟操作系统
-
在Dom0服务器上设置PolicyKit的libvirt访问权
如果你想将一台 CentOS-6 工作站远程连接到 Dom0 上的 virt-manager 并控制该台计算机上的 DomU 虚拟机器,你便需要利用 PolicyKit。当你利用某台机器上的 virsh 终端機直接连接到 Dom0 及控制它的 DomU 虚拟机器时,PolicyKit 也会被应用。
PolicyKit 让你设计有灵活性、精细的访问权,功能远超㙎本样例所介绍以 unix 群组授权访问 libvirt 的做法
设置 libvirt 供群组访问
若要把访问权授予某个 unix 群组的成员,我们只须创建一个 PolicyKit 本地权限档
这是一个纯文本档,一般被放置于这个目录中:/etc/polkit-1/localauthority/50-local.d/
你可随意为这个文件命名,但它必须以两个数目字起首及以 .pkla 结尾,例如: 50-libvirt-remote-access.pkla
[root@local ~]# vim /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla [Remote libvirt SSH access] #它的内容应包含: Identity=unix-group:group_name Action=org.libvirt.unix.manage ResultAny=yes ResultInactive=yes ResultActive=yes #你应该以合适的群组名称取替 group_name
举个例说:创建一个名为 remote-libvirt 的群组,并新建libvirter用户加进该群组内来远程访问 libvirt
#创建群组,增加用户,设置密码 [root@local ~]# groupadd remote-libvirt;useradd -g remote-libvirt libvirter; passwd libvirter #更新权限文档 [root@local ~]# sed -i 's/unix-group:group_name/unix-group:remote-libvirt/g' /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla;
现在 libvirter 这个 unix 用户可以远程控制 libvirt
-
在多数情况,下我们不推荐在 Dom0 服务器上安装整套图像化系统,因此多数人会从远程访问/控制 Dom0 libvirt。
你有 2 个可取的途径 …… 其一是通过一台图像化客户机,其二是通过 ssh 应用 virsh 命令行程序-
图像化客户机远程连接控制 Dom0 机器
登录你的客户机图像化桌面,确保 virt-manager 已被安装:
[root@local ~]# yum install virt-manager
Applications => System Tools => Virtual Machine Manager
在 virt-manager 应用程序内,打开File => Add Connection…… 然后点击 connect。
-
-
通过客户端远程创建 DomU 虚拟机器
-
图像化客户机利用 virt-manager 来安装 DomU
现在你可以在 virt-manager 内选择新的主机名称/IP 地址,然后按鼠标右键并选择New 或点击 Create a new Virtual Machine 的图示,接着按照提示来创建新的机器。
这个过程在远程及本地连接下都相同 …… 唯一差别就是 Step 1 of 5 提示页上的 Connection 对话框。
安装新机器的过程与此指南很相似,唯独在 Step 1 of 5 提示页上的连接将会显示你的远程主机名称(在我们的样例中是 192.168.0.5),而在 Step 5 of 5 提示页的高级选项的 Virt Type 内,你会看见 xen(paravirt) 或 xen(fullvirt) 而不是 KVM。
-
通过 SSH 利用 virt-install 来安装 DomU
有关利用 virt-install 进行安装的详情请参阅此指南
-
-
-
控制 DomU 虚拟机器
通过 libvirt,你可利用图像化应用程序(virt-manager)或文字应用程序(virsh)来控制 DomU 虚拟机器。
这些应用程序可以位于 DomU 虚拟机器所身处的 Dom0 上(本地控制),它们也可以位于不同的机器上并连接到 DomU(远程控制)。
不论是通过远程或本地连接,两种工具的实际操作都是相同。
有关远程 virt-manager 或远程 virsh 的连接,请参阅这些指引。你必须设置 libvirt 才能用这两个工具来进行远程访问。 -
桥接样例设置
[root@local ~]# yum install bridge-utils
最简单样例:
[root@local ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:21:70:1d:36:79 NM_CONTROLLED=no ONBOOT=yes TYPE=Ethernet BRIDGE="br1" USERCTL=no [root@local ~]# vim /etc/sysconfig/network-scripts/ifcfg-br1 DEVICE=br1 BOOTPROTO=static NM_CONTROLLED=no ONBOOT=yes TYPE=Bridge IPADDR=192.168.8.118 PREFIX=24 GATEWAY=192.168.8.1 DNS1=8.8.8.8 DNS2=8.8.4.4 USERCTL=no