zoukankan      html  css  js  c++  java
  • KVM虚拟化

    想要VM虚拟机支持KVM需要设置

    启动进入系统查看是否支持虚拟化(vmx是intel的cpu svm是AMD)

     查看kvm有哪些包

    安装

    yum -y install qemu-kvm qemu-kvm-tools libvirt

    启动libvirtd(用来管理kvm虚拟机的)

    systemctl start libvirtd

    systemctl enable libvirtd

    生成一个桥接网卡

    有dns和dhcp的功能

    创建一个镜像

    qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G

    安装virt-install(用于虚拟机安装)

    yum -y install virt-install

    安装(镜像先拷贝到目录/opt下)

    virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 2048 --cdrom=/opt/CentOS-7.0-1406-x86_64-DVD.iso --disk path=/opt/CentOS-7-x86_64.raw network --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

    下载

     Tightvnc连接默认使用5900端口 需要快速连接

    列出那些虚拟机

    virsh list --all

    启动虚拟机

    virsh start 虚拟机名称

    彻底删除虚拟机

    1, 删除虚拟机   virsh destroy +域名

    2,解除标记     virsh undefine +域名

    3,删除虚拟机文件  

    虚拟机信息在以下目录

    /etc/libvirt/qemu

    cat CentOS-7-x86_64.xml

    virsh重要命令

    导出xml

    virsh dumpxml  CentOS-7-x86_64 >backup.xml

    删除虚拟机

    virsh undefine

    从备份中恢复

    virsh define backup.xml

    暂停

    virsh suspend

    恢复

    virsh resume

    cpu内存动态扩容

    编辑xml文件(不能vim直接修改)

    virsh edit CentOS-7-x86_64

    改成当前是1最大是4

    需要重启

    如果定义的是auto的可以使用以下命令生效

    virsh setvcpus CentOS-7-x86_64 2 --live

    修改内存

     virsh qemu-monitor-command CentOS-7-x86_64  --hmp --cmd balloon 512

    存储也可以扩容,但是不建议扩展如果硬盘不够最好是直接加一块新硬盘即可。

    kvm磁盘和网络管理

    qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的 raw 格式的镜像相比,有以下特性:

    1. 更小的空间占用,即使文件系统不支持空洞(holes);
    2. 支持写时拷贝(COW, copy-on-write),镜像文件只反映底层磁盘的变化;
    3. 支持快照(snapshot),镜像文件能够包含多个快照的历史;
    4. 可选择基于 zlib 的压缩方式
    5. 可以选择 AES 加密

      

    qcow2 镜像可以用来保存另一个镜像文件的变化,它并不去修改原始镜像文件,只记录与原始镜像文件的不同即可,这种镜像文件就叫做 copy-on-write 镜像。虽然是一个单独的文件,但它的大部分的数据都来自原始镜像,只有跟原始镜像文件相比有变化的 cluster 才会被记录下来。

    这很容易去实现,在头部信息中记录原始文件路径即可。当需要从一个 copy-on-write 镜像文件中读取一个 cluster 的时候,首先检查这块区域是否已经在该镜像文件中被分配,如果没有就从原始文件读取

    查看虚拟机文件大小

    qemu-img info CentOS-7-x86_64.raw 

    raw转换成qcow2

    qemu-img convert -f raw -O qcow2 CentOS-7-x86_64.raw test.qcow2

    qcow2用多少占用多少

    PS:qcow2是以cluster为单位的

    kvm的网络

    brctl show

    默认虚拟机使用nat转换

    生产可以使用桥接物理网卡

    创建一个桥接网卡

    把新建的和物理网卡桥接

    brctl addif br0 eth0

    PS:网卡会断,不能使用远程的主机进行这样的操作需要使用本地VM

    删除物理网卡的ip

    ip addr del dev eth0 172.16.30.60/24

    开启

    ifconfig br0 172.16.30.60/24 up

     还无法上网

    添加网关

    route add default gw 172.16.30.1

    PS:桥接网卡有地址了,eth0物理网卡就没有地址了,生成要做成一个脚本否则容易断了网络

    虚拟机无法上网了

    编辑

    virsh edit CentOS-7-x86_64

    修改两个地方

    重启虚拟机

    virsh shudown  CentOS-7-x86_64

    viesh start  CentOS-7-x86_64

    使用vnc连接

    vi /ect/sysconfig/network-scripts/ifccfg-eth0

    改成静态的和物理网卡同一个网段

    重启network虚拟机就有网络了

    kvm优化

    先找到进程号

    kvm只在cpu 0上面调度 性能能提供不到10%左右

    内存优化

    需要设置内存EPT技术在BIOS里面开通 加快内存映射

    I/O优化

    virtio

    I/O调度算法

    ssd硬盘一定要设置成noop

    cfq完全公平的调度(centos6默认的调度算法)

    deadline防止写操作因为不能被读取而饿死,不是ssd硬盘可以不设置

    修改方法

  • 相关阅读:
    基于Diff机制的多个状态合并
    do_mmap解读
    Linux对用户态的动态内存管理
    我的WordPress站点
    使用Bochs学习硬件原理
    inode的若干锚
    Use sed and awk to prettify json
    IO完成端口
    如何使用iText制作中文PDF
    Font and PDF
  • 原文地址:https://www.cnblogs.com/minseo/p/7113619.html
Copyright © 2011-2022 走看看