虚拟化平台、主机

虚拟化技术介绍

一、常见虚拟化技术

二、虚拟化与云计算的关系

虚拟化是什么

虚拟化是一种技术,就是将不可拆分的实体资源变成可以自由划分的逻辑资源,从而实现资源的整合、隔离、在分配,云计算就是利用了虚拟化技术的这个特点

云计算是什么

云计算是一种服务模式,其思想就是把各种资源整合起来,然后租给有需要的用户,其中的资源包括处理器(CPU)、内存、存储、网络和其它基本的计算资源。通常我们通过虚拟化手段把这些资源分割打包提供给用户使用

虚拟化平台安装

一、Linux验证虚拟化支持

[root@server1 ~]# modprobe kvm
[root@server1 ~]# lsmod | grep kvm
kvm_intel             389120  5
kvm                   958464  1 kvm_intel
irqbypass              16384  7 kvm
[root@server1 ~]# egrep -o "vmx|svm" /proc/cpuinfo 

二、虚拟化平台安装

1、实验图例

2、安装服务

KVM/QEMU/LIBVIRTD

---KVM 是Linxu内核模块,它需要CPU指令集的支持,是一种硬件辅助虚拟化技术

---QEMU 是一个虚拟化的仿真工具,通过 ioctl 与内核模块交互完成对硬件的虚拟化支持

---Libvirt 是一个对虚拟化管理的接口和工具,提供客户端程序,例如:virsh、virt-manager

构建虚拟化平台工具软件包:

服务软件包文件
虚拟化仿真程序qemu-kvm
核心守护进程libvirt-daemon
客户端程序libvirt-client
QEMU管理模块libvirt-daemon-driver-qemu
网络管理模块libvirt-daemon-driver-network
DHCP、DNS服务dnsmasq

virsh

提供管理各虚拟机的命令接口

支持交互/非交互模式,查看/创建/停止/关闭 ...

格式:virsh 控制指令 [资源名称] [参数] 

[root@ecs ~]# dnf install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu libvirt-daemon-driver-network dnsmasq
[root@ecs ~]# systemctl enable libvirtd --now
[root@ecs ~]# virsh version 
Compiled against library: libvirt 8.0.0
Using library: libvirt 8.0.0
Using API: QEMU 8.0.0
Running hypervisor: QEMU 6.2.0

3、虚拟化网络

1)创建网桥
命令描述
virsh net-list [--all]列出虚拟网络
virsh net-start启动虚拟交换机
virsh net-destroy强制停止虚拟交换机
virsh net-define根据xml文件创建虚拟网络
virsh net-undefine删除一个虚拟网络设备
virsh net-edit修改虚拟交换机的配置
virsh net-autostart设置开机自启动

网桥文件(模板来自官方网站)

官网手册:https://libvirt.org/docs.html

默认路径:/etc/libvirt/qemu/networks/vbr.xml

[root@ecs ~]# vim /etc/libvirt/qemu/networks/vbr.xml
<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 # 验证

虚拟机管理

一、虚拟机原理

1、虚拟机的构成

1)虚拟配置文件(*.xml)

文件默认路径:/etc/libvirt/qemu/

用途:定义了虚拟机的设备,例如:CPU、内存、网卡等

2)存储文件(*.img)

文件默认路径:/var/lib/libvirt/images/

用途:仿真虚拟机磁盘,存储所有数据信息

3)例如我们要创建 vmhost 虚拟机

创建 vmhost.img

创建 vmhost.xml

2、虚拟机磁盘

虚拟机磁盘可以使用块设备、逻辑卷设备、文件仿真等。

其中文件仿真模式具有易迁移、易扩展、支持多种磁盘格式、配置方便等特点,在云平台上被广泛使用。

在文件仿真中被广泛采用的CoW格式具有:

---支持弹性空间

---支持后端盘复用

---支持快照

---支持压缩

1)Copy On Write 写时拷贝技术

CoW 技术使用指针指向原始盘所有块

若一个块要被改写,首先把数据从原始盘拷贝到前端盘,然后在前端盘进行改写,最后把数据指针指向改写过的数据

原始盘始终是只读的

二、虚拟机配置管理

1、虚拟机磁盘管理

qemu-img 是虚拟机的磁盘管理命令,支持非常多的磁盘格式,例如 raw、qcow2、vdi、vmdk 等等。

1)qemu-img 命令格式

--- qemu-img 子命令 子命令参数 块文件名称 大小

2)常用子命令有:

--- create        创建一个磁盘

--- info        查看磁盘信息

3)创建磁盘
# 创建普通格式磁盘
[root@ecs ~]# qemu-img create -f raw disk1.img 20G
Formatting 'disk1.img', fmt=raw size=21474836480
# 创建 CoW 格式磁盘
[root@ecs ~]# qemu-img create -f qcow2 disk2.img 20G
Formatting 'disk2.img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=21474836480 lazy_refcounts=off refcount_bits=16
# 验证
[root@ecs ~]# ls
disk1.img  disk2.img
[root@ecs ~]# qemu-img info disk1.img 
image: disk1.img
file format: raw
virtual size: 20 GiB (21474836480 bytes)
disk size: 1 MiB
[root@ecs ~]# qemu-img info disk2.img 
image: disk2.img
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 196 KiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
    extended l2: false
[root@ecs ~]# rm -f disk1.img disk2.img 
[root@ecs ~]# ls
[root@ecs ~]# 
4)创建带后端盘的文件
# 上传镜像 cirros.qcow2 到 /var/lib/libvirt/images
[root@ecs ~]# cd /var/lib/libvirt/images/
[root@ecs images]# qemu-img create -b cirros.qcow2 -F qcow2 -f qcow2 vmhost.img 20G
[root@ecs images]# qemu-img info vmhost.img 
image: vmhost.img
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 670 MiB
cluster_size: 65536
backing file: cirros.qcow2
backing file format: qcow2
Format specific information:
......

2、虚拟机配置文件

虚拟配置文件

---文件 /etc/libvirt/qemu/虚拟机名称.xml

虚拟机配置文件太长,记不住怎么办

---虚拟机配置文件可以用模板创建,能够认识修改即可

如何获取虚拟机模板

---官方网站

<domain type='kvm'>    # 虚拟机类型
  <name>vmhost</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/vmhost.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核心) 内存(16G)

---虚拟机网络:vbr

[root@ecs ~]# vim /etc/libvirt/qemu/vmhost.xml
02: <name>vmhost</name>
03: <memory unit='KB'>1024000</memory>
04: <currentMemory unit='KB'>1024000</currentMemory>
05: <vcpu placement='static'>2</vcpu>
25: <source file='/var/lib/libvirt/images/vmhost.img'/>
29: <source bridge='vbr'/>

3、创建虚拟机

1)虚拟机管理命令
命令说明
virsh list [--all]列出虚拟机
virsh start/shutdown启动/关闭虚拟机
virsh destroy强制停止虚拟机
virsh define/undefine创建/删除虚拟机
virsh console连接虚拟机的 console
2)创建 vmhost 虚拟机
[root@ecs ~]# virsh define /etc/libvirt/qemu/vmhost.xml
Domain vmhost defined from /etc/libvirt/qemu/vmhost.xml
[root@ecs ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     vmhost                         shut off
[root@ecs ~]# virsh start vmhost
Domain vmhost started
[root@ecs ~]# virsh console vmhost # 两次回车
Connected to domain vmhost
Escape character is ^]

login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
cirros login: 
退出使用 ctrl + ]
3)虚拟机管理命令(续)
命令说明
virsh edit修改虚拟机的配置
virsh autostart设置虚拟机自启动
virsh dominfo查看虚拟机摘要信息
virsh domiflist查看虚拟机网卡信息
virsh domblklist查看虚拟机硬盘信息

云服务类型

一、三大服务模式

云计算是一种服务模式。

1、IaaS: 基础设施服务,Infrastructure-as-a-service

把各种资源整合起来,然后租给有需要的用户,其中的资源包括处理器(CPU)、内存、存储、网络和其他基本的计算资源。

2、PaaS: 平台服务,Platform-as-a-service

除基础设施外还提供如:编程语言,运行环境,技术支持,甚至针对该平台而进行的应用系统开发、优化等服务,也就是中间件服务。

3、SaaS: 软件服务,Software-as-a-service

是一种通过Internet提供软件的模式,客户端可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务

二、公有云、私有云、混合云

公有云:是第三方的云供应商,通过互联网为广大用户提供的一种按需使用的服务器资源,是一种云基础设施。

私有云:是一个企业或组织的专用云环境。一般在企业内部使用,不对外提供服务,因此它也被视为一种企业云。

混合云:是在私有云的基础上,组合其他公有云资源,从而允许在不同云环境之间共享应用和数据的使用方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/358497.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java框架面试篇

Spring框架 spring Bean线程安全问题 Scope注解 我们可以在bean的类上加Scope注解来声明这个Bean是单个实例还是多个实例。在默认情况下Bean是单个实例的&#xff0c;此时的注解中的属性默认为Scope("singleton")&#xff0c;Scope("prototype")则是一…

BP图片降噪MATLAB代码

BP(Back Propagation)神经网络是一种常用的深度学习模型,可以用于图像降噪。主要步骤包括: 构建BP神经网络模型。包括输入层、隐藏层和输出层。输入层大小与图像大小相同,输出层大小也与输入图像大小相同。隐藏层根据图像复杂度设定。 准备训练数据。使用干净图像作为输入,加…

WIN11 - WSL(Windows Subsystem for Linux) 安装教程

前言 WSL&#xff0c;即Windows Subsystem for Linux&#xff0c;是一种在Windows操作系统上运行Linux二进制文件的兼容层。该层提供了Linux环境和GNU工具&#xff0c;可以在Windows系统上运行Linux应用程序。WSL使得开发人员可以在Windows系统上使用Linux工具和命令行界面&am…

Web自动化—Cypress 测试框架概述

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;薪资嘎嘎涨 Cypress 测试框架概述 1.1 Cypress 默认文件结构 在C…

漏洞原理远程命令执行

漏洞原理远程命令/代码执行 远程命令执行函数&#xff08;Remote Command Execution Function&#xff09;是指在一个网络环境中&#xff0c;通过远程执行命令来控制另一个计算机系统或设备的功能。 远程命令执行函数可以通过网络协议&#xff08;如SSH、Telnet、RPC等&#x…

苹果电脑哪款文件管理器好用?推荐QSpace Pro多窗格文件管理器

还在找好用的Mac文件管理器&#xff1f;苹果电脑哪款文件管理器好用&#xff1f;推荐QSpace Pro多窗格文件管理器&#xff0c;灵活且实用&#xff01; Mac软件下载安装&#xff1a;多窗格文件管理QSpace Pro 首先&#xff0c;我被QSpace的简洁和高效所吸引。它的界面设计非常清…

第九节HarmonyOS 常用基础组件13-TimePicker

1、描述 时间选择组件&#xff0c;根据指定参数创建选择器&#xff0c;支持选择小时以及分钟。默认以24小时的时间区间创建滑动选择器。 2、接口 TimePicker(options?: {selected?: Date}) 3、参数 selected - Date - 设置选中项的时间。默认是系统当前的时间。 4、属性…

代码随想录算法训练营第35天 | 860.柠檬水找零 + 406.根据身高重建队列 + 452.用最少数量的箭引爆气球

今日任务 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球 860.柠檬水找零 - Easy 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的…

Backtrader 文档学习-Bracket Orders

Backtrader 文档学习-Bracket Orders 1. 概述 组合订单类型是一个非常宽泛的订单类别&#xff0c;只要brokder支持的订单类型都可以&#xff0c; 包括(Market, Limit, Close, Stop, StopLimit, StopTrail, StopTrailLimit, OCO)。 该功能用于回测&#xff0c;交互broker Brac…

VBA语言専攻介绍(更新)

VBA语言専攻简介 我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。我这里专注VBA&#xff0c;垂直度非常高&#xff0c;并和多个国际VBA网站&#xff08;英语系和德语系&#xff09;有互动及技术互通。您来到这里&#xff0c;就是进入到了一个绚烂的VBA世界&…

vue-computed 计算属性

一、computed 计算属性 在Vue应用中&#xff0c;在模板中双向绑定一些数据或者表达式&#xff0c;但是表达式如果过长&#xff0c;或者逻辑更为复杂 时&#xff0c;就会变得臃肿甚至难以维护和阅读&#xff0c;例如&#xff1a; <div>写在双括号中的表达式太长了,不利于阅…

【数据结构:顺序表】

文章目录 线性表顺序表1.1 顺序表结构的定义1.2 初始化顺序表1.3 检查顺序表空间1.4 打印1.5 尾插1.6 头插1.7 尾删1.8 头删1.9 查找1.10 指定位置插入1.11 删除指定位置数据1.12 销毁顺序表 数据结构(Data Structure)是计算机存储、组织数据的方式&#xff0c;指相互之间存在一…

​如何在Shopee平台上进行品牌选品

在如今竞争激烈的电商市场上&#xff0c;建立一个成功的品牌对于卖家来说至关重要。Shopee作为一个知名的电商平台&#xff0c;为卖家提供了广阔的销售机会。然而&#xff0c;在Shopee平台上进行品牌选品并不是一件容易的事情。卖家需要遵循一些策略&#xff0c;以确保选品能够…

uniapp如何添加多个表单数组?

目录 一、实现思路 二、实现步骤 ①view部分展示 ②JavaScript 内容 ③css中样式展示 三、效果展示 四、小结 注意事项 总结模板&#xff1a; 一、实现思路 1.在 data 中定义一个数组&#xff0c;用于存储表单项的数据 2.在模板中使用 v-for 指令渲染表单项 3.在 methods 中…

vue实现跳转传参查询

vue实现跳转传参查询&#xff1a; 应用场景&#xff1a;外部链接携参跳转目标页时,避免多次输入查询信息查询 目标需求&#xff1a;登录及非登录状态均可跳转自动查询 避坑指南&#xff1a;token失效时需要重新缓存及路由导航缓存判断 简单实现&#xff1a;缓存信息&#xff0c…

2024年,AI 掀起数据与分析市场的新风暴

2024 年伊始&#xff0c;Kyligence 联合创始人兼 CEO 韩卿在其公司内部的飞书订阅号发表了多篇 Rethink Data & Analytics 的内部信&#xff0c;分享了对数据与分析行业的一些战略思考&#xff0c;尤其是 AI 带来的各种变化和革命&#xff0c;是如何深刻地影响这个行业乃至…

jupyter出现问题ModuleNotFoundError: No module named ‘exceptiongroup‘

今天使用pyg的jupyter环境发现这个环境没法用, 所以只能把这个kernel给重删了然后再装&#xff0c;操作记录如下 查看kernel jupyter kernelspec list注意不是jupyter kernel --list 需要加关键字spec, 删除kernel jupyter kernelspec remove pyg当重新安装这个kernel时可能…

macos Android平台签名证书(.keystore)

一、申请appid的使用说明&#xff08;有appid的请忽略申请appid&#xff09; 创建应用 申请的appid在源码视图填写后会自动生成一个对应的包名 ⚠️注意&#xff1a;申请appid的时候应用名称和项目名称保持一致。 二、 Android如何使用自用证书进行打包 1.找到安装jdk的路径…

【学习笔记】vue3的watch

尚硅谷Vue2.0Vue3.0全套教程丨vuejs从入门到精通 课程 P152节 笔记&#xff1a; 情况一&#xff1a;监视ref所定义的一个响应式数据 情况二&#xff1a;监视ref所定义的多个响应式数据 这两种情况比较简单&#xff0c;正常写就ok&#xff1a; 情况三&#xff1a;监视reactive所…

Qt|QPushButton控件讲解

前提 按钮分为了四种状态&#xff1a;常态、聚焦、按下、禁用 前一段时间更新了MFC框架下CButton的自绘。因为MFC框架下的按钮限制性很高&#xff0c;所以只能由自绘实现各种风格&#xff0c;但是QT框架完美的解决了这个问题&#xff0c;我们只需要了解如何调用&#xff0c;就…