美文网首页
KVM创建和调整虚拟机

KVM创建和调整虚拟机

作者: 逑熙 | 来源:发表于2017-12-25 10:14 被阅读156次

    CentOS6.5 x64上安装KVM功能模块步骤操作都以root用户进行。

    查看是否支持虚拟技术

    cat /proc/cpuinfo | egrep 'vmx|svm'  
    

    关掉networkmanager,因为这个会导致虚拟网卡配置冲突

    service NetworkManager stop
    chkconfig --del NetworkManager
    

    关掉selinux

    修改/etc/selinux/config 文件
    SELINUX=enforcing改为SELINUX=disabled

    启动虚拟化服务并设置开机启动

    service libvirtd start
    chkconfig --level 3 libvirtd on 
    

    检查是否可以使用kvm模块

    lsmod | grep kvm
    kvm_intel              54285  9 
    kvm                   333172  1 kvm_intel
    

    配置桥接网卡(如果只需要NAT可以不做)

    进入网卡配置目录

    cd /etc/sysconfig/network-scripts/
    cp ifcfg-eth0 ifcfg-br0
    

    将eth0的网卡配置和br0的网卡配置修改为如下内容:

    [root@test02 network-scripts]# cat ifcfg-eth0 
    DEVICE=eth0
    HWADDR=BC:EE:7B:9A:5E:91
    TYPE=Ethernet
    UUID=a257d75d-072c-4eac-8daa-b131324fff52
    ONBOOT=yes
    NM_CONTROLLED=yes
    #BOOTPROTO=static
    #IPADDR=192.168.0.12
    #NETMASK=255.255.255.0
    #GATEWAY=192.168.0.1
    DNS1=8.8.8.8
    BRIDGE=br0
    
    [root@test02 network-scripts]# cat ifcfg-br0 
    DEVICE=br0
    HWADDR=BC:EE:7B:9A:5E:91
    UUID=a257d75d-072c-4eac-8daa-b131324fff52
    ONBOOT=yes
    TYPE=Bridge
    NM_CONTROLLED=yes
    BOOTPROTO=static
    IPADDR=192.168.0.12
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.1
    DNS1=8.8.8.8
    

    配置完成后 执行
    service network restart 即可看到效果

    注:
    1.DNS服务器配置随意
    2.br0是虚拟网卡,libvirt是安装这个软件后出来的
    3.实体网卡去掉相关ip属性,如BOOTPROTO IPADDR NETMASK GATEWAY,虚拟网卡将这些属性补充到自己的网卡配置文件里面去,但其他配置一律不变动,相当于br0变成实体网卡了,但只是相当于而已。
    3.虚拟网卡需要将TYPE改为Bridge,证明是使用桥接模式。

    安装虚拟机

    创建虚拟机磁盘镜像文件

    创建磁盘文件不能太小,不然会coredump。
    qcow2格式是kvm支持的标准格式,raw格式为虚拟磁盘文件通用格式。有测试数据表明raw格式的I/O性能略高于qcow2格式,但是在加密,容量,快照方面qcow2格式有优势

    qemu-img create -f qcow2 test.qcow2 20G  //建立qcow2格式磁盘文件
    qemu-img create -f raw test.raw 20G      //建立raw格式磁盘文件
    qemu-img info test.qcow2                 //查看已经创建的虚拟磁盘文件
    

    创建并安装虚拟机

    以下是ubuntu为例,ubuntu 14

    #!/bin/bash
    virt-install --name ubuntu \
    --boot network,cdrom,menu=on \
    --ram 512 --vcpus=1 \
    --os-variant=ubuntuquantal \
    --cdrom=/app/ftp_data/team/public/system_iso/ubuntu-14.04-desktop-i386.iso \
    --disk path=/app/kvm/images/centos.qcow2,size=10,format=qcow2,bus=virtio \
    --bridge=br0,model=virtio --keymap=en-us \
    --vnc --vncport=5910 --vnclisten=0.0.0.0
    

    以下是centos 6.5为例

    cat vir_centos.sh 
    #!/bin/bash
    virt-install --name centos6.5x64 \
    --boot network,cdrom,menu=on \
    --ram 512 --vcpus=1 \
    --os-variant=rhel6 \
    --cdrom=/app/ftp_data/team/public/system_iso/CentOS-6.5-x86_64-bin-DVD1.iso \
    --disk path=/app/ftp_data/team/public/system_iso/another_CentOS-6.5-x86_64-bin-DVD1.iso,device=cdrom \
    --disk path=/app/kvm/images/centos.qcow2,size=10,format=qcow2,bus=virtio \
    --bridge=br0,model=virtio --keymap=en-us \
    --vnc --vncport=5911 --vnclisten=0.0.0.0
    

    查看 os-variant 都有哪些代号

    virsh-install --os-variant list
    osinfo-query os 
    

    注:
    1.disk属性就是指虚拟机使用哪一个磁盘镜像文件作为存储地方,指定刚才创建的镜像文件位置即可,size=10,format=qcow2,bus=virtio分别是指大小,格式(跟镜像格式一致),磁盘总线类型(指Value can be ’ide’, ’scsi’, ’usb’, ’virtio’ or ’xen’,virtio是专门为kvm制定的bus,比较常用),大小需要比镜像文件大小要小,相当于镜像是容器,这个disk是里面的水,水太多就溢出了。
    2.bridge=br0,model=virtio --keymap=en-us分别指网卡使用,网卡模式即驱动模式,和键盘制式,桥接模式都使用br0,而虚拟机需要使用virtio这个驱动才能使用虚拟网卡,这个虚拟网卡驱动在linux下支持很好,在windows下支持一般,键盘制式如果不指定的话会出现键位错乱的情况,一般我们使用英式。
    3.安装centos6.5的时候我使用了2次disk,原因是因为centos6.5的安装盘启动引导安装有问题,会出现无法查找到安装源的情况,所以特地加载多一个iso,一个作为启动使用,一个作为安装源使用,作为安装源使用的时候是使用磁盘格式存储。
    4.vnc相关配置,这个vnc如果配置了的话是virt-tools组件自带的,无需要额外安装vnc服务端,默认绑定127.0.0.1,这里将其改为 0.0.0.0 以便可以通过外部连接,每一台的虚拟机的端口都不能一致,一致就会冲突而造成无法启动安装。
    5.如果无须使用图形界面安装,virt-install默认是支持文本模式安装的。

    qcow2扩容

    安装必备

    sudo apt-get install libguestfs-tools
    

    备份文件

    sudo virsh shutdown vm-gitlab6
    sudo cp /var/lib/libvirt/images/vm-gitlab6/ubuntu-kvm/vm-gitlab6-img1.qcow2 /var/lib/libvirt/images/vm-gitlab6/ubuntu-kvm/vm-gitlab6-img1-back.qcow2  
    

    查看虚机分区大小

    sudo virt-df -h vm-gitlab6-img1.qcow2
    W: kvm binary is deprecated, please use qemu-system-x86_64 instead
    Filesystem                                Size       Used  Available  Use%
    vm-gitlab6-img1.qcow2:/dev/sda1            18G       1.1G        16G    6%
    

    创建新的镜像文件vm-gitlab6-img1-big.qcow2,给40G大小(要求不低于30G)

    sudo qemu-img create -f qcow2 vm-gitlab6-img1-big.qcow2 40G
    

    下面就是关键的虚拟机扩容

    sudo virt-resize --expand /dev/sda1 vm-gitlab6-img1.qcow2 vm-gitlab6-img1-big.qcow2
    

    用vm-gitlab6-img1-big.qcow2替换vm-gitlab6-img1.qcow2即可。
    启动虚拟机

    sudo virsh start vm-gitlab6  
    

    如果一切正常,原来那个vm-gitlab6-img1-back.qcow2就可以删除了。一般不会翻车。翻车就把备份拿出来。

    shrink压缩虚拟机
    如果新虚拟机文件过大,用下面的命令转存一下,就可以缩小虚拟机文件大小(不是分区大小)。

    sudo qemu-img convert -O qcow2 vm-gitlab6-img1-big.qcow2 vm-gitlab6-img1-shrink.qcow2  
    

    最后用vm-gitlab6-img1-shrink.qcow2替换vm-gitlab6-img1.qcow2即可。

    相关文章

      网友评论

          本文标题:KVM创建和调整虚拟机

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