当前位置:   article > 正文

云端技术驾驭DAY01——云计算底层技术奥秘、云服务器磁盘技术、虚拟化管理、公有云概述_operation failed: domain 'vm-jy' already exists wi

operation failed: domain 'vm-jy' already exists with uuid 8ef21ece-7e1d-47c2

云计算时代的运维艺术

云计算底层技术奥秘

虚拟化技术介绍

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

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

创建Linux虚拟机
  • 一、验证宿主机是否支持虚拟化
[root@ecs ~]# grep -Po "vmx|svm" /proc/cpuinfo   // 检查 CPU 是否支持 Intel 的虚拟化技术
vmx
……
  • 1
  • 2
  • 3
[root@ecs ~]# lsmod | grep kvm   // 查看内核模块
kvm_intel             389120  0
kvm                   958464  1 kvm_intel
irqbypass              16384  1 kvm
  • 1
  • 2
  • 3
  • 4
  • 二、安装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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
[root@ecs ~]# systemctl enable libvirtd --now   // 开机自启
  • 1
[root@ecs ~]# virsh version   // 查看版本
  • 1
  • 三、创建网桥
[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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
[root@ecs ~]# virsh net-define /etc/libvirt/qemu/networks/vbr.xml   // 创建网桥
Network vbr defined from /etc/libvirt/qemu/networks/vbr.xml
  • 1
  • 2
[root@ecs ~]# virsh net-autostart vbr   // 设置开机自启动
Network vbr marked as autostarted
  • 1
  • 2
[root@ecs ~]# virsh net-start vbr   // 启动网桥
Network vbr started
  • 1
  • 2
  • 四、验证网桥
[root@ecs ~]# virsh net-list --all   // 验证状态
 Name   State    Autostart   Persistent
-----------------------------------------
 vbr    active   yes         yes
  • 1
  • 2
  • 3
  • 4
[root@ecs ~]# ifconfig vbr   // 验证
  • 1
  • 补充: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 子命令 子命令参数 块文件名称 大小
  • 1
  • 常用的子命令
子命令解释
create创建一个磁盘
info查看磁盘信息
  • 创建磁盘
[root@ecs ~]# qemu-img create -f raw disk1.img 20G   // 创建普通格式磁盘
Formatting 'disk1.img', fmt=raw size=21474836480
  • 1
  • 2
[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
  • 1
  • 2
  • 创建带后端盘的文件
    下载镜像文件(cirros.qcow2举例)
[root@ecs ~]# cp cirros.qcow2 /var/lib/libvirt/images/   // 将cirrors.qcow2文件放进/var/lib/libvirt/images/
  • 1
[root@ecs ~]# cd /var/lib/libvirt/images/   // 进入images目录
  • 1
[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
  • 1
  • 2
[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
虚拟机配置文件
<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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 创建虚拟机配置文件
    – 虚拟机名称: vmhost
    – 虚拟机配置: CPU(2核心)内存(1G)
    – 虚拟机网络:vbr桥接
[root@ecs ~]# cp node_base.xml /etc/libvirt/qemu/vmhost.xml
  • 1
[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'/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
创建/删除虚拟机
  • 虚拟机管理命令
命令选项解释
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
  • 1
  • 2
  • 3
[root@ecs ~]# virsh list --all
 Id   Name     State
-------------------------
 -    vmhost   shut off
  • 1
  • 2
  • 3
  • 4
[root@ecs ~]# virsh start vmhost
Domain vmhost started
  • 1
  • 2
[root@ecs ~]# virsh console vmhost   // 登陆到虚拟机
  • 1
  • 删除操作
[root@ecs ~]# virsh undefine vmhost  // 删除xml配置文件
  • 1
[root@ecs ~]# rm -f /var/lib/libvirt/images/vmhost.img   // 删除镜像文件
  • 1

公有云概述

云服务类型

三大服务模式
  • IaaS:基础设施服务(infrastructure-as-a-service)
    提供基础设施
  • PaaS:平台服务(platform-as-a-service)
    除基础设施外还提供:编程语言,运行环境,技术支持等
  • SaaS:软件服务(software-as-a-service)
    是一种通过internet提供软件的模式
公有云、私有云、混合云
  • 公有云
    第三方的云供应商,通过互联网为用户提供服务器资源
  • 私有云
    企业或组织的专用云环境。内部使用,不对外提供服务
  • 混合云
    在私有云的基础上,组合一个或多个公有云资源,从而允许在不同云环境之间共享应用和数据的使用方式
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/463969
推荐阅读
相关标签
  

闽ICP备14008679号