美文网首页
KVM虚拟化服务

KVM虚拟化服务

作者: 全村滴希望 | 来源:发表于2022-08-18 22:38 被阅读0次

    KVM虚拟化服务

    环境准备

    • vmware workstation 15

    • linux系统:CentOS-7.6

      需要将虚拟机处理器中的虚拟化设置勾上,(需要将虚拟机关机才能选择)

    查看CPU是否⽀持VT技术,能够grep出vmx或者svm则表示支持虚拟化

    cat /proc/cpuinfo | grep -E 'vmx|svm'
    

    安装KVM

    yum install *qemu* *virt* librbd1-devel -y
    

    创建qemu-kvm软链接

    ln -sv /usr/libexec/qemu-kvm /usr/bin/
    

    安装libguestfs-tools,用于对kvm虚拟机镜像的管理

    yum -y install libguestfs-tools
    

    启动KVM

    systemctl start libvirtd
    systemctl enable libvirtd
    
    virsh version
    Compiled against library: libvirt 4.5.0
    Using library: libvirt 4.5.0
    Using API: QEMU 4.5.0
    Running hypervisor: QEMU 2.12.0
    

    存储池配置

    创建存储池目录,配置目录权限

    mkdir -p /data/kvm/images
    chown root:root /data/kvm/images/
    chmod 755  /data/kvm/images/
    

    定义一个存储池并绑定目录,建立基于文件夹的存储池、激活、设置开机启动。

    virsh pool-define-as StoragePool --type dir --target /data/kvm/images
    virsh pool-build StoragePool
    virsh pool-start StoragePool
    virsh pool-autostart StoragePool
    

    查看存储池信息

    virsh pool-info StoragePool
    virsh pool-list
    

    网络配置

    先把现在的网卡文件做个备份

    cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
    

    添加br0桥接配置

    vim /etc/sysconfig/network-scripts/ifcfg-br0
    

    添加如下内容,ip,网关根据之前的eth0配置来修改

    TYPE=Bridge
    NAME=br0
    DEVICE=br0
    ONBOOT="yes"
    BOOTPROTO=static
    IPADDR=192.168.76.222
    NETMASK=255.255.240.0
    GATEWAY=192.168.64.1
    DNS1=114.114.114.144
    DNS2=8.8.8.8
    

    eth0网卡修改如下,桥接到br0上。

    # cat  /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE="eth0"
    ONBOOT="yes"
    BRIDGE=br0
    

    重启network服务

    systemctl restart NetworkManager
    

    重启libvirtd服务

    systemctl restart libvirtd
    

    查看网卡信息

    ifconfig
    
    br0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            inet 192.168.76.222  netmask 255.255.240.0  broadcast 192.168.79.255
            ether 82:3a:7d:50:b7:cf  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    开启网桥 stp 树协议,防止环路:

    brctl stp br0 yes
    

    查看网桥:

    brctl show
    bridge name bridge id       STP enabled interfaces
    br0     8000.000000000000   yes
    virbr0      8000.52540084a956   yes     virbr0-nic
    

    创建虚拟机

    上传ISO镜像到服务器

    ll *.iso
    -rwxr-xr-x 1 root root 4712300544 Aug 18 09:08 CentOS-7-x86_64-DVD-2009.iso
    

    创建一个存放虚拟机系统的卷

    qemu-img create -f qcow2 /data/kvm/images/centos7.6x86.qcow 20G
    Formatting '/data/kvm/images/centos7.6x86.qcow', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16
    

    创建虚拟机 执行的命令如下:

    virt-install \
    --name centos7.6x86 \
    --ram 2048 \
    --vcpus 2 \
    --os-type linux \
    --os-variant rhel7 \
    --network bridge=br0,model=virtio \
    --disk /data/kvm/images/centos7.6x86.qcow \
    --location /home/CentOS-7-x86_64-DVD-2009.iso \
    --console pty,target_type=serial \
    --nographics \
    --extra-args 'console=ttyS0,115200n8 serial'
    

    --name # 设置虚拟机名称

    --vcpus # 设置cpu核数

    --ram # 设置ram内存,单位MB

    --os-variant #操作系统版本

    --disk # 安装的磁盘路径

    --cdrom # iso文件路径

    --network # 使用桥接方式

    --force # 禁止命令进入交互式模式,如果有需要回答yes或no选项,则自动回答为yes

    --autostart # 虚拟机自动启动

    --console pty,target_type=serial #console控制通道

    --extra-args #文本输出

    等待命令行界面安装虚拟机

    1)语言设置 2)时区设置 3)安装源 4)软件包选择
    5)系统分区 6)Kdump功能 7)网络配置 8)密码设置
    9)创建用户
    按“q”退出,按“b”开始安装。必须把带“!”号的都设置好才能开始安装。

    稍等一会,显示安装结束,按回车重启系统

    重启后输入用户名和密码就可以登录进新创建的虚拟机

    使用console连接虚拟机的命令(base为安装虚拟机时指定的名字):

    virsh console centos7.6x86
    

    即可进入虚拟机

    克隆虚拟机

    输入下面命令即可进入KVM控制台操作界面

    virsh
    

    或者直接在宿主机执行

    查看所有虚拟机

    virsh list --all
    

    使用console方式连接虚拟机(base为虚拟机名称)

    virsh console centos7.6x86
    

    关机

    virsh shutdown centos7.6x86
    

    开机

    virsh start centos7.6x86
    

    删除虚拟机

    virsh undefine centos7.6x86
    

    克隆虚拟机之前先关闭虚拟机

    virsh shutdown centos7.6x86
    
    virt-clone --connect=qemu:///system -o centos7.6x86 -n centos7.6x86-2 -f /var/lib/libvirt/images/centos7.6x86-2.qcow2
    Allocating 'centos7.6x86-2.qcow2'                           |  20 GB  00:02
    
    Clone 'centos7.6x86-2' created successfully.
    

    -o 参数是模板虚拟机的名称
    -n 是你克隆后的虚拟机名称

    查看虚拟机列表

    virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     -     centos7.6x86                   shut off
     -     centos7.6x86-2                 shut off
    

    设置虚拟机CPU数量

    virsh edit master
    

    注意:不可以直接用 vi 或者 vim 修改配置文件(/etc/libvirt/qemu/master.xml),否则不会生效。

    保存后,再重新开机虚拟机,就可以查看到虚拟机的CPU数量了

    cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
    

    修改虚拟机名称

    关闭虚拟机

    virsh shutdown centos7.6x86
    

    注:如果虚拟机有快照需要先删除快照!

    修改文件名

    [root@kvm-1 qemu]# pwd
    /etc/libvirt/qemu
    [root@kvm-1 qemu]# mv centos7.6x86.xml centos7.xml
    

    修改 name 和 source file 的名字

    修改磁盘文件名,默认路径:/var/lib/libvirt/images/

    [root@kvm-1 qemu]# cd /data/kvm/images
    [root@kvm-1 images]# mv centos7.6x86.qcow centos7.qcow
    

    删除原有的虚拟机

    [root@kvm-1 images]# virsh undefine centos7.6x86
    

    使用现有的文件创建虚拟机,其实就是改名

    [root@kvm-1 qemu]# cd /etc/libvirt/qemu
    [root@kvm-1 qemu]# virsh define centos7.xml
    

    相关文章

      网友评论

          本文标题:KVM虚拟化服务

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