当前位置:首页 > 虚拟化 > 正文

kvm虚拟化管理平台的实现


一、如何在宿主机上查询虚拟机的ip-KVM虚拟化实践如何配置VMware虚拟机与主机之间的局域网:1、安装VMware虚拟机后,可以在网络连接中看到多了两个虚拟网络适配器,VMwareNetworkAdapterVMnet1和VMwareNetworkAdapterVMnet82、配置网络,使用网络无线(如果是本地连接,设置方法是一样的),右键选择无线网络连接,在属性窗口中选择高级,选择允许其他网络用户通过您的这台计算机的Internet连接进行连接,选择VMwareNetworkAdapterVMnet8连接到您的计算机。家庭网络,并确认。3、检查VMwareNetworkAdapterVMnet8的网络连接属性,自动设置为192.168.0.1、255.255.255.04、启动虚拟机,登录虚拟机操作系统,设置虚拟机网络连接,设置‘IP为192.168.0.2,子网掩码为255.255.255.0,网关为192.168.0.1(网关为VMwareNetworkAdapterVMnet8虚拟网络适配器的IP地址),DNS设置为主机网络连接的DNS(外部网络连接的DNS)使用无线网络连接,所以只要找到无线网络连接的DNS即可,如果是宽带连接,则为本地连接的DNS)。


二、KVM实例总结

{%notesuccess%}诗歌

之前千百年来,魏武鞭鞭,东有碣石遗章。萧瑟的秋风又回来了,世界已经变了。{%endnote%}

kvm创建虚拟机的基础就在于这么一条命令,。该命令的本质是创建虚拟机。之后或之前的内容都是关于该命令和该虚拟机的。

所以的核心就是在安全可靠的前提下,通过KVM虚拟化将父机的资源分配给从机。

所以有两个主要方向需要考虑

1。保证母机和从机的安全可靠,包括系统安全和网络安全

2、分配资源,包括网络资源、存储资源、计算资源等

这个脚本考虑到了资源安全,让母机分配的资源不超过对方系统的容忍度,同时还需要考虑网络层面的安全问题。

完成过程

[0]
起初我以为当主机关闭时程序就会终止,例如:B.超过2/3的磁盘使用率。后来觉得这样不够灵活,就改成了百分比。设置百分比有一些小问题
1。浮点运算中保留小数
使用“scale”精确保留小数,echo"scale=2;62/3"|。使用printf保留小数,用零填充printf%.2f结果20.00
2.浮点运算不保留小数位
echo"123.123"|sed"s/..//g"
代表0到更多,所以只能将第一条命令中的小数点替换掉,得到空白
表示小数点后1位以上
3
echo“2/3”|bc结果显示为0
echo"scale=2;2/3"|bc结果显示为.66
printf"%.2f"echo"scale=2;2/3"|bc结果显示为0.66

[1]
一开始选择是否将subvm_脚本压入内存,然后登录到从机上,echo带有“expect”的文件,然后执行它。后来发现在期待输出时,首先执行的是subvm_脚本的内容,还有其他问题,比如:比如echo文件不完整,没有换行符和空文件等。
后来采用磁盘共享的方式,在宿主机上创建一个磁盘,然后挂载到/tmp/share/目录下,然后subvm_脚本并将ipinfo配置文件复制到该目录下,然后复制到从机上。登录从机后,可以在主机上看到/tmp/share/的内容。直接运行脚本就可以了。
磁盘共享还有一个缺点就是文件内容无法实时更新。例如,如果主控机上的IP信息发生更改,则从控机上的IP信息无法更新,直到从控机上的IP信息才能更新。由于每台从控机的/tmp/share/目录,一生只使用一次,所以这个问题暂时不需要解决。

[2]
创建访客计算机
(vlanid!=0&&xenbrxnotinbrctlshow)报错找不到网卡,导致虚拟机无法启动
-template模板不正确,包括/usr/local/bin/qemu-system-x86_64路径不正确,导致虚拟机无法启动
3.磁盘槽位相同,导致虚拟机无法启动。
4注意virshdefinevm-template命令的执行路径为/usr/local/etc/。libvirt/qemu/vm-template最终位于/usr/local/etc/libvirt/qemu。在/处生成vm$配置文件。

[3]
预计会出现很多问题
1命令没有按照正确的顺序执行
2传递的变量为空,变量索引传递从0开始;shell传递的变量索引从1开始,0代表自己的文件。
3settimeout$time设置的时间不一定准确。设置了300秒的延迟,但在300秒之前程序仍然可以设置为-1
4。“expect”的写法有很多种,包括“expecteof;”。上面使用的那个
5。用于expect文件的解释器是/usr/bin/expect。这里是用cat编写的

[4]
1。subvm_配置两块网卡并格式化VDB数据盘,配置ssh
2eth0为通过隧道连接外网的网卡。

xenbrX为隧道入口,master-计算机通过xenbr361端口接收它。消息发送到隧道另一端连接外网
tunnelnetwork----host(defaultrouter:subhost->netowrk,throughtinterface&)----subhost

当基地计算机收到VLAN报文时,会在指定VLAN的广播域内转发(不一定是基地计算机)。进行路由的机器)
vlannetwork----host(broadcastrouter:subhost--->broadcast/vlanidthrought802.1Q)----subhost

期望公平使用


三、企业级虚拟化Kvm实战

常见的虚拟化产品有哪些
(redhat)企业级

--Vmware-workstation(windows和linux)桌面级
--Vmware-fusion(mac)
--Vmware-esxi(企业级)是操作系统本身。
-v(微软)
(oracle的伴侣——Windowslinux)virtulbox
(rhel6之前所有版本的默认虚拟化产品)
分类虚拟化技术简介:

我们通常所说的虚拟化,主要是指利用控制程序(ControlProgram,也称为VirtualMachineMonitor(虚拟监视器VMM)或Hypervisor)隐藏起来的虚拟化技术平台。计算平台的具体特征为用户提供了一个抽象的、统一的、模拟的计算环境(称为虚拟机)。:

硬件虚拟化

部分虚拟化
虚拟级虚拟化和桌面级虚拟化的区别

从rhel6开始,kvm模块直接是部分虚拟化

rhel6之前的内核版本默认不提供xen,需要用内核替换

KVM请求运行在x86上的驻留在内核的虚拟化基础设施硬件。KVM成为第一个成为本机Linux内核(2.6.20)一部分的虚拟机管理程序,由AviKivity开发和维护,现在归RedHat所有,该虚拟机管理程序提供x86。虚拟化,可访问PowerPC®和IA64。此外,最近还添加了KVM,用于多处理(SMP)主机(和来宾)支持和企业级支持,例如主动迁移(允许来宾操作系统在物理服务器之间迁移)

实现了KVM作为核心模块,所以你只需要Linux来加载这个模块。KVM使用管理程序技术[IntelVT]或AMD虚拟化[AMD-V]产品来实现。已加载KVM模块。当安装在Linux内核中时,它可以作为用户空间进程通过/proc管理虚拟化硬件,并根据主机操作系统请求与内核进行协调。

当一个新的操作系统在KVM上启动(通过kvm实用程序)时,它会成为主机进程,就像任何其他进程一样。然而,与传统的Linux开发不同,来宾操作系统的特点是虚拟机管理程序处于“来宾”模式(独立于内核和用户模式)。

每个客户操作系统都由/dev/kvm设备进行分区,并拥有自己的虚拟地址空间,该虚拟地址空间映射到主机的内核地址空间。前面提到,KVM利用底层硬件的虚拟化支持来提供全(本机)虚拟化。I/O请求由主机内核提供,以在主机(虚拟机管理程序)上执行QEMU进程。

KVM主机运行在Linux环境中,但只要支持底层虚拟化硬件,就可以支持大量的客户操作系统。