rhel之kvm攻略
redhat吧
全部回复
仅看楼主
level 10
从RHEL 6开始,rhel去掉了Xen,并使用KVM完全代替Xen。
KVM 是指基于 Linux 内核的虚拟机(Kernel-based Virtual Machine)。增加 KVM 到 Linux 内核是 Linux 发展的一个重要里程碑,这也是第一个整合到 Linux 主线内核的虚拟化技术。在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以在用户空间启动客户机操作系统。一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)。
KVM 所使用的方法是通过简单地加载内核模块而将 Linux 内核转换为一个系统管理程序。这个内核模块导出了一个名为 /dev/kvm 的设备,它可以启用内核的客户模式(除了传统的内核模式和用户模式)。有了 /dev/kvm 设备,VM 使自己的地址空间独立于内核或运行着的任何其他 VM 的地址空间。设备树(/dev)中的设备对于所有用户空间进程来说都是通用的。但是每个打开 /dev/kvm 的进程看到的是不同的映射(为了支持 VM 间的隔离)。KVM安装 KVM 之后,您可以在用户空间启动客户操作系统。每个客户操作系统都是主机操作系统(或系统管理程序)的一个单个进程。

2012年08月03日 03点08分 1
level 10
KVM 虚拟机的管理工具
   准确来说,KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。QEMU-KVM:在 Linux 系统中,首先我们可以用 modprobe 命令加载 KVM 模块,如果用 RPM 安装 KVM 软件包,系统会在启动时自动加载模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM 模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。关于用户空间的工具,KVM 的开发者选择了已经成型的开源虚拟化软件 QEMU。QEMU 是一个强大的虚拟化软件,它可以虚拟不同的 CPU 构架。比如说在 x86 的 CPU 上虚拟一个 Power 的 CPU,并利用它编译出可运行在 Power 上的程序。KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 内核模块的用户空间工具 QEMU-KVM。所以 Linux 发行版中分为 内核部分的 KVM 内核模块和 QEMU-KVM 工具。这就是 KVM 和 QEMU 的关系。 Libvirt、virsh、virt-manager:尽管 QEMU-KVM 工具可以创建和管理 KVM 虚拟机,RedHat 为 KVM 开发了更多的辅助工具,比如 libvirt、libguestfs 等。原因是 QEMU 工具效率不高,不易于使用。Libvirt 是一套提供了多种语言接口的 API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 KVM,而且支持 Xen 等其他虚拟机。使用 libvirt,你只需要通过 libvirt 提供的函数连接到 KVM 或 Xen 宿主机,便可以用同样的命令控制不同的虚拟机了。Libvirt 不仅提供了 API,还自带一套基于文本的管理虚拟机的命令 virsh,你可以通过使用 virsh 命令来使用 libvirt 的全部功能。但最终用户更渴望的是图形用户界面,这就是 virt-manager。他是一套用 python 编写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。Virt-manager 就是利用 libvirt 的 API 实现的。
2012年08月03日 03点08分 2
level 10
安装配置KVM 相关软件
  1 系统要求:
  处理器需求:需要一台可以运行最新linux内核的Intel处理器(含VT虚拟化技术)或AMD处理器(含SVM安全虚拟机技术的AMD处理器, 也叫AMD-V)。可以使用如下命令检查:
  # egrep "(vmx|svm)" color=always /proc/cpuinfo
  flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
  flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
  如果输出的结果包含 vmx,它是 Intel处理器虚拟机技术标志;如果包含 svm,它是 AMD处理器虚拟机技术标志;。如果你甚么都得不到,那应你的系统并没有支持虚拟化的处理 ,不能使用kvm。另外Linux 发行版本必须在64bit环境中才能使用KVM。
  2 安装软件
  安装KVM模块、管理工具和libvirt (一个创建虚拟机的工 具),我们使用命令行安装:
  #yum install kvm virt-manager libvirt
  #/sbin/service libvirtd start
  3 确定正确加载kvm模块
  运行命令 lsmod | grep kvm 检查 KVM 模块是否成功安装。如果结果类似于以下输出,那么 KVM 模块已成功安装:
  # lsmod | grep kvm
  kvm_amd 69416 1
  kvm 226208 2 ksm,kvm_amd
  4 检查KVM是否成功安装
  virsh -c qemu:///system list
  将会显示如下结果:
  # virsh -c qemu:///system list
  Id Name State
  如果在这里显示的是一个错误的信息,说明有些东西出现了问题。
2012年08月03日 03点08分 3
level 10
OK,之后你就可以打开你的虚拟机管理器了,并安装新的虚拟机了

2012年08月03日 03点08分 4
level 10
其实安装KVM虚拟机,无论是redhat enterprise linux,还是fedora、arch等,都是得安装好KVM模块和管理工具,难点可能在于KVM模块的安装上,对于使用rhel做练习的朋友,恐怕只能去sourceforge下载源码了。
2012年08月04日 04点08分 5
level 6
刚看了你的帖子,安装了kvm模块,我就是从sourceforge上下载的qemu-kvm,安装了,我也能检测到kvm模块了,但是怎么kvm还是不行呢?
2012年08月04日 05点08分 6
你是用的什么系统,rhel6?32位还是64位的?
2012年08月04日 05点08分
回复 @猫腻丶拜印 :==虚拟机里安装的rhel6.2,我也不知道是多少位的,x86_64是不是这个,反正我能用rpm包。
2012年08月04日 05点08分
x86_64就是64位的,红帽的系统只有64位的才能使用kvm虚拟机,我发帖的时候忘说了,32位的不能监视虚拟机资源。
2012年08月04日 05点08分
level 6
我就是新建不了新的虚拟机,我这里不能截图[88]
2012年08月04日 05点08分 7
红帽的vrt-manager虚拟机管理软件只有64位才能装,你是说你有管理软件,但是不能新建虚拟机是么?
2012年08月04日 05点08分
回复 @猫腻丶拜印 :我能打开虚拟机管理器那个软件,然后下面没有你的那些虚拟机,只有localhost(QEMU)
2012年08月04日 05点08分
对的啊,你没有安装新的虚拟机,当然下面没有显示咯。 你能显示localhost(QEMU)说明你kvm的模块是安装对了。[Love]
2012年08月04日 05点08分
level 10
回复 @喜欢美人儿 :
新建虚拟机是需要另一个组件libvirt的,你rpm -q libvirt看看有没有安装这个组件。
没有的话安装一下。在rhel的安装名光盘上就有libvirt的安装包。sourceforge里应该也有。
亲,加油吧,你就要成功了。
2012年08月04日 05点08分 8
e...还真没有libvirt。看来我没有仔细看帖子啊。。。
2012年08月04日 05点08分
level 6
下去试试,看能成不。。[揉脸]
2012年08月04日 06点08分 9
level 6
[Yeah]
OK啦,已经能创建虚拟机了。就是libvirt没安装的问题。我放上光盘,在图形的软件中心下轻松地就搜索到了libvirt,然后安装了(我对命令还不熟)。
不过我rhel本来就是虚拟机,没有足够的资源创建新的。
谢谢楼主耐心的指点。[Love]

2012年08月04日 09点08分 10
level 6
噢噢噢,心情好,我觉得我会慢慢适应linux的[惊讶]
2012年08月04日 09点08分 11
level 10
人世情为何物,只叫人生死相许
2012年08月19日 12点08分 12
1