kvm虚拟机 ubuntu?kvm创建虚拟机
大家好,如果您还对kvm虚拟机 ubuntu不太了解,没有关系,今天就由本站为大家分享kvm虚拟机 ubuntu的知识,包括kvm创建虚拟机的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
UBuntu系统安装KVM创建虚拟机遭遇故障
现象:
ping不通虚拟机,ssh登录不上,console方式登录不上,虚拟机无法shutdown,貌似电源管理也没有安装成功。
先来解决网络问题:
还好可以通过virt-cat来检查虚拟机内部的文件。
先关闭虚拟机
virsh destroy vm1
然后检查网卡设置文件:
root@dbkvm:~# virt-cat-d vm1/etc/network/interfaces# This file describes the network interfaces available on your system# and how to activate them. For more information, see interfaces(5).# The loopback network interfaceauto loiface lo inet loopback# The primary network interfaceauto eth0iface eth0 inet staticaddress 192.168.1.51netmask 255.255.255.0network 192.168.1.0broadcast 192.168.1.255gateway 192.168.1.1# dns-* options are implemented by the resolvconf package, if installeddns-nameservers 8.8.8.8dns-search localdomain
这个dns-search localdomain看上去很奇怪。一般是defaultdomain。
localdomain是因为host机器的/etc/hosts中配置成了:
127.0.0.1 localhost.localdomain dbkvm
将其换成这种配置:
127.0.0.1 localhost127.0.1.1 dbkvm
再创建虚拟机,网络正常了。可以ping通,可以ssh登录。 console问题还有。
虚拟机里面的网络设置dns-search被设置成了defaultdomain。
因此推测是hosts文件的配置错误,导致虚拟机中网卡设置的dns-search错误,导致无法连接网络,因此不能在创建过程中从网络下载安装openssh-server.
来看一下电源管理
如果不安装电源管理,就不能在host主机通过shutdown关闭虚拟机。
在创建vm的选项中需要补上:
--addpkg=acpid
事后弥补就要登录到虚拟机中,然后运行命令:
apt-get install acpid
再来处理console不能登录的问题。
先停止虚拟机。
virsh stop vm1
准备一个文件ttyS0.conf,内容如下:
# ttyS0.conf- getty# This service maintains a getty on ttyS0 from the point the system is# started until it is shut down again.start on stopped rc RUNLEVEL=[2345]stop on runlevel [!2345]respawn
安装guestfish程序:
apt-get install guestfish
现在用virt-copy-in将文件复制到vm的/etc/init目录中:
virt-copy-in-d vm1 ttyS0.conf/etc/init
然后调用virsh edit vm1来编辑vm1的配置文件,添加下面的内容:
devices...serial type='pty'source path='/dev/pts/2'/target port='0'//serialconsole type='pty' tty='/dev/pts/2'source path='/dev/pts/2'/target port='0'//console/devices
最后试用一下:
virsh start vm1Domain vm1 startedroot@dbkvm:~/kvm_scripts# virsh console vm1Connected to domain vm1Escape character is ^]Ubuntu 12.04.2 LTS vm1 ttyS0vm1 login: rootPassword:Last login: Thu May 2 09:21:03 UTC 2013 from 192.168.1.4 on pts/1Welcome to Ubuntu 12.04.2 LTS(GNU/Linux 3.2.0-41-virtual x86_64)
可以了。所有问题的根源都出在那个不正确的host机器上的/etc/hosts配置。
怎样在 Ubuntu 和 Debian 中通过命令行管理 KVM
第一步:确认你的硬件平台支持虚拟化
第一步,首先要确认你的 CPU支持硬件虚拟化扩展(e.g.,Intel VT或者 AMD-V),这是 KVM对硬件的要求。下面的命令可以检查硬件是否支持虚拟化。
第二步:安装KVM
使用 apt-get安装 KVM和相关的用户空间工具。
$ sudo apt-get install qemu-kvm libvirt-bin
安装期间,libvirtd用户组(在 debian上是 libvirtd-qemu用户组)将会被创建,并且你的用户 id将会被自动添加到该组中。这样做的目的是让你可以以一个普通用户而不是 root用户的身份去管理虚拟机。你可以使用 id命令来确认这一点,下面将会告诉你怎么去显示你的组 id:
$ id<your-userID>
如果因为某些原因,libvirt(在 debian中是 libvirt-qemu)没有在你的组 id中被找到,你也可以手动将你自己添加到对应的组中,如下所示:
在 ubuntu上:
$ sudo adduser [youruserID] libvirtd
在 debian上:
$ sudo adduser [youruserID] libvirt-qemu
按照如下命令重新载入更新后的组成员关系。如果要求输入密码,那么输入你的登陆密码即可。
$ exec su-l$USER
这时,你应该可以以普通用户的身份去执行 virsh了。做一个如下所示的测试,这个命令将会以列表的形式列出可用的虚拟机(当前的列表是空的)。如果你没有遇到权限问题,那意味着到目前为止一切都是正常的。
$ virsh list
Id Name State
第三步:配置桥接网络
为了使 KVM虚拟机能够访问外部网络,一种方法是通过在 KVM宿主机上创建 Linux桥来实现。创建之后的桥能够将虚拟机的虚拟网卡和宿主机的物理网卡连接起来,因此,虚拟机能够发送和接收由物理网卡传输的数据包。这种方式叫做网络桥接。
下面将告诉你如何创建并且配置网桥,我们创建一个网桥称它为 br0。
首先,安装一个必需的包,然后用命令行创建一个网桥。
$ sudo apt-get install bridge-utils
$ sudo brctl addbr br0
下一步就是配置已经创建好的网桥,即修改位于/etc/network/interfaces的配置文件。我们需要将该桥接网卡设置成开机启动。为了修改该配置文件,你需要关闭你的操作系统上的网络管理器(如果你在使用它的话)。跟随操作指南的说明去关闭网络管理器。
关闭网络管理器之后,接下来就是通过修改配置文件来配置网桥了。
#auto eth0
#iface eth0 inet dhcp
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
在上面的配置中,我假设 eth0是主要网卡,它也是连接到外网的网卡,同样,我假设 eth0将会通过 DHCP协议自动获取 ip地址。注意,之前在/etc/network/interfaces中还没有对 eth0进行任何配置。桥接网卡 br0引用了 eth0的配置,而 eth0也会受到 br0的制约。
重启网络服务,并确认网桥已经被成功的配置好。如果成功的话,br0的 ip地址将会是 eth0自动分配的 ip地址,而且 eth0不会被分配任何 ip地址。
$ sudo/etc/init.d/networking restart
$ ifconfig
如果因为某些原因,eth0仍然保留了之前分配给了 br0的 ip地址,那么你可能必须手动删除 eth0的 ip地址。
第四步:用命令行创建一个虚拟机
对于虚拟机来说,它的配置信息被存储在它对应的xml文件中。因此,创建一个虚拟机的第一步就是准备一个与虚拟机对应的 xml文件。
第五步:使用命令行启动虚拟机
在启动虚拟机之前,我们需要创建它的初始磁盘镜像。为此,你需要使用 qemu-img命令来生成一个 qemu-kvm镜像。下面的命令将会创建 10 GB大小的空磁盘,并且它是 qcow2格式的。
$ qemu-img create-f qcow2/home/dev/images/alice.img 10G
使用 qcow2格式的磁盘镜像的好处就是它在创建之初并不会给它分配全部大小磁盘容量(这里是 10 GB),而是随着虚拟机中文件的增加而逐渐增大。因此,它对空间的使用更加有效。
现在,你可以通过使用之前创建的 xml配置文件启动你的虚拟机了。下面的命令将会创建一个虚拟机,然后自动启动它。
$ virsh create alice.xml
Domain alice created from alice.xml
注意:如果你对一个已经存在的虚拟机执行了了上面的命令,那么这个操作将会在没有任何警告的情况下抹去那个已经存在的虚拟机的全部信息。如果你已经创建了一个虚拟机,你可能会使用下面的命令来启动虚拟机。
$ virsh start alice.xml
使用如下命令确认一个新的虚拟机已经被创建并成功的被启动。
$ virsh list
Id Name State
----------------------------------------------------
3 alice running
同样,使用如下命令确认你的虚拟机的虚拟网卡已经被成功的添加到了你先前创建的 br0网桥中。
$ sudo brctl show
远程连接虚拟机
为了远程访问一个正在运行的虚拟机的控制台,你可以使用VNC客户端。
需要解决更多linux问题,详情请看
望采纳
在Ubuntu上安装KVM虚拟化工具
在Ubuntu上安装KVM虚拟化工具,确保处理器支持硬件虚拟化,如Intel VT-x或AMD-V。安装步骤如下:
1.更新系统,安装必要软件包。
2.检查CPU是否支持硬件虚拟化,结果大于0表示支持。
3.安装KVM及其管理工具:`qemu-kvm`、`libvirt-daemon-system`、`libvirt-clients`、`bridge-utils`、`virt-manager`。
4.将当前用户添加至`libvirt`和`kvm`用户组,不需使用`sudo`管理虚拟机。
5.确认libvirtd服务运行,未运行时启动服务并设置自动启动。
6.使用`virt-manager`或`virsh`创建和管理虚拟机。启动`virt-manager`命令行输入。
完成上述步骤后,已在Ubuntu上成功安装KVM工具。现在可创建和管理虚拟机以满足需求。