libvirt工具实现虚拟机管理

                                       作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.介绍virt-install命令的常用参数
  virt-install是一个命令行工具,它能够为KVM,Xen或其他支持libvrit API的hypervisor创建虚拟机并完成GuestOS安装;此外,它能够基于串行控制台,VNC或SDL支持文本或图像安装界面。安装过程可以使用本地的安装介质如CDROM,也可以通过网络方式如NFS,HTTP或FTP服务实现。对于通过网络安装的方式,virt-install也支持PXE方式的安装过程,也能够使用直接现有的磁盘映像直接启动安装过程。
  virt-install命令有许多选项,这些选项大体可分为下面的几大类,同时对每类中的常用选项也做出简单说明。(装系统用的命令:virt-manager, virt-install)
1.一般选项:指定虚拟机的名称,内存大小,VCPU个数即特性等;
  -n NAME, --name=NAME:虚拟机名称。需全局唯一;(用virt-install安装虚拟机的方式安装完虚拟机后在/etc/livirted目录下回生成一个这个虚拟机的配置文件,而且这个配置文件将永久被这个虚拟机使用,除非你将其删除。这和qemu-kvm不一样,我们qemu-kvm启动完一个虚拟机,安装完一关机下次启动时改名等操作完全不受影响。)
  -r MEMORY,-ram=MEMORY:虚拟机内在大小,单位为MB;
  --vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]:VCPU个数及相关配置;
  --cpu=CPU:CPU模式及特性,如coreduo等:可以使用qemu-kvm -cpu?来获取支持的CPU模式;(说白了就是对qemu-kvm进行了封装的kvm域,只不过更加便于用户使用。)
2.安装方法:指定安装方法,GuestOS类型等;
  -c CDROM,--CDROM=cdrom:光盘安装介质;
  -l LOCATION,--location=LOCATION:安装元URL,支持FTP,HTTP及NFS等,如ftp://172.16.0.1/pub;
  -pxe:基于PXE完成安装;
  --livecd:把光盘当做LiveCD;
  --os-variant=DISRO_VARIANT:某类型操作系统的变体,如rhel5,fedora8等;
  -x EXTRA,--extra-args=EXTRA;根据--location指定的方式安装GuestOS时,用于传递给内核的额外选项,例如指定kickstart文件的位置,--extra-args "ks=http://172.16.0.1/class.cfg"
  --boot=BOOTOPTS:指定安装过程后的配置选项,如指定引导设备次序,使用指定的而非安装的kernel/intrd来引导系统启动等;例如:--boot cdrom,hd,network:指定引导次序。
  --boot kernel=KERNEL,initrd=INITRD,kernel_args="console=/dev/ttyS0":指定启动系统的内核及intrd文件;
3.存储配置:指定存储类型,位置及属性等;
  --disk=DISKOPTS:指定存储设备及其属性:格式为:--disk /some/storage/path,opt1=val1,opt2=val2等,常用的选项有:
    device:设备类型,如cdrom,disk或floppy等,默认为disk;
    bus:磁盘总结类型,其值可以为ide,scsi,usb,virtio或xen; 
      perms:访问权限,如rw,ro或sh(共享的可读写),默认为rw;
    size:新建磁盘映像的大小,单位为GB;
    cache:缓存模型,其值有none,writethrouth(缓存读)及writeback(缓存读写);
    format:磁盘映像格式,如raw,qcow2,vmdk等;
    sparse:磁盘映像使用稀疏格式,即不立即分配指定的大小空间;
  --nodisks:不适用本地磁盘,在LiveCD模式中常用;
4.网络配置:指定网络接口的网络类型及接口属性如MAC地址,驱动模式等;
  -w NETWORKL,--network=NETWORK,opt1=val1,opt2=val2:将虚拟机连入宿主机的网络中,其中NETWORK可以为:
    bridge=BRIDGE:连接至名为“BRIDGE”的桥设备;
    network=NAME:连接至名为“NAME”的网络;
  其他常用的选项还有:
    mode1:GuestOS中看到的网络设备型号,如e1000,rt18139或virtio等;
    mac:固定的MAC地址:省略此选项是讲使用随机地址,但无论何种方式,对于KVM来说,其前三段必须为52:54:00;

  --nonetworks:虚拟机不适用网络功能;

5.图形配置:定义虚拟机显示功能相关的配置,如VNC相关配置 
  --graphics TYPE,opt1=val1,opt2=val2:指定图形显示相关的配置,此选项不会配置任何显示硬件(如显卡),而是仅指定虚拟机启动后对其进行访问的接口;
    TYPE:指定显示类型,可以为vnc,sd1,spice或none等,默认为vnc;
    port:TYPE为vnc或spice时其坚挺的的端口;
    listen:TYPE为vnc或spice时所监听的IP地址,默认为127.0.0.1,可以通过修改/etc/libvirt/qemu.conf定义新的默认值;
    password:TYPE为vnc或splice时,为远程访问监听的服务进程指定认证密码;
  --noautoconsole:禁止自动连接至虚拟机的控制台。
6.设备选项:指定文本控制台,声音设备,串行接口,并行接口,显示接口等。
  --seial=CHAROPTS:附加一个串行设备至当前虚拟机,根据设备类型的不同,可以使用不同的选项,格式为“--serial type,opt1=val1,opt2=val2,...”,例如:
    --serial pty:创建伪终端;
    --serial dev,path=HOSTPATH:附加主机设备至此虚拟机;
    --video=VIDEO:指定显卡设备模型,可用取值为cirrus,vga,qxl或vmvga;
7.虚拟化平台:虚拟化模型(hvm或paravirt),模拟的CPU平台类型,模拟的主机类型,hypervisor类型(如kvm,xen或qemu等)以及当前虚拟机的UUID等;
  -v,--hvm:当物理机同时支持完全虚拟化和半虚拟化时,指定使用完全虚拟化;
  -p,--paravirt:指定使用半虚拟化;
  --virt-type:使用的hypervisor,如kvm,qemu,xen等;所有可用值可以使用“virsh capabilities”命令获取;
8.其他
  --autostart:指定虚拟机是否在物理启动后自动启动;
  --print-xml:如果虚拟机不需要安装过程(--import,--boot),则显示生成的XML而不是创建此虚拟机,默认情况下,此选项仍会创建磁盘映像;
  --force:禁止命令进行交互式模式,如果有需要回答yes或no选项,则自动回答为yes;
  --dry-run:执行创建虚拟机的整个过程,但不整整创建虚拟机,改变主机上的设备配置信息及将其创建的需求通知给libvirt;
  -d,--debug:显示debug信息;
  尽管virt-install命令有着类似上述的众多选项,但实际使用中,其必须提供的选项仅包括--name,--ram,--disk(也可是--nodisks)及安装过程相关的选项。此外,优势还需要使用--connect=CONNET选项来指定连接至一个非默认的Hypervisor。
 
二.使用virt-install创建虚拟机并安装GuestOS
1.安装常用的软件包
[root@yinzhengjie ~]# yum -y install libvirt virt-manager virt-viewer python-virtinst
2.启动 libvirtd 服务
[root@yinzhengjie ~]# service libvirtd start

  如果你想删除掉这快新建的虚拟网卡也是可以的,不过你下次启动libvirtd 服务,虚拟网卡依然会出现的哟~
[root@yinzhengjie ~]# ifconfig virbr0 down
[root@yinzhengjie ~]# brctl delbr virbr0

  当然,你删除之后想要恢复出来这块虚拟网卡,可以通过brctl命令来实现,还可以通过virsh命令来实现哟~这个命令的功能很强大,具体可以参考帮助信息(“[root@yinzhengjie ~]# virsh help iface-bridge”)

  根据上面的帮助信息,我们就可以这样创建出来一块网卡:[root@yinzhengjie ~]# virsh iface-bridge eth0 br0
3.用virt-install创建一个虚拟机实例:
 [root@yinzhengjie ~]# mkdir -pv /yinzhengjie/images/vm3
[root@yinzhengjie ~]# qemu-img create -f qcow2 -o size=100G /yinzhengjie/images/vm3/yinzhengjie_linux.qcow2
[root@yinzhengjie iso]# virt-install -n "yinzhengjie_centos1" --vcpus -r -l /var/www/html/yinzhengjie/iso/CentOS-7.0--x86_64-DVD.iso --disk path=/yinzhengjie/images/vm3/yinzhengjie_linux.qcow2,bus=virtio,size=,sparse,format=qcow2 --network bridge=virbr0,model=virtio,model=virtio --force

4.用virsh生成一个新的虚拟机实例
  每个虚拟机常见后,其配置信息保存在/etc/libvirt/qemu目录中,文件名与虚拟机相同,格式为XML。

[root@yinzhengjie ~]# virsh dumpxml yinzhengjie_centos.xml > /etc/libvirt/qemu/cirros.xml  #我们可以对已经创建好的虚拟机实例进行修改模板,快速生成一个配置文件。
需要将新生成的文件的镜像,名字进行修改哟,然后在进行以下的操作:
[root@yinzhengjie ~]# virsh create /etc/libvirt/qemu/cirros.xml --console  
#当然,我们还可以查看当前操作系统运行的虚拟机实例
[root@yinzhengjie qemu]# virsh list
 

 
 
 
 
 
 
 

libvirt工具实现虚拟机管理的更多相关文章

  1. kvm libvirt 虚拟机管理

    http://www.2cto.com/os/201203/123128.html kvm虚拟机管理一.环境role         hostname    ip                  O ...

  2. Libvirt中windows虚拟机的动态内存管理

    非常短的前提 Libvirt支持对虚拟机进行内存动态扩展,可是windows虚拟机首先须要安装virtio-win驱动. KVM提供的virtio-win驱动下载地址: http://www.linu ...

  3. kvm虚拟机管理基础

    部署 KVM 虚拟机 a.kvm 安装 环境:centos7,cpu 支持虚拟化,关闭 selinux,关闭 firewalld yum install libvirt virt-install qe ...

  4. C# 实现 Hyper-V 虚拟机 管理

    原文:C# 实现 Hyper-V 虚拟机 管理 Hyper-V WMI Provider 工具类如下: "; break; } return status; } } /// <summ ...

  5. [转载]【虚拟化系列】VMware vSphere 5.1 虚拟机管理

    转载自:http://mabofeng.blog.51cto.com/2661587/1019497 在上一博文中我们安装了强大的VMware vCenter管理中心,通过VMware vSphere ...

  6. kvm虚拟机管理 系统自动化安装

    原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...

  7. KVM -> 虚拟机管理&console登录_02

    1.KVM虚拟机管理操作 virsh命令常用参数总结 1.开机关机: virsh list (只可以查看运行的虚拟机) virsh list  --all (全部都可以查看) 开机与关机: virsh ...

  8. KVM虚拟机管理——虚拟机创建和操作系统安装

    1. 概述2. 交互式安装2.1 图形化-本地安装2.1.1 图形化本地CDROM安装2.2.2 图形化本地镜像安装2.2 命令行-本地安装2.2.1 命令行CDROM安装2.3 图形化-网络安装2. ...

  9. 【虚拟化系列】VMware vSphere 5.1 虚拟机管理

        在上一博文中我们安装了强大的VMware vCenter管理中心,通过VMware vSphere Client连接到VMware vCenter管理中心, vSphere 的两个核心组件是 ...

随机推荐

  1. *args和**kwargs在python中的作用

    我发现PYTHON新手在理解*args和**kwargs这两个魔法变量的时候有些困难.他们到底是什么呢? 首先,我先告诉大家一件事情,完整地写*args和**kwargs是不必要的,我们可以只写*和* ...

  2. JS跨浏览器的事件处理

    1. 事件流 事件:用户或浏览器自身执行的某种动作.如click(点击事件).mouse***(鼠标事件). 事件流:页面中接收事件的顺序,也可理解为事件在页面中传播的顺序. DOM事件流包括三个阶段 ...

  3. python面试题(四)

    一.数据类型 1.字典 1.1 现有字典 dict={‘a’:24,‘g’:52,‘i’:12,‘k’:33}请按字典中的 value 值进行排序? sorted(dict.items(),key=l ...

  4. 外网主机访问虚拟机下的web服务器(NAT端口转发)-----端口映射

    主机:系统win7,ip地址172.18.186.210 虚拟机:VMware Workstation 7,虚拟机下安装了Centos操作系统,ip地址是192.168.202.128,部署了LAMP ...

  5. GPT & UEFI Install Windows7

    安装介质以FAT或者FAT32分区安装介质添加UEFI支持文件(Windows7及其以前的系统,不支持UEFI启动) 从Windows8的安装文件中提取Bootmgfw.efi文件,重命名为BOOTX ...

  6. CEPH LIO iSCSI Gateway

    参考文档: Ceph Block Device:http://docs.ceph.com/docs/master/rbd/ CEPH ISCSI GATEWAY:http://docs.ceph.co ...

  7. PAT甲题题解-1012. The Best Rank (25)-排序水题

    排序,水题因为最后如果一个学生最好的排名有一样的,输出的课程有个优先级A>C>M>E那么按这个优先级顺序进行排序每次排序前先求当前课程的排名然后再与目前最好的排名比较.更新 至于查询 ...

  8. Android开发环境的发展演变调研

    Android开发环境的发展演变调研 前几年比较多的方法是用JDK+eclipse+ADT,该方法除了要配置JDK的路径之外, 还要在eclipse里面打开SDK Manage进行相应的操作.不过近两 ...

  9. C# 7中函数多值返回_转自InfoQ

    本文要点 应遵循<.NET设计规范:.NET约定惯用法与模式>一书.和十年前第一版出版时一样,书中给出的原则在当前依然有指导意义. API设计是最重要的.设计不好的API会在极大地增加软件 ...

  10. Beta 冲刺 三

    团队成员 051601135 岳冠宇 031602629 刘意晗 031602248 郑智文 031602330 苏芳锃 031602234 王淇 照片 项目进展 岳冠宇 ## 项目进展 昨天的困难 ...