美文网首页@IT·互联网
云端技术驾驭DAY01——云计算底层技术奥秘、磁盘技术揭秘、虚拟

云端技术驾驭DAY01——云计算底层技术奥秘、磁盘技术揭秘、虚拟

作者: 川川野马 | 来源:发表于2024-01-28 17:35 被阅读0次

    云计算时代的运维艺术

    云计算底层技术奥秘

    虚拟化技术介绍

    常见虚拟化技术
    系列 PC/服务器版代表
    VMware VMware Workstation、vSphere
    Microsoft VirtualPC、Hyper-V
    RedHat KVM、RHEV
    Citrix Xen
    Oracle Oracle、VM VirtualBox
    虚拟化与云计算的关系
    • 虚拟化是什么?
      虚拟化是一种技术,就是将不可拆分的实体资源变成可以自由划分的逻辑资源,从而实现资源的整合、隔离、再分配,运计算就是利用了虚拟化技术的这个特点。
    • 云计算是什么?
      云计算是一种服务模式(IAAS),其思想就是把各种资源整合起来,然后租给用户,其中的资源包括CPU、内存、存储、网络和其它基本的计算资源。通常我们通过虚拟化手段把这些资源分隔打包提供给用户使用。

    虚拟化平台安装、虚拟化网络

    创建Linux虚拟机
    • 一、验证宿主机是否支持虚拟化
    [root@ecs ~]# grep -Po "vmx|svm" /proc/cpuinfo   // 检查 CPU 是否支持 Intel 的虚拟化技术
    vmx
    ……
    
    [root@ecs ~]# lsmod | grep kvm   // 查看内核模块
    kvm_intel             389120  0
    kvm                   958464  1 kvm_intel
    irqbypass              16384  1 kvm
    
    • 二、安装Linux qemu-kvm虚拟化平台
    [root@ecs ~]# dnf -y install \
    > qemu-kvm \   // 虚拟化仿真程序
    > libvirt-daemon \   // 核心守护进程
    > libvirt-client \   // 客户端程序
    > libvirt-daemon-driver-qemu \   // QEMU管理模块
    > libvirt-daemon-driver-network \   // 网络管理模块
    > dnsmasq   // 基础服务DHCP、DNS
    
    [root@ecs ~]# systemctl enable libvirtd --now   // 开机自启
    
    [root@ecs ~]# virsh version   // 查看版本
    
    • 三、创建网桥
    [root@ecs ~]# vim /etc/libvirt/qemu/networks/vbr.xml   // 网桥文件(模板来自官网 libvirt.org)
    
    <network>
      <name>vbr</name>
      <forward mode='nat'/>
      <bridge name='vbr' stp='on' delay='0'/>
      <ip address='192.168.100.254' netmask='255.255.255.0'>
        <dhcp>
          <range start='192.168.100.128' end='192.168.100.200'/>
        </dhcp>
      </ip>
    </network>
    
    [root@ecs ~]# virsh net-define /etc/libvirt/qemu/networks/vbr.xml   // 创建网桥
    Network vbr defined from /etc/libvirt/qemu/networks/vbr.xml
    
    [root@ecs ~]# virsh net-autostart vbr   // 设置开机自启动
    Network vbr marked as autostarted
    
    [root@ecs ~]# virsh net-start vbr   // 启动网桥
    Network vbr started
    
    • 四、验证网桥
    [root@ecs ~]# virsh net-list --all   // 验证状态
     Name   State    Autostart   Persistent
    -----------------------------------------
     vbr    active   yes         yes
    
    [root@ecs ~]# ifconfig vbr   // 验证
    
    • 补充:virsh网络管理命令
    命令 解释
    virsh net-list [--all] 列出虚拟网络
    virsh net-start 启动虚拟交换机
    virsh net-destroy 强制停止虚拟交换机
    virsh net-define 根据xml文件创建虚拟网络
    virsh net-undefine 删除一个虚拟网络设备
    virsh net-edit 修改虚拟交换机的配置
    virsh net-autostart 设置开机自启动

    虚拟机管理

    虚拟机原理

    虚拟机的构成
    • 虚拟配置文件(*.xml)
      文件默认路径:/etc/libvirt/qemu/
      用途:定义虚拟机的设备(CPU、内存、网卡等)
    • 存储文件(*.img)
      文件默认路径:/var/lib/libvirt/images/
      用途:仿真虚拟机磁盘,存储所有数据信息

    虚拟机配置管理

    虚拟机磁盘概念
    • 虚拟机磁盘可以使用块设备、逻辑卷设备、文件仿真等
    • 其中文件仿真模式具有易迁移、易扩展、支持多种磁盘格式、配置方便等特点
    • 在文件仿真中被广泛采用的CoW格式具有:
      -- 支持弹性空间
      -- 支持后端盘复用
      -- 支持快照
      -- 支持压缩
    • CoW(Copy On Write)写时拷贝技术
      -- CoW技术使用指针指向原始盘所有块
      -- 若一个块要被改写,首先把数据从原始盘拷贝到前端盘,然后在前端盘进行改写,最后把数据指针指向改写过的数据
      -- 原始盘始终是只读的
    虚拟机磁盘管理
    • qemu-img 是虚拟机的磁盘管理命令,支持的格式有raw、qcow2、vdi、vmdk等
    • qemu-img 命令格式
    qemu-img 子命令 子命令参数 块文件名称 大小
    
    • 常用的子命令
    子命令 解释
    create 创建一个磁盘
    info 查看磁盘信息
    • 创建磁盘
    [root@ecs ~]# qemu-img create -f raw disk1.img 20G   // 创建普通格式磁盘
    Formatting 'disk1.img', fmt=raw size=21474836480
    
    [root@ecs ~]# qemu-img create -f qcow2 disk2.img 20G   // 创建CoW格式磁盘
    Formatting 'disk2.img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=21474836480 lazy_refcounts=off refcount_bits=16
    
    • 创建带后端盘的文件
      下载镜像文件(cirros.qcow2举例)
    [root@ecs ~]# cp cirros.qcow2 /var/lib/libvirt/images/   // 将cirrors.qcow2文件放进/var/lib/libvirt/images/
    
    [root@ecs ~]# cd /var/lib/libvirt/images/   // 进入images目录
    
    [root@ecs images]# qemu-img create -b cirros.qcow2 -F qcow2 -f qcow2 vmhost.img 20G   // -b指定基础映像文件 -F指定输出映像格式 -f指定输入基础映像格式
    Formatting 'vmhost.img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=21474836480 backing_file=cirros.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
    
    [root@ecs images]# qemu-img info vmhost.img   // 查看信息
    image: vmhost.img
    file format: qcow2
    virtual size: 20 GiB (21474836480 bytes)
    disk size: 196 KiB
    cluster_size: 65536
    backing file: cirros.qcow2
    backing file format: qcow2
    Format specific information:
        compat: 1.1
        compression type: zlib
        lazy refcounts: false
        refcount bits: 16
        corrupt: false
        extended l2: false
    
    虚拟机配置文件
    • 虚拟配置文件(*.xml)
      -- 官方模板配置文件:https://libvirt.org/format.html
      -- 文件存放路径:/etc/libvirt/qemu/
    • 模板内容解释
    <domain type='kvm'>   // 虚拟机类型
      <name>#####</name>   // 虚拟机名称
      <memory unit='KB'>1048576</memory>   // 最大内存
      <currentMemory unit='KB'>1048576</currentMemory>   // 当前内存
      <vcpu placement='static'>2</vcpu>   // CPU数量
      <os>
        <type arch='x86_64' machine='pc'>hvm</type>   // 系统引导参数
        <boot dev='hd'/>   // (安装)引导设备
        <bootmenu enable='yes'/>
        <bios useserial='yes'/>
      </os>
      <features>   // 电源管理特性
        <acpi/>
        <apic/>
      </features>
      <cpu mode='host-passthrough'></cpu>   // CPU仿真
      <clock offset='localtime'/>   // 系统时钟
      <on_poweroff>destroy</on_poweroff>   // 模拟硬件按钮
      <on_reboot>restart</on_reboot>
      <on_crash>restart</on_crash>
      <devices>
        <emulator>/usr/libexec/qemu-kvm</emulator>   // 仿真程序
        <disk type='file' device='disk'>   // 文件/磁盘仿真
          <driver name='qemu' type='qcow2'/>   // 文件格式
          <source file='/var/lib/libvirt/images/#####.img'/>
          <target dev='vda' bus='virtio'/>
        </disk>
        <interface type='bridge'>   // 网卡仿真
          <source bridge='vbr'/>   // 连接网桥名称
          <model type='virtio'/>
        </interface>
        <channel type='unix'>   // agent客户端
          <target type='virtio' name='org.qemu.guest_agent.0'/>
        </channel>
        <serial type='pty'></serial>   // 终端类型
        <console type='pty'>
          <target type='serial'/>
        </console>
        <memballoon model='virtio'></memballoon>
      </devices>
    </domain>
    
    • 创建虚拟机配置文件
      -- 虚拟机名称: vmhost
      -- 虚拟机配置: CPU(2核心)内存(1G)
      -- 虚拟机网络:vbr桥接
    [root@ecs ~]# cp node_base.xml /etc/libvirt/qemu/vmhost.xml
    
    [root@ecs ~]# vim /etc/libvirt/qemu/vmhost.xml
    
      1 <domain type='kvm'>
      2   <name>vmhost</name>
      3   <memory unit='KB'>1048576</memory>
      4   <currentMemory unit='KB'>1048576</currentMemory>
      5   <vcpu placement='static'>2</vcpu>
    ... ...
     25       <source file='/var/lib/libvirt/images/vmhost.img'/>
    ... ...
     29       <source bridge='vbr'/>
    
    创建/删除虚拟机
    • 虚拟机管理命令
    命令选项 解释
    virsh list [--all] 列出虚拟机
    virsh start/shutdown 启动/关闭虚拟机
    virsh destroy 强制停止虚拟机
    virsh define/undefine 创建/删除虚拟机
    virsh console 连接虚拟机的 console
    virsh edit 修改虚拟机的配置
    virsh autostart 设置虚拟机自启动
    virsh dominfo 查看虚拟机摘要信息
    virsh domiflist 查看虚拟机网卡信息
    virsh domblklist 查看虚拟机硬盘信息
    • 创建操作
    [root@ecs ~]# virsh define /etc/libvirt/qemu/vmhost.xml   // 不识别xml文件用这条命令,如果已经识别到xml文件则会报错
    error: Failed to define domain from /etc/libvirt/qemu/vmhost.xml
    error: operation failed: domain 'vmhost' already exists with uuid e27e71a7-4fd8-41f1-8544-16f188de734f
    
    [root@ecs ~]# virsh list --all
     Id   Name     State
    -------------------------
     -    vmhost   shut off
    
    [root@ecs ~]# virsh start vmhost
    Domain vmhost started
    
    [root@ecs ~]# virsh console vmhost   // 登陆到虚拟机
    
    • 删除操作
    [root@ecs ~]# virsh undefine vmhost  // 删除xml配置文件
    
    [root@ecs ~]# rm -f /var/lib/libvirt/images/vmhost.img   // 删除镜像文件
    

    公有云概述

    云服务类型

    三大服务模式
    • IaaS:基础设施服务(infrastructure-as-a-service)
      提供基础设施
    • PaaS:平台服务(platform-as-a-service)
      除基础设施外还提供:编程语言,运行环境,技术支持等
    • SaaS:软件服务(software-as-a-service)
      是一种通过internet提供软件的模式
    公有云、私有云、混合云
    • 公有云
      第三方的云供应商,通过互联网为用户提供服务器资源
    • 私有云
      企业或组织的专用云环境。内部使用,不对外提供服务
    • 混合云
      在私有云的基础上,组合一个或多个公有云资源,从而允许在不同云环境之间共享应用和数据的使用方式

    相关文章

      网友评论

        本文标题:云端技术驾驭DAY01——云计算底层技术奥秘、磁盘技术揭秘、虚拟

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