当前位置: 首页 > news >正文

西安建设网站公司哪家好网络维护培训班

西安建设网站公司哪家好,网络维护培训班,asp.net web网站,5v贵阳做网站的价格1500元个性定制首选方舟网络前一篇介绍了qemu的基本使用,使用virsh或者virtual manager来管理虚拟机,但没有涉及到libvirt API,这里就使用libvirt的python API来演示一下虚拟机的创建。 看nova的源码,关于虚拟机管理的模块是virt,libvirt就是其中…

前一篇介绍了qemu的基本使用,使用virsh或者virtual manager来管理虚拟机,但没有涉及到libvirt API,这里就使用libvirt的python API来演示一下虚拟机的创建。

看nova的源码,关于虚拟机管理的模块是virt,libvirt就是其中的一个包,这个包中包含了使用libvirt管理虚拟机的所有API,看一下下面的示意图:


libvirt.driver这个模块中有一个全局的变量libvirt,其指向的就是libvirt的库函数,连接的获得_conn、虚拟机的创建等都是通过这个变量来调用的libvirtAPI。

在对虚拟机进行管理之前,先要和虚拟机的管理程序,即Hypervisor建立连接,在这里创建连接有两种方式,一个是只读的,一个是可读写的,创建连接在_connect()方法中:

[python] view plaincopy
  1. @staticmethod  
  2. def _connect(uri, read_only):  
  3.     auth = [[libvirt.VIR_CRED_AUTHNAME, libvirt.VIR_CRED_NOECHOPROMPT],  
  4.             'root',  
  5.             None]  
  6.   
  7.     if read_only:  
  8.         return libvirt.openReadOnly(uri)  
  9.     else:  
  10.         return libvirt.openAuth(uri, auth, 0)  

创建虚拟机主要在_create_domain()方法中:
[python] view plaincopy
  1. def _create_domain(self, xml=None, domain=None, launch_flags=0):  
  2.     """Create a domain. 
  3.  
  4.     Either domain or xml must be passed in. If both are passed, then 
  5.     the domain definition is overwritten from the xml. 
  6.     """  
  7.     if xml:  
  8.         domain = self._conn.defineXML(xml)  
  9.     domain.createWithFlags(launch_flags)  
  10.     return domain  

虚拟机相关的参数都在一个xml文件中配置,创建虚拟机时就使用这个xml文件中的内容作为参数,即上面的xml参数的类型是字符串。

defineXML()是用根据xml的内容定义了一个虚拟机,即创建了一个virDomain对象,但是并没有启动这个虚拟机。用这个方法定义的虚拟机是永久性的,会再生成一个和这个虚拟机相关的xml配置文件。还有一个方法是createXML(),它创建的虚拟机是临时性的。

createWithFlags()是启动之前定义的虚拟机,即让虚拟机的状态变为running。和它类似的方法还有一个create(),两者的区别暂时还不清楚。


根据上面的方法,就可以直接使用python来创建虚拟机了,简单的示例如下:

[python] view plaincopy
  1. import libvirt  
  2.   
  3. auth = [[libvirt.VIR_CRED_AUTHNAME, libvirt.VIR_CRED_NOECHOPROMPT],'root',None]  
  4.   
  5. conn=libvirt.openAuth("qemu:///system",auth,0#这里要用读写的方式打开连接  
  6.   
  7. with open('/suo/domain/demo.xml') as f:  
  8.     xml=f.read()  
  9.   
  10. domain=conn.defineXML(xml)  
  11. domain.createWithFlags(0)  
  12.   
  13. try:  
  14.     dom0 = conn.lookupByName("instance-00000001")  
  15. except:  
  16.     print 'Failed to find the main domain'  
  17.     sys.exit(1)  
  18.   
  19. print "Domain 0: id %d running %s" % (dom0.ID(), dom0.OSType())  
  20. print dom0.info()  

因为使用python创建虚拟机,需要读写很多root权限的文件,所以要用openAuth()方法来创建连接,并且qemu使用的是system模式的。

demo.xml文件如下:

[html] view plaincopy
  1. <domain type='qemu'>  
  2.   <name>instance-00000001</name>  
  3.   <uuid>c7a5fdbd-cdaf-9455-926a-d65c16db1809</uuid>  
  4.   <memory>219200</memory>  
  5.   <currentMemory>219200</currentMemory>  
  6.   <vcpu>1</vcpu>  
  7.   <os>  
  8.     <type arch='i686' machine='pc'>hvm</type>  
  9.     <boot dev='hd'/><!--优先从硬盘启动-->  
  10.     <boot dev='cdrom'/><!--硬盘不能启动的话,从光驱启动-->  
  11.   </os>  
  12.   <devices>  
  13.     <emulator>/usr/local/bin/qemu</emulator>  
  14.     <disk type='file' device='cdrom'>  
  15.       <source file='/suo/domain/cflinux-1.0.iso'/>  
  16.       <target dev='hdc'/>  
  17.       <readonly/>  
  18.     </disk>  
  19.     <disk type='file' device='disk'>  
  20.       <source file='/suo/domain/precise-server-cloudimg-i386-disk1.img'/>  
  21.       <target dev='hda'/>  
  22.     </disk>  
  23.     <interface type='bridge'>  
  24.       <source bridge='br100'/><!--这里配置的虚拟机让它桥接到br100网桥上-->  
  25.     </interface>  
  26.     <graphics type='vnc' port='-1'/>  
  27.   </devices>  
  28. </domain>  

官方文档上介绍这个xml的配置文件是还有很多复杂的内容,这里仅仅配置了最简单的情况,方便理解。另外网络的配置现在还不太明白怎么配置,只是简单的把这个虚拟机桥接到了br100这个网桥上。运行上面的python文件,就可以创建虚拟机了(前提是创建好br100和root权限的libvirtd的守护进程正常运行),运行之后只是创建了虚拟机,但是对虚拟机的安装还是需要手动进行的,可以使用qemu的命令:qemu -hda instance-00000001.img来打开一个qemu的虚拟机窗口,也可以直接使用virtual manager来进行安装。
http://www.lbrq.cn/news/2652409.html

相关文章:

  • 网站建设模板双人国际婚恋网站排名
  • 罗湖网站建设 信科网络谷歌 chrome 浏览器
  • 长治网站制作最新seo网站优化教程
  • 潍坊个人做网站广告公司职位
  • 如何做外围网站的代理搜索百度一下
  • 珠海网站建设咨询百度指数人群画像
  • 学做粤菜的网站逆冬seo
  • 做最好的网站新新什么是软文推广
  • 网站项目需求说明书网站排名怎么优化
  • 苏州行业网站建设报价免费十八种禁用网站
  • 不同类型网站比较及网站域名设计百度电话怎么转人工客服
  • 宁波网站排名优化报价兴安盟新百度县seo快速排名
  • 池州网站建设防疫管控优化措施
  • 请问婚庆网站建设该怎么做呢简述网络营销的含义
  • 南宁专业网站营销网络营销企业有哪些
  • 网站建设设计方案格式网站优化培训学校
  • wordpress远程附件代码北京排名seo
  • 网站建设使用什么软件网络营销策划书8000字
  • 赣县网站制作百度公司电话是多少
  • wordpress 网站图标设置深圳网站建设 手机网站建设
  • 如何用模板做网站视频免费模板网站
  • 如何做图让网站的图更清晰长沙seo网络公司
  • 网站设计大概价格电子商务网站建设多少钱
  • wordpress 点赞功能seo品牌优化
  • 电商网站建设内容西安seo招聘
  • o2o平台运营是什么意思株洲seo优化
  • 推广目标包括什么凤山网站seo
  • 域名备案后怎样做网站沈阳网站关键字优化
  • 苏州企业网站设计方案营业推广经典案例
  • 网站开发实战 课程温州seo网站推广
  • 如何理解SA_RESTART”被信号中断的系统调用自动重启“?
  • 算法_python_牛客华为机试笔记_01
  • 练习uart和摄像头内核驱动开发测试
  • 电机控制器母线电压采样芯片有哪些
  • 2025-08-09 李沐深度学习12——卷积神经网络基础
  • 【阿里巴巴大数据实践之路学习记录】第十章-维度设计