第 167 章 Kernel-based Virtual Machine(KVM)

167.1. kvm install usage yum

确认处理器是否支持KVM

egrep 'vmx|svm' /proc/cpuinfo
		

对当前系统做一个全面升级

sudo yum update
sudo yum upgrade
		

Installing

如果你不想安装Virtualization组,想单独安装需要的软件,可是使用下面命令

# yum install qemu-kvm libvirt virt-install bridge-utils
		

确认kvm已经安装

lsmod | grep kvm

# lsmod | grep kvm
kvm_intel             138567  0
kvm                   441119  1 kvm_intel
		

Create the disk image

qemu-img create -f qcow2 disk.img 5G

or

dd if=/dev/zero of=disk.img bs=1G count=5

# qemu-img create -f qcow2 disk.img 5G
Formatting 'disk.img', fmt=qcow2, size=5242880 kB

# dd if=/dev/zero of=disk.img bs=1G count=5
5+0 records in
5+0 records out
5368709120 bytes (5.4 GB) copied, 61.0353 seconds, 88.0 MB/s
		

Creating a virtual machine

/usr/libexec/qemu-kvm -hda disk.img -cdrom archlinux-2009.08-core-x86_64.iso -m 512 -boot d
		

如果你不在localhost上安装OS,你需要指定vnc,这样你可以远程连接到kvm

[root@scientific ~]# /usr/libexec/qemu-kvm disk.img -cdrom rhel-server-5.6-x86_64-dvd.iso -m 8000 -boot d -vnc :1
		
[root@scientific ~]# yum install -y virt-manager virt-top virt-v2v virt-viewer
or
[root@scientific ~]# yum groupinstall 'Virtualization'
		

167.1.1. brctl / tunctl

[root@scientific ~]# yum install -y tunctl
			

DHCP

brctl addbr br0
ifconfig eth0 0.0.0.0
brctl addif br0 eth0
dhclient br0
tunctl -b -u root
ifconfig tap0 up
brctl addif br0 tap0
			

STATIC IP Address

brctl addbr br0
ifconfig eth0 0.0.0.0
brctl addif br0 eth0
ifconfig br0 up
tunctl -b -u root
ifconfig tap0 up
brctl addif br0 tap0

ifconfig br0 192.168.1.120 netmask 255.255.255.0 up
ip route add default via 192.168.3.1 dev br0
			
[root@scientific ~]# ip route
192.168.3.0/24 dev br0  proto kernel  scope link  src 192.168.3.43
192.168.3.0/24 dev tap0  proto kernel  scope link  src 192.168.3.21

default via 192.168.3.1 dev br0
[root@scientific ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.4ea7e4cf4633       no              eth0
                                                        tap0
br06499         8000.000000000000       no
			

启动KVM

指定网络参数 -net nic -net tap,ifname=tap0,script=no

/usr/libexec/qemu-kvm -hda disk.img -m 8000 -net nic -net tap,ifname=tap0,script=no -vnc :1

/usr/libexec/qemu-kvm -hda disk.img -m 8000 -net nic -net tap,ifname=tap0,script=no -nographic -daemonize
			

167.1.2. virt-install

yum install -y libvirt python-virtinst virt-manager
			

命令行安装

sudo virt-install --connect qemu:///system -n Ubuntu32 -r 512 --vcpus=1 -f /dev/sda3 -s 9 -c Desktop/ubuntu-10.10-desktop-i386.iso --vnc --noautoconsole --os-type linux --os-variant generic26 --accelerate --network=bridge:virbr0 --hvm
sudo virt-install --connect qemu:///system -n Ubuntu32 -r 512 --vcpus=1 -f ~/ubuntu32.qcow2 -s 12 -c esktop/ubuntu-10.10-desktop-i386.iso --vnc --noautoconsole --os-type linux --os-variant generic26 --accelerate --network=bridge:br0 --hvm
			

进入GUI工具

virsh -c qemu:///system list
sudo virt-manager
		

原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

时间: 2024-07-31 08:28:37

第 167 章 Kernel-based Virtual Machine(KVM)的相关文章

Stack based vs Register based Virtual Machine Architecture

进程虚拟机简介 一个虚拟机是对原生操作系统的一个高层次的抽象,目的是为了模拟物理机器,本文所谈论的是基于进程的虚拟机,而不是基于系统的虚拟机,基于系统的虚拟机可以用来在同一个平台下去运行多个不同的硬件架构的操作系统,常见的有kvm,xen,vmware等,而基于进程的虚拟机常见的有JVM,PVM(python虚拟机)等,java和python的解释器将java和python的代码编译成JVM和PVM可以识别的字节码.然后JVM和PVM取出字节码依次执行.就好比是汇编语言被编译成了机器码,通过指令

了解最新一代的Linux虚拟化技术Kernel Virtual Machine

尽管这种变化的动机主要与构建和支持相关,而不是技术,但事实是许多对虚拟化感兴趣的企业 IT 小组需要学习 KVM 所使用的管理和控制工具.类似地,已投资 Xen 虚拟化且正在转向使用 KVM 的 IT 小组,可能希望尽可能将现有的虚拟机转换为 KVM 支持的格式,而不是重新创建它们. 能够在单个服务器硬件平台上运行多个虚拟机 (VM) 的能力在如今的 IT 基础架构中实现了了成本.系统管理和灵活性等方面的优势.在单个硬件平台上托管多个虚拟机,可减少硬件开支并帮助最大限度降低基础架构成本,比如能耗

Windows Azure Virtual Machine (23)

使用Storage Space,提高Virtual Machine磁盘的IOPS 熟悉Windows Azure Virtual Machine的读者都知道,我们在创建完Azure VM之后,通过RDP登陆,可以看到Azure VM包含2块磁盘: 1)C盘是操作系统所在盘符,是持久化磁盘. 2)D盘是Temporary Storage,是非持久化盘.D盘只能用来存放临时文件,任何保存在D盘的文件在VM重置后会被删除. 有兴趣的的读者可以测试一下,其实Azure VM C盘的IOPS不是很好. 那

Windows Azure Virtual Machine (21)

将本地Hyper-V的VM上传至Windows Azure Virtual Machine 我们知道,Windows Azure Virtual Machine最大的优势是在于:上云容易,下云也方便. 我们可以在本地制作Hyper-V的VM,然后通过Azure PowerShell脚本,将本地的VHD上传至Windows Azure.来实现将本地的VM在云上进行托管.这对于我们现有的企业级应用来说,迁移非常方便. 与之前的文章不同,以前的文章我介绍的都是如何制作虚拟机镜像,这些镜像都要运行Sys

Windows Azure Virtual Machine (20)

Windows Azure Virtual Machine (20) 关闭Azure Virtual Machine与VIP Address,Internal IP Address的关系(2) 本章笔者将向大家介绍的场景如下:2台Azure VM在共享同一个DNS地址. 在2台Azure VM的情况下,我们有以下2种方式安全停止Azure VM. 1)关闭其中一台Azure VM(使用Azure Management Portal, RDP或者PowerShell,三种方式) 2)同时关闭2台A

Windows Azure Virtual Machine (19)

关闭Azure Virtual Machine与VIP Address,Internal IP Address的关系(1) 在我们日常使用Windows Azure Virtual Machine的时候,如果服务不再被使用,我们就可以停止VM以节省成本. 一般情况下,有三种方式可以安全停止Azure VM: 1)使用Azure Management Portal,停止VM 2)使用远程桌面连接VM,在远程桌面关闭VM 3)使用Windows Azure PowerShell停止VM 在本章中,我

Windows Azure Virtual Machine (18)

Azure Virtual Machine内部IP和外部IP 按照上文的内容,我们分别创建2台不同的Virtual Machine: 第一台机器名为LeiZhangVMOne 第二台机器名为LeiZhangVMTwo 他们共享同一个CloudService Name: http://leizhangvm.cloudapp.net 当我们通过Azure Management Portal查看2台VM属性的时候,会发现以下内容: 通过上图红色区域我们发现, -第一台VM和第二台VM的Internal

Windows Azure Virtual Machine (16)

使用Azure PowerShell创建Azure Virtual Machine 注:本章内容和之前的[New Portal]Windows Azure Virtual Machine (12) 在本地制作操作系统VHD并上传至Azure (2) 类似,建议读者先预习相关的内容. 之前给大家介绍很多关于Windows Azure的内容,基本上都是通过Windows Azure Management Portal来创建的.这种创建方式虽然直观简单,但是如果IT管理员需要同时创建1000台Azur

Windows Azure Virtual Machine (15)

在本地制作数据文件VHD并上传至Azure(2) 在上一章内容里,我们已经将包含有OFFICE2013 ISO安装文件的VHD上传至Azure Blob Storage中了. 本章我将介绍如何将该VHD挂载到Azure Virtual Machine中去. 1.首先我们登陆Azure Management Portal.https://manage.windowsazure.com 2.点击Virtual Machine,选择右侧的DISKS,然后点击 CREATE A DISK.如下图: 3.