Ⅰ linux系统中一个kvm的虚拟机也哪种方式运行
kvm就是个软件,可以在命令行执行,也可以在桌面环境找到位置双击打开。
Ⅱ KVM虚拟机的使用
KVM启动Guest
① sudo kvm –boot c –m 512
–hda windows.img
② sudo kvm -boot c
-m 512
-hda /home/lm/kvm/winxp.img
-localtime
-net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tap0,script=no
-clock rtc
-soundhw es1370
-smp 2
注意:在KVM-87下,请去掉df=h
-m 512 分配512MB的内存
-hda /home/lm/kvm/winxp.img
-localtime 使用本地时间(一定要加这个参数,不然虚拟机时间会有问题)
-net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tapo,script=no
使用网络,并连接到一个存在的网络设备tap0,注意mac地址一定要自己编一个,特别是如果你虚拟了多个系统并且要同时运行的话,不然就MAC冲突了,在KVM-87下去掉df=h
-boot d 从光盘启动 (从镜像启动也是用这个。从硬盘启动则为 -boot c )
-smp 2 smp处理器个数为2个,如果你是4核处理器,后面的数字就为4
-clock rtc
使用rtc时钟(如果不开启此选项,WINXP可能会很慢)
Ⅲ 如何在Linux上使用GNOME Boxes创建KVM 虚拟机
在Linux中用命令行工具管理KVM虚拟环境的步骤: 第一步: 配置存储池 Virsh命令行工具是一款管理virsh客户域的用户界面。virsh程序能在命令行中运行所给的命令以及它的参数。本节中,要用它给KVM环境创建存储池。想知道关于这个工具的更多信息,用以下这条命令。 # man virsh 1、用virsh带pool-define-as的命令来定义新的存储池,需要指定名字、类型和类型参数。本例中,将名字取为Spool1,类型为目录。默认情况下可以提供五个参数给该类型: source-host source-path source-dev source-name target 对于目录类型,需要用最后一个参数“target”来指定存储池的路径,其它参数项可以用“-”来填充。 # virsh pool-define-as Spool1 dir - - - - "/mnt/personal-data/SPool1/" ...在Linux中用命令行工具管理KVM虚拟环境的步骤: 第一步: 配置存储池 Virsh命令行工具是一款管理virsh客户域的用户界面。virsh程序能在命令行中运行所给的命令以及它的参数。本节中,要用它给KVM环境创建存储池。想知道关于这个工具的更多信息,用以下这条命令。 # man virsh 1、用virsh带pool-define-as的命令来定义新的存储池,需要指定名字、类型和类型参数。本例中,将名字取为Spool1,类型为目录。默认情况下可以提供五个参数给该类型: source-host source-path source-dev source-name target 对于目录类型,需要用最后一个参数“target”来指定存储池的路径,其它参数项可以用“-”来填充。 # virsh pool-define-as Spool1 dir - - - - "/mnt/personal-data/SPool1/" 2、 查看环境中所有的存储池,用以下命令。 # virsh pool-list --all 3、现在来构造存储池了,用以下命令来构造刚才定义的存储池。 # virsh pool-build Spool1 4、用带pool-start参数的virsh命令来激活并启动刚才创建并构造完成的存储池。 # virsh pool-start Spool1 5、查看环境中存储池的状态,用以下命令。 # virsh pool-list --all 会发现Spool1的状态变成了已激活。 6、对Spool1进行配置,让它每次都能被libvirtd服务自启动。 # virsh pool-autostart Spool1 7、最后来看看新的存储池的信息吧。 # virsh pool-info Spool1 恭喜,Spool1已经准备好待命,接下来试着创建存储卷来使用它。 第二步: 配置存储卷/磁盘映像 现在轮到磁盘映像了,用qemu-img命令在Spool1中创建一个新磁盘映像。获取更多细节信息,可以查看man手册。 # man qemu-img 8、应该在qemu-img命令之后指定“create, check,…”等等操作、磁盘映像格式、想要创建的磁盘映像的路径和大小。 # qemu-img create -f raw /mnt/personal-data/SPool1/SVol1.img 10G 9、通过使用带info的qemu-img命令,你可以获取到你的新磁盘映像的一些信息。 查看存储卷信息 警告: 不要用qemu-img命令来修改被运行中的虚拟机或任何其它进程所正在使用的映像,那样映像会被破坏。 现在是时候来创建虚拟机了。 第三步: 创建虚拟机 10、现在到最后一个环节了,在最后一步中,将用virt-install命令来创建虚拟机。virt-install是一个用来创建新的KVM虚拟机命令行工具,它使用“libvirt”管理程序库。想获取更多细节,同样可以查看man手册。 # man virt-install 要创建新的KVM虚拟机,需要用到带以下所有信息的命令。 Name: 虚拟机的名字。 Disk Location: 磁盘映像的位置。 Graphics : 怎样连接VM,通常是SPICE。 vcpu : 虚拟CPU的数量。 ram : 以兆字节计算的已分配内存大小。 Location : 指定安装源路径。 Network : 指定虚拟网络,通常是virbr0网桥。 virt-install --name=rhel7 --disk path=/mnt/personal-data/SPool1/SVol1.img --graphics spice --vcpu=1 --ram=1024 --location=/run/media/dos/9e6f605a-f502-4e98-826e-e6376caea288/rhel-server-7.0-x86_64-dvd.iso --network bridge=virbr0 创建新的虚拟机 11、会看到弹出一个virt-vierwer窗口,像是在通过它在与虚拟机通信。收起
Ⅳ 如何在kvm服务器上创建虚拟机
创建虚拟机镜像
要在一台host上跑起一个虚拟机一般需要两个步骤:
第一步:创建虚拟机镜像
qemu-img create -f raw /images/vm1.raw 8G
qmeu-img创建的镜像是一个稀疏文件,也就是说刚创建出来的文件并没有8G,它会随着数据的增多慢慢增加,直到8G
第二步:启动虚拟机
kvm /imges/vm1.raw
运行结果: 因为镜像里面没有任何内容,所以提示找不到可引导设备。
使用qemu-img管理镜像
qemu-img基本命令
上节介绍了使用qemu-img创建镜像,这一节将会介绍qemu-img在镜像管理上的强大功能。
qemu-img有很多命令,包括下面常用的,当然qemu-img -h你懂得。
info
查看镜像的信息
create
创建镜像
check
检查镜像
convert
转化镜像的格式,(raw,qcow ……)
snapshot
管理镜像的快照
rebase
在已有的镜像的基础上创建新的镜像
resize
增加或减小镜像大小
创建镜像
qemu-img create -f <fmt> -o <options> <fname> <size>
举例:
qemu-img create -f raw -o size=4G /images/vm2.raw
hzgatt@hzgatt:~/images$ ll
total 0-rw-r--r-- 1 hzgatt hzgatt 4.0G 6月 29 14:11 vm2.raw
hzgatt@hzgatt:~/images$ ll -s
total 00 -rw-r--r-- 1 hzgatt hzgatt 4.0G 6月 29 14:11 vm2.raw
hzgatt@hzgatt:~/images$ qemu-img info vm2.raw
image: vm2.raw
file format: raw
virtual size: 4.0G (4294967296 bytes)
disk size: 0
虽然ls中看到文件的大小是4G,但是实际上磁盘大小是0。这就是稀疏文件
转化
将一个镜像文件转化为另外一种格式,qemu-img支持的格式可以看qemu-img -h最后一行。
Supported formats: vvfat vpc vmdk vdi sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug
转化命令:
qemu-img convert -c -f fmt -O out_fmt -o options fname out_fname
-c:采用压缩,只有qcow和qcow2才支持
-f:源镜像的格式,它会自动检测,所以省略之
-O 目标镜像的格式
-o 其他选先
fname:源文件
out_fname:转化后的文件
看例子:
hzgatt@hzgatt:~/images$ qemu-img convert -c -O qcow2 vm2.raw vm2.qcow2
hzgatt@hzgatt:~/images$ ll -s
total 136K
0 -rw-r--r-- 1 hzgatt hzgatt 5.0G 6月 29 13:55 vm1.raw
136K -rw-r--r-- 1 hzgatt hzgatt 193K 6月 29 14:22 vm2.qcow2
0 -rw-r--r-- 1 hzgatt hzgatt 4.0G 6月 29 14:11 vm2.raw
hzgatt@hzgatt:~/images$ qemu-img info vm2.qcow2
image: vm2.qcow2
file format: qcow2
virtual size: 4.0G (4294967296 bytes)
disk size: 136K
cluster_size: 65536
如果想看要转化的格式支持的-o选项有哪些,可以在命令末尾加上 -o ?
hzgatt@hzgatt:~/images$ qemu-img convert -c -O qcow2 vm2.raw vm2.qcow2 -o ?
Supported options:
size Virtual disk size
backing_file File name of a base image
backing_fmt Image format of the base image
encryption Encrypt the image
cluster_size qcow2 cluster size
preallocation Preallocation mode (allowed values: off, metadata)
增加减少镜像大小
注意:只有raw格式的镜像才可以改变大小
hzgatt@hzgatt:~/images$ qemu-img resize vm2.raw +2GB
hzgatt@hzgatt:~/images$ ll -s
total 136K
0 -rw-r--r-- 1 hzgatt hzgatt 5.0G 6月 29 13:55 vm1.raw
136K -rw-r--r-- 1 hzgatt hzgatt 193K 6月 29 14:22 vm2.qcow2
0 -rw-r--r-- 1 hzgatt hzgatt 6.0G 6月 29 14:28 vm2.raw
hzgatt@hzgatt:~/images$ qemu-img info vm2.raw
image: vm2.raw
file format: raw
virtual size: 6.0G (6442450944 bytes)
disk size: 0
Ⅳ 如何在 KVM 虚拟机上运行 KVM
如何在 KVM 虚拟机上运行 KVM
上次讨论了如何在 VMware ESXi 虚拟机上运行 KVM 问题,前不久有读者想 “在 kvm 上面创建个虚拟机安装 rackspace 的 openstack” 问到 “如何开启虚拟机上的 CPU VT 功能以便在 KVM 上运行 KVM”,又是一个嵌套应用虚拟机的问题:在 KVM 虚拟机上运行 KVM 虚拟机。以下步骤在 Ubuntu Server 12.04 LTS 64 bit 上测试通过。
首先检查 KVM host(母机)上是否打开了嵌套虚拟机功能(默认是开启的):
# modinfo kvm_intel | grep nested
parm: nested:bool
# cat /sys/mole/kvm_intel/parameters/nested
Y
如果上面的显示结果不是 Y 的话需要开启 nested:
# modprobe -r kvm-intel
# modprobe kvm-intel nested=1
# cat /sys/mole/kvm_intel/parameters/nested
Y
然后在 KVM guest(虚拟机)的 xml 配置文件中加入 vmx 选项,并启动虚拟机(这里用的是 Ubuntu 官方发布的 Ubuntu KVM 镜像 ubuntu-12.04-server-cloudimg-amd64-disk1.img):
# vi nestedvm.xml
...
<cpu match='exact'/>
<model>core2o</model/>
<feature policy='require' name='vmx'//>
</cpu/>
...
# virsh create nestedvm.xml
启动虚拟机后登陆并安装 KVM,执行 kvm-ok 和 modinfo 均出现错误:
# apt-get install ubuntu-virt-server
# kvm-ok
INFO: /dev/kvm does not exist
HINT: sudo modprobe kvm_intel
INFO: Your CPU supports KVM extensions
KVM acceleration can be used
# modinfo kvm_intel
ERROR: modinfo: could not find mole kvm_intel
这是因为我们使用的是 ubuntu-12.04-server-cloudimg-amd64-disk1.img 这个官方虚拟机镜像,这个镜像使用的是 linux 3.2.0-23-virtual 内核,缺少 KVM 模块(kvm-intel.ko),所以我们需要改为 generic 内核:
# uname -a
Linux test 3.2.0-23-virtual #36-Ubuntu SMP Tue Apr 10 22:29:03 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
# apt-get install linux-generic
重启后进入虚拟机执行 kvm-ok 和 modinfo 均成功:
# kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
# modinfo kvm_intel
filename: /lib/moles/3.2.0-30-generic/kernel/arch/x86/kvm/kvm-intel.ko
license: GPL
author: Qumranet
srcversion: 3BAF54F96ECD4B02292CAA0
depends: kvm
intree: Y
vermagic: 3.2.0-30-generic SMP mod_unload modversions
parm: vpid:bool
parm: flexpriority:bool
parm: ept:bool
parm: unrestricted_guest:bool
parm: emulate_invalid_guest_state:bool
parm: vmm_exclusive:bool
parm: yield_on_hlt:bool
parm: fasteoi:bool
parm: nested:bool
parm: ple_gap:int
parm: ple_window:int
现在应该可以在这个虚拟机上创建另一个虚拟机了
Ⅵ 如何在Linux中用命令行工具管理KVM虚拟环境
第一步: 配置存储池
Virsh命令行工具是一款管理virsh客户域的用户界面,它能在命令行中运行所给的命令以及它的参数,我们要用它给我们的KVM环境创建存储池,想知道关于这个工具的更多信息,用以下这条命令:
# man virsh
1.定义新的存储池
可以用virsh带pool-define-as的命令来定义新的存储池,你需要指定名字、类型和类型参数,本例中,我们将名字取为Spool1,类型为目录,默认情况下你可以提供五个参数给该类型:
source-host
source-path
source-dev
source-name
target
对于目录类型,我们需要用最后一个参数“target”来指定存储池的路径,其它参数项我们可以用“-”来填充。
# virsh pool-define-as Spool1 dir - - - - "/mnt/personal-data/SPool1/"
2.查看创建的储存池列表
查看环境中我们所有的存储池,用以下命令:
# virsh pool-list --all
3.构造存储池
现在我们来构造存储池了,用以下命令来构造我们刚才定义的存储池。
# virsh pool-build Spool1
4.激活并启动存储池
用带pool-start参数的virsh命令来激活并启动我们刚才创建并构造完成的存储池。
# virsh pool-start Spool1
5.查看存储池状态
查看环境中存储池的状态,用以下命令:
# virsh pool-list --all
你会发现Spool1的状态变成了已激活。
6.配置自动启动
对Spool1进行配置,让它每次都能被libvirtd服务自启动。
# virsh pool-autostart Spool1
7. 查看最新信息
最后来看看我们新的存储池的信息吧:
# virsh pool-info Spool1
可以看到,Spool1已经准备好待命,接下来我们试着创建存储卷来使用它。
第二步: 配置存储卷/磁盘映像
现在轮到磁盘映像了,用qemu-img命令在Spool1中创建一个新磁盘映像。获取更多细节信息,可以查看man手册。
# man qemu-img
1.创建存储卷
我们应该在qemu-img命令之后指定“create, check,…”等等操作、磁盘映像格式、你想要创建的磁盘映像的路径和大小。
# qemu-img create -f raw /mnt/personal-data/SPool1/SVol1.img 10G
2.查看存储卷信息
通过使用带info的qemu-img命令,你可以获取到你的新磁盘映像的一些信息。
警告: 不要用qemu-img命令来修改被运行中的虚拟机或任何其它进程所正在使用的映像,那样映像会被破坏。
第三步: 创建虚拟机
1.创建
在最后一步中,我们将用virt-install命令来创建虚拟机,virt-install是一个用来创建新的KVM虚拟机命令行工具,它使用“libvirt”管理程序库。想获取更多细节,同样可以查看man手册:
# man virt-install
要创建新的KVM虚拟机,你需要用到带以下所有信息的命令。
Name: 虚拟机的名字。
Disk Location: 磁盘映像的位置。
Graphics : 怎样连接VM,通常是SPICE。
vcpu : 虚拟CPU的数量。
ram : 以兆字节计算的已分配内存大小。
Location : 指定安装源路径。
Network : 指定虚拟网络,通常是virbr0网桥。
virt-install --name=rhel7 --disk path=/mnt/personal-data/SPool1/SVol1.img --graphics spice --vcpu=1 --ram=1024 --location=/run/media/dos/9e6f605a-f502-4e98-826e-e6376caea288/rhel-server-7.0-x86_64-dvd.iso --network bridge=virbr0
2.创建过程
接下来就是虚拟机系统的安装过程了,就不再赘述了。
Ⅶ kvm虚拟机里面都有哪些常用命令
1.看看cpu是否支持kvm[root@localhost~]#grep-E-o'vmx|svm'/proc/cpuinfo#结果显示vmx表示支持2.安装kvm所需要的软件包[root@localhost~]#yuminstallkvmkmod-kvmqemukvm-qemu-imgvirt-viewer3.安装完,检查模块是否有加载[root@localhost~]#lsmod|grepkvmkvm_intel852560kvm2249282ksm.kvm_intel4.使用命令检查kvm是否成功安装[root@localhost~]#virsh-cqemu:///systemlistIdNameState
Ⅷ 如何在Debian或Ubuntu上从命令行使用KVM
眼下有几种不同的方法可以管理在KVM虚拟机管
理程序上运行的虚拟机。比如说,virt-manager就是一种广受欢迎的基于图形用户界面(GUI)的前端工具,可用来管理虚拟机。不过,如果你想在
无外设服务器上使用KVM,那么基于GUI的解决方案并非理想方案。这时候,virsh就派得上用场。virsh是一种命令行工具,可用于管理来宾虚拟机
(guest
VM)。就其底层而言,virsh依赖libvirtd服务,该服务可以控制几种不同的虚拟机管理程序,其中包括KVM、Xen、QEMU、LXC和
OpenVZ。
如果你想让虚拟机的配置和管理实现自动化,virsh等命令行管理界面也大有用处。此外,virsh支持多种虚拟机管理程序,这就意味着你可以通过同一个virsh界面,管理不同的虚拟机管理程序。
我在本教程中将演示如何在Debian或Ubuntu上使用virsh,从命令行运行KVM。
第一步:证实主机支持硬件虚拟化
作为第一步,证实主机的处理器配备硬件虚拟化扩展机制(比如英特尔VT或AMD-V),KVM需要这样的机制。下面这个命令就能证实一点。
$ egrep '(vmx|svm)' --color /proc/cpuinfo flags : fpu vme de
pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts
mmx fxsr sse sse2
ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts nopl
xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3
cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand
hypervisor lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi
ept vpid fsgsbase smep
如果输出结果并不含有vmx或svm标记,这意味着主机的处理器没有支持硬件虚拟化的功能。因而,你就无法在主机上使用KVM。证实了主机处理器随带vmx或svm后,接下来继续安装KVM。
第二步:安装KVM
使用apt-get,安装KVM及相关的用户空间工具。
$ sudo apt-get install qemu-kvm libvirt-bin
下一步,将你的用户ID添加到libvirt群组,那样你就能以非root普通用户的身份,管理虚拟机了。作为上面安装KVM的一部分,必须创建libvirt群组。
$ sudo adser [youruserID] libvirt
重新装入更新后的群组成员信息,如下所示。看到要求输入密码的提示后,输入你的登录密码。
$ exec su -l $USER
这时候,你应该能够以普通用户的身份运行virsh了。为了测试一下,不妨试一试下面这个命令,它会列出可用的虚拟机(目前没有一个虚拟机)。要是你没有遇到权限错误,这意味着到目前为止,一切正常。
$ virsh --connect qemu:///system list Id Name State
Ⅸ 怎样在arch中用kvm运行虚拟机
首先检查 KVM host(母机)上是否打开了嵌套虚拟机功能(默认是开启的):
# modinfo kvm_intel | grep nested
parm: nested:bool
# cat /sys/mole/kvm_intel/parameters/nested
Y
如果上面的显示结果不是 Y 的话需要开启 nested:
# modprobe -r kvm-intel
# modprobe kvm-intel nested=1
# cat /sys/mole/kvm_intel/parameters/nested
Y
然后在 KVM guest(虚拟机)的 xml 配置文件中加入 vmx 选项,并启动虚拟机(这里用的是 Ubuntu 官方发布的 Ubuntu KVM 镜像 ubuntu-12.04-server-cloudimg-amd64-disk1.img):
# vi nestedvm.xml
...
<cpu match='exact'/>
<model>core2o</model/>
<feature policy='require' name='vmx'//>
</cpu/>
...
# virsh create nestedvm.xml
启动虚拟机后登陆并安装 KVM,执行 kvm-ok 和 modinfo 均出现错误:
# apt-get install ubuntu-virt-server
# kvm-ok
INFO: /dev/kvm does not exist
HINT: sudo modprobe kvm_intel