您所请求的网址(url)无法获取-vss下载

kvm虚拟机
2023年4月4日发(作者:磁盘被写保护怎么去掉)

kvm--virsh命令⾏下管理虚拟机

virsh既有命令⾏模式,也有交互模式,在命令⾏直接输⼊virsh就进⼊交互模式,virsh后⾯跟命令参数,则是命令⾏模式;

(1)基础操作---命令⾏下管理虚拟机

virshlist 列出当前宿主机上处于运⾏状态的虚拟机

virshlist--all 列出当前宿主机上所有的虚拟机

virshstartvm1 (虚拟机name)开启某⼀台虚拟机

virshshutdownvm1(虚拟机name)正常关闭⼀台虚拟机

virshdestroyvm1强制关闭某⼀台虚拟机

virshautostartvm1开机⾃启动虚拟机vm1

virshautostart--disablevm1关闭开机⾃启动

virsheditvm1 编辑某个虚拟机的配置⽂件

virshpool-list 列出存储池

2)创建新磁盘

qemu-imgcreate-fqcow2(指定磁盘格式)-osize=9G(指定⼤⼩)/var/lib/libvirt/images/2(路径和名称)

/var/lib/libvirt/image/为磁盘镜像的默认路径。

注意注定磁盘⼤⼩的时候不能有空格,否则报错

[root@localhostimages]#qemu-imgcreate-fqcow2-osize=9G/var/lib/libvirt/images/2

qemu-img:Invalidimagesizespecified!Youmayusek,M,G,T,PorEsuffixesfor

qemu-img:kilobytes,megabytes,gigabytes,terabytes,petabytesandexabytes.

[root@localhostimages]#qemu-imgcreate-fqcow2-osize=9G/var/lib/libvirt/images/2

Formatting'/var/lib/libvirt/images/2',fmt=qcow2size=9663676416encryption=offcluster_size=65536lazy_refcounts=off

[root@localhostimages]#2

3)查看磁盘情况

qemu-imginfo磁盘名

[root@localhostimages]#qemu-imginfo/var/lib/libvirt/images/2

image:2

fileformat:qcow2

virtualsize:9.0G(9663676416bytes)

disksize:196K #实际占⽤磁盘196k,最⾼可⽤9G

cluster_size:65536

Formatspecificinformation:

compat:1.1

lazyrefcounts:false

4)命令⾏下创建&&管理虚拟机

Virt-install: 命令⾏下创建虚拟机的命令,不过在它后⾯需要跟上很多的参数

--name: 虚拟机的名字。

--diskLocation: 磁盘映像的位置。

--graphics: 怎样连接VM,通常是SPICE。

--vcpu: 虚拟CPU的数量。

--ram: 以兆字节计算的已分配内存⼤⼩。

--location: 指定安装源路径

--network: 指定虚拟⽹络,通常是virbr0或者⾃⼰设定的br0

例如:创建⼀个磁盘

路径为/var/lib/libvirt/image/

指定cpu内存为1g

cpu数量为1

以spice⽅式连接vm

执⾏虚拟⽹络为⾃设⽹桥br0

virt-install--name=test--diskpath=/var/lib/libvirt/image/2--ram=1024--vcpus=1--graphicsspice--location=/export/download/software/iso/CentOS-7.3-x86_-

注意磁盘路径与磁盘安装源路径的区别。

由于使⽤virsh命令创建虚拟机同样还需要在图形化界⾯操作,所以⽤的不多,了解就⾏。

5)其余重要的⼀些virsh命令

从⼀个XML⽂件定义、恢复(但不开始)⼀个域

virshundefinexx删除⼀个虚机域

KVM通过virshconsole连⼊虚拟机

定义:在宿主机上直接能够连通创建的虚拟机并执⾏操作,功能类似于ssh。

前提:新安装⼀台虚拟机后,是⽆法通过virshconsole命令连⼊虚拟机中的,这时我们需要开启虚拟机的console功能。

我们这⾥以centos7以上的版本做说明:

(1)在被连接的虚机⾥执⾏

[root@localhost~]#grubby--update-kernel=ALL--args="console=ttyS0"

(2)重启此机

[root@localhost~]#reboot

3)在宿主机上执⾏

[root@localhost~]#virshconsolevm5

连接到域vm5

换码符为^] #ctrl]退出

1、⼀直hang在这个状态⽆法连接上虚拟机,这是因为宿主机通过ttyss0连接虚拟机,但被连接主机没有设置或者没有设置成功。

2、或者grubby命令没有下载,yum安装后再次尝试

3、VNCViewer远程管理kvm主机

前提是宿主机内的虚拟机状态为开启

(1)在window中安装VNCViewer软件,⼀直点下⼀步就⾏。

2)输⼊宿主机的ip地址。

点击Continue,即可连接⾥⾯的虚机

五、KVM虚拟化透传

KVM虚拟化需要处理器对虚拟化技术的⽀持,当我们需要进⾏虚拟机嵌套虚拟机时,我们需要让虚拟机中处理器对VT功能的⽀持达到透传的效果。

nested虚拟机嵌套(kvmonkvm):nested技术,简单的说,就是在虚拟机上跑虚拟机。

KVM虚拟机嵌套和VMWare原理不同,VMWare第⼀层是⽤的硬件虚拟化技术,第⼆层就是完全软件模拟出来的,所以VMWare只能做两层嵌套。KVM

是将物理CPU的特性全部传给虚拟机,所有理论上可以嵌套N多层。

1、查看⼀层客户端是否⽀持VT

grepvmx(svm)/proc/cpuinfo

如果查询未果,证明⼀层KVM的虚拟机,并未将宿主机处理器的VT功能成功透传。

因此我们需要透传。

2、在物理服务器上(宿主机)为嵌套虚拟机做准备---CPU虚拟化透传

注意查看你的虚拟机架构⽀持的是amd还是intel

[root@localhost~]#cat/etc/modprobe.d/

optionskvm_amdnested=1

3、在宿主机启⽤kvm_amd模块的嵌套虚拟化功能,并且使透传永久有效

(2)重新加载kvm模块

#modprobe-rkvm_amd-r参数:remove掉kvm_amd模块

#modprobekvm_amd加载kvm_amd模块

4、验证是否加载成功

#cat/sys/module/kvm_intel/parameters/nested

1或者y证明加载成功。

0和N或者没有返回值证明没加载成功。

重新加载modprobe模块或者查看架构是⽀持intel还是amd来稍微更改下模块和⽬录。

[root@localhost~]#cat/sys/module/kvm_amd/parameters/nested

1

5、编辑需要做虚拟化透传的虚拟机的配置⽂件

更改下⾯绿绿的⼀⾏即可。

host-passthrough直接将物理CPU暴露给虚拟机使⽤,在虚拟机上完全可以看到的就是物理CPU的型号(我们前⾯介绍过kvm透传就是将宿主机的cpu特性

全部传给被透主机)

root@localhost~]#virsheditvm4

vm4

98c5d257-6b75-493b-91db-66589b582733

1048576

1048576

1

hvm

#删除下⾯两⾏

6、进⼊透传虚拟机中查看cpu是否透传成功

[root@localhost~]#lsmod|grepkvm

kvm_amd698490

kvm5663401kvm_amd

irqbypass135031kvm

7、在被透传虚拟机中查看cpu是否⽀持虚拟化

次数⼤于0证明透传成功,可以开始虚拟机嵌套了。

svm是⽀持amd架构

vmx⽀持intel架构

[root@localhost~]#egrepsvm/proc/cpuinfo|wc-l

1

更多推荐

kvm虚拟机