`

转:操作系统虚拟化之KVM

阅读更多
操作系统虚拟化之KVM

KVM(Kernel-based Virtual Machine)是一个全虚拟化的解决方案,它自2.6.20以后正式成为Linux内核的一部分,也就是说,它是Linux内核官方支持的一个虚拟化方 案。KVM的硬件需求是CPU必须支持虚拟化,对于Intel CPU来说是Intel VT,AMD CPU则是 AMD-V。如何确定你的CPU支持硬件虚拟化呢?

egrep '(vmx|svm)' /proc/cpuinfo
vmx是Intel CPU的,svm则是AMD CPU的。我的CPU返回如下:

flags : fpu vme de pse tsc msr pae mce cx8 apic sep 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 smx est tm2 ssse3 cx16 xtpr pdcm sse4_1
xsave lahf_lm ida tpr_shadow vnmi flexpriority
flags : fpu vme de pse tsc msr pae mce cx8 apic sep 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 smx est tm2 ssse3 cx16 xtpr pdcm sse4_1
xsave lahf_lm ida tpr_shadow vnmi flexpriority
在Ubuntu下面需要安装下面的软件:

sudo apt-get install kvm qemu-kvm
加入个人用户到kvm组,以保证个人用户可以读写/dev/kvm,否则,以个人用户无法运行kvm:

sudo adduser $USER kvm
如果想使用物理磁盘,则需要加个人用户到disk组:

sudo adduser $USER disk
现在最好重启一下计算机!

下面开始安装操作系统,我安装了Windows XP和Windows 7,下面以Windows XP为例开始安装。

先准备好一个磁盘文件,有2种常用的格式,一个是qemu的qcow2格式,一个是raw格式,前者是可以增长的文件格式,后者实际是磁盘上一个连续区域。

qcow2:

qemu-img create -f qcow2 winxp.img 10G
Raw:

dd if=/dev/zero of=winxp.img bs=1024K count=10000
下面开始安装,准备好安装光盘文件winxp.iso,下面是安装的指令:

kvm -m 1024 -cdrom=winxp.iso winxp.img -boot d -localtime
XP安装很快,20分钟左右就可以安装好,Win 7大约需要40分钟。下面开始以下后面的工作,会涉及更多的参数。

配置硬盘和网络的virtio模式,virtio是个半虚拟化的模式,速度比传统方式还要快些,根据Using virtio_net For The Guest NIC一文的测试,virtio还是很有优势的。

在虚拟机里面下载virtio windows guest驱动: Storage driver和Network driver,其中已经包含了xp、win7等的驱动。

根据boot from virtio block device一文的介绍,用以下方式进行安装驱动。

建一个临时的磁盘文件:

qemu-img create -f qcow2 fake.img 1G
启动虚拟机:

kvm -drive file=winxp.img,if=ide,boot=on -drive file=fake.img,if=virtio -m 1024
-localtime -net nic,model=virtio -net user -usb -usbdevice tablet
在启动的虚拟机里,会找到virtio设备,然后安装这两个驱动。安装完毕后,关机。以下面方式重新启动:

kvm -drive file=winxp.img,if=virtio,boot=on -m 1024 -net nic,model=virtio -net user
-usb -usbdevice tablet -soundhw es1370
下面配置远程桌面对Windows的访问,首先需要在虚拟机的Windows里面开启远程桌面,而且必须给用户加上密码,Windows XP和Windows 7需要是Professional以上版本。然后运行mmc继续配置远程桌面访问参数。

打开mmc后,“添加/删除管理单元“ -> “添加” -> “组策略对象编辑器” -> “本地计算机”。在里面配置:“计算机配置” -> “管理模板” -> “Windows 组件” -> “终端服务” -> “限制最大颜色深度”,设置为24位,原来默认是16位。

关机,重新以可以以新的模式后台运行:

kvm -M pc -drive file=winxp.img,if=virtio,boot=on -localtime -m 1024 -soundhw es1370
-net nic,model=virtio -net user -vnc 127.0.0.1:0 -daemonize -redir tcp:3389::3389
-name WindowsXP -usb -usbdevice tablet
-vnc 127.0.0.1:0表示以vnc模式运行,-daemonize表示kvm以后台运行,-redir tcp:3389::3389表示将虚拟机的3389端口映射为宿主机的3389端口上,这样rdesktop本机就可以进行远程桌面访问了。如果想实时 查看状态,可以使用vncviewer或者vinagre查看。

现在可以rdesktop进行访问了,下面是rdesktop的参数:

rdesktop localhost -u username -p password -f -D -z -P -r sound:local -clipboard
这里-z参数可以保证鼠标运行速度不缓迟,-f表示全屏。

虚拟机如何使用USB设备呢,首先要保证用户可以访问USB设备,qemu支持usb设备在虚拟机里面的拔插,在qemu界面里(或者vnc访问的界面里),Ctrl+Alt+2进入qemu monitor命令行控制模式,然后

usb_add host:vid:pid
查看usb设备:

info usb
Windows 7的运行和访问参数与Windows XP类似。

下面是我的一些截屏:

Windows XP:



Windows 7:



rdesktop 启用Windows 7字体平滑功能
由 何勃亮 在 星期五, 2010-04-02 09:36 发表。
rdesktop 连接上Windows 7以后,一般是不开启字体平滑功能,因此,字体不是特别好看,可以通过加入下面的参数来连接,就启用字体平滑功能了,而且原来的Win 7桌面也保留了,不像之前连接后出现的黑色桌面,还需要自己再设置下。

rdesktop localhost -x 0x80 -u username -p password -f -D -z -P -r sound:local -clipboard
主要是加入 -x 0x80 选项。



http://www.heboliang.cn/archive/kvm-windows.html

分享到:
评论

相关推荐

    linux操作系统安装虚拟化kvm

    linux操作系统安装虚拟化kvm

    Docker容器与虚拟化技术——部署KVM虚拟化平台

    (1)什么是虚拟化把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的技术(2)虚拟化层①X86平台指令...

    云计算实验一:虚拟化技术实验报告

    (3) Docker是目前最流行的轻量级虚拟化解决方案,并开始在越来越多的场合中替代传统的虚拟机技术。  任务:通过Docker的官方网站https://www.docker.com/,在Linux系统中下载并安装使用最新的Docker,进一步了解...

    kvm虚拟化个人笔记

    平台虚拟化 将 X86的CPU 内存 外设 作为资源 如: QEMU(Platform Virtualization) ...操作系统虚拟化 将 操作系统以及其提供的系统调用 作为资源 如: LXC Docker 因为全虚拟化(QEMU)已经被淘汰的原理,这里不做解释 1.

    云计算实验报告一(KVM与Docker安装使用)

    3) Docker是目前最流行的轻量级虚拟化解决方案,并开始在越来越多的场合中替代传统的虚拟机技术。 任务:通过Docker的官方网站https://www.docker.com/,在Linux系统中下载并安装使用最新的Docker,进一步了解...

    KVM虚拟化部署和使用文档

    KVM虚拟化平台部署和使用文档,基于CentOS6.8操作系统部署和使用KVM。使用KVM制作qcow2镜像操作文档。

    KVM虚拟化(一)——KVM虚拟机的介绍与简单使用

    它依托于CPU虚拟化指令集,性能、安全性、兼容性、稳定性表现很好,每个虚拟化操作系统表现为单个系统进程,与Linux安全模块selinux安全模块很好结合; 官方网站为http://www.linux-kvm.org/page/Main_Page 二、KVM...

    Xen和KVM等四大虚拟化架构对比分析1

    前言云计算如今已是一个相当热门的概念,各行各业包括政府,云建设都如火如荼地进行。华为正借助开源技术,向不同领域的客户提供多样化的云服务,包括提供全面的私有云、公

    云计算——虚拟化技术.pptx

    云计算原理与实践Principles and Practice of Cloud Computing 云计算——虚拟化技术全文共67页,当前为第1页。 Outline 4.1 虚拟化的定义 4.2 服务器虚拟化 ... 实现服务器虚拟化后,多个操作系统可以作为虚拟机在单台

    Linux KVM的虚拟化性能.pdf

    Linux KVM的虚拟化性能.pdf

    CentOS 7中搭建KVM虚拟化平台的方法步骤

    虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术。 虚拟化的优势 减少...

    基于虚拟化的系统安全增强及显卡透传研究

    针对个人终端操作系统安全问题,提出了一种基于系统虚拟化技术的操作系统安全增强模型,并基于KVM虚拟机深入研究了提高该模型下虚拟机显示性能的显卡透传技术的具体实现。实验结果证明显卡透传技术能够突破虚拟机...

    银河麒麟服务器操作系统全指南-包含13个适配手册.zip

    包括但不限于: 银河麒麟服务器操作系统全指南(银河麒麟服务器操作系统-...银河麒麟服务器操作系统-KVM虚拟化适配手册.pdf 银河麒麟服务器操作系统-mongodb-v2.6.10版适配手册.pdf 银河麒麟服务器操作系统-solr-v

    服务器虚拟化方案.pptx

    虚拟化前: 每台主机一个操作系统 软件硬件紧密地结合 在同一主机上运行多个应用程序通常会遭遇沖突 系统的资源利用率低 硬件成本高而且不够灵活 虚拟化后: 打破了操作系统和硬件的互相倚賴 通过封装到到虚拟机的...

    基于KVM的远程声卡显卡虚拟化技术

    针对家庭多媒体环境下的设备共享问题,提出了一种基于KVM虚拟机的远程设备虚拟化技术...本方案优点在于仅需要在用户态的虚拟设备层添加所需要的远程设备的虚拟化,方便灵活且系统的安全性高同时不需要修改客户操作系统.

    kvm虚拟化学习笔记(一)之kvm虚拟化环境安装的步骤

    平时一直玩RHEL/CentOS/OEL系列的操作,玩虚拟化也是采这一类系统,kvm在RHEL6系列操作系统支持比较好,本文采用采用OEL6.3操作系统,网上所有文章都说KVM比xen简单,我怎么感觉kvm比较复杂,可能是它的工具太多了吧...

    Linux 内核虚拟机 ---KVM

    Linux® 既有良好的灵活性,在...KVM 支持 Linux 客户操作系统的虚拟化 —— 甚至支持其硬件对虚拟化敏感的 Windows® 系统的虚拟化。了解 Linux KVM 的架构并了解它与内核的紧密集成为何会改变您使用 Linux 的方式。

    基于QEMU-KVM的虚拟化可信模型设计

    为改善虚拟化所带来的安全问题,文中从虚拟化服务器角度出发,设计了一种基于QEMU-KVM的虚拟化可信模型。该模型构造一个从底层基础架构到上层应用服务的可信架构,在模拟处理器中添加虚拟可信平台模块,并在操作系统...

    基于虚拟技术的涉密笔记本操作系统安全隔离

    本文着重于探讨系统虚拟化技术在涉密笔记本操作系统安全防护方面的应用,结合对涉密笔记本安全应用需求的调研,大胆地提出了一种在涉密笔记本上安装双系统(一个专用于涉密信息处理的涉密操作系统和一个专用于连接外...

    什么是服务器虚拟化技术.doc

    服务器虚拟化技术要追述到IBM大型机的虚拟化 z/VM,在z系列大型机(非虚拟化操作系统是z/OS)上实现服务器虚拟化。基于z/VM可以运行上百个虚拟机。后来在Power上的KVM技术是PowerKVM;以及AIX虚拟化PowerVM,支持vSCSI...

Global site tag (gtag.js) - Google Analytics