• kvm虚拟化


    查看cpu是否支持虚拟化

    #如果回显有vmx或者svm,说明硬件支持虚拟化
    grep -E '(svm|vmx)' /proc/cpuinfo
    

    kvm部署与使用

    本次系统环境,戴尔R330,Centos7.6

    [root@kvm-188 shell]# cat /etc/redhat-release
    CentOS Linux release 7.6.1810 (Core) 
    [root@kvm
    -188 shell]# uname -r 3.10.0-957.el7.x86_64
    [root@kvm
    -188 shell]# getenforce Enforcing
    [root@kvm
    -188 shell]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) 6月 14 16:56:18 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... 6月 14 16:56:19 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. 6月 14 17:00:25 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon... 6月 14 17:00:26 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.
    [root@kvm
    -188 shell]# hostname -I 192.168.122.1 10.17.9.188

    安装kvm

    安装依赖包

    yum install libvirt*  virt-*  qemu-kvm* -y

    安装软件说明内容:

    libvirt    # 虚拟机管理
    virt       # 虚拟机安装克隆
    qemu-kvm   # 管理虚拟机磁盘

    启动服务

    [root@kvm ~]# systemctl start libvirtd.service
    [root@kvm ~]# systemctl status libvirtd.servic

    安装VNC软件,连接kvm虚拟机,安装系统使用:

      下载vnc软件方法,tightvnc官网:http://www.tightvnc.com

                            

    创建虚拟机

    [root@kvm-188 shell]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name dev01_201 --memory 16384 --vcpus 4 --disk /data/dev01_201.raw,format=raw,size=500 --cdrom /data/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0,port=5901 --noautoconsole
    
    开始安装......
    正在分配 'dev01_201.raw'                                                                               | 500 GB  00:00:00     
    域安装仍在进行。您可以重新连接
    到控制台以便完成安装进程。

    参数说明:

    --name       虚拟机名字
    --memory     虚拟机内存大小
    --vcpus      cpu个数
    --disk       磁盘文件
    --cdrom      镜像文件
    --graphics vnc,listen=0.0.0.0,port=5901    启动监听地址和端口,vns连接使用

    在启动的同时使用vnc连接,进入系统安装

    KVM虚拟机管理操作

    virsh命令常用参数总结

    基础操作:
    list                 查看虚拟机列表,列出域  
    list --all           查看所有
    start                启动虚拟机    
    shutdown             关闭虚拟机
    
    配置管理操作:
    dumpxml               导出主机配置信息
    undefine              删除主机
    define                导入主机配置
    domrename             对虚拟机进行重命名       
    
    开机自启动管理
    autostart                 虚拟机开机启动
    autostart --disable       取消虚拟机开机启动 

    KVM虚拟机配置文件位置

    [root@kvm ~]# ll /etc/libvirt/qemu/centos7.xml

    修改KVM虚拟机配置的方法

    [root@kvm ~]# virsh edit centos7

    CentOS 7.X 版本console登录

    在KVM(虚拟机)下开机启动并启动服务

    systemctl enable serial-getty@ttyS0.service

    systemctl start serial-getty@ttyS0.service

    在宿主机访问

    virsh console centos7 ## CentOS7是虚拟机名称

    提示:进去之后回车多次即可通过账号密码登录,退出执行Ctrl+]

     

    kvm虚拟机网络管理

    1. 桥接网卡,宿主机执行:

    [root@kvm-188 ~]# virsh iface-bridge em1 br0
    使用附加设备 br0 生成桥接 eth0 失败
    已启动桥接接口 br0

    执行成功后,查看网卡配置:

    [root@kvm-188 shell]# cat /etc/sysconfig/network-scripts/ifcfg-em1 
    DEVICE=em1
    ONBOOT=yes
    BRIDGE="br0"
    
    [root@kvm-188 shell]# cat /etc/sysconfig/network-scripts/ifcfg-br0 
    DEVICE="br0"
    ONBOOT="yes"
    TYPE="Bridge"
    BOOTPROTO="none"
    IPADDR="10.17.9.188"
    NETMASK="255.255.255.0"
    GATEWAY="10.17.9.254"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    DHCPV6C="no"
    STP="on"
    DELAY="0"

    2. 修改虚拟机网络配置

    [root@kvm-188 ~]# virsh edit centos7(虚拟机名字)
    修改前:
        <interface type='network'>
          <mac address='52:54:00:42:bf:bc'/>
          <source network='default'/>
          <model type='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>
    修改后:
        <interface type='bridge'>
          <mac address='52:54:00:42:bf:bc'/>
          <source bridge='br0'/>
          <model type='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>

    3. 虚拟机中执行:

     修改kvm虚拟机网卡配置文件和宿主机网关一样

    TYPE=Ethernet
    BOOTPROTO=static
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=IP地址
    NETMASK=子网掩码
    GATEWAY=网关
    DNS1=dns服务器

    4. 修改完后重启虚拟机

    virsh shutdown centos7  关机
    virsh start  centos7   启动

    克隆虚拟机

    1. 查看虚拟机状态,必须是关闭状态(克隆db01_202)

    [root@kvm-123 ~]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     1     dev01_201                      running
     -     db01_202                       关闭

    2. 开始克隆,执行virsh-clone命令

    [root@kvm-123 ~]# virt-clone  --original  db01_202  --name db01_203 --file /data/db01_203.raw
    WARNING  设置图形设备端口为自动端口,以避免相互冲突。
    正在分配 'db01_203.raw'                                                                     | 200 GB  00:04:40     
    
    成功克隆 'db01_203'

    --name 新克隆虚拟机的名字
    --file 新克隆虚拟机的磁盘文件

    3. 启动虚拟机,修改IP

    [root@kvm-123 ~]# virsh start db01_203 
    域 db01_203 已开始
    
    [root@kvm-123 ~]# virsh console db01_203
    连接到域 db01_203
    换码符为 ^]     #  会卡在这里,按回车登陆

    删除虚拟机

    查看所有虚拟机

    [root@kvm-123 ~]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     1     db01_203                       running
     2     db01_202                       running
     3     dev01_201                      running
     -     git_201                        关闭
     -     moban_200                      关闭

    删除git_201,只是删除了虚拟机的配置文件

    虚拟机运行中,可以强制停止
    [root@kvm-123 ~]# virsh destroy git_201
    域 git_201 被删除
    
    # 删除虚拟机配置文件
    [root@kvm-123 ~]# virsh undefine git_201
    域 git_201 已经被取消定义
    
    
    [root@kvm-123 ~]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     1     db01_203                       running
     2     db01_202                       running
     3     dev01_201                      running
     -     moban_200                      关闭

    删除磁盘文件,和日志文件

    # 查找所有相关文件
    find / -name "*git_200*" -type f
    
    # 删除磁盘文件和日志文件
    rm /data/git_200.raw -f
    rm /var/log/libvirt/qemu/git_200.log -f

    调整磁盘大小

    [root@kvm-233 data]# ll -h
    总用量 813G
    -rwxr-xr-x. 1 qemu qemu      4.3G 6月  14 17:20 CentOS-7-x86_64-DVD-1810.iso
    -rw-------. 1 qemu qemu      200G 11月  4 22:01 db01_202.raw
    -rw-------. 1 qemu qemu      200G 11月  4 22:01 db01_203.raw
    -rw-------. 1 qemu qemu      500G 11月  4 22:01 dev01_201.raw
    -rw-------  1 qemu qemu      500G 11月  4 22:01 git_201.raw
    drwxr-xr-x  5 root root        46 10月 31 11:44 logs
    -rw-------  1 root root      400G 11月  4 22:01 moban.raw
    drwxr-xr-x  7 root uploadcdn   80 10月 24 21:21 webroot
    -rw-------  1 qemu qemu      500G 11月  4 22:01 wiki_205.raw

    # 调整磁盘大小 [root@kvm
    -233 data]# qemu-img resize moban.raw -100G Image resized. [root@kvm-233 data]# qemu-img resize moban.raw -100G Image resized. [root@kvm-233 data]# ll -h 总用量 812G -rwxr-xr-x. 1 qemu qemu 4.3G 6月 14 17:20 CentOS-7-x86_64-DVD-1810.iso -rw-------. 1 qemu qemu 200G 11月 4 22:01 db01_202.raw -rw-------. 1 qemu qemu 200G 11月 4 22:01 db01_203.raw -rw-------. 1 qemu qemu 500G 11月 4 22:02 dev01_201.raw -rw------- 1 qemu qemu 500G 11月 4 22:02 git_201.raw drwxr-xr-x 5 root root 46 10月 31 11:44 logs -rw------- 1 root root 200G 11月 4 22:02 moban.raw drwxr-xr-x 7 root uploadcdn 80 10月 24 21:21 webroot -rw------- 1 qemu qemu 500G 11月 4 22:02 wiki_205.raw
  • 相关阅读:
    (一)关键字
    何时使用或何时不使用malloc函数?学数据结构有感
    typedef int a[10]; 怎么理解?
    Java的向上转型和向下转型
    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException 异常解决方法
    java.lang.IllegalArgumentException: Property 'dataSource' is required 的解决
    哈希表
    python之创建虚拟环境
    idea2020.1.1踩坑:找不到程序包和符号
    Mysql使用过程中的问题及解决方案
  • 原文地址:https://www.cnblogs.com/root0/p/11025301.html
Copyright © 2020-2023  润新知