• Ubuntu 16.04.6 LTS 安装 KVM 虚拟机


    Ubuntu 16.04.6 LTS 安装 KVM 虚拟机

    环境描述

    系统 IP 物理网卡
    宿主机 Ubuntu 16.04.6 LTS 192.168.0.200 enp4s0
    虚拟机 CentOS Linux release 7.9.2009 192.168.0.201

    一、查看CPU是否支持虚拟化

    egrep "svm|vmx" /proc/cpuinfo
    

    二、安装kvm软件

    apt-get update && apt-get install -y kvm qemu-kvm qemu virt-manager virtinst libvirt-bin python-libvirt virt-viewer virt-manager bridge-utils
    

    三、查看系统是否支持kvm模版

    lsmod | grep kvm
    

    四、配置虚拟网桥

    • 根据实际情况进行修改
    cat /etc/network/interfaces
    
    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback
    
    auto br0
    iface br0 inet static
    address 192.168.0.200
    netmask 255.255.255.0
    gateway 192.168.0.1
    bridge_ports enp4s0
    bridge_stp on
    bridge_fd 0
    

    五、查看网络配置

    # 重启网卡
    systemctl restart network
    
    # 查看网卡信息
    ifconfig
    
    br0       Link encap:Ethernet  HWaddr xx:xx:ss:ks:a1:gg
              inet addr:192.168.0.200  Bcast:192.168.0.255  Mask:255.255.255.0
              inet6 addr: xxxx::1111f:622f:f126:a5aa/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:161697 errors:0 dropped:0 overruns:0 frame:0
              TX packets:106416 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:15306235 (15.3 MB)  TX bytes:31204946 (31.2 MB)
    
    enp4s0    Link encap:Ethernet  HWaddr xx:xx:ss:ks:a1:gg
              inet addr:192.168.0.200  Bcast:192.168.0.255  Mask:255.255.255.0
              inet6 addr: xxxx::1111f:622f:f126:a5aa/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:815000 errors:0 dropped:0 overruns:0 frame:0
              TX packets:217030 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:977753453 (977.7 MB)  TX bytes:39798281 (39.7 MB)
              Memory:f0200000-f027ffff
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:196730 errors:0 dropped:0 overruns:0 frame:0
              TX packets:196730 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:47435454 (47.4 MB)  TX bytes:47435454 (47.4 MB)
    
    virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:185 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:11789 (11.7 KB)  TX bytes:87 (87.0 B)
    
    #查看虚拟网桥
    brctl show
    
    bridge name	bridge id		STP enabled	interfaces
    br0		8000.ac1f6b46a5aa	yes		enp4s0
    virbr0		8000.000000000000	yes
    

    六、安装虚拟机

    CentOS ISO下载地址:https://www.centos.org/download/
    数据目录:/data/kvm/vm
    ISO文件目录:/data/kvm/iso

    # 虚拟磁盘格式支持qcow2格式(磁盘空间动态增长),若要使用这种格式,首先需要创建该格式磁盘
    # Img名称:centos7_01.img
    # 磁盘大小:100G
    qemu-img create -f qcow2 /data/kvm/vm/centos7_01.img 100G
    
    # 创建磁盘格式为qcow2的虚拟机
    virt-install --name=centos7_01 --ram 8192 --vcpus=4 --disk path=/data/kvm/vm/centos7_01.img,format=qcow2,size=100,bus=virtio --accelerate --cdrom=/data/kvm/iso/CentOS-7-x86_64-DVD-2009.iso --vnc --vncport=15900 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole
    
    选项解释:
    	--name:指定虚拟机名称
    	--ram:指定虚拟机内存大小
    	--vcpus:指定虚拟机CPU核心数量,取决于物理机的核心数量 
    	--disk:指定虚拟磁盘,默认磁盘格式是raw
    		path=/data/kvm/vm/centos7_01.img:指定虚拟磁盘名称及存放路径
    		size=7:指定虚拟磁盘容量,单位为G 
    		bus=virtio:指定虚拟磁盘类型
    	--accelerate:加速
    	--cdrom:指定虚拟机镜像的位置、名称
    	--network:指定网络类型
    		bridge:指定桥接网卡
    		model:指定网卡类型
    	--vnc:启用VNC远程管理,一般安装系统都要启用。
    	--vncport:指定VNC监控端口,默认端口为5900,端口不能重复(如安装第二台机器需指定不同端口)。
    	--vnclisten:指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。
    
    # 查看正在运行的虚拟机
    virsh list
    
     Id    Name                           State
    -------------------------------------------
     1     centos7_01                     running
    

    接下来可以用vnc软件远程宿主机进行服务器的安装操作

    示例:

    # 启动vnc服务,首次启动设置密码
    vncserver
    
    # 远程(windows系统需要下载VNC Viewer软件。MAC系统Screen Sharing屏幕共享)
    VNC地址:192.168.0.200:15900
    输入密码登录即可
    

    CentOS安装过程 略...

    KVM 虚拟机日常操作

    # kvm虚拟机默认配置文件位置:/etc/libvirt/qemu 
    #	子目录networks/autostart是配置kvm虚拟机开机自动启动目录
    ls  /etc/libvirt/qemu
    centos7_01.xml   networks
    
    ls /etc/libvirt/qemu/networks
    autostart  default.xml
    
    # 查看虚拟机状态 
    virsh list --all 
    
    # 启动kvm虚拟机
    virsh start <kvm_name>
    
    # 关闭kvm虚拟机
    virsh shutdown <kvm_name>
    # 若不能使用工具关闭linux虚拟机,需要手动在Linux虚拟机中开启电源管理服务
    service acpid start 
    chkconfig acpid on 
    
    # 强制关闭电源
    virsh destory <kvm_name>
    
    # 通过配置文件启动虚拟机
    virsh create /etc/libvirt/qemu/centos7_01.xml 
    
    # 配置开机自启动虚拟机
    virsh autostart <kvm_name>
    cd /etc/libvirt/qemu
    virsh autostart centos7_01
    ls -l
    lrwxrwxrwx 1 root root 31 8月  16 13:52 centos7_01.xml -> /etc/libvirt/qemu/centos7_01.xml
    # 设置开机自动启动后,在/etc/libvirt/qemu目录下会生成autostart目录,在该目录中会有指向虚拟机配置文件的软链接
    
    # 导出虚拟机配置文件 (可通过此种方式备份虚拟机配置文件)
    virsh dumpxml centos7_01 > /tmp/centos7_01_xml
    
    # 删除kvm虚拟机(注意:删除时仅删除虚拟机的配置文件,不会删除磁盘文件 )
    virsh undefine centos7_01
    
    # 重新定义虚拟机配置文件 
    cd  /etc/libvirt/qemu/
    mv /tmp/centos7_01_xml /etc/libvirt/qemu/centos7_01_xml.xml
    virsh define /etc/libvirt/qemu/centos7_01_xml.xml 
    
    # 编辑虚拟机配置文件
    virsh edit <kvm_name>
    
    # 挂起服务器
    virsh suspend <kvm_name>
    
    # 恢复服务器
    virsh resume <kvm_name>
    
    —— Share every essays ——
  • 相关阅读:
    elasticsearch官方文档摸索
    nginx报错upstream sent invalid chunked response while reading upstream
    LRU算法的实现
    linux命令小计
    【阅读笔记】深入java虚拟机-第三部分-虚拟机执行子系统
    spring-session-data-redis导致跨域session失效
    ReentrantLock源码解读
    AbstractQueuedSynchronizer(AQS源码解读)
    Object中wait()、notify()、notifyAll()
    redis(单机模式)分布式锁的实现【已废弃】
  • 原文地址:https://www.cnblogs.com/zongxiang/p/15493861.html
Copyright © 2020-2023  润新知