安装配置KVM虚拟机

简介:
虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
    虚拟化按照虚拟的方式可以分为软件虚拟,如vmware,他是直接提取awardBIOS的程序(当然是经过授权的)。另外是基于硬件的,cpu虚拟化。CPU的虚拟化,又可以分为全虚拟化,和半虚拟化。AMD目前多已支持全虚拟化,而intel只有部分支持虚拟化。当然小机不在此次讨论之列。
  为我们可以通过以下命令来查看CPU是否支持全虚拟化!
[root@jadeshow ~]# egrep '(vmx|svm)' /proc/cpuinfo
flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow
flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow
下面进入本次讨论的重点,使用KVM来启动虚拟机。
KVM 实际上还是一种相对来说比较新的技术。目前存在各具功能的开源技术,例如 Xen、Bochs、UML、Linux-VServer 和 coLinux,但是 KVM 目前正在被大量使用。另外,KVM 不再仅仅是一个全虚拟化解决方案,而将成为更大的解决方案的一部分。
好下面我们来进行实际的操作。
首先查询以下包 qemu-kvm virt-manager virt-viewer python-virtinst
是否安装。
 
rpm -q qemu-kvm virt-manager virt-viewer python-virtinst



 
然后依次执行以下命令:
 yum install qemu-kvm virt-manager virt-viewer python-virtinst
yum install qemu-kvm virt-manager virt-viewer 
python-virtinst
yum groupinstall 'Virtualization'



建立一个虚拟机:
这时候就可以通过X界面来建立一个虚拟机咯。
应用程序--->系统工具----->虚拟器管理系统

这里选择使用什么方式启动,本地光盘(镜像)启动,网络安装,或者网络启动.我这里选择的光盘镜像启动.

之后就是非常简单的一步一步点下去了,然后就能进入系统安装阶段了.这里就不赘述了.
成功的关键是配置网络及路由(这个在网上流传的版本中没有提到)
请生成一个文件(qemu-ifup),将这个文件加上可执行属性,文件内容如下:
#!/bin/sh
set -x
switch=br0
if [ -n "$1" ];then
        /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1
        /usr/bin/sudo /sbin/ip link set $1 up
        sleep 0.5s
        /usr/bin/sudo /usr/sbin/brctl addif $switch $1
        exit 0
else
        echo "Error: no interface specified"
        exit 1
fi

将这个文件保存在你的HOME目录下,或者其它的目录也行。
修改你的/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 interface
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
    bridge_ports eth0 //注意这个eth0,这是你的计算机的实际网卡,请根据你的网络修改,也可能跟我的这个一样。
    address 192.168.1.242 //根据你的需要设置从这里到下面的参数,这个网络跟你的实现网络在一个子网内,不然无法桥接
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-nameserver 192.168.1.1 219.141.136.10
    dns-search Office

此时,重新启动计算机即可。
你可能注意到, 这个文件里可能有关于eth0的配置,请删除它即可,也就是说,不能对eth0进行任何配置,这个接口在重新启动后,应该是没有配置IP的,否则不能工作。
重新启动完成后,请比照一下你的接口配置是否跟我的一样:
#ifconfig
br0       Link encap:以太网  硬件地址 00:21:5e:4e:33:e2  
          inet 地址:192.168.1.242  广播:192.168.1.255  掩码:255.255.255.0
          inet6 地址: fe80::221:5eff:fe4e:33e2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:48324758 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:25261650 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:63199826111 (63.1 GB)  发送字节:5380518900 (5.3 GB)
eth0      Link encap:以太网  硬件地址 00:21:5e:4e:33:e2  
          inet6 地址: fe80::221:5eff:fe4e:33e2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:48903854 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:28125512 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:64152739997 (64.1 GB)  发送字节:6185466883 (6.1 GB)
          中断:16

请注意,只有br0有地址,而eth0是没有地址的,再比照一下你的路由表:
#route
内核 IP 路由表
目标            网关            子网掩码        标志  跃点   引用  使用 接口
localnet        *               255.255.255.0   U     0      0        0 br0
default         bogon           0.0.0.0         UG    100    0        0 br0

请注意,如果你的路由表与我的不一样,例如出现四行,即又加上了
localnet * ...................    eth0
default bogon ..................eth0
那么,你八成是不能成功桥接的,出现这样的问题应该是由于你的ETH0网络被配置了IP,处理的办法就是想办法去掉eth0的IP,可以使用这个方法:
#ifconfig eth0 0.0.0.0
比较一下,你的桥接网络接口:
#brctl show
bridge name    bridge id        STP enabled    interfaces
br0        8000.00215e4e33e2    no        eth0
                            tap0
                            tap1
                            tap2

应该有这行存在(可能还会出现其它的行,例如pan0),后面的tapX是不同的虚拟机的接口,这里可以看出,我桥接了三个虚拟接口到一个直接的接口。
如果你的IP地址配置与路由表跟我的一样,那么,应该是可以桥接成功的。
接下来就是启动你的虚拟机,启动前需要创建虚拟机的磁盘(即下面的u_ubuntu.img,可以参照网上的方法,这里就不重复了),启动虚拟机的方法:
 kvm -hda u_ubuntu.img -boot c -net nic,model=virtio,macaddr=DE:AD:AF:22:33:22 -net tap,script=qemu-ifup -m 1024 -smp 2 -clock rtc -localtime

当然,有很的参数可用,我就不介绍了(其实我也不是很懂,嘿嘿),关键的问题就是macaddr和script两项,如果你有多个虚拟机,那么一样要配置不同的macaddr,script一定要指向你刚才保存的那个文件,可以使用绝对路径指明。
启动后,你应该可以正常安装操作系统了,安装完成后,如果虚拟机操作系统网络配置成DHCP,那么应该可以获取一个192.168.1.0网络内的地址,如果你不能获取地址,那么说明配置不成功。
在虚拟机工作的情况下,在宿主计算机上运行ifconfig,应该可以看到一个自动增加的接口tapX(其中X从0开始)。
小结一下:
1)eth0(宿主计算机连接到网络的真实网络接口)不能有IP地址!
2)路由表一定要正确,可以去找一找关于路由方面的介绍,了解一下这个路由信息的意思。
                
(菜鸟写博,老鸟飞过。欢迎拍砖,深入交流!)






     本文转自 珏石头 51CTO博客,原文链接:http://blog.51cto.com/gavinshaw/177624,如需转载请自行联系原作者


相关文章
|
4月前
|
Web App开发 Java Linux
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
116 0
|
Linux KVM 虚拟化
如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据
如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据
488 0
如何恢复故障KVM虚拟机qcow2磁盘镜像文件LVM分区中的数据
|
2天前
|
Linux KVM 数据库
虚拟机数据恢复—误删除KVM虚拟机的数据恢复案例
虚拟化数据恢复环境&故障: KVM是Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux2.6.20版本之后集成在Linux的各个主要发行版本中。KVM使用Linux自身的调度器进行管理。 本案例中的服务器操作系统为Linux,文件系统为EXT4。操作系统上的部署的几台KVM虚拟机被删除,每台KVM虚拟机包含一个qcow2格式的磁盘文件和一个raw格式的磁盘文件,用户需要恢复的数据是raw格式的磁盘文件。这几台被误删除的虚拟机存放的是数据库,程序代码等数据。
|
5月前
|
安全 Unix Linux
Centos虚拟机安装配置与MobaXterm工具及Linux常用命令(下)
Centos虚拟机安装配置与MobaXterm工具及Linux常用命令(下)
124 0
|
4月前
|
机器学习/深度学习 Ubuntu Linux
如何在Ubuntu 23.10部署KVM并创建虚拟机?
如何在Ubuntu 23.10部署KVM并创建虚拟机?
70 0
|
9月前
|
Linux 虚拟化
虚拟机:安装配置(VMware + centos 8 stream)(下)
虚拟机:安装配置(VMware + centos 8 stream)(下)
114 0
|
9月前
|
Linux 虚拟化
虚拟机:安装配置(VMware + centos 8 stream)(上)
虚拟机:安装配置(VMware + centos 8 stream)(上)
110 0
|
16天前
|
Ubuntu 安全 Linux
【Linux】安装VMWare虚拟机(安装配置)和配置Windows Server 2012 R2(安装配置连接vm虚拟机)以及环境配置(Windows版详细教程)
【Linux】安装VMWare虚拟机(安装配置)和配置Windows Server 2012 R2(安装配置连接vm虚拟机)以及环境配置(Windows版详细教程)
220 0
|
5月前
|
安全 Linux 数据安全/隐私保护
Centos虚拟机安装配置与MobaXterm工具及Linux常用命令(上)
Centos虚拟机安装配置与MobaXterm工具及Linux常用命令(上)
100 1
|
6月前
|
关系型数据库 MySQL Linux
【Linux】安装VMWare虚拟机(安装配置)和配置Windows Server 2012 R2(安装配置连接vm虚拟机)以及环境配置
【Linux】安装VMWare虚拟机(安装配置)和配置Windows Server 2012 R2(安装配置连接vm虚拟机)以及环境配置
111 0

热门文章

最新文章