Windows image 制作

本版本制作的windows 支持 feather: 1. Disk Bus=SCSI   2.Tunnel网络环境下自动配置MTU  3.动态修改密码

准备环境

      1.windows iso :         http://10.110.176.250:8080/os/iso/windows/cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.iso

      2.virtio driver for windows:    https://fedoraproject.org/wiki/Windows_Virtio_Drivers

      3.cloudbase-init for X64:       https://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta_x64.msi

      4.qemu-guest-agent for windows:       https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-qemu-ga/

      5.cloudbase-init patch for set mtu:      https://review.openstack.org/#/c/389559/

安装过程

      1.使用Libvirt 创建windows虚机,启动虚机的 XML 如下:

 1 <domain type='kvm'>
 2   <name>win2012</name>
 3   <uuid>6828e3f8-b517-4612-bad9-c6050d936e85</uuid>
 4   <memory unit='KiB'>2097152</memory>
 5   <currentMemory unit='KiB'>2097152</currentMemory>
 6   <vcpu placement='static' cpuset='1-3'>2</vcpu>
 7   <cputune>
 8     <shares>1024</shares>
 9   </cputune>
10   <sysinfo type='smbios'>
11     <system>
12       <entry name='manufacturer'>Fedora Project</entry>
13       <entry name='product'>OpenStack Nova</entry>
14       <entry name='version'>13.0.0-1.el7</entry>
15       <entry name='serial'>65fbc0c9-3e85-43c8-abf2-e6f3a26e2ffb</entry>
16       <entry name='family'>Virtual Machine</entry>
17     </system>
18   </sysinfo>
19   <os>
20     <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
21     <boot dev='cdrom'/>
22     <boot dev='hd'/>
23     <smbios mode='sysinfo'/>
24   </os>
25   <features>
26     <acpi/>
27     <apic/>
28   </features>
29   <cpu mode='host-model'>
30     <model fallback='allow'/>
31     <topology sockets='1' cores='2' threads='1'/>
32   </cpu>
33   <clock offset='utc'>
34     <timer name='pit' tickpolicy='delay'/>
35     <timer name='rtc' tickpolicy='catchup'/>
36     <timer name='hpet' present='no'/>
37   </clock>
38   <on_poweroff>destroy</on_poweroff>
39   <on_reboot>restart</on_reboot>
40   <on_crash>destroy</on_crash>
41   <devices>
42     <emulator>/usr/libexec/qemu-kvm</emulator>
43     <disk type='file' device='disk'>
44       <driver name='qemu' type='qcow2'/>
45       <source file='/home/stack/images/win2012.qcow2'/>
46       <target dev='sda' bus='scsi'/>
47       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
48     </disk>
49     <disk type='file' device='cdrom'>
50       <driver name='qemu' type='raw'/>
51       <source file='/home/stack/windows/cn_windows_server_2012_r2_x64_dvd_2707961.iso'/>
52       <target dev='hda' bus='ide'/>
53       <readonly/>
54       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
55     </disk>
56     <disk type='file' device='cdrom'>
57       <driver name='qemu' type='raw'/>
58       <source file='/home/stack/windows/virtio-win.iso'/>
59       <target dev='hdd' bus='ide'/>
60       <readonly/>
61       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
62     </disk>
63     <interface type='network'>
64       <mac address='52:54:00:f4:71:33'/>
65       <source network='default'/>
66       <model type='e1000'/>
67       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
68     </interface>
69     <serial type='pty'>
70       <target port='0'/>
71     </serial>
72     <console type='pty'>
73       <target type='serial' port='0'/>
74     </console>
75     <input type='tablet' bus='usb'/>
76     <input type='mouse' bus='ps2'/>
77     <input type='keyboard' bus='ps2'/>
78     <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='en-us'>
79       <listen type='address' address='0.0.0.0'/>
80     </graphics>
81     <video>
82       <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>
83       <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
84     </video>
85     <memballoon model='virtio'>
86       <stats period='10'/>
87       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
88     </memballoon>
89   </devices>
90 </domain>
View Code

    注意:1.多个CPU  2.Disk bus SCSI

    2.创建 leuser账户,禁用Administrator

    3.安装qemu-guest-agent, 用户支持动态修改密码

    4.安装Virtio driver,参见: https://goo.gl/ckgdWN       

   注意.qemu-guest-agent 的driver需重机关、编辑XML、重启,XML修改如下:

1 <channel type='unix'>
2     <source mode='bind' path='/var/lib/libvirt/qemu/win7x86.agent'/>
3     <target type='virtio' name='org.qemu.guest_agent.0'/>
4     <address type='virtio-serial' controller='0' bus='0' port='1'/>
5  </channel>

     5.内存监控

       在 Windows 2008r2 and Windows 2012/Win8 :

             Copy and rename as Administrator the WIN7AMD64 directory from the virtio.iso to “c:/Program files/Balloon”

             Open a CMD as Administrator and cd into “c:/Program Files/Balloon”

             Install the BLNSVR with “BLNSVR.exe -i”

      在 Windows 2003 / Windows Xp :

             Download the “devcon” software on microsoft website kb311272

             devcon install BALLOON.inf “PCIVEN_1AF4&DEV_1002&SUBSYS_00051AF4&REV_00”

    6.安装cloudbase-init

          1).修改cloudbase-init.conf的参数metadata_services和plugins 

               参数配置如下:

1 metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService,cloudbaseinit.metadata.services.httpservice.HttpService,cloudbaseinit.metadata.services.ec2service.EC2Service,cloudbaseinit.metadata.services.maasservice.MaaSHttpService
2 plugins=cloudbaseinit.plugins.windows.mtu.MTUPlugin,cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin,cloudbaseinit.plugins.windows.createuser.CreateUserPlugin,cloudbaseinit.plugins.windows.networkconfig.NetworkConfigPlugin,cloudbaseinit.plugins.windows.sshpublickeys.SetUserSSHPublicKeysPlugin,cloudbaseinit.plugins.windows.userdata.UserDataPlugin,cloudbaseinit.plugins.windows.setuserpassword.SetUserPasswordPlugin,cloudbaseinit.plugins.windows.localscripts.LocalScriptsPlugin

          2).替换cloudbase-init文件,支持设置configDriver配置MTU,具体参见commit:  https://review.openstack.org/#/c/389559/    修改的文件如下:

1 cloudbaseinit/metadata/services/base.py
2 cloudbaseinit/metadata/services/opennebulaservice.py
3 cloudbaseinit/plugins/common/networkconfig.py
4 cloudbaseinit/tests/metadata/fake_json_response.py
5 cloudbaseinit/tests/metadata/services/test_baseopenstackservice.py
6 cloudbaseinit/tests/metadata/services/test_opennebulaservice.py
7 cloudbaseinit/tests/plugins/common/test_networkconfig.py
8 cloudbaseinit/tests/utils/test_debiface.py
9 cloudbaseinit/utils/debiface.py

上传镜像

命令行:

1 glance image-create --name "win2K8_r2_x64" --disk-format qcow2 --container-format bare  --progress < /home/stack/win2012.qcow2
2  
3 glance image-update  --property hw_disk_bus=scsi --property hw_cpu_sockets=2  --property  hw_qemu_guest_agent=yes --property  os_admin_user=leuser  win2K8_r2_x64

创建虚机

命令行如下:

1 nova boot --config-drive=true --image win2K8_r2_x64  --key-name controller --flavor  windowsc2m1024d20 --nic net-id=4c85a0e2-7fd8-40e1-8746-95c03ad7aecb instance-001
View Code

注:管理 windows 的MTU

1.netsh interface ip show interface

2.netsh interface ip set subinterface "本地连接 2" mtu=1450 store=persistent

参考文档:

    http://wiki.letv.cn/display/pla/2014.09.22+-+2014.09.26 

    http://docs.openstack.org/image-guide/windows-image.html

    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Host_Configuration_and_Guest_Installation_Guide/form-Virtualization_Host_Configuration_and_Guest_Installation_Guide-Para_virtualized_drivers-Mounting_the_image_with_virt_manager.html

    https://pve.proxmox.com/wiki/Qemu-guest-agent

    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/sect-QEMU_Guest_Agent-Running_the_QEMU_guest_agent_on_a_Windows_guest.html

    http://wiki.stoney-cloud.org/wiki/Qemu_Guest_Agent_Integration

    https://niusmallnan.github.io/_build/html/_templates/openstack/libvirt_memory_usage.html

 
原文地址:https://www.cnblogs.com/gaozhengwei/p/7101244.html