美文网首页
kvm虚拟机制作qcow2镜像

kvm虚拟机制作qcow2镜像

作者: 清晨起床敲代码 | 来源:发表于2023-03-15 11:44 被阅读0次

    1、构造空镜像

    qemu-img create -f qcow2 centos-7-guest.qcow2 10G
    

    qcow2、raw都可以;还能相互转换。

    2、创建虚拟机 根据指定的跟镜像

    virt-install --virt-type kvm --name centos-7-guest --ram 1024 --disk centos-7-guest.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --location=CentOS-7-x86_64-Minimal-2009.iso

    virt-install命令:

    [[root@controller guest]# virt-install --help
    usage: virt-install --name NAME --memory MB STORAGE INSTALL [options]
    
    Create a new virtual machine from specified install media.
    
    optional arguments:
      -h, --help            show this help message and exit
      --version             show program's version number and exit
      --connect URI         Connect to hypervisor with libvirt URI
    
    General Options:
      -n NAME, --name NAME  Name of the guest instance
      --memory MEMORY       Configure guest memory allocation. Ex:
                            --memory 1024 (in MiB)
                            --memory 512,maxmemory=1024
                            --memory 512,maxmemory=1024,hotplugmemorymax=2048,hotplugmemoryslots=2
      --vcpus VCPUS         Number of vcpus to configure for your guest. Ex:
                            --vcpus 5
                            --vcpus 5,maxvcpus=10,cpuset=1-4,6,8
                            --vcpus sockets=2,cores=4,threads=2
      --cpu CPU             CPU model and features. Ex:
                            --cpu coreduo,+x2apic
                            --cpu host-passthrough
                            --cpu host
      --metadata METADATA   Configure guest metadata. Ex:
                            --metadata name=foo,title="My pretty title",uuid=...
                            --metadata description="My nice long description"
    
    Installation Method Options:
      --cdrom CDROM         CD-ROM installation media
      -l LOCATION, --location LOCATION
                            Installation source (eg, nfs:host:/path,
                            http://host/path, ftp://host/path)
      --pxe                 Boot from the network using the PXE protocol
      --import              Build guest around an existing disk image
      --livecd              Treat the CD-ROM media as a Live CD
      -x EXTRA_ARGS, --extra-args EXTRA_ARGS
                            Additional arguments to pass to the install kernel
                            booted from --location
      --initrd-inject INITRD_INJECT
                            Add given file to root of initrd from --location
      --os-variant DISTRO_VARIANT
                            The OS variant being installed guests, e.g.
                            'fedora18', 'rhel6', 'winxp', etc.
      --boot BOOT           Configure guest boot settings. Ex:
                            --boot hd,cdrom,menu=on
                            --boot init=/sbin/init (for containers)
      --idmap IDMAP         Enable user namespace for LXC container. Ex:
                            --idmap uid_start=0,uid_target=1000,uid_count=10
    
    Device Options:
      --disk DISK           Specify storage with various options. Ex.
                            --disk size=10 (new 10GiB image in default location)
                            --disk /my/existing/disk,cache=none
                            --disk device=cdrom,bus=scsi
                            --disk=?
      -w NETWORK, --network NETWORK
                            Configure a guest network interface. Ex:
                            --network bridge=mybr0
                            --network network=my_libvirt_virtual_net
                            --network network=mynet,model=virtio,mac=00:11...
                            --network none
                            --network help
      --graphics GRAPHICS   Configure guest display settings. Ex:
                            --graphics vnc
                            --graphics spice,port=5901,tlsport=5902
                            --graphics none
                            --graphics vnc,password=foobar,port=5910,keymap=ja
      --controller CONTROLLER
                            Configure a guest controller device. Ex:
                            --controller type=usb,model=ich9-ehci1
      --input INPUT         Configure a guest input device. Ex:
                            --input tablet
                            --input keyboard,bus=usb
      --serial SERIAL       Configure a guest serial device
      --parallel PARALLEL   Configure a guest parallel device
      --channel CHANNEL     Configure a guest communication channel
      --console CONSOLE     Configure a text console connection between the guest
                            and host
      --hostdev HOSTDEV     Configure physical USB/PCI/etc host devices to be
                            shared with the guest
      --filesystem FILESYSTEM
                            Pass host directory to the guest. Ex:
                            --filesystem /my/source/dir,/dir/in/guest
                            --filesystem template_name,/,type=template
      --sound [SOUND]       Configure guest sound device emulation
      --watchdog WATCHDOG   Configure a guest watchdog device
      --video VIDEO         Configure guest video hardware.
      --smartcard SMARTCARD
                            Configure a guest smartcard device. Ex:
                            --smartcard mode=passthrough
      --redirdev REDIRDEV   Configure a guest redirection device. Ex:
                            --redirdev usb,type=tcp,server=192.168.1.1:4000
      --memballoon MEMBALLOON
                            Configure a guest memballoon device. Ex:
                            --memballoon model=virtio
      --tpm TPM             Configure a guest TPM device. Ex:
                            --tpm /dev/tpm
      --rng RNG             Configure a guest RNG device. Ex:
                            --rng /dev/urandom
      --panic PANIC         Configure a guest panic device. Ex:
                            --panic default
      --memdev MEMDEV       Configure a guest memory device. Ex:
                            --memdev dimm,target_size=1024
    
    Guest Configuration Options:
      --security SECURITY   Set domain security driver configuration.
      --cputune CPUTUNE     Tune CPU parameters for the domain process.
      --numatune NUMATUNE   Tune NUMA policy for the domain process.
      --memtune MEMTUNE     Tune memory policy for the domain process.
      --blkiotune BLKIOTUNE
                            Tune blkio policy for the domain process.
      --memorybacking MEMORYBACKING
                            Set memory backing policy for the domain process. Ex:
                            --memorybacking hugepages=on
      --features FEATURES   Set domain <features> XML. Ex:
                            --features acpi=off
                            --features apic=on,eoi=on
      --clock CLOCK         Set domain <clock> XML. Ex:
                            --clock offset=localtime,rtc_tickpolicy=catchup
      --pm PM               Configure VM power management features
      --events EVENTS       Configure VM lifecycle management policy
      --resource RESOURCE   Configure VM resource partitioning (cgroups)
      --sysinfo SYSINFO     Configure SMBIOS System Information. Ex:
                            --sysinfo emulate
                            --sysinfo host
                            --sysinfo bios_vendor=Vendor_Inc.,bios_version=1.2.3-abc,...
                            --sysinfo system_manufacturer=System_Corp.,system_product=Computer,...
                            --sysinfo baseBoard_manufacturer=Baseboard_Corp.,baseBoard_product=Motherboard,...
      --qemu-commandline QEMU_COMMANDLINE
                            Pass arguments directly to the qemu emulator. Ex:
                            --qemu-commandline='-display gtk,gl=on'
                            --qemu-commandline env=DISPLAY=:0.1
    
    Virtualization Platform Options:
      -v, --hvm             This guest should be a fully virtualized guest
      -p, --paravirt        This guest should be a paravirtualized guest
      --container           This guest should be a container guest
      --virt-type HV_TYPE   Hypervisor name to use (kvm, qemu, xen, ...)
      --arch ARCH           The CPU architecture to simulate
      --machine MACHINE     The machine type to emulate
    
    Miscellaneous Options:
      --autostart           Have domain autostart on host boot up.
      --transient           Create a transient domain.
      --wait WAIT           Minutes to wait for install to complete.
      --noautoconsole       Don't automatically try to connect to the guest
                            console
      --noreboot            Don't boot guest after completing install.
      --print-xml [XMLONLY]
                            Print the generated domain XML rather than create the
                            guest.
      --dry-run             Run through install process, but do not create devices
                            or define the guest.
      --check CHECK         Enable or disable validation checks. Example:
                            --check path_in_use=off
                            --check all=off
      -q, --quiet           Suppress non-error output
      -d, --debug           Print debugging information
    
    Use '--option=?' or '--option help' to see available suboptions
    See man page for examples and full option syntax.
    [root@svr ~]#
    
    

    3、查看kvm虚拟机

    [root@controller guest]$ virsh list
     Id    Name                           State
    ----------------------------------------------------
     1   instance-00000c0e             running
     2   centos-7-guest                running
    
    

    4、virt-manager

    virt-maneger
    

    进入虚拟机 dhcpclient 配置网络 修改虚拟机(自我定制,爱咋改咋改) 关闭虚拟机

    5、清理

    virt-sysprep -d centos-7-guest

    [root@controller guest]$ virt-sysprep -d centos-7-guest
    [   0.0] Examining the guest ...
    [   3.4] Performing "abrt-data" ...
    [   3.4] Performing "backup-files" ...
    [   4.1] Performing "bash-history" ...
    [   4.1] Performing "blkid-tab" ...
    [   4.1] Performing "crash-data" ...
    [   4.1] Performing "cron-spool" ...
    [   4.1] Performing "dhcp-client-state" ...
    [   4.2] Performing "dhcp-server-state" ...
    [   4.2] Performing "dovecot-data" ...
    [   4.2] Performing "logfiles" ...
    [   4.2] Performing "machine-id" ...
    [   4.2] Performing "mail-spool" ...
    [   4.2] Performing "net-hostname" ...
    [   4.2] Performing "net-hwaddr" ...
    [   4.3] Performing "pacct-log" ...
    [   4.3] Performing "package-manager-cache" ...
    [   4.3] Performing "pam-data" ...
    [   4.3] Performing "passwd-backups" ...
    [   4.3] Performing "puppet-data-log" ...
    [   4.3] Performing "rh-subscription-manager" ...
    [   4.3] Performing "rhn-systemid" ...
    [   4.3] Performing "rpm-db" ...
    [   4.3] Performing "samba-db-log" ...
    [   4.3] Performing "script" ...
    [   4.3] Performing "smolt-uuid" ...
    [   4.4] Performing "ssh-hostkeys" ...
    [   4.4] Performing "ssh-userdir" ...
    [   4.4] Performing "sssd-db-log" ...
    [   4.4] Performing "tmp-files" ...
    [   4.4] Performing "udev-persistent-net" ...
    [   4.4] Performing "utmp" ...
    [   4.4] Performing "yum-uuid" ...
    [   4.4] Performing "customize" ...
    [   4.4] Setting a random seed
    [   4.4] Setting the machine ID in /etc/machine-id
    [   4.5] Performing "lvm-uuids" ...
    

    6、压缩镜像文件

    virt-sparsify --compress centos-7-guest.qcow2 centos-7-guest01.qcow2

    [root@controller guest]$ virt-sparsify --compress centos-7-guest.qcow2 centos-7-guest01.qcow2
    [   0.3] Create overlay file in /tmp to protect source disk
    [   0.4] Examine source disk
    [   2.6] Fill free space in /dev/centos/root with zero
     100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
    [  11.7] Clearing Linux swap on /dev/centos/swap
    [  12.6] Fill free space in /dev/sda1 with zero
    [  15.2] Copy to destination and make sparse
    [ 102.9] Sparsify operation completed with no errors.
    virt-sparsify: Before deleting the old disk, carefully check that the
    target disk boots and works correctly.
    
    [root@controller guest]$ ll -h
    -rw-r--r-- 1 qemu qemu 973M Mar 14 15:29 CentOS-7-x86_64-Minimal-2009.iso
    -rw-r--r-- 1 root root 692M Mar 14 16:40 centos-7-guest01.qcow2
    -rw-r--r-- 1 qemu qemu 1.9G Mar 14 16:34 centos-7-guest.qcow2
    
    

    7、上传镜像 open stack

    glance image create --name centos7-guest --container-format bare --disk-format qcow2 --file centos-7-guest01.qcow2
    

    注:在环境直接创建虚拟机:

    virt-install --virt-type kvm --name centos-7-guest --ram 1024 --disk centos-7-guest01.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --import
    

    相关文章

      网友评论

          本文标题:kvm虚拟机制作qcow2镜像

          本文链接:https://www.haomeiwen.com/subject/eeelrdtx.html