使用virt-install手动创建qcow2镜像并安装ISO

1 ubuntu下安装: apt-get install virtinst

[plain]  view plain  copy
  1. # apt-get install virtinst  
  2. Reading package lists... Done  
  3. Building dependency tree  
  4. Reading state information... Done  
  5. The following extra packages will be installed:  
  6.   adwaita-icon-theme at-spi2-core colord colord-data dconf-gsettings-backend dconf-service fontconfig fontconfig-config  
  7.   fonts-dejavu-core glib-networking glib-networking-common glib-networking-services gsettings-desktop-schemas hicolor-icon-theme  
  8.   ...  
  9.   libxinerama1 libxkbcommon0 libxpm4 libxrandr2 libxrender1 libxtst6 python-libxml2 python-pycurl python-urlgrabber ubuntu-mono  
  10.   virt-viewer x11-common  
  11. Suggested packages:  
  12.   colord-sensor-argyll cups-common libgd-tools gphoto2 gvfs liblcms2-utils librsvg2-bin avahi-daemon hplip libsane-extras  
  13.   sane-utils python-pycurl-dbg python-pycurl-doc  
  14. ...  

2 virt-install常用参数


-n --name= 客户端虚拟机名称
-r --ram= 客户端虚拟机分配的内存
-u --uuid= 客户端UUID 默认不写时,系统会自动生成
--vcpus= 客户端的vcpu个数
-v --hvm 全虚拟化
-p --paravirt 半虚拟化
-l --location=localdir 安装源,有本地、nfs、http、ftp几种,多用于ks网络安装
--vnc 使用vnc ,另有--vnclient=监听的IP  --vncport =VNC监听的端口
-c --cdrom= 光驱 安装途径
--disk= 使用不同选项作为磁盘使用安装介质
-w NETWORK, --network=NETWORK 连接客户机到主机网络 
-s --file-size= 使用磁盘映像的大小 单位为GB
-f --file= 作为磁盘映像使用的文件
--cpuset=设置哪个物理CPU能够被虚拟机使用
--os-type=OS_TYPE 针对一类操作系统优化虚拟机配置(例如:‘linux’,‘windows’)
--os-variant=OS_VARIANT 针对特定操作系统变体(例如’rhel6’, ’winxp’,'win2k3')进一步优化虚拟机配置
--host-device=HOSTDEV 附加一个物理主机设备到客户机。HOSTDEV是随着libvirt使用的一个节点设备名(具体设备如’virsh nodedev-list’的显示的结果)
--accelerate KVM或KQEMU内核加速,这个选项是推荐最好加上。如果KVM和KQEMU都支持,KVM加速器优先使用。
-x EXTRA, --extra-args=EXTRA 当执行从"--location"选项指定位置的客户机安装时,附加内核命令行参数到安装程序
--nographics "virt-install" 将默认使用--vnc选项,使用nographics指定没有控制台被分配给客户机

3 安装

Use the virt-installtool to boot the virtual machine through libvirt and connect to the graphical console from a VNC client installed on your local machine.

3.1 查看default网络

[plain]  view plain  copy
  1. # virsh net-list  
  2.  Name                 State      Autostart     Persistent  
  3. ----------------------------------------------------------  
  4.  default              active     yes           yes  
If the network is not active, start it by doing:
# virsh net-start default
  Starting this network will create a Linux bridge (usually called virbr0), iptables rules, and a dnsmasq process that will serve as a DHCP server.

查看default网络的配置

[plain]  view plain  copy
  1. root@zhaicompute# brctl show  
  2. bridge name     bridge id               STP enabled     interfaces  
  3. virbr0          8000.5254000f5c96       yes             virbr0-nic  
  4.   
  5. root@zhaicompute# ifconfig virbr0  
  6. virbr0    Link encap:Ethernet  HWaddr 52:54:00:0f:5c:96  
  7.           inet addr:192.168.22.1  Bcast:192.168.22.255  Mask:255.255.255.0  
  8.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
  9.           RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
  10.           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
  11.           collisions:0 txqueuelen:0  
  12.           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  
  13. root@zhaicompute# cat /etc/libvirt/qemu/networks/default.xml  
  14.   
  15.   
  16.   
  17.   default  
  18.   6acb-ed0a-4ad1-b8dc-527168a2  
  19.     
  20.     
  21.     
  22.     
  23.       
  24.         
  25.       
  26.     
  27.   
default网络设置保存在/etc/libvirt/qemu/networks目录下,从配置中可看出具体的网桥virbr0.

3.2 qemu-img和virt-install

qemu-img command to create an empty image file

[plain]  view plain  copy
  1. root@zhaicompute# qemu-img create -f qcow2 zhai-ubuntu14.04.4.qcow2 10G  
  2. Formatting 'zhai-ubuntu14.04.4.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16  
  3. root@zhaicompute# ls  
  4. ubuntu-14.04.3-server-ppc64el.iso              zhai-ubuntu14.04.4.qcow2  
  5. root@zhaicompute# qemu-img info zhai-ubuntu14.04.4.qcow2  
  6. image: zhai-ubuntu14.04.4.qcow2  
  7. file format: qcow2  
  8. virtual size: 10G (10737418240 bytes)  
  9. disk size: 196K  
  10. cluster_size: 65536  
  11. Format specific information:  
  12.     compat: 1.1  
  13.     lazy refcounts: false  
  14.     refcount bits: 16  
  15.     corrupt: false  

 virt-install command to start up a virtual machine using that image file.

命令行:

[plain]  view plain  copy
  1. virt-install --virt-type kvm --name zhai-ubuntu --ram 1024 \  
  2. > --cdrom=/var/lib/libvirt/images/zhaipool/ubuntu-14.04.4-server-ppc64el.iso \  
  3. > --disk /var/lib/libvirt/images/zhaipool/zhai-ubuntu14.04.4.qcow2,format=qcow2 \  
  4. > --network network=default \  
  5. > --graphics vnc,listen=0.0.0.0 --noautoconsole \  
  6. > --os-type=linux --os-variant=ubuntutrusty  

其中,--os-variant后面的值使用virt-install --os-variant list查看

[plain]  view plain  copy
  1. root@zhaicompute#  virt-install --os-variant list  
  2. win2k8               : Microsoft Windows Server 2008 (or later)  
  3. win2k3               : Microsoft Windows Server 2003  
  4. win7                 : Microsoft Windows 7 (or later)  
  5. vista                : Microsoft Windows Vista  
  6. winxp64              : Microsoft Windows XP (x86_64)  
  7. winxp                : Microsoft Windows XP  
  8. win2k                : Microsoft Windows 2000  
  9. openbsd4             : OpenBSD 4.x (or later)  
  10. freebsd9             : FreeBSD 9.x  
  11. freebsd8             : FreeBSD 8.x  
  12. freebsd7             : FreeBSD 7.x  
  13. freebsd6             : FreeBSD 6.x  
  14. freebsd10            : FreeBSD 10.x (or later)  
  15. solaris9             : Sun Solaris 9  
  16. solaris11            : Sun Solaris 11 (or later)  
  17. solaris10            : Sun Solaris 10  
  18. opensolaris          : Sun OpenSolaris (or later)  
  19. netware6             : Novell Netware 6 (or later)  
  20. netware5             : Novell Netware 5  
  21. netware4             : Novell Netware 4  
  22. msdos                : MS-DOS  
  23. generic              : Generic  
  24. altlinux             : ALT Linux (or later)  
  25. debianwheezy         : Debian Wheezy (or later)  
  26. debiansqueeze        : Debian Squeeze  
  27. debianlenny          : Debian Lenny  
  28. debianetch           : Debian Etch  
  29. fedora20             : Fedora 20 (or later)  
  30. fedora19             : Fedora 19  
  31. fedora18             : Fedora 18  
  32. fedora17             : Fedora 17  
  33. fedora16             : Fedora 16  
  34. fedora15             : Fedora 15  
  35. fedora14             : Fedora 14  
  36. fedora13             : Fedora 13  
  37. fedora12             : Fedora 12  
  38. fedora11             : Fedora 11  
  39. fedora10             : Fedora 10  
  40. fedora9              : Fedora 9  
  41. fedora8              : Fedora 8  
  42. fedora7              : Fedora 7  
  43. fedora6              : Fedora Core 6  
  44. fedora5              : Fedora Core 5  
  45. mes5.1               : Mandriva Enterprise Server 5.1 (or later)  
  46. mes5                 : Mandriva Enterprise Server 5.0  
  47. mandriva2010         : Mandriva Linux 2010 (or later)  
  48. mandriva2009         : Mandriva Linux 2009 and earlier  
  49. mageia1              : Mageia 1 (or later)  
  50. rhel7                : Red Hat Enterprise Linux 7 (or later)  
  51. rhel6                : Red Hat Enterprise Linux 6  
  52. rhel5.4              : Red Hat Enterprise Linux 5.4 or later  
  53. rhel5                : Red Hat Enterprise Linux 5  
  54. rhel4                : Red Hat Enterprise Linux 4  
  55. rhel3                : Red Hat Enterprise Linux 3  
  56. rhel2.1              : Red Hat Enterprise Linux 2.1  
  57. sles11               : Suse Linux Enterprise Server 11 (or later)  
  58. sles10               : Suse Linux Enterprise Server  
  59. opensuse12           : openSuse 12 (or later)  
  60. opensuse11           : openSuse 11  
  61. ubuntuutopic         : Ubuntu 14.10 (Utopic Unicorn) (or later)  
  62. ubuntutrusty         : Ubuntu 14.04 LTS (Trusty Tahr)  
  63. ubuntusaucy          : Ubuntu 13.10 (Saucy Salamander)  
  64. ubunturaring         : Ubuntu 13.04 (Raring Ringtail)  
  65. ubuntuquantal        : Ubuntu 12.10 (Quantal Quetzal)  
  66. ubuntuprecise        : Ubuntu 12.04 LTS (Precise Pangolin)  
  67. ubuntuoneiric        : Ubuntu 11.10 (Oneiric Ocelot)  
  68. ubuntunatty          : Ubuntu 11.04 (Natty Narwhal)  
  69. ubuntumaverick       : Ubuntu 10.10 (Maverick Meerkat)  
  70. ubuntulucid          : Ubuntu 10.04 LTS (Lucid Lynx)  
  71. ubuntukarmic         : Ubuntu 9.10 (Karmic Koala)  
  72. ubuntujaunty         : Ubuntu 9.04 (Jaunty Jackalope)  
  73. ubuntuintrepid       : Ubuntu 8.10 (Intrepid Ibex)  
  74. ubuntuhardy          : Ubuntu 8.04 LTS (Hardy Heron)  
  75. mbs1                 : Mandriva Business Server 1 (or later)  
  76. virtio26             : Generic 2.6.25 or later kernel with virtio  
  77. generic26            : Generic 2.6.x kernel  
  78. generic24            : Generic 2.4.x kernel  

执行过程:

[plain]  view plain  copy
  1. root@zhaicompute# virt-install --virt-type kvm --name zhai-ubuntu --ram 1024 \  
  2. > --cdrom=/var/lib/libvirt/images/zhaipool/ubuntu-14.04.4-server-ppc64el.iso \  
  3. > --disk /var/lib/libvirt/images/zhaipool/zhai-ubuntu14.04.4.qcow2,format=qcow2 \  
  4. > --network network=default \  
  5. > --graphics vnc,listen=0.0.0.0 --noautoconsole \  
  6. > --os-type=linux --os-variant=ubuntutrusty  
  7.   
  8.   
  9. Starting install...  
  10. Creating domain...                                                                                         |    0 B     00:00  
  11. Domain installation still in progress. You can reconnect to  
  12. the console to complete the installation process.  
  13. root@zhaicompute# ps -ef | grep zhai  
  14. libvirt+  27531      1 99 03:39 ?        00:00:22 qemu-system-ppc64 -enable-kvm -name zhai-ubuntu -S -machine pseries-2.3,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid de480a35-4ab5-42e5-b3b6-a47c8b05d9c8 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/zhai-ubuntu.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-reboot -boot strict=on -device pci-ohci,id=usb,bus=pci.0,addr=0x2 -device spapr-vscsi,id=scsi0,reg=0x2000 -drive file=/var/lib/libvirt/images/zhaipool/zhai-ubuntu14.04.4.qcow2,if=none,id=drive-scsi0-0-0-0,format=qcow2 -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2 -drive file=/var/lib/libvirt/images/zhaipool/ubuntu-14.04.4-server-ppc64el.iso,if=none,id=drive-scsi0-0-0-1,readonly=on,format=raw -device scsi-cd,bus=scsi0.0,channel=0,scsi-id=0,lun=1,drive=drive-scsi0-0-0-1,id=scsi0-0-0-1,bootindex=1 -netdev tap,fd=29,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:cb:ad:fa,bus=pci.0,addr=0x1 -chardev pty,id=charserial0 -device spapr-vty,chardev=charserial0,reg=0x30000000 -device usb-kbd,id=input0 -device usb-mouse,id=input1 -vnc 0.0.0.0:2 -device VGA,id=video0,vgamem_mb=16,bus=pci.0,addr=0x4 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 -msg timestamp=on  
  15. root      27540  23850  0 03:40 pts/8    00:00:00 grep --color=auto zhai  
从上看出:virt-install执行后,最终调用的是qemu-system-ppc64命令来创建vm。

一个虚拟机占用一个进程,可以通过进程管理和控制虚拟机。

log日志:

[plain]  view plain  copy
  1. root@zhaicompute# ls /var/log/libvirt/qemu/  
  2. zhai-ubuntu.log  


创建后,查看网络:

[plain]  view plain  copy
  1. root@zhaicompute# brctl show  
  2. bridge name     bridge id               STP enabled     interfaces  
  3. virbr0          8000.5254000f5c96       yes             virbr0-nic  
  4.                                                         vnet0  
可看出 virbr0上多了一下端口vnet0.
[plain]  view plain  copy
  1. virbr0    Link encap:Ethernet  HWaddr 52:54:00:0f:5c:96  
  2.           inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0  
  3.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
  4.           RX packets:10646 errors:0 dropped:0 overruns:0 frame:0  
  5.           TX packets:14645 errors:0 dropped:0 overruns:0 carrier:0  
  6.           collisions:0 txqueuelen:0  
  7.           RX bytes:617571 (617.5 KB)  TX bytes:20396983 (20.3 MB)  
  8.   
  9. virbr0-nic Link encap:Ethernet  HWaddr 52:54:00:0f:5c:96  
  10.           BROADCAST MULTICAST  MTU:1500  Metric:1  
  11.           RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
  12.           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
  13.           collisions:0 txqueuelen:500  
  14.           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  
  15.   
  16. vnet0     Link encap:Ethernet  HWaddr fe:54:00:7e:60:d0  
  17.           inet6 addr: fe80::fc54:ff:fe7e:60d0/64 Scope:Link  
  18.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
  19.           RX packets:10646 errors:0 dropped:0 overruns:0 frame:0  
  20.           TX packets:17480 errors:0 dropped:0 overruns:0 carrier:0  
  21.           collisions:0 txqueuelen:500  
  22.           RX bytes:766615 (766.6 KB)  TX bytes:20544635 (20.5 MB)  

查看生成的xml配置文件 :

[plain]  view plain  copy
  1. # ls -lrt /etc/libvirt/qemu  
  2. -rw------- 1 root root 2511 Apr 15 11:25 zhai-ubuntu.xml  

zhai-ubuntu.xml内容:

[plain]  view plain  copy
  1. # cat /etc/libvirt/qemu/zhai-ubuntu.xml  
  2.   
  3.   
  4.   
  5.   zhai-ubuntu  
  6.   0e5684f5-23aa-8568-ed10-52c844b4d85d  
  7.   1048576  
  8.   1048576  
  9.   2  
  10.     
  11.     hvm  
  12.       
  13.       
  14.       
  15.     
  16.     
  17.       
  18.       
  19.       
  20.     
  21.     
  22.   destroy  
  23.   restart  
  24.   restart  
  25.     
  26.     /usr/bin/kvm  
  27.       
  28.         
  29.         
  30.         
  31.         
  32.       
  33.       
  34.         
  35.         
  36.         
  37.       
  38.       
  39.         
  40.       
  41.       
  42.       
  43.         
  44.         
  45.         
  46.         
  47.       
  48.       
  49.         
  50.         
  51.       
  52.       
  53.         
  54.         
  55.       
  56.       
  57.       
  58.       
  59.       
  60.     
  61.         
  62.         
  63.       
  64.       
  65.         
  66.       
  67.     
  68.   

  基于KVM建立的虚拟机相关文件默认存放位置
         kvm虚拟机配置文件位置/etc/libvirt/qemu/      <---都是xml文件
         kvm虚拟机文件位置:/var/lib/libvirt/images/   <---可以在建立虚拟机时指定
    

建立的虚拟机在运行时相关文件及存放位置
        在虚拟机运行时,会在/var/run/libvirt/qemu目录下存放虚拟机的pid文件和配置文件,配置文件与/etc/libvirt/qemu目录下对应的虚拟机文件相同,pid文件保存有此虚拟机进程号。虚拟机的日志文件存放在/var/log/libvirt/qemu目录下,每个虚拟机一个,文件名称为:虚拟机名称(或UUID)+“.log”


virt-install在生产虚拟机的最后调用virt-viewer打开虚拟机图形界面 ,进行操作系统的安装,可以通过vnc或者virt-manager打开虚拟机图形界面,继续完成guest操作系统的安装即可。

3.3 virsh vncdisplay命令

Use the virsh vncdisplay vm-name command to get the VNC port number.

[plain]  view plain  copy
  1. root@zhaicompute# virsh vncdisplay zhai-ubuntu  
  2. :2  
  3. root@zhaicompute# ps -ef | grep vnc  
  4. libvirt+  27531      1 99 03:39 ?        00:09:35 qemu-system-ppc64 -enable-kvm -name zhai-ubuntu -S -machine pseries-2.3,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid de480a35-4ab5-42e5-b3b6-a47c8b05d9c8 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/zhai-ubuntu.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-reboot -boot strict=on -device pci-ohci,id=usb,bus=pci.0,addr=0x2 -device spapr-vscsi,id=scsi0,reg=0x2000 -drive file=/var/lib/libvirt/images/zhaipool/zhai-ubuntu14.04.4.qcow2,if=none,id=drive-scsi0-0-0-0,format=qcow2 -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2 -drive file=/var/lib/libvirt/images/zhaipool/ubuntu-14.04.4-server-ppc64el.iso,if=none,id=drive-scsi0-0-0-1,readonly=on,format=raw -device scsi-cd,bus=scsi0.0,channel=0,scsi-id=0,lun=1,drive=drive-scsi0-0-0-1,id=scsi0-0-0-1,bootindex=1 -netdev tap,fd=29,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:cb:ad:fa,bus=pci.0,addr=0x1 -chardev pty,id=charserial0 -device spapr-vty,chardev=charserial0,reg=0x30000000 -device usb-kbd,id=input0 -device usb-mouse,id=input1 -vnc 0.0.0.0:2 -device VGA,id=video0,vgamem_mb=16,bus=pci.0,addr=0x4 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 -msg timestamp=on  

3.4 在本机上使用vncviewer或tigervnc连接

qemu不使用Linux下的vncserver提供vnc服务,因此在此服务没有启动的情况下,也能通过vnc客户端连接到虚拟机。

在win7下,打开vnc-viewer,输入virt-install命令所在的服务器IP与所安装的虚拟机据点用的vnc端口号0;

使用virt-install手动创建qcow2镜像并安装ISO_第1张图片

点击“OK”,进入安装界面

使用virt-install手动创建qcow2镜像并安装ISO_第2张图片

安装完成后,使用命令virsh start vm-name启动此虚拟机:

[html]  view plain  copy
  1. root@ctler:~# virsh list --all  
  2.  Id    Name                           State  
  3. ----------------------------------------------------  
  4.  -     net                            shut off  
  5.   
  6. root@ctler:~# virsh start net  
  7. Domain net started  
  8.   
  9. root@ctler:~# virsh list --all  
  10.  Id    Name                           State  
  11. ----------------------------------------------------  
  12.  5     net                            running  


在linux下:

使用virt-install手动创建qcow2镜像并安装ISO_第3张图片

安装完成后,登录虚机,查看IP

使用virt-install手动创建qcow2镜像并安装ISO_第4张图片


4 本地安装示例

给guest主机划分物理机分区
lvcreate -L20G -n host.demo.com kvm-storage

下载镜像并loop到本地:
wget http://mirrors.manchester.icecolo.com/centos/5.5/isos/x86_64/CentOS-5.5-x86_64-bin-1of8.iso
mkdir /mnt/centos55
mount -o loop CentOS-5.5-x86_64-bin-1of8.iso /mnt/centos55/

通过location本地安装,并通过console管理:
virt-install
-n host.demo.com
-r 512
--vcpus=1
--os-variant=rhel5.4
--accelerate
--nographics
-v
-l /mnt/centos55/
-w bridge:br1
--disk path=/dev/kvm-storage/host.demo.com
-x "console=ttyS0"

管理时可以通过
#查看guest id、name 及状态
virsh list --all
#通过console连接查看
virsh console id或name
#连接完成后会要求输入用户名和密码


5 virt-manager图形安装

通过图形向导界面也可以完成安装,virt-manager可以通过在终端中输入virt-manager或者从菜单应用程序->系统工具中打开。

使用virt-install手动创建qcow2镜像并安装ISO_第5张图片


使用virt-install手动创建qcow2镜像并安装ISO_第6张图片


使用virt-install手动创建qcow2镜像并安装ISO_第7张图片


使用virt-install手动创建qcow2镜像并安装ISO_第8张图片


使用virt-install手动创建qcow2镜像并安装ISO_第9张图片


使用virt-install手动创建qcow2镜像并安装ISO_第10张图片


使用virt-install手动创建qcow2镜像并安装ISO_第11张图片


参考:

1 virt-install 使用说明: http://blog.csdn.NET/starshine/article/details/6998189
2 kvm, qemu-kvm以及libvirt之间的关系图:http://blog.csdn.net/zhaihaifei/article/details/51018113
3 kvm虚拟化之virt-install: http://www.361way.com/virt-install/2721.html
4 kvm显示VM的IP:http://www.chengxuyuans.com/Unix/83251.html
5 virbr0: http://blog.chinaunix.Net/uid-26000137-id-3723948.html

你可能感兴趣的:(使用virt-install手动创建qcow2镜像并安装ISO)