美文网首页挨踢(IT)
day01-云计算入门介绍及KVM安装与使用

day01-云计算入门介绍及KVM安装与使用

作者: 驮着集装箱的鲸鱼 | 来源:发表于2019-07-16 21:16 被阅读0次

    1. 什么是云计算?

    云计算是一种按量付费的模式!它的底层是通过虚拟化技术实现的!
    

    2. 云计算的服务类型

    (1)IAAS:基础设施即服务(只有操作系统)如:ecs云主机
    (2)PAAS:平台即服务(操作系统+需要的环境\服务)如:LNMP环境。除了用虚拟机实现外,还可以用Docker实现。
    (3)SAAS:软件即服务(一套完整的服务),如:cdn,企业邮箱,rds等。需要开发+运维一起实现。
    
    云计算服务类型.jpg

    3. 为什么要用云计算?

    比如一个公司开发一款游戏,这期间需要买服务器、IDC机房托管、带宽费用等,加起来也是一笔不菲的费用了。
    而购买云主机,大大节约了经济成本,还防止了项目夭折后,服务器资源闲置的情况发生。
    总结下来就是,前期投入小,扩展灵活、风险小!!!
    

    4. 云计算基础-KVM虚拟化配置

    4.0 宿主机配置要求

    系统:
    CentOS7.4或7.6,不要使用7.5,因为有很多BUG。
    软件:
    VMware宿主机上安装运行Kvm虚拟机。
    VMware宿主机内存内存4G+,CPU开启虚拟化,如下图:
    

    4.1 什么是虚拟化?

    虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。
    

    4.2 虚拟化软件的差别

    (1)qemu:qemu 靠软件纯模拟全虚拟化软件,性能特别慢!兼容性特别好!
    (2)xen性能特别好,需要使用专门修改之后的内核,兼容性差!
    (3)KVM(linux) 全虚拟机,它有硬件支持cpu,基于内核,而且不需要 使用专门的内核 centos6 kvm 性能较好,兼容较好。
    

    4.3 安装kvm虚拟化管理工具

    4.3.1 KVM介绍

    KVM全称为:Kernel-base Virtual Machine,基于内核的虚拟机。
    由于我们不能直接去操作内核,所以这里就需要借助“libvirt”这个工具来操作KVM虚拟机,但是首先必须要安装一个操作系统才可以,所以这里又需要使用“virt-install”工具来进行操作系统的安装及磁盘管理工具“qemu-kvm”,下面是安装步骤。
    

    4.3.2 软件安装

    [root@kvm01 ~]# yum install libvirt virt-install qemu-kvm -y
    
    libvirt::虚拟机的管理工具,当libvirt功能越来越完善后,它还支持kvm、xen、qemu、lxc等虚拟化软件。
    virt-install:安装系统工具,这里面还有一个克隆工具“virt-clone”,用于虚拟机的克隆。
    qemu-kvm:磁盘管理工具
    
    --virt-type kvm  虚拟化类型,报错:虚拟化hvm不支持,有可能是虚拟机软件上的cpu虚拟化没开。
    --os-type=linux  操作系统类型
    --os-variant rhel7  操作系统版本
    --name centos7 虚拟机的名字,可以自定义
    --memory 1024 
    
    virsh:libvirt软件包提供
    

    5. 安装一台Kvm虚拟机

    (1)在真实宿主机上安装TightVNC或VNC-Viewer-6.19.325-Windows-64bit
    VNC:远程的桌面管理工具,可以通过它连接到KVM虚拟化的系统。
    (2)启动服务
    [root@kvm01 ~]# systemctl start libvirtd.service 
    [root@kvm01 ~]# systemctl enable libvirtd.service 
    [root@kvm01 ~]# systemctl status libvirtd.service
    

    (4)安装系统前的准备

    上传一个CentOS系统镜像到VMware中,不要放到root目录下,会报错。
    由于大于4G的软件不同通过rz命令传输,所以这里选择WinSCP_5.9.0.6786_Setup软件来传输镜像。
    



    (5)安装系统

    注意:
    建议虚拟机内存不要低于1024M,否则安装系统特别慢! 
    
    [root@kvm01 ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos7.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
    
    Starting install...
    Allocating 'centos7.raw'              |  10 GB  00:00:00     
    Domain installation still in progress. You can reconnect to 
    the console to complete the installation process.
    

    (6)打开VNC客户端软件,安装系统


    (7)安装命令参数详解

    virt-isntall :安装操作系统
    --virt-type kvm:虚拟化的类型(默认类型为qemu)
    --os-type=linux:系统类型
    --os-variant rhel7:系统版本
    --name centos7:虚拟机的名字 
    --memory 1024:虚拟机的内存
    --vcpus 1:虚拟cpu的核数
    --disk /opt/centos2.raw:硬盘文件存放位置及文件名称
    format=raw:硬盘格式(raw、qcow2)
    size=10:硬盘大小,默认单位为GB
    --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso:镜像文件位置
    --network network=default:网络模式,使用默认NAT的网络
    --graphics vnc,listen=0.0.0.0:通过VNC显示输出系统界面
    --noautoconsole:加不加都行
    

    6. KVM虚拟机日常管理和配置(virsh)(VMware宿主机上操作)

    (1)查看启动或挂起的虚拟机
    [root@kvm01 ~]# virsh list 
     Id    Name                           State
    ----------------------------------------------------
     1     centos7                        running
    
    (2)看所有虚拟机
    [root@kvm01 ~]# virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     1     centos7                        running
    
    (3)启动虚拟机
    [root@kvm01 ~]# virsh start centos7 
    Domain centos7 started
    启动后会分配一个端口,默认从5900开始
    
    (4)关闭虚拟机
    正常关闭:  关闭后,vnc会自动断开
    [root@kvm01 ~]# virsh shutdown centos7
    Domain centos7 is being shutdown
    
    暴力(拔电源)关机:当正常关机无效后,才能使用此方法,有可能会造成数据丢失。
    [root@kvm01 ~]# virsh destroy centos7
    Domain centos7 destroyed
    
    (5)重启
    当系统处于开机运行状态,才能使用重启命令
    [root@kvm01 ~]# virsh reboot centos7 
    Domain centos7 is being rebooted
    
    (6)导出(备份)配置文件,文件为xml格式
    virsh dumpxml centos7 打印到屏幕
    [root@kvm01 ~]# virsh dumpxml centos7 > cetos7.xml #重定向到文件
    [root@kvm01 ~]# ls
    cetos7.xml
    
    (7)删除配置文件(虚拟机要处于关机状态,如果是开机状态下删除的,就必须在开机状态下恢复)
    [root@kvm01 ~]# virsh undefine centos7
    
    
    (8)导入文件(恢复)
    导入的虚拟机配置文件会在/etc/libvirt/qemu目录下生成一个配置文件,这个目录默认不存在,第一次导入操作时自动生成。
    [root@kvm01 ~]# virsh define cetos7.xml 
    Domain centos7 defined from cetos7.xml
    
    (9)恢复被删除的配置文件
    注意:要有磁盘文件及配置文件
    [root@kvm01 ~]# virsh define cetos7.xml 
    Domain centos7 defined from cetos7.xml
    
    
    (10)查看进程
    [root@kvm01 ~]# ps -ef | grep qemu
    内容省略……
    
    (11)更改虚拟机配置文件(edit,自带语法检测)
    [root@kvm01 ~]# virsh edit centos7
    注意:不能直接用vim或vi编辑,直接编辑不带语法检查
    
    (12)打印配置文件的某一行
    [root@kvm01 ~]# virsh dumpxml centos7 | grep raw
          <driver name='qemu' type='raw'/>
          <source file='/opt/centos7.raw'/>
    
    (13)重命名虚拟机
    domrename(低版本不支持)
    注意:改名前先关机,开机状态下无法改名
    [root@kvm01 ~]# virsh domrename centos7 web-blog
    Domain successfully renamed
    
    (14)挂起虚拟机
    [root@kvm01 ~]# virsh suspend web-blog
    Domain web-blog suspended
    
    (15)恢复挂起虚拟机:
    [root@kvm01 ~]# virsh resume web-blog 
    Domain web-blog resumed
    注意:挂起虚拟机会造成虚拟机与宿主机时间不同步。挂起的虚拟机时间会停止。
    
    (16)查看qemu-kvm端口号:
    [root@kvm01 ~]# netstat -lntup | grep qemu-kvm
    tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      11287/qemu-kvm
    
    [root@kvm01 ~]# virsh vncdisplay web-blog 
    :0
    
    (17)设置kvm虚拟机开启自启动
    [root@kvm01 ~]# virsh autostart web-blog 
    Domain web-blog marked as autostarted
    
    (18)查看开机自启主机列表
    [root@kvm01 ~]# ls /etc/libvirt/qemu
    autostart   有机器设置开机自启后,会在/etc/libvirt/qemu目录下自动生成一个autostart目录,里面存放着开机自启的主机列表,存放的形式是软连接主机名。
    [root@kvm01 /etc/libvirt/qemu/autostart]# ll
    total 0
    lrwxrwxrwx 1 root root 30 Jul 15 23:34 web-blog.xml -> /etc/libvirt/qemu/web-blog.xml
    
    (19)取消开机自启
    [root@kvm01 ~]# virsh autostart --disable web-blog 
    Domain web-blog unmarked as autostarted
    [root@kvm01 ~]# ls /etc/libvirt/qemu/autostart/ 取消开机自启,对应文件也会消失
    

    7. 开启命令行版的控制台(在VMware宿主机上直接登录KVM虚拟化的机器)

    [root@kvm01 ~]# virsh console web-blog   #console要配置后才能用
    Connected to domain web-blog
    Escape character is ^]  #没有配置的状态显示,使用Ctrl+]退出
    
    配置console(更改内核参数)
    [root@kvm01 ~]# ssh root@192.168.122.141
    Are you sure you want to continue connecting (yes/no)? yes
    root@192.168.122.141's password: 
    Last login: Mon Jul 15 23:46:09 2019 from gateway
    [root@KVM-centos7 ~]#
    [root@KVM-centos7 ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"  #更改内核参数
    [root@KVM-centos7 ~]# reboot  #重启系统生效
    
    [root@kvm01 ~]# virsh console web-blog 
    Connected to domain web-blog
    Escape character is ^]  #出现这个直接回车
    
    CentOS Linux 7 (Core)
    Kernel 3.10.0-957.el7.x86_64 on an x86_64
    
    KVM-centos7 login: root
    Password: 
    Last login: Mon Jul 15 23:47:58 from gateway
    [root@KVM-centos7 ~]#   #登录成功
    
    查看登录控制台是否成功(KVM虚拟机操作)
    [root@KVM-centos7 ~]# lscpu | grep -i kvm
    Hypervisor vendor:     KVM
    
    退出控制台:
    Ctrl+]
    
    

    8. KVM虚拟的组成

    在kvm中,一个虚拟机由两个文件组成。
    (1)磁盘文件  name.raw或name.qcow2
    (2)配置文件  name.xml
    只要有上述两个文件,就可以迁移到任何一台机器上
    

    9. 连接KVM虚拟机方式

    (1)vnc:远程连接,需要网络正常,但是VNC界面中不支持复制粘贴。
    (2)console:本地连接,当vnc用不了的时候,可以使用这种方法,支持复制粘贴。
    

    10. KVM虚拟机虚拟磁盘格式转换和快照管理

    磁盘格式:
    (1)raw:  裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输,分配50G空间到KVM,就占用宿主机50G空间。
    (2)qcow2:q是qume的缩写,cow  (copy on write)占用空间小,支持快照,性能比raw差一点,方便传输,分配50G给KVM,占用宿主机空间为KVM用多少,分多少。
    
    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
    
    qcow2格式设置:
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/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
    

    11. 虚拟机磁盘工具常用命令(宿主机操作)

    qemu -img 
    info:查看磁盘信息
    create:创建磁盘
    resize:设置磁盘大小
    convert:磁盘格式转换
    -c 压缩创建
    

    (1)查看虚拟磁盘信息

    [root@kvm01 ~]# qemu-img info /opt/centos7.raw 
    image: /opt/centos7.raw
    file format: raw
    virtual size: 10G (10737418240 bytes)
    disk size: 1.3G
    

    (2)创建虚拟磁盘:(默认为.raw格式磁盘)

    [root@kvm01 ~]# qemu-img create /data/cipan_weblog.raw 1G
    Formatting '/data/cipan_weblog.raw', fmt=raw size=1073741824 
    
    [root@kvm01 ~]# ls /data/
    cipan_weblog.raw
    

    (3)创建qcow2格式磁盘

    [root@kvm01 ~]# qemu-img create -f qcow2 /data/oldboy.qcow2 1G
    Formatting '/data/oldboy.qcow2', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 lazy_refcounts=off
    
    [root@kvm01 ~]# ls /data/
    oldboy.qcow2
    

    (4)调整虚拟磁盘容量

    qemu-img resize /data/oldboy.qcow2 1T  路径可以使用相对路径与绝对路径,容量只能加,不能减。
    

    (5)增加容量:只能是raw格式磁盘

    qemu-img create oldboy.raw 5G
    

    (6)磁盘格式转换(转换格式要关机)

    raw格式转qcow2格式:
    qemu-img convert -f raw -O qcow2     oldboy.raw   oldboy.qcow2  
    
    -f : 原格式
    -O:转换的格式
     oldboy.raw :源文件名称
    oldboy.qcow2:转换成的文件名称
    
    更改转换后的磁盘文件:                  
    virsh edit kvm_name:                     
          <driver name='qemu' type='qcow2'/>
          <source file='/data/centos2.qcow2'/>
          <target dev='vda' bus='virtio'/>
    
    启动:
    [root@kvm01 /data]# virsh start web-blog 
    Domain web-blog started                  
    
    查看转换是否成功:
    [root@kvm01 /data]# virsh dumpxml web-blog | grep qcow2
          <driver name='qemu' type='qcow2'/>
          <source file='/opt/centos7.qcow2'/>
    
    新开终端:妈妈再也不怕xshell有下载任务时断开啦
    screen
    
    恢复:
    screen -ls
    screen -r 23403
    

    12. 压缩磁盘文件空间

    (1)tar
    (2)-c 压缩
    [root@kvm01 /data]# qemu-img convert -c -f raw -O qcow2 /opt/centos7.raw /opt/centos7.qcow2
    [root@kvm01 /data]# ll -h /opt/
    total 6.3G
    -rw-r--r-- 1 root root 641M Jul 16 00:31 centos7.qcow2
    -rw------- 1 root root  10G Jul 16 00:28 centos7.raw
    -rw-r--r-- 1 qemu qemu 4.3G Dec  8  2018 CentOS-7-x86_64-DVD-1810.iso
    

    13. 快照管理

    (1)创建快照

    方法1:
    [root@kvm01 ~]# virsh snapshot-create web-blog 
    Domain snapshot 1563208743 created  #UNIX系统随机数为快照名
    
    方法2:
    [root@kvm01 ~]# virsh snapshot-create-as web-blog --name install_ok
    Domain snapshot install_ok created  #install_ok为快照名
    
    方法3:
    [root@kvm01 ~]# virsh snapshot-create-as --name install2_ok web-blog 
    Domain snapshot install2_ok created  #方法3与方法2差不多
    

    (2)查看快照

    [root@kvm01 ~]# virsh snapshot-list web-blog 
     Name                 Creation Time             State
    ------------------------------------------------------------
     1563208743           2019-07-16 00:39:03 +0800 running  #方法1创建
     install2_ok          2019-07-16 00:42:37 +0800 running  #方法3创建
     install_ok           2019-07-16 00:41:07 +0800 running  #方法2创建
    

    (3)还原快照

    virsh snapshot-revert KVM虚拟机名 --snapshotname 快照名
    
    [root@kvm01 ~]# virsh snapshot-revert web-blog --snapshotname install2_ok
    

    (4)删除快照

    [root@kvm01 ~]# virsh snapshot-delete web-blog --snapshotname 1563208743 
    Domain snapshot 1563208743 deleted
    
    [root@kvm01 ~]# virsh snapshot-delete web-blog --snapshotname install2_ok 
    Domain snapshot install2_ok deleted
    

    注意:

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

    作业:

    1. 写一个脚本,备份所有虚拟机的配置文件,配置文件以虚拟机名称命名,并以.xml结尾
    2. 安装一个CentOS6的KVM虚拟机,并实现console控制台登录。
    注意:默认情况下CentOS6,没有SWAP进不了系统。也就是说安装系统是,要分一点swap系统,装好后取消SWAP分区,关闭selinux。安装时就使用qcow2格式并-c压缩,然后试着tar打包,看看能不能再次压缩空间。
    

    相关文章

      网友评论

        本文标题:day01-云计算入门介绍及KVM安装与使用

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