当前位置: 首页 > news >正文

一些关于云电脑与虚拟化东西

前言

好久没有更新了,在进行自我校准。

云计算是什么?

云计算是一种模型,它使得用户能够随时随地、方便地、按需访问共享的可配置计算资源池(例如,网络、服务器、存储、应用程序和服务),这些资源可以快速配置和释放,几乎不需要管理努力或服务提供商的交互。

云特征

  • 按需自助服务

    • 专注于根据用户请求提供IT服务
    • 不需要与云提供商进行人工交互
    • 云计算提供了一种交付计算服务的方式,使得用户设备之外的底层技术几乎不可见
  • 广泛的网络访问

    • 专注于随时随地通过用户选择的设备提供IT服务
  • 资源池化

    • 将计算资源整合到池中以提高利用率
  • 快速弹性

    • 根据底层工作负载的要求和使用特征动态分配和收缩资源
  • 可度量服务

    • 专注于提供可以计量使用量并按需收费的IT服务(如果需要)通过包括订阅、使用定价在内的定价模型 - 服务水平协议(SLA)

云服务模型

  • 软件即服务(SaaS)
  • 平台即服务(PaaS)
  • 基础设施即服务(IaaS)

云部署模型

  • 公有云
  • 私有云
  • 混合云
  • 社区云

虚拟化的历史

虚拟化有多久了?

半个世纪!

当时最成功的计算机S/360大型机系统没有在CPU级别提供虚拟内存和特权分离。当时的主流计算模型是非交互式的、批量作业。

虚拟化的概念直到六十年代末才在CP-40项目中被研究和尝试,该项目最终导致了第一个真正的完整虚拟化支持,出现在1966年的IBM S/370-67中。

时间共享系统开发的主要驱动因素是,批量处理中等待I/O是低效的,程序必须在程序员可以获得失败之前排队等待。

有趣的是,正是时间共享概念的兴起催生了计算机安全问题。

尽管时间共享技术在当时的政治斗争中输给了批处理架构。

在个人电脑世界中,时间共享功能的动力并不显著,因为个人电脑的CPU足够便宜,可以分配给一个人使用。

许多公司推出了提供虚拟化功能的桌面产品。但它们并不十分实用(由于复杂性和低性能)。

然而,互联网的兴起带来了大量服务器农场的出现,运行着像网站这样的应用程序。这些应用程序的负载模式显然与大型机和终端一样是突发性的。
因此,在同一个系统上并行运行许多不同的应用程序再次变得有意义。

大约在2005年,个人电脑CPU供应商引入了支持虚拟化的新CPU指令——英特尔VT-x和AMD-V CPU。

到这一刻,实际的虚拟化已成为可能。

虚拟化到底是什么?

现在,有些人在谈到虚拟化的术语时可能会感到有点困惑。让我们弄清楚是什么:

多线程:执行环境允许每个进程并行运行多个代码流。

多任务:操作系统让每个任务(进程)感觉它是唯一在系统上运行的,并且可以完全访问系统资源(内存,I/O)。对于虚拟机工作的关键硬件组件是MMU。

有趣的事实:在批处理时代,多任务的替代方案是多编程——当任务在I/O上被阻塞时,从CPU上卸下的动态任务队列。

虚拟化:每个操作系统实例都感觉它是在CPU/系统上唯一运行的操作系统,并且可以完全访问系统资源(例如,每个操作系统都认为它有自己的CPU、内存、I/O)。

容器:给一组任务、应用程序的印象,它是在操作系统内唯一运行的。然而,容器共享同一个操作系统内核实例。

与虚拟化主题不直接相关,但并行性可能出现的另一个地方是CPU。随着制造工艺的进步,我们现在有了内置在单个芯片中的多个CPU(多核CPU)。

另一种技巧是虚拟化CPU本身——超线程技术在单个物理CPU之上呈现多个虚拟CPU。

2005年之前虚拟化是如何工作的?

实际上,基于各种技巧,使用英特尔80386+ CPU可以实现虚拟化。比如将管理程序放在环0,虚拟机放在环1,应用程序放在环2。
尽管这从实现角度来看很复杂,有显著的限制,并且运行缓慢。

随着2005年(个人电脑CPU)更好的CPU支持虚拟机管理的出现,虚拟化变得实用。

这已经是云了吗?

一旦虚拟化就位,它如何成为云?

为了提供云服务,我们需要:

  • 管理程序来控制虚拟机的生命周期
  • 更高层次的虚拟化管理基础设施和额外的服务

那么为什么这个东西被称为“管理程序”呢?如果这个术语没有已经被操作系统(监督资源和任务)占用的话,它可能是“监督器”。因此,管理程序监督租户操作系统。

管理程序

管理程序是一个创建和运行虚拟机的软件。

运行一个或多个虚拟机的管理程序的计算机被称为宿主机,每个虚拟机被称为客户机。

存在两种类型的管理程序:

  • 第1类或裸机或本地
  • 第2类或托管管理程序

本地管理程序

这些管理程序直接在宿主的硬件上运行,以控制硬件和管理客户操作系统。

IBM在1960年代开发的第一批管理程序是本地管理程序。现代本地管理程序包括:Xen、Oracle VM Server、Microsoft Hyper-V和VMware ESX/ESXi。

托管管理程序

这些管理程序像其他计算机程序一样在传统的操作系统上运行。客户操作系统作为宿主上的一个进程运行。第2类管理程序将客户操作系统从宿主操作系统中抽象出来,反之亦然。

现代托管管理程序包括:

  • VMware
  • VirtualBox
  • Parallels Desktop
  • QEMU

这两种类型之间的区别并不一定清晰。

Linux的KVM和FreeBSD的bhyve是内核模块,有效地将宿主操作系统转换为第1类管理程序。

同时,由于Linux和FreeBSD仍然是通用操作系统,有其他应用程序竞争虚拟机资源,KVM和bhyve也可以被归类为第2类管理程序。

本地与托管混淆

为了增加更多的混淆,管理程序进一步细分为所谓的全虚拟化和准虚拟化能力。

后者涉及修改客户操作系统以显式调用管理程序的服务,而不是让管理程序模拟硬件接口到客户操作系统。在硬件对虚拟化的支持没有完全实现的时候,准虚拟化更有意义。

为什么它被称为管理程序?

“管理程序”这个术语指的是当你有一个监督操作系统内核的监督器时的情况。从历史上看,操作系统内核也被称为监督器(控制用户应用程序)。因此 - 管理程序。

虚拟化管理

到目前为止,我们已经有了在宿主系统上调用虚拟机的方法。问题是:

  • 除了启动虚拟机,用户可能需要部署操作系统、配置网络、存储等
  • 周围有许多不同的管理程序,用户希望有一个单一的用户界面来管理它们

libvirt项目解决了后一个问题 - 系统提供了一个守护进程来管理客户机,用户面向的CLI工具来控制libvirtd守护进程,以及API让其他程序管理客户机。

oVirt软件在数据中心层面解决了这个问题。它提供了数据中心通常存在的一系列虚拟服务,如:

  • [虚拟]机器是计算节点的基础
  • 存储节点
  • 网络

用户面向的GUI模拟了一个虚拟数据中心,用户可以点击构建他们的计算基础设施。

OpenStack项目提供了与oVirt类似的服务,但在更大的规模、灵活性和可扩展性上。有了OpenStack,人们可以在全球范围内启动成千上万的虚拟机。

OpenStack被设计为一个开放式的网络服务集合,它们相互交互以实现虚拟机生命周期的工作流程。

我们将在本课程中深入研究OpenStack。

云特性

虚拟机可以创建不同的(在它们的“硬件”能力部分)以反映操作系统/应用程序对硬件的要求。

非常容易展开一台新机器并安装操作系统。这可以完全远程完成,无需人工干预。

此外,虚拟机可以被复制(或克隆),从而创建从它们的能力角度以及运行其中的操作系统和应用程序来看完全相同的虚拟计算机。

一旦你的虚拟机处于静止状态,你可以轻松地完全备份它。它可能只是一个应用程序备份,也可以包括整个内存和整个虚拟机的状态。这可以用于运行中的虚拟机的实时迁移。

这为在运行时扩展/缩减计算资源、将虚拟机跨数据中心或地理位置移动奠定了基础。

在虚拟机内运行的操作系统通常看不到宿主计算机的真实硬件。相反,它被呈现一些通用的虚拟硬件,这些硬件映射到真实硬件,因此虚拟硬件的API永远不会改变。这使得从操作系统维护的角度来看更容易,同时也简化了虚拟机从一个硬件迁移到另一个硬件的过程。

如果你在软件开发或测试中,能够复制一个潜在复杂的黄金标准环境以备后用可能是一个非常强大的功能。

相关文章:

一些关于云电脑与虚拟化东西

前言 好久没有更新了,在进行自我校准。 云计算是什么? 云计算是一种模型,它使得用户能够随时随地、方便地、按需访问共享的可配置计算资源池(例如,网络、服务器、存储、应用程序和服务),这些资…...

Java实现图片转pdf

该方法可以选择多个图片是否合并为一个pdf输出&#xff0c;也可以选择图片为横向或者纵向输出&#xff0c;也可以选择pdf页面为A3或者A4 第一步 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version…...

【iOS】使用AFNetworking进行网络请求

文章目录 前言AFNetworkingAFNetworking 的核心组件AKNetworking库的常用方法使用AKNetworking进行网络请求的步骤和代码示例 总结 前言 在暑假写天气预报项目时&#xff0c;我们已经接触到网络请求&#xff0c;当时我们是使用URLSession类&#xff0c;即Foundation框架中用于管…...

ThingsBoard规则链节点:RPC Call Reply节点详解

引言 1. RPC Call Reply 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 设备控制 3.2 状态查询 3.3 命令执行 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台&#xff0c;提供了设备管理…...

【AI换装整合包及教程】OOTDiffusion:以AI技术引领的时尚换装革命

在当今数字化快速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正以前所未有的速度改变着我们的生活。从智能家居到自动驾驶&#xff0c;从在线教育到虚拟现实&#xff0c;AI的应用范围正在不断扩展。而在时尚领域&#xff0c;一款名为OOTDiffusion&#xff0…...

排序算法详细总结

算法 定义&#xff1a;算法是解决特定问题的明确步骤集合。算法的效率通常用时间复杂度和空间复杂度来衡量。 排序算法 定义&#xff1a;排序算法是计算机科学中用于对元素序列进行排序的一系列算法。排序算法在各种应用中都非常常见&#xff0c;从简单的数据处理到复杂的数…...

uniapp MD5加密

安装&#xff1a; npm install js-md5 -D 引入&#xff1a; import Md5 from js-md5 需求加密一个对象&#xff0c; login_form: {openId: 123456789,phone: ,scenario: 656677,phoneSessionKey: ,openIdSessionKey: ,timeStamp: , }, //10位时间戳&#xff08;秒&#xff09;…...

提升视觉回归测试体验:Cypress 插件推荐

项目介绍 在现代前端开发中&#xff0c;视觉回归测试是确保用户界面在不同版本之间保持一致性的关键步骤。然而&#xff0c;传统的视觉回归测试工具往往复杂且难以使用。为了解决这一问题&#xff0c;我们推荐一款专为 Cypress 设计的插件&#xff1a;Cypress Plugin Visual Re…...

fastbootd模式刷android固件的方法

1. fastbootd追根溯源 Google在Android 10上正式引入了动态分区机制来提升OTA的可扩展性。动态分区使能后&#xff1a;andorid系统可以在开机阶段动态地进行分区创建、分区销毁、分区大小调整等操作&#xff0c;下游厂商只需要规划好super分区的总大小&#xff0c;其内部的各个…...

基于C#实现Windows后台窗口操作与图像处理技术分析

在Windows编程中&#xff0c;操作后台窗口是一项复杂而有用的技术。它可以用来自动化用户界面测试、应用程序机器人等场景。本文将深入探讨如何在C#中绑定后台窗口、获取后台窗口界面图片&#xff0c;以及在图片中寻找指定图标并获取坐标。本技术文章结合最先进的资料与实践经验…...

戴尔电脑 Bios 如何进入?Dell Bios 进入 Bios 快捷键是什么?

BIOS&#xff08;基本输入输出系统&#xff09;是计算机启动时运行的第一个程序&#xff0c;它负责初始化硬件并加载操作系统。对于戴尔电脑用户来说&#xff0c;有时可能需要进入 BIOS 进行一些特定的设置调整&#xff0c;比如更改启动顺序、调整性能选项或解决硬件兼容性问题…...

数据结构之二叉树——堆 详解(含代码实现)

1.堆 如果有一个关键码的集合 K { &#xff0c; &#xff0c; &#xff0c; … &#xff0c;}&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中&#xff0c;则称为小堆( 或大堆 ) 。将根节点最大的堆叫做最大堆或大根堆&#xff0c;根节点最小的…...

推荐一款面向增材制造的高效设计平台:nTopology

nTopology是一款面向增材制造的高效设计平台&#xff0c;平台预置了大量增材制造常用的设计工具包&#xff0c;工程师通过调用若干个预置工具包、或自主开发定制的工具包&#xff0c;建立一个工作流&#xff0c;实现复杂几何结构的参数化设计。nTopology集合了的强大几何建模和…...

SQL,力扣题目1767,寻找没有被执行的任务对【递归】

一、力扣链接 LeetCode_1767 二、题目描述 表&#xff1a;Tasks ------------------------- | Column Name | Type | ------------------------- | task_id | int | | subtasks_count | int | ------------------------- task_id 具有唯一值的列。 ta…...

JavaScript数据类型- Symbol 详解

文章目录 前言1.唯一性2. 描述3. 作为对象属性键4. 全局注册6. 不可变性7. 隐式转换 前言 Symbol是ES6新增内容&#xff0c;代表创建后独一无二且不可变的数据类型&#xff0c;它主要是为了解决可能出现的全局变量冲突的问题 在JavaScript发展的过程中&#xff0c;其中的ES6带…...

WordPress网站添加嵌入B站视频,自适应屏幕大小,取消自动播放

结合bv号 改成以下嵌入式代码&#xff08;自适应屏幕大小,取消自动播放&#xff09; <iframe style"width: 100%; aspect-ratio: 16/9;" src"//player.bilibili.com/player.html?isOutsidetrue&bvidBV13CSVYREpr&p1&autoplay0" scrolling…...

11.6 校内模拟赛总结

打的很顺的一场 复盘 7:40 开题&#xff0c;看到题目名很interesting T1 看起来很典&#xff0c;中位数显然考虑二分&#xff0c;然后就是最大子段和&#xff1b;T2 构造&#xff1f;一看数据范围这么小&#xff0c;感觉不是很难做&#xff1b;T3 神秘数据结构&#xff1b;T…...

Redis常用的五大数据类型(列表List,集合set)

简介 List 的特点&#xff1a;单键多值。底层实际是个双向链表&#xff0c;对两端的操作性能很高&#xff0c;通过索引下标的操作中间的节点性能会较差。 Redis 列表是简单的字符串列表&#xff0c;按照插入顺序排序。你可以添加一个元素到列表的头部&#xff08;左边&#xff…...

Ubuntu 20.04 部署向量数据库 Milvus + Attu

前言 最开始在自己的办公电脑&#xff08;无显卡的 windows 10 系统&#xff09; 上使用 Docker Desktop 部署了 Milvus 容器&#xff0c;方便的很&#xff0c; 下载 Attu 也很方便&#xff0c;直接就把这个向量数据库通过 Attu 这个图形化界面跑了起来&#xff0c;使用起来感…...

实现数传数据转网口(以太网)和遥控器SBUS信号转串口的功能

为了帮助你实现数传数据转网口&#xff08;以太网&#xff09;和SBUS信号转串口的功能&#xff0c;这里提供一个基本的框架。我们将使用STM32微控制器来完成这些任务。假设你已经具备了STM32的基本开发经验&#xff0c;并且已经安装了相应的开发环境&#xff08;如STM32CubeIDE…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...