• kvm学习笔记


    #安装kvm
    yum -y install tightvnc-server   #安装vnc服务端,用于vnc客户端远程连接
    yum -y install libvirt virt-install qemu-kvm
    libvirt--->kvm管理服务
    virt-install--->kvm虚拟机安装服务
    qemu-kvm--->kvm磁盘管理服务
    #若安装在虚拟机上,需要在设置里面处理器勾选虚拟化Intel VT-x/EPT 或 AMD-V/RVI(V)选项
    #安装时挂载/dev/cdrom可以加速安装过程
    #注意上传系统文件时,不能用rz命令上传,超过其限制大小,可采用ftp方式

    #启动kvm服务和查看状态
    systemctl start libvirtd.service
    systemctl status libvirtd.service

    #安装虚拟机,根据实际情况特定的虚拟机特定设置
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /root/centos2.raw,format=raw,size=10 --cdrom /root/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
    意思分别为:虚拟化类型,系统类型,系统版本,虚拟机名,内存大小,CPU核数,磁盘地址和名称.raw结尾,磁盘格式,大小,镜像文件位置,网络类型默认,图形界面采用vnc,监听地址,非自动控制台

    #列出存在的虚拟机
    virsh list --all

    #关闭虚拟机
    virsh shutdown centos7

    #重启虚拟机
    virsh reboot centos7

    #开启虚拟机
    virsh start centos7

    #直接关闭电源式关闭
    virsh destroy centos7

    #移除虚拟机
    virsh undefine centos7

    #添加虚拟机
    virsh define centos7.xml

    #保存虚拟机配置文件,用于添加恢复
    virsh dumpxml centos7 >centos7.xml

    #kvm虚拟机配置文件存放位置
    ls /etc/libvirt/qemu

    #编辑kvm虚拟机配置文件
    virsh edit centos7

    #重命名虚拟机(虚拟机需要处于关闭状态)
    virsh domrename centos7 wen

    #设置虚拟机随宿主机自动启动
    virsh autostart centos7

    #设置自动启动虚拟机产生的文件软链接地址
    ll /etc/libvirt/qemu/autostart/

    #关闭虚拟机随宿主机自动启动
    virsh autostart --disable centos7

    #挂起虚拟机
    virsh suspend centos7

    #开启挂起的虚拟机
    virsh resume centos7

    #查看虚拟机端口
    virsh vncdisplay centos7

    #进入虚拟机控制台
    ssh root@ip地址:端口
    virsh console centos7

    #进入虚拟机,设置虚拟机控制台,以显示虚拟机控制台界面,由于vnc有些地方不可用,所以设置控制台,可以直接在宿主机上登陆虚拟机
    cp /etc/grub2.cfg /tmp
    grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
    diff /tmp/grub2.cfg /etc/grub2.cfg     #看出在内核上更改了参数
    reboot

    <+++++++++++++++++++++++++++++++++++++>
    #kvm支持的磁盘格式
    raw:裸格式,占用空间比较大,不支持快照功能,性能较好(顺序存储,性能高),不方便传输(占用大)
    qcow2:cow(copy on write)占用空间小,支持快照,性能比raw差一点(依据于实际内容变化,动态增加,内容存储乱),方便传输(实际内容大小)

    #创建qcow2格式
    qemu-img create -f qcow2 centos2.qcow2 10G

    #磁盘管理常用命令(qemu)
    qemu-img info centos2.raw     #查看磁盘信息
    qemu-img create -f qcow2 centos2.qcow2 10G #创建虚拟磁盘,-f为指定格式类型,如果不指定格式默认为raw格式
    qemu-img resize centos2.raw +5G   #将原有磁盘加上5G
    qemu-img resize centos2.qcow2 10G  #将原有磁盘大小增加至10G
    qemu-img resize centos2.raw -5G   #原有磁盘缩容,qcow2不支持缩容。一般不缩容,缩容可能会导致数据丢失
    qemu-img convert -f raw -O qcow2 centos2.raw centos2.raw.qcow2  #转换磁盘格式,-f指定原格式,-O输出的格式,后面为原文件,转换后文件
    注:当更换磁盘格式时,通过更改虚拟机配置文件,更改磁盘路径和名称,注意上面的格式类型也需要更改,不然无法进入系统。
    <+++++++++++++++++++++++++++++++++++++>

    <+++++++++++++++++++++++++++++++++++++>
    #给虚拟机快照
    virsh snapshot-create centos7     #raw格式不支持快照

    #查看快照
    virsh snapshot-list centos7

    #删除快照
    virsh snapshot-delete centos7 --snapshotname 15462231543    #删除快照需要接上快照名,默认以时间戳命名

    #恢复快照
    virsh snapshot-revert centos7 --snapshotname 15462231543    #需要接上快照名

    #注:虚拟机快照是写实复制,依据于实际大小,快照被删除不会回收大小,若再加快照,总大小不会变,若再加则会增加。
    <++++++++++++++++++++++++++++++++++++>

    #虚拟机克隆
    <+++++++++++++++++++++++++++++>
    ##完整克隆
    ---------------------------------
    #手动克隆
    cp /opt/centos.qcow2 /opt/centos1.qcow2   #拷贝磁盘文件
    virsh dumpxml centos7 >centos7.xml
    编辑配置文件:更改名字--->删除UID--->修改磁盘文件--->删除mac地址
    virsh define centos7.xml
    virsh start centos7
    注:虚拟机若存在快照,会出错
    ----------------------------------
    #命令克隆
    virt-clone -o centos7 -n centos7-1 --auto-clone     #克隆虚拟机-o指定虚拟机,-n新虚拟机名,虚拟机不能为开启状态,开启需要挂起。
    <+++++++++++++++++++++++++++++>
    ##链接克隆
    #方式一:
    qemu-img create -f qcow2 -b centos2.qcow2 centos3.qcow2   #创建一个链接磁盘,-b为centos2.qcow2文件创建链接文件为centos3.qcow2。
    virsh dumpxml centos7 >centos7-1.xml   #复制配置文件,更改配置文件,见上
    virsh define centos7-1.xml
    virsh start centos7-1
    #方式二:
    qemu-img create -f qcow2 -b centos2.qcow2 centos4.qcow2
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 1024 --vcpus 1 --disk /opt/centos4.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole     #--boot为指定启动方式为硬盘启动
    <++++++++++++++++++++++++++++++>

    #kvm桥接
    #创建桥接网卡
    virsh iface-bridge eth0 br0
    #新建桥接模式虚拟机
    qemu-img create -f qcow2 -b centos2.qcow2 centos4.qcow2
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 1024 --vcpus 1 --disk /opt/centos4.qcow2 --boot hd --network  bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
    #更改已存在虚拟机为桥接模式
    更改配置文件:网络部分--->type类型改为bridge --->source源标签改为bridge='br0'--->重启(virsh destroy centos7-2,virsh start centos7-2)
    #取消桥接网卡
    virsh iface-unbridge br0

    ##虚拟机硬盘热备(附加硬盘)
    #附加磁盘
    attach-disk centos7 /opt/centos7-add.qcow2 vdb --subdriver qcow2    #临时附加磁盘,--subdriver为指定驱动格式
    attach-disk centos7 /opt/centos7-add.qcow2 vdb --subdriver qcow2 --config  #永久附加磁盘,写入了配置文件
    #脱离磁盘
    detach-disk centos7 vdb
    #附加磁盘扩容
    ----------------------------------------
    umount #卸载磁盘
    detech-disk centos7 vdb #脱离磁盘
    qemu-img
    xfs_growfs /mnt   #刷新磁盘数据信息,不然df还是现实原大小(分区表未改,可以刷新大小)
    ----------------------------------------
    #原有根分区磁盘扩容
    ----------------------------------------
    virsh destory centos7 #关闭虚拟机
    qemu-img resize centos7.qcow2 20G  #磁盘扩容
    virsh start centos7   #开启虚拟机
    virsh console centos7或者用vnc   #进入虚拟机
    fdisk /dev/vda    #重新分区
    reboot    #重启虚拟机
    xfs_growfs /  #刷新磁盘挂载
    -----------------------------------------

    ##虚拟机热添加网卡
    attach-interface centos7 --type bridge --source br0  #临时附加网卡
    domiflist centos7    #看网络接口mac地址
    domblklist centos7   #看磁盘
    detach-interface centos7 --type bridge --mac mac地址     #脱离网卡
    attach-interface centos7 --type bridge --source br0 --model virtio --config  #永久生效添加网卡,并制定网卡驱动模式virtio

    ##虚拟机热添加内存
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 512,maxmemory=2048 --vcpus 1 --disk /opt/centos4.qcow2 --boot hd --network  bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole   #安装虚拟机,内存为动态内存512M-2048M
    setmem centos7 2048M --live   #临时添加内存,--live在线添加
    setmem centos7 2048M --config  #永久添加内存,最大内存受到安装虚拟机时的内存限制

    ##虚拟机热添加CPU
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /opt/centos4.qcow2 --boot hd --network  bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole   #安装虚拟机,内存为动态内存512M-2048M,cpu为动态1-10
    setvcpus centos7 2  --live  #临时添加cpu
    setvcpus centos7 2 --config #永久添加CPU

    ##已存在虚拟机添加内存CPU
    编辑配置文件,更改内存和CPU模块,注意若CPU和内存没有被调到最大值,配置文件中存在当前内存CPU数,可以通过vimdiff命令对比差异位置,然后进行修改。

    ##kvm虚拟机热迁移
    #命令迁移
     (1)安装nfs用于共享磁盘文件,配置nfs
     (2)拷贝磁盘文件到共享目录
     (3)利用磁盘安装虚拟机:virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-1 --memory 1024 --vcpus 1 --disk /opt/centos4.qcow2 --boot hd --network  bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
     (4)将虚拟机迁移到另一个宿主机:virsh migrate --live centos7 qemu+ssh://10.0.1.251/system --unsafe  #--unsafe为强制可以在不安装环境中迁移,通过ssh协议迁移到10.0.1.251这台主机上。
    #图形界面迁移
     (1)yum -y groups install "GNOME Desktop"  #安装图形化界面
     (2)yum -y install tightvnc-server.x86_64    #安装vnc服务端用于远程连接
              注:vncserver :10  #监听vnc端口5910,可以通过5910端口连接该虚拟机
     (3)yum -y install virt-manager    #安装kvm图形化管理工具
     (4)yum -y install openssh-askpass  #安装ssh用于迁移的ssh连接
     (5)利用vnc连接虚拟机,找到kvm管理工具,进行图形化操作迁移

    #将VMware格式或ESXI虚拟机转换为kvm虚拟机格式,实现虚拟机迁移
     (1)导出虚拟机文件
     (2)virt-v2v -i ova centos-dev-test01-v2v.ova -o local -os /opt/test -of qcow2  #-i指定文件格式,后面为文件名,-o输出文件到local本地,-os指定存放路径,-of指定转换后的格式
     (3)导入磁盘文件通过virt-install,或者更改配置文件,导入重启
    注:virt-v2v工具默认没有安装,需要安装才可以使用

  • 相关阅读:
    java中equals和==的区别 (转)
    LoadRunner常见问题整理(转)
    python 遇到 syntaxerror: non-ascii character '/xd6' in file 我 教你解决 (python问题)(转)
    Linux查看系统性能命令
    android权限大全
    StringTokenizer类的使用
    web_reg_find()查询信息为变量
    Loadrunner执行Java脚本
    LoadRunner调用Java程序—性能测试
    Request Connection: Remote Server @ 192.229.145.200:80
  • 原文地址:https://www.cnblogs.com/hrers/p/11631247.html
Copyright © 2020-2023  润新知