ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:3.10MB ,
资源ID:18112221      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18112221.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(云平台管理应用开发.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

云平台管理应用开发.docx

1、云平台管理应用开发准备环境桌面版,vmware12 注意翻开虚拟化安装软件:apt-get install kvmapt-get install qemu-kvmapt-get install gccapt-get install bridge-utils (配置网络)brctl addbr br0brctl addif br0 eth0brctl showVirtio半虚拟化驱动的使用1、分别制作安装了Virtio半虚拟化驱动的Linux磁盘镜像和Windows磁盘镜像。宿主机:客户机:centos,windows系统Virtio目前已经是一个成熟的技术了,宿主机中比拟新的KVM都支持它,L

2、inux及以上的Linux内核版本都是支持virtio的。客户机centos自带有virtio不需要重新安装。重点介绍windows xp系统。WindowsXP系统安装virtio步骤:1创立镜像文件qemu-img create -f qcow2 50G镜像名称为,镜像大小为50G2安装winxp系统到镜像文件中qemu-system-x86_64 -localtime -smp 2 -vga qxl -m 2048 -drive file=winxp.img,cache=writeback,if=virtio -cdrom ./ISO/Windows_XP_SP3.iso -net ni

3、c,model=virtio -net tap -boot order=d,menu=on -usbdevice tablet -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -enable-kvm -vnc :11用VNC连入进行系统安装3) 启动winxp系统,安装驱动rootxp:# qemu-system-x86_64 -localtime -smp 2 -vga qxl -m 2048 -hda -cdrom virtio-win-0.1.113.iso -net nic,model=virtio -net tap

4、-boot order=c -usbdevice tablet -device AC97 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -vnc :5 -enable-kvmVNC连入进行系统安装virtio_ballon、virtio_net、virtio_serial:在依次安装完成这3个驱动程序后,在“Device Manager“中的“Network adapter工程中有“Red Hat Virtio Ethernet Adapter设备,在“System devices工程中增加了“VirtIO Balloon

5、Driver和“VirtIO Serial Driver 这两个设备。安装virtio_scsi驱动:先建立一个伪镜像文件,然后将其作为window客户机的一个非启动盘 rootxp:# qemu-img create -f qcow2 fake.qcow2 10Mrootxp:# qemu-system-x86_64 win1xp.img -drive file=fake.qcow2,if=virtio -smp 2 -m 2048 -cdrom virtio-win-0.1.113.iso -vnc :5 -usbdevice tablet在windows客户机的“Device Manag

6、er中会看到“Other devices工程下没有驱动程序的“SCSI Controller。同前面步骤一样选择“更新驱动选择virtio-win中的viostor目录下的对应驱动进行安装。重启后2、通过QEMU命令行参数启动带有Virtio网卡驱动、Virtio磁盘驱动、Virtio Balloon设备驱动的虚拟机。通过命令启动centos系统:rootxp:# qemu-system-x86_64 -smp 1 -m 2048 -hda rhel-6.4.img -net nic,model=virtio -net tap -usbdevice tablet -device virtio-

7、balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -enable-kvm -vnc :5通过vnc连接:在客户机里面输入:rootlocalhost # lsmod | grep virtioWin xp安装好后virtio驱动后,用下面命令启动,使用virtio驱动:Kvm中virtio的根本框架PCI设备直接分配VT-d概述:在QEMU/KVM,客户机可以使用的设备大致可分为如下3种类型。1Emulated device:QEMU纯软件模拟。2Virtio device:实现VIRTIO API的半虚拟化驱动的设备。3PCI device addignm

8、ent:PCI 设备直接分配。PCI设备直接分配,他允许将宿主机中的在物理PCI或PCI-E设备直接分配给客户机完全使用。KVM中通过VT-d技术使用一个PCI-E网卡的系统架构例如如下图VT-d环境配置:1.硬件支持和BIOS设置目前很多硬件平台支持VT-d,除了硬件还需要在BIOS将VT-d功能翻开。根据不同品牌电脑可以XX一下。2.宿主机内核配置Ubuntu翻开处理器的虚拟化引擎选择虚拟化Intel VT-x/EPT 或AMD-v/RVI(V) 检查ubuntu支持虚拟化输入命令:kvm-ok3.在宿主机中隐藏设备使用pci_stub这个内核模块来对需要分配给客户机的设备进行隐藏,从而让

9、宿主机和未被分配的客户机都无法使用该设备,到达隔离和平安使用的目的,需要通过如下三步来隐藏一个设备。1)加载pci_stub驱动2)查看设备的vendor ID和device ID(假设此设备的BDF为)上面lspci命令行,-D:显示设备的domain-n:数字方式显示设备的vendor ID和device ID-s:显示后面指定的一个设备的信息3)绑定设备到pci_stub驱动echo -n 8086 10b9 /sys/bus/pci/drivers/pci-stub/new_idecho 0000:08:00.0 /sys/bus/pciecho 0000:08:00.0 /sys/b

10、us/pci/drivers/pci-stub/bind# lspci设备驱动是intel的e1000e,绑定后为pci_stub4.通过QEMU命令行分配设备给客户机利用 qemu-kvm 命令行中 “-device 选项可以为客户机分配一个设备 ,配合其中的 “pciassign 作为子选项可以实现设备直接分配。-device driver,prop=value,.其中 driver 是设备使用的驱动 ,有很多种类 ,如pci-assign 表示 PCI 设备直接分配、virtio-balloon-pci (又为 virtio-balloon ) 表示 ballooning 设备 这与第

11、4 章中提到的 “-balloonvirtio 的意义相同 。 prop=value 是设置驱动的各个属性值。“-device? 可以查看有哪些可用的驱动, “-device driver,? 可查看某个驱动的各个属性值, 如下面命令行所示。qemu-kvm 命令行工具在启动时分配一个设备给客户机:qemu-system-x86_64 rhel6u3.img -m 1024 -device pci-assign,host=08 :00.0, id=mydev0 , addr=0x6如果 要一次性分配多个设备给客 户机, 只需在 qemu-kvm 命令行中重 复屡次 “-device pci-a

12、ssign,host=$BDF 这样的选项即可 。5. 除 了在客户机启 动时就直接分配设备之外, QEUM/KVM 还支持设备的热插拔(hot-plug )在客户机运行时添加所需的直接分配的设备 ,这需要在 QEMU monitor 中运行相应的命令。在QEMU monitor可以对宿主机进行各种操作。SR-IOV技术概述为了实现多个虚拟机能够共享同一个物理设备的资源,并且到达设备直接分配的性能,PCI-SIG组织发布了SR-IOVSing Root I/O Virtualization and Sharing标准,该标准定义了一个标准化的机制用以原生地支持实现多个共享的设备。R-IOV最广

13、泛的应用还是在以太网卡设备的虚拟化方面。Physical FunctionPF,物理功能PF是一个普通的PCI-e设备带有SR-IOV功能,可以放在宿主机中配置和管理其它VF,它本身也可以作为一个完整独立的功能使用。Virtual FunctionVF,虚拟功能由PF衍生而来的“轻量级的PCI-e功能,包含数据传送所必需的资源,简而言之,VF通过PF的配置之后,可以分配到客户机中作为独立功能使用。SR-IOV的优势真正实现了设备的共享多个客户机共享一个SR-IOV设备的物理端口接近原生系统的高性能比纯软件模拟和Virtio设备的性能都要好相比于VT-d,SR-IOV可以用更少的设备支持,更多的

14、客户机,可以提高数据中心的空间利用率SR-IOV的缺乏之处对设备有依赖,只有局部PCI-e设备支持SR-IOV使用SR-IOV时,不方便动态迁移客户机虚拟机的动态迁移1.动态迁移Live Migration:就是在保证虚拟机上效劳正常运行的同时,将一个虚拟机系统从一个物理主机移动到另一个物理主机的过程。该过程不会对最终用户造成明显的影响,从而使得管理员能够在不影响用户正常使用的情况下,对物理效劳器进行离线维修或者升级。虚拟机迁移主要增强了系统的可维护性,其主要目标就是在客户机没有感觉的情况下,将客户机,迁移到另一个物理机器上,从而保证了效劳器正常使用。可以从如下三个方面来衡量虚拟机迁移的效率:

15、整体迁移时间,效劳器停机时间,对效劳的性能影响。NFS效劳器:操作系统版本:ubuntu16,桥接IP为192.168.10.71,效劳目录为/mnt/vg/。2.下面介绍在kVM上进行动态迁移的具体操作步骤,这里的客户机镜像文件存在NFS共享存储上面,源宿主机vt-nhm9目的宿主机vt-snb9都对NFS上的镜像文件具有可读写权限。1下载配置nfs(1)KVM虚拟机动态迁移无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的主机之间有相同的目录结构放置虚拟机磁盘文件本例为“/root/kvm目录,这里的动态迁移是基于共享存储动态迁移,通过NFS来实现,需要qemu-kvm-0.12.2以上版本

16、支持。(2)在NFS效劳器上,下载安装NFS,kernel-server相当于server端,common是client端,使用命令“sudo apt-get install nfs-kernel-server nfs-common portmap安装NFS。(3)配置NFS效劳器,IP为192.168.10.71,将NFS效劳器上的“/mnt/vg目录设为效劳目录。首先使用命令“sudo mkdir /mnt/vg创立该目录,然后使用命令“sudo chmod 777 /mnt修改该目录权限,接下来使用vim修改“/etc/exports文件添加共享目录,在该文件中添加“/root/ *(r

17、w,sync,no_root_squash)即可。*(rw,sync)是命令参数,表示包括读写权限。(4)“/etc/exports文件修改后,使用命令“sudo exportfs r刷新。然后启动NFS效劳,命令如下:sudo /etc/portmap restartsudo /etc/nfs-kernel-server restart(5)NFS效劳启动后,在节点1上使用命令“showmount e 查看共享目录,如图1所示:2在源宿主机挂载NFS的上客户机镜像,并启动客户机rootxp:# mount -t nfs 192.168.10.71:/root/kvm/ /mnt这里没有指定客

18、户机中的CPU模型,默认是qemu64这个根本的模型,当然也乐意自行设置为“-cpu SandyBridge或“-cpu Westmere等,要保证在目的主机上也用相同的命令。启动虚拟机,进入monitor执行命令:rootxp:# qemu-system-x86_64 -hda /mnt/rhel-6.4.img -m 1024 -localtime -net nic -net tap,ifname=tap1,script=no,downscript=no -monitor stdio -vnc :5在客户机中运行一个程序这里执行了“top命令,以便在动态迁移后检查它是否仍然正常地继续执行。

19、3目的宿主机上也挂载NFS上的客户机镜像的目录,并且启动一个客户机用于接收动态迁移过来的内存内容rootubuntu:# mount -t nfs 192.168.10.71:/root/kvm/ /mnt注意:nfs挂载目录必须与源主机上保持一致;启动客户机命令一致,但是需要增加-incoming 选项:-incoming tcp:0:6666 这个参数他表示在6666 端口建立一个tcp socket 连接用于接收来源主机的动态迁移的内容。其中0 表示:任何允许来自任何主机的连接“-incoming 这个参使qem-kvm进程进入到迁移监听migration-listen模式,而不是真正以

20、命令行中的镜像文件运行客户机,从vnc里面看,客户机黑色没任何显示,在等待动态迁移的数据传入。启动虚拟机:rootubuntu:# qemu-system-x86_64 /mnt/rhel-6.4.img -smp 2 -m 2048 -net nic -net tap -incoming tcp:0:6666 -vnc :5通过VNC查看:4在源宿主机的QEMU monitor 命令行中输入migrate tcp:vt-snb9:6666即可进入动态迁移的流程 vt-snb9就是目的宿主机ip,tcp协议和6666端口与目的宿主机上命令行的-incoming 参数一致.5在migrate 命

21、令从开始到执行完成,大约十秒钟,在执行完成迁移后,在目的主机上,之前处于迁移监听模式的客户机就开始运行了,其中运行的正是动态迁移过来的客户机可以看到客户机的top命令迁移后继续运行。QEMU/KVM中也支持增量复制磁盘修改局部数据的动态迁移,以及直接复制整个客户机磁盘镜像的动态迁移。使用相同后端镜像文件的动态迁移过程如下,与前面直接使用NFS共享存储非常相似。1在源宿主机上,根据一个后端镜像文件,创立一个qcow2格式的镜像文件,并启动客户机#qemu-img create -f qcow2 -o backing_file=/mnt/ia32e_rhel6u3.img,sizeqemu-sys

22、tem-x86_64 rhel6u3.qcow2 -smp 2 -m 2048 -net nic -net tap这里使用前面挂载的NFS上的镜像文件作为qcow2的后端镜像2在目的宿主机上,也建立相同的qcow2的后端镜像,并带有“-incoming参数来启动客户机使其处于迁移监听状态#qemu-img create -f qcow2 -o backing_file=/mnt/ia32e_rhel6u3.img,size=20G rhel6u3.qcow2 #qemu-system-x86_2 -smp 2 -m 2048 -net nic -net tap -incoming tcp:0:

23、66663在源宿主机上的客户机的QEMU monitor中,运行“migrateKVM on KVM 嵌套虚拟化的实现 1.嵌套虚拟化的根本概念嵌套虚拟化是指在虚拟化的客户机中运行一个Hypervisor,从而再虚拟化运行一个客户机。嵌套虚拟化不仅包括相同Hypervisor的嵌套如KVM嵌套KVM、Xen嵌套Xen等,也包括不同Hypervisor的相互嵌套如KVM嵌套嵌套Xen等根据嵌套虚拟化的概念可知,其不仅包括两层嵌套如KVM嵌套KVM,还包括多层的嵌套如KVM嵌套KVM再嵌套KVM2. 嵌套虚拟化的五大应用场景1IaaS类型的云计算提供商2为测试和调试Hypervisor带来了非常大

24、的便利3在一些为了起到平安作用的带有Hypervisor的固件上4嵌套虚拟化的支持,对虚拟机系统的动态迁移也提供了新的功能5嵌套虚拟化的支持,对于系统隔离性、平安性方面也提供更多的实施方案KVM嵌套KVM,既是在KVM上面运行的第一级客户机中再加载kvm和kvm_intel或kvm_amd模块,然后在第一级的客户机中用qemu-kvm启动带有kvm加速的第二级客户机。“KVM嵌套KVM的根本架构示意图如下:3. “KVM嵌套KVM功能的配置和使用宿主机:vmware12 ,客户机L1:ubuntu16-server,客户机L2:windows-XP1在L0中加载kvm-intel或kvm-am

25、d模块时需要添加“nested=1的选项以翻开“嵌套虚拟化的特征2启动L1客户机时,在qemu-kvm命令中加上“-cpu host或“-cpu qemu64,+vmx选项以便将CPU的硬件虚拟化扩展特性暴露给L1客户机rootxp:# qemu-system-x86_64 -m 3096 -smp 2 -net nic -net tap -cpu host -enable-kvm -vnc :5“-cpu host参数的作用是尽可能将宿主机L0的CPU特性暴露给L1客户机;而“-cpu qemu64,+vmx以qemu64这个CPU模型为根底,然后加上Intel VMX特性即CPU的VT-x

26、支持。3在L1客户机中,查看CPU的虚拟化支持,然后加载kvm和lvm_intel模块,启动一个L2客户机通过vnc连接# cat /proc/cpuinfo | grep vmx# modprobe kvm# modprobe kvm_intel# lsmod | grep kvmrootubuntu:# qemu-system-x86_64 win1xp.img -m 2048 -smp 2 -vnc :5通过vnc连接如果L0没有向L1提供硬件虚拟化的CPU环境,那么加载kvm_intel模块时会有错误,kvm_intel模块会加载失败。在L1中启动客户机,就与在普通KVM环境中的操作完全一样4在L2客户机中查看是否正常运行,如下列图所示“KVM嵌套KVM虚拟己运行环境,L0启动了L1,然后在L1中启动L2系统。由于KVM是全虚拟化Hypervisor,对于其他L1Hypervisor如Xen嵌套运行在KVM上情况,在L1中启动L2客户机的操作就完全与普通的Hypervisor中的操作步骤完全一样,因为KVM为L1提供了有硬件辅助虚拟化特性的透明的硬件环境。主要算法和程序清单:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1