美文网首页
云计算环境部署

云计算环境部署

作者: 肥四_F4 | 来源:发表于2020-07-28 09:06 被阅读0次

    关闭kvm虚拟机的时候,先备份配置文件,避免关一台少一台(原因:之前就进行了删除配置问价的操作造成的)
    磁盘文件路径: /opt (其实就是放在了镜像文件的路径)
    配置文件路径: /etc/libvirt/qemu (以xml结尾的是配置文件)
    KVM:{Kernel-based Virtual Machine}=全名

    libvirt 作用:虚拟机的管理软件
    libvirt: kvm,xen,qemu,lxc....(了解前三种即可)

    virt virt-install virt-clone 作用:虚拟机的安装工具和克隆工具
    qemu-kvm qemu-img (qcow2,raw)作用:管理虚拟机的虚拟磁盘

    环境要求:

    centos 7.4 7.6 7.8(不要使用7.5)
    vmware 宿主机 kvm虚拟机

    上传一个镜像文件
    镜像地址:
    所有Centos版本的镜像 https://mirror.tuna.tsinghua.edu.cn/centos-vault/
    迷你版 https://mirror.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

    kvmo01地址
    IP:10.0.0.11

    内存4G,cpu开启虚拟化


    image.png

    优化yum源

    curl -o /etc/yum.repos.d/CentOS-Base.repo [http://mirrors.aliyun.com/repo/Centos-7.repo](http://mirrors.aliyun.com/repo/Centos-7.repo)
    

    安装软件包
    yum install libvirt virt-install qemu-kvm -y

    [root@kvm01 ~]# lsmod | grep kvm  
    kvm_intel             183621  3 
    kvm                   586948  1 kvm_intel
    irqbypass              13503  3 kvm
    

    启动服务

    systemctl start libvirtd.service
    systemctl enable libvirtd.service
    systemctl status libvirtd.service
    

    安装虚拟机

    建议虚拟机内存不要低于1024M,否则安装系统特别慢!

    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
    vnc:10.0.0.11:5900
    

    参数介绍

    --virt-type kvm    虚拟化的类型(qemu)
    --os-type=linux    系统类型
    --os-variant rhel7 系统版本
    --name centos7     虚拟机的名字 (必须唯一)
    --memory 1024      虚拟机的内存
    --vcpus 1          虚拟cpu的核数
    --disk /opt/centos2.raw,format=raw,size=10(必须唯一)
    --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso 
    --network network=default   使用默认NAT的网络
    --graphics vnc,listen=0.0.0.0 
    --noautoconsole (可有可无)
    
    image.png
    image.png

    kvm虚拟机的virsh日常管理和配置

    语法格式 virsh+参数+虚拟机名称

    列表list(--all)
    开机start
    关机shutdown(虚拟机有系统)
    拔电源关机destroy
    重启reboot(虚拟机有系统)

    导出配置dumpxml 例子:virsh dumpxml centos7 >centos7-off.xml
    删除undefine 推荐:先destroy,在undefine----> 先关闭,在删除

    导入配置define
    修改配置edit(自带语法检查)

    1)修改虚拟机的名字(虚拟机要处于关机状态)
    备份虚拟机的配置问价
    删除虚拟机
    修改虚拟机的配置文件(修改名字、删除uuid 、删除)
    导入虚拟机

    2)重命名domrename (低版本不支持)
    虚拟机必须先关机,才能修改
    virsh domrename oldboy oldben #将名字oldboy改为oldben

    挂起 suspend (相当于进程暂停了)
    恢复 resume
    查询vnc端口号 vncdisplay
    启动一个虚拟机,启动一个进程,这个进程就会监听一个端口(从5900开始) vnc端口是抢占式的

    kvm虚拟机开机启动
    kvm运行业务程序
    开机启动autostart,前提:systemctl enable libvirtd
    命令: virsh autostart oldben
    取消开机启动autostart --disable 或者删除软连接(路径:/etc/libvirt/qemu/autostart)

    用VNC连接时地址:端口号
    控制虚拟机,需要vnc客户端软件,不能复制粘贴,需要网络直连
    10.0.0.100:5900

    用console连接时,控制虚拟机,不需要vnc客户端软件,不需要网络直连
    先查虚拟机的ip地址
    在宿主机上用ssh 连接虚拟机

    查看在vmware 还是 kvm 虚拟机命令 lscpu

    [root@oldben ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"   #在虚拟机上进行内核修改
    [root@oldben ~]# reboot
    [root@kvm01 autostart]# virsh console oldben  #在宿主机上连接虚拟机
    ctrl + ] 断开 
    
    

    磁盘只扩不缩,缩容会丢失数据

    磁盘转换

    raw: 俗称裸格式,占用空间比较大,不支持快照功能,不方便传输 ,读写性能较好
    qcow2: qcow(copy on write)占用空间小,支持快照,性能比raw差一点,方便传输

    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
    
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/oldboy.qcow2,format=qcow2,size=10 --cdrom /data/CentOS-7.2-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
    

    磁盘工具的常用命令
    qemu -img info,create,resize,convert

    查看虚拟磁盘信息
    qemu-img info test.qcow2

    创建一块qcow2格式的虚拟硬盘:
    qemu-img create -f qcow2 test.qcow2 2G

    调整磁盘磁盘容量
    qemu-img resize test.qcow2 +20G

    raw转qcow2:
    命令: qemu-img convert -f raw -O qcow2 oldboy.raw oldboy.qcow2
    -c 压缩

    virsh edit web01:

    <disk type='file' device='disk'>
    <driver name='qemu' type='qcow2'/>
    <source file='/data/centos2.qcow2'/>
    <target dev='vda' bus='virtio'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
    virsh destroy web01
    virsh start web01

    快照管理

    将raw格式切换为qcow2格式,本来的raw格式不会丢失
    [root@kvm01 opt]#  qemu-img convert -f raw -O qcow2 /opt/centos2.raw /opt/centos2.qcow2    
    

    然后修改配置文件

    [root@kvm01 opt]# virsh edit oldben
    <driver name='qemu' type='qcow2'/>
    <source file='/opt/centos2.qcow2'/>
    [root@kvm01 opt]# virsh destroy oldben
    [root@kvm01 opt]# virsh start oldben 
    
    创建快照virsh snapshot-create-as 虚拟机名字 --name 快照名字
    查看快照virsh snapshot-list 虚拟机名字  = qemu-img info /opt/oldben.raw
       
    还原快照virsh snapshot-revert 虚拟机名字 --snapshotname 快照名字
    删除快照virsh snapshot-delete 虚拟机名字 --snapshotname 快照名字
    

    raw不支持做快照,qcow2支持快照,并且快照就保存在qcow2的磁盘文件中

    kvm虚拟机克隆

    1:完整克隆

    自动挡:

    virt-clone --auto-clone -o web01 -n web02 (完整克隆)
    手动挡:

    qemu-img convert -f qcow2 -O qcow2 -c web01.qcow2 web03.qcow2
    virsh dumpxml web01 >web02.xml
    vim web02.xml
    #修改虚拟机的名字
    #删除虚拟机uuid
    #删除mac地址mac add
    #修改磁盘路径disk
    virsh define web02.xml 
    virsh start web02
    

    2:链接克隆

    a:生成虚拟机磁盘文件 qemu-img create -f qcow2 -b web03.qcow2 web04.qcow2
    
    b:生成虚拟机的配置文件
    virsh dumpxml web01 >web03.xml
    vim web03.xml
    #修改虚拟机的名字
    <name>web03</name>
    #删除虚拟机uuid
    <uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid>
    #删除mac地址
    <mac address='52:54:00:4e:5b:89'/>
    #修改磁盘路径
    <source file='/opt/web03.qcow2'/>
    
    c:导入虚拟机并进行启动测试
    
    virsh define web03.xml 
    virsh start web03
    
    

    全自动链接克隆脚本:

    [root@kvm01 scripts]# cat link_clone.sh 
    #!/bin/bash
    old_vm=$1
    new_vm=$2
    #a:生成虚拟机磁盘文件
    old_disk=`virsh dumpxml $old_vm|grep "<source file"|awk -F"'" '{print $2}'`
    disk_tmp=`dirname $old_disk`
    qemu-img create -f qcow2 -b $old_disk  ${disk_tmp}/${new_vm}.qcow2
    #b:生成虚拟机的配置文件
    virsh dumpxml $old_vm >/tmp/${new_vm}.xml
    #修改虚拟机的名字
    sed -ri "s#(<name>)(.*)(</name>)#\1${new_vm}\3#g" /tmp/${new_vm}.xml
    #删除虚拟机uuid
    sed -i '/<uuid>/d' /tmp/${new_vm}.xml
    #删除mac地址
    sed -i '/<mac address/d' /tmp/${new_vm}.xml
    #修改磁盘路径
    sed -ri "s#(<source file=')(.*)('/>)#\1${disk_tmp}/${new_vm}.qcow2\3#g" /tmp/${new_vm}.xml
    #c:导入虚拟机并进行启动测试
    virsh define /tmp/${new_vm}.xml
    virsh start ${new_vm}
    

    相关文章

      网友评论

          本文标题:云计算环境部署

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