zoukankan      html  css  js  c++  java
  • 创建虚拟机(kvm)

    --virsh console virt_name

    -- virsh nodeinfo                               # 查看kvm节点(服务器)信息

    --virsh list [--all]                 # 列出虚拟机

    --virsh net-list [--all]                # 查看虚拟网络

    --virsh dominfo virt_name             # 查看指定虚拟机信息           

    --virsh domiflist virt_name            # 查看虚拟机网卡

    --virsh start | reboot | shutdown vitr_name   

    --virsh destroy virt_name            # 强制关闭指定的虚拟机

    --virsh autostart [--disable] virt_name        # 开机自启  

    --virsh -c qemu+ssh://user@host_ip:port/syetem      # 远程连接

    --qemu-img create -f format file_name size                  #  创建新的镜像盘文件

      qemu-img create -f qcow2 | raw disk.img 50G

    --qemu-img info file_name            # 查看磁盘信息

    --qemu-img snapshot 

    --qemu-img create -b temp -f qcow2 file_name  # 使用后端模板创建

    cd /var/lib/libvirt/images/

    qemu-img create -b node.qcow2 -f qcow2 node1.img 

    创建虚拟交换机

    创建配置文件    /etc/libvirt/qemu/networks/vbr.xml

    创建虚拟网络 virsh net-define /etc/libvirt/qemu/networks/vbr.xml                # net-undefine 删除

    启动虚拟网络 virsh net-start vbr                   # net-destroy   停止 net-edit 修改

    查看虚拟网络 virsh net-list 

    设置开机自启 virsh net-autostart vbr                                                                       

    <network>
      <name>vbr</name>                                              # virsh net-list --all 可见
      <bridge name='vbr' stp='on' delay='0'/>                       # ifconfig 可见
      <domain name='vbr'/>
      <forward mode="nat"/>                                         # 启用地址转换
      <ip address='192.168.1.254' netmask='255.255.255.0'>          # dhcp服务器
        <dhcp>                                                      # 在指定范围内随机分配ip
          <range start="192.168.1.100" end="192.168.1.200"/>
        </dhcp>
      </ip>
    </network>

    创建虚拟机

    创建配置文件   /etc/libvirt/qemu/node1.xml$

    创建虚拟机      virsh define /etc/libvirt/qemu/node1.xml

    启动虚拟机      virsh start node1

    登陆     virsh console node1

    <domain type='kvm'>
      <name>node1</name>
      <memory unit='KB'>1524000</memory>                         # 最大可使用内存     
      <currentMemory unit='KB'>1524000</currentMemory>             # 当前最大内存
      <vcpu placement='static'>2</vcpu>                         # 虚拟的cpu个数     
      <os>
        <type arch='x86_64' machine='pc'>hvm</type>                  
        <boot dev='hd'/>                                 # 硬盘启动    
        <bootmenu enable='yes'/>    
        <bios useserial='yes'/>
      </os>
      <features>
        <acpi/>
        <apic/>
      </features>
      <cpu mode='host-passthrough'>
      </cpu>
      <clock offset='localtime'/>                            
      <on_poweroff>destroy</on_poweroff>                        
      <on_reboot>restart</on_reboot>
      <on_crash>restart</on_crash>
      <devices>
        <emulator>/usr/libexec/qemu-kvm</emulator>
        <disk type='file' device='disk'>                        
          <driver name='qemu' type='qcow2'/>
          <source file='/var/lib/libvirt/images/node1.img'/>
          <target dev='vda' bus='virtio'/>
        </disk>
        <interface type='bridge'>                            
          <source bridge='vbr'/>                            # 连接的虚拟交换机    
          <model type='virtio'/>
        </interface>
        <channel type='unix'>
          <target type='virtio' name='org.qemu.guest_agent.0'/>            
        </channel>
        <serial type='pty'></serial>
        <console type='pty'>
          <target type='serial'/>
        </console>
        <memballoon model='virtio'></memballoon>
      </devices>
    </domain>

    脚本创建虚拟机

    #!/bin/bash
    
    #read -p '请输入交换机名称:' sw_name
    read -p '请输入主机名称:' vm_name
    read -p '请分配空间:(?G):' size
    read -p '是否自启动?(yes/no):' auto_start
    
    size=${size:-"20G"}
    auto_start=${auto_start:-"yes"}
    
    echo $size
    echo $auto_start 
    
    #sw_path="/etc/libvirt/qemu/networks"
    img_path="/var/lib/libvirt/images"
    xml_path="/etc/libvirt/qemu"
    
    isExist=`find  $img_path/ -name $vm_name.img | wc -l`
    if [ $isExist  -ne 0 ];then
        echo '镜像文件已经存在!'
        exit 1
    fi
    
    
    qemu-img create -b $img_path/node.qcow2 -f qcow2 $img_path/$vm_name.img $size
    
    sed  "s/node/$vm_name/;/uuid/d"  $xml_path/node.xml >  $xml_path/$vm_name.xml
    virsh define $xml_path/$vm_name.xml
    virsh start $vm_name
    
    if [ $auto_start == "yes" ];then
        virsh autostart $vm_name
    fi

     

    脚本删除虚拟机

    #!/bin/bash
    
    read -p '请输入要删除的主机名称:' vm_name
    
    img_path="/var/lib/libvirt/images"
    xml_path="/etc/libvirt/qemu"
    
    virsh destroy $vm_name > /dev/null
    virsh shutdown $vm_name > /dev/null
    virsh undefine $vm_name > /dev/null
    isExist=`find  $img_path/ -name $vm_name.img | wc -l`
    if [ $isExist  -eq 0 ];then
        echo '镜像文件不存在!'
        exit 1
    fi
    
    
    rm -rf $img_path/$vm_name.img $xml_path/$vm_name.xml $xml_path/*-$vm_name > /dev/null
  • 相关阅读:
    面试题准备
    ImageList控件
    修改Visual Studio 2010 帮助文件库的位置
    委托与事件(续)
    PictureBox
    我的廣播情緣12/26
    回首我的2007 12/25
    水晶報表:列印支票金額12/12
    聖誕節快樂
    新年快樂
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/10370434.html
Copyright © 2011-2022 走看看