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

华为FusionCompute虚拟化平台

一、华为FusionCompute虚拟化套件介绍

华为FusionCompute虚拟化套件是业界领先的虚拟化解决方案,能够帮助客户带来如下的价值,从而大幅提升数据中心基础设施的效率。

  • 帮助客户提升数据中心基础设施的资源利用率;
  • 帮助客户成倍缩短业务上线周期;
  • 帮助客户成倍降低数据中心能耗;
  • 利用虚拟化基础设施的高可用和强恢复能力,实现业务快速自动化故障恢复,降低数据中心成本和增加系统应用的正常运行时间。

FusionCompute虚拟化套件通过在服务器上部署虚拟化软件,使一台物理服务器可以承担多台服务器的工作。通过整合现有的工作负载并利用剩余的服务器以部署新的应用程序和解决方案,实现较高的整合率。

应用场景:虚拟化场景适用于企业只采用FusionCompute作为统一的操作维护管理平台对整个系统进行操作与维护的应用场景。包含资源监控、资源管理、系统管理等。

  • FusionCompute主要负责硬件资源的虚拟化,以及对虚拟资源、业务资源、用户资源的集中管理。
  • 它采用虚拟计算、虚拟存储、虚拟网络等技术,完成计算资源、存储资源、网络资源的虚拟化。
  • 同时通过统一的接口,对这些虚拟资源进行集中调度和管理,从而降低业务的运行成本,保证系统的安全性和可靠性。

1、FusionCompute产品定位

FusionCompute是云操作系统软件,主要负责硬件资源的虚拟化,以及对虚拟资源、业务资源、用户资源的集中管理。它采用虚拟计算、虚拟存储、虚拟网络等技术,完成计算资源、存储资源、网络资源的虚拟化。

通过统一的接口,对虚拟资源进行集中调度和管理,从而降低业务的运行成本,保证系统的安全性和可靠性,协助运营商和企业构筑安全、绿色、节能的云数据中心能力。

2、FusionCompute在虚拟化套件中位置

  • 云机房:为云数据中心运营所提供的一系列基本配套设施和空间,主要包括供电系统、消防系统、布线系统、制冷系统等。
  • 硬件基础设施层:
    • 硬件资源包括服务器、存储、网络、安全等全面的云计算基础物理设备,支持用户从中小规模到大规模的新建或扩容,可运行从入门级到企业级的各种企业应用。设备类型丰富,可为客户提供灵活的部署选择。
    • 华为分布式块存储(FusionStorage Block)是一种存储与计算高度融合的分布式存储软件,在通用服务器上部署该软件后,可以把所有服务器的本地硬盘组织成一个虚拟存储资源池,提供块存储功能。
  • FusionCompute虚拟化套件:通过在服务器上部署虚拟化软件,将硬件资源虚拟化,从而使一台物理服务器可以承担多台服务器的工作。通过整合现有的工作负载并利用剩余的服务器以部署新的应用程序和解决方案,可以实现较高的整合率。
    • FusionCompute是云操作系统软件,主要负责硬件资源的虚拟化,以及对虚拟资源、业务资源、用户资源的集中管理。它采用虚拟计算、虚拟存储、虚拟网络等技术,完成计算资源、存储资源、网络资源的虚拟化。同时通过统一的接口,对这些虚拟资源进行集中调度和管理,从而降低业务的运行成本,保证系统的安全性和可靠性,协助运营商和企业构筑安全、绿色、节能的云数据中心能力。
    • FusionCompute Pro: 多资源站点统一管理组件,实现不同地域下的多个资源站点统一管理,通过虚拟数据中心(VDC)给不同用户实现资源分域管理能力。
    • eBackup:eBackup是虚拟化备份软件,配合FusionCompute快照功能和CBT(Changed Block Tracking)备份功能实现FusionCompute的虚拟机数据备份方案。
    • UltraVR:容灾业务管理软件,利用底层SAN存储系统提供的异步远程复制特性,提供虚拟机关键数据的数据保护和容灾恢复。

FusionCompute在虚拟化套件中位置

3、FusionCompute产品架构

CNA英文全称:Compute Node Agent,CNA部署在需要虚拟化的服务器上。

VRM英文全称:Virtual Resource Management,VRM可以部署在VM上或者部署在物理服务器上;VRM对外提供网页操作界面给管理维护人员。

FusionCompute产品架构

模块介绍功能
CNACNA(Compute Node Agent),部署在需要虚拟化的服务器上。- 提供虚拟计算功能。
- 管理计算节点上的虚拟机。
- 管理计算节点上的计算、存储、网络资源。
VRMVRM(Virtual Resource Management),可以部署在VM上或者部署在物理服务器上;VRM对外提供网页操作界面给管理维护人员。- 管理集群内的块存储资源。
- 管理集群内的网络资源(IP/VLAN),为虚拟机分配IP地址。
- 管理集群内虚拟机的生命周期以及虚拟机在计算节点上的分布和迁移。
- 管理集群内资源的动态调整。
- 通过对虚拟资源、用户数据的统一管理,对外提供弹性计算、存储、IP等服务。
- 通过提供统一的操作维护管理接口,操作维护人员通过WebUI远程访问FusionCompute对整个系统进行操作维护,包含资源管理、资源监控、资源报表等。

4、FusionCompute产品功能

(1)虚拟化计算

FusionCompute支持将服务器物理资源 抽象 成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,不再受限于物理上的界限,让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理。同时硬件辅助虚拟化技术提升虚拟化效率,增加虚拟机的安全性。

对于最终用户,虚拟机比物理机的优势在于:它可以很快速地发放,很方便地调整配置和组网。对于维护人员来讲,虚拟机复用了硬件,这样硬件更少,加上云平台的自动维护能力,维护成本显著降低。对于系统管理员,可以很直观地知道资源使用的总量及变化趋势,以便决策是否扩容。

(2)虚拟化存储

FusionCompute存储虚拟化技术可以更好地管理虚拟基础架构的存储资源,使系统大幅提升存储资源利用率和灵活性,提高应用的正常运行时间。

FusionCompute支持将SAN设备、计算节点本地硬盘以及华为分布式块存储提供的虚拟存储空间统一管理,以虚拟卷的形式分配给虚拟机使用。

存储设备的能力、接口协议等差异性很大,存储虚拟化技术可以将不同存储设备进行格式化,将各种存储资源转化为统一管理的数据存储资源,可以用来存储虚拟机磁盘、虚拟机配置信息、快照等信息。用户对存储的管理更加同质化。

华为提供基于主机的存储虚拟化功能,用户不需要再关注存储设备的类型和能力。存储虚拟化可以将存储设备进行抽象,以逻辑资源的方式呈现,统一提供全面的存储服务。可以在不同的存储形态,设备类型之间提供统一的功能。

(3)虚拟化网络

FusionCompute支持分布式虚拟交换,可以向虚拟机提供独立的网络平面。像物理交换机一样,不同的网络平面间通过VLAN进行隔离。

分布式交换机的功能类似于普通的物理交换机,每台主机都连接到分布式交换机中。分布式交换机的一端是与虚拟机相连的虚拟端口,另一端是与虚拟机所在主机上的物理以太网适配器相连的上行链路。通过它可以连接主机和虚拟机,实现系统网络互通。另外,分布式交换机在所有关联主机之间作为单个虚拟交换机使用。此功能可使虚拟机在跨主机进行迁移时确保其网络配置保持一致。

FusionCompute虚拟化网络

5、FusionCompute带来的价值

  • 资源共享
    • 虚拟化前,需要3台物理机器运行独立应用,每台物理服务器资源利用率都很低;投资回报率低。
    • 虚拟化后,3个独立应用运行在一台服务器上面,需购置的服务器大大减少;且服务器的资源使用率明显提高;投资回报率高。
  • 分时共享
    • 虚拟化前,由于应用运行于不同服务器上,其中一个应用业务压力大时,另一台业务压力小的服务器富裕的计算资源不能转移给这台服务器;从整体来看,服务器资源使用不均衡,资料利用不合理。
    • 虚拟化后,应用共享一个服务器资源;其中一个应用业务压力大,另外一台压力小的情况下,FusionCompute会协助服务器动态地将资源合理分配给各个应用,不仅能满足业务压力的需求,而且保持服务器资源处于高利用率状态。
  • 高可用
    • 当业务虚拟机所在的主机发生故障或需要人工维护时,FusionCompute能够第一时间检测到异常,并把异常机器上运行的虚拟机在集群中其他正常的主机上面重新启动,保障业务连续性。
    • FusionCompute通过智能算法还能够维持主机间负载的均衡;从而提供整体的可靠性。

FusionCompute带来的价值

通过资源共享和分时共享,虚拟化能够明显提高资源利用率,降低投资成本并提高投资回报率。通过使用和合理配置FusionCompute,可极大提高系统及运营业务的可靠性。

二、FusionCompute部署

安装FusionCompute时,本地PC需要满足一定要求,才能保证正确安装。
软件包可以从http://support.huawei.com/enterprise下载。
产品文档链接:https://support.huawei.com/hedex/hdx.do?docid=EDOC1100215352&lang=zh。

FusionCompute部署

  • BMC平面:主机BMC网口所使用的平面。通过BMC平面可远程访问服务器的BMC系统。
  • 管理平面:管理系统统一管理所有节点,以及节点间内部通信所使用的平面。使用管理平面的IP地址包括:
    • 所有主机的管理IP地址,即主机管理网口使用的IP地址;
    • 管理节点虚拟机的IP地址;
    • 存储设备控制器的IP地址。
  • 存储平面:主机与存储设备的存储单元互通所使用的平面。使用存储平面的IP地址包括:
    • 所有主机的存储IP地址,即主机存储网口使用的IP地址;
    • 存储设备的存储IP地址。
  • 业务平面:用户虚拟机业务数据在网络中使用的平面。

1、FusionCompute部署流程

  • 开始
  • 安装CNA(Compute Node Agent,计算节点代理)
    • 通过PXE方式批量安装主机
    • 通过ISO挂载手动安装单台主机
  • 安装VRM(Virtual Resource Management,虚拟资源管理)
    • 可以使用FusionCompute安装工具虚拟化部署VRM
    • 可以在物理机上挂载ISO方式手动安装VRM,过程同ISO手动安装主机

2、实机部署(略)

三、FusionCompute虚拟化平台管理与使用

FusionCompute是云操作系统软件,主要负责硬件资源的虚拟化,以及对虚拟资源、业务资源、用户资源的集中管理。

1、虚拟化的特点

  • 分区:分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;每个虚拟机可以同时运行一个单独的操作系统(相同或不同的操作系统),使用户能够在一台服务器上运行多个应用程序;每个操作系统只能看到虚拟化层为其提供的“虚拟硬件”(虚拟网卡、CPU、内存等),以使它认为运行在自己的专用服务器上。
  • 隔离:虚拟机是互相隔离的:
    • 一个虚拟机的崩溃或故障(例如,操作系统故障、应用程序崩溃、驱动程序故障,等等)不会影响同一服务器上的其它虚拟机;
    • 一个虚拟机中的病毒、蠕虫等与其它虚拟机相隔离,就像每个虚拟机都位于单独的物理机器上一样;
    • 可以进行资源控制以提供性能隔离:用户可以为每个虚拟机指定最小和最大资源使用量,以确保某个虚拟机不会占用所有的资源而使得同一系统中的其它虚拟机无资源可用;
    • 可以在单一机器上同时运行多个负载/应用程序/操作系统,而不会出现我们刚才讨论传统x86服务器体系结构的局限性时所提到的那些问题(应用程序冲突、DLL 冲突等)。
  • 封装:封装意味着将整个虚拟机(硬件配置、BIOS 配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小组文件中。这样,用户只需复制几个文件就可以随时随地根据需要复制、保存和移动虚拟机。
  • 相对于硬件独立:因为虚拟机运行于虚拟化层之上,所以只能看到虚拟化层提供的虚拟硬件;此虚拟硬件也同样不必考虑物理服务器的情况;这样,虚拟机就可以在任何x86服务器(IBM、Dell、HP等)上运行而无需进行任何修改。这打破了操作系统和硬件以及应用程序和操作系统/硬件之间的约束。

1、计算虚拟化介绍

(1)虚拟机资源管理 - CPU/内存在线调整

虚拟机资源管理 - CPU/内存在线调整
支持主流Linux系统虚拟机在线调整CPU和内存;支持主流Windows系统虚拟机在线调整内存,在线调整CPU后重启生效。

(2)虚拟机资源管理 - CPU QoS
  • QoS:Quality of Service,服务质量,虚拟机的CPU QoS用于保证虚拟机的计算资源分配,最大程度复用资源,降低成本。
  • CPU QoS包含如下三个参数:
    • CPU资源份额:CPU份额定义多个虚拟机在竞争物理CPU资源的时候按比例分配计算资源。
    • CPU资源预留:CPU预留定义了多个虚拟机竞争物理CPU资源的时候分配的最低计算资源。
    • CPU资源限额:控制虚拟机占用物理CPU资源的上限。
  • IT管理员可以对虚拟机设定资源的使用上限,防止非关键应用和恶意用户争抢共享资源。
    • 虚拟机的CPU QoS用于保证虚拟机的计算资源分配,隔离虚拟机间由于业务不同而导致的计算能力相互影响,满足不同业务对虚拟机计算性能的要求,最大程度复用资源,降低成本。
    • 创建虚拟机时,可根据虚拟机预期部署业务对CPU的性能要求而指定相应的CPU QoS。不同的CPU QoS代表了虚拟机不同的计算能力。指定CPU QoS的虚拟机,系统对其CPU的QoS保障,主要体现在计算能力的最低保障和资源分配的优先级。
(3)虚拟机资源管理 - 主机内存超分配

支持虚拟机总配置内存超过物理主机实际运行内存,通过虚拟机之间使用内存气泡、内存交换以及内存共享等技术实现物理内存超规格使用。

  • Host Memory和Guest Memory之间并不是一一对应
  • 可以超额分配内存给VM,例如,物理内存共4 G,但上层三个GuestOS的分配的总内存达到了6 G。
  • 通过内存复用技术实现超分配功能
(4)虚拟机HA

当计算节点上的虚拟机出现故障时,系统自动将故障的虚拟机在正常的计算节点上重新创建,使故障虚拟机快速恢复。

  • 支持主机、虚拟平台、虚拟机内部多种故障场景的检测和虚拟机恢复。
  • 支持集中控制HA和集群自治HA两种机制,可自选。
  • 可设置HA心跳消息的网络平面,降低网络压力。
  • 多种故障判断机制,避免漏判、误判故障。
  • 支持共享存储与本地存储虚拟机HA。
(5)虚拟机资源管理 - 内存复用
  • 内存气泡:系统主动回收虚拟机暂时不用的物理内存,分配给需要复用内存的虚拟机。内存的回收和分配均为系统动态执行,虚拟机上的应用无感知。整个物理服务器上的所有虚拟机使用的分配内存总量不能超过该服务器的物理内存总量。
  • 内存交换:将外部存储虚拟成内存给虚拟机使用,将虚拟机上暂时不用的数据存放到外部存储上。系统需要使用这些数据时,再与预留在内存上的数据进行交换。
  • 内存共享:多台虚拟机共享数据内容相同的内存页。

内存复用

2、存储虚拟化介绍

存储虚拟化是将存储设备抽象为数据存储,虚拟机在数据存储中作为一组文件存储在自己的目录中。

数据存储是逻辑容器,类似于文件系统,它将各个存储设备的特性隐藏起来,并提供一个统一的模型来存储虚拟机文件。

存储虚拟化技术可以更好地管理虚拟基础架构的存储资源,使系统大幅提升存储资源利用率和灵活性。

  • 存储资源:表示物理存储设备,例如IPSAN、FusionStorage、NAS等。
  • 存储设备:表示存储资源中的管理单元,类似LUN、FusionStorage存储池、NAS共享目录等。
  • 数据存储:数据存储表示虚拟化平台中可管理、操作的存储逻辑单元。

FusionCompute存储虚拟化技术定位于构建针对电信业务环境的高竞争力的虚拟化平台,通过对开源KVM进行安全加固、功能扩展、性能优化和可靠性保障,具备如下特点

  • 存储设备兼容性:对于不同的存储设备,包括IPSAN、FCSAN、NAS、本地磁盘。可以做到以文件系统进行屏蔽,统一提供文件级别的业务操作。
  • 丰富的功能:提供了包括精简磁盘、增量快照、存储冷热迁移、链接克隆虚拟机、虚拟机磁盘扩容等众多功能。
  • 业务能力同质化:业务是在虚拟化层进行,基于各种存储设备可以提供相同的能力,对存储设备无特殊要求 。
(1)FusionCompute存储虚拟化架构

FusionCompute存储虚拟化架构如下图所示:存储虚拟化架构

FusionCompute存储虚拟化平台主要由文件系统、磁盘驱动和磁盘工具组成。SAN设备和本地磁盘等块设备连接到服务器上后,经过设备驱动层和通用块层后,对主机呈现一个磁盘设备。

文件系统建立在主机能够访问的存储设备上,创建文件系统的过程就是主机对存储设备执行格式化,在存储设备上写入文件系统的元数据和iNode信息,建立文件到裸设备块的映射,并负责裸设备块的管理,包括空间分配和释放。对于虚拟化来说,文件系统屏蔽了块层的操作,提供了文件级的抽象操作。虚拟机磁盘就是放在文件系统中的文件。

虚拟机磁盘在使用时,需要由磁盘驱动挂载给虚拟机,并通过QEMU管理起来,用户虚拟机的所有读写IO都会由前端驱动截获,转发给QEMU进程,并转换为用户态驱动的读写操作,最终写入磁盘文件中。

虚拟机磁盘中包含了属性信息和数据区域,磁盘工具提供了一系列对虚拟机磁盘的操作,可以解析磁盘文件的文件头,读取或修改磁盘的属性信息,创建磁盘的数据区等操作。

(2)VIMS虚拟集群存储文件系统

VIMS是一种高性能的集群文件系统,使虚拟化技术的应用超出了单个存储系统的限制,可让多个虚拟机共同访问一个整合的集群式存储池,从而显著提高了资源利用率。

VIMS是跨越多个存储服务器实现虚拟化的基础,它可启用存储热迁移、DRS(Storage Dynamic Resource Scheduler)和High Availability等各种服务。

3、FusionCompute磁盘技术

在存储虚拟化中,所有用户存储都是以文件形式呈现,虚拟机磁盘、快照、虚拟机配置都对应一个独立的文件,常见的磁盘文件配置模式分为以下几种:

  • 普通磁盘:立即分配所有空间
  • 普通延迟置零磁盘:立即分配所有空间,写前置零
  • 精简磁盘:写前空间分配,用多少分多少
(1)普通磁盘

普通磁盘创建时大小与虚拟磁盘大小相同,并将文件所有位置填0,占用空间较大,置备时间较长。

  • 普通磁盘立即分配磁盘空间,并将所有空间填0。
  • 该磁盘用于FusionCompute系统中的普通磁盘。
  • 普通磁盘使用普通磁盘技术,创建时会进行全空间分配和置零操作,能够提供最好的性能体验和数据安全性。
  • 适用于对IOPS要求较高的场景。该磁盘创建所需时间会比创建其他类型的磁盘长。
(2)普通延时置零磁盘

普通延迟置零卷创建时大小与虚拟磁盘大小相同,但不会进行填0操作,占用空间较大,置备时间较普通卷短。

  • 该磁盘用于FusionCompute系统中的普通延迟置零磁盘,可以提高存储设备的利用率。
  • 普通延迟置零磁盘创建很快,创建时进行全空间分配,但未进行全置零动作,性能较普通磁盘有所下降。
  • 适用于对发放速度要求高,但对IOPS(Input Output Per Second)要求不高的场景。
(3)精简磁盘

精简磁盘创建时大小为0,精简磁盘创建时含少量元数据信息,大小一般为几十K,创建时间均非常短。随着用户写入数据,精简磁盘的大小与实际占用空间将逐步增加。

  • 该磁盘用于FusionCompute系统中的精简磁盘,可以提高存储设备的利用率。
  • 精简磁盘使用动态磁盘技术,可以节省存储空间。
  • 该磁盘在创建时不进行空间分配,而是在用户IO写入磁盘文件时才进行空间动态分配,性能较普通磁盘有所下降。
  • 适用于用户对存储需求不明确,或是规划的容量比实际使用的容量多的场景。

相关文章:

华为FusionCompute虚拟化平台

一、华为FusionCompute虚拟化套件介绍 华为FusionCompute虚拟化套件是业界领先的虚拟化解决方案,能够帮助客户带来如下的价值,从而大幅提升数据中心基础设施的效率。 帮助客户提升数据中心基础设施的资源利用率;帮助客户成倍缩短业务上线周期…...

自然语言处理入门1——单词的表示和距离

随着DeepSeek的火爆,AI大模型越来越被大众所接受,我们在日常生活和工作学习中也开始越来越频繁的使用豆包、通义千问、Kimi、DeepSeek、文心一言等大模型工具了。这些大模型底层技术都是Transformer模型,属于自然语言处理范畴。 今天开始&am…...

UART(一)——UART基础

一、定义 UART(Universal Asynchronous Receiver/Transmitter)是一种广泛使用的串行通信协议,用于在设备间通过异步方式传输数据。它无需共享时钟信号,而是依赖双方预先约定的参数(如波特率)完成通信。 功能和特点 基本的 UART 系统只需三个信号即可提供稳健的中速全双工…...

【数据结构初阶第十节】队列(详解+附源码)

好久不见。。。别不开心了,听听喜欢的歌吧 必须有为成功付出代价的决心,然后想办法付出这个代价。云边有个稻草人-CSDN博客 目录 一、概念和结构 二、队列的实现 Queue.h Queue.c test.c Relaxing Time! ————————————《有没…...

确保设备始终处于最佳运行状态,延长设备的使用寿命,保障系统的稳定运行的智慧地产开源了

智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。通过计算机视觉和…...

SP字体UI放大代码

代码: echo off set QT_SCALE_FACTOR放大倍数 start "" "你的SP.exe启动路径"...

信息安全之网络安全防护

信息安全之网络安全防护 先来看看计算机网络通信面临的威胁: 截获——从网络上窃听他人的通信内容中断——有意中断他人在网络上的通信篡改——故意篡改网络上传送的报文伪造——伪造信息在网络上传送 截获信息的攻击称为被动攻击,而更改信息和拒绝用…...

idea无法联网,离线安装插件

插件地址:https://plugins.jetbrains.com/ JetBrains Marketplace 如果无法进入,可以试试 配置hosts 3.163.125.103 plugins.jetbrains.com ip 变了,可以查询个最新的: https://tool.chinaz.com/speedtest/plugins.jetbrai…...

数据结构——哈希表

一、哈希表 1.1 哈希表的概念 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函…...

学习查看 linux 关于进程的文件信息 cat /proc/968/status

(1) 在 Linux 系统中,/proc 文件系统是一个伪文件系统,提供了一个接口来访问内核数据结构。/proc/[pid]/status 文件包含了关于特定进程的状态信息。当你运行 cat /proc/968/status 时,它会输出与进程 ID 为 968 的进程…...

记一次一波三折的众测SRC经历

视频教程和更多福利在我主页简介或专栏里 (不懂都可以来问我 专栏找我哦) 目录: 前言 波折一:RCE漏洞利用失败 波折二:SQL时间盲注 波折三:寻找管理后台 总结 前言 先谈个人SRC心得体会吧,我虽…...

python绘图之箱型图

箱型图(Boxplot),也称为箱线图或盒须图,是一种用于展示一组数据的分布情况的统计图表。它通过简洁的图形形式,直观地呈现数据的集中趋势、离散程度、偏态以及异常值等信息。本节我们来学习使用python绘制箱型图 # 导入…...

http 响应码影响 video 标签播放视频

背景 使用后端给的文件下载接口地址实现视频播放,但是 video 标签一直无法播放视频如下图,把接口地址放到浏览器请求能直接下载。但就是不能播放 原因 http 响应码不正确,返回201是无法播放视频200可以如下图 状态码的影响: 20…...

【ClickHouse 特性及应用场景】

Clickhouse是一个用于联机分析处理(OLAP)的列式数据库管理系统(columnar DBMS)。 传统数据库在数据大小比较小,索引大小适合内存,数据缓存命中率足够高的情形下能正常提供服务。但残酷的是,这种…...

【基础架构篇九】《DeepSeek模型版本管理:Git+MLflow集成实践》

各位在模型迭代中反复去世的炼丹师们,扔掉你们那些混乱的v1.2.3_final_fix2模型压缩包!今天我们不聊什么单纯的Git分支管理,也不讲MLflow的入门教程,而是直接掀开算法迭代的黑箱,手把手教你用"外科手术级"的版本控制方案,让模型迭代从玄学变成精准的流水线作业…...

EasyExcel 自定义头信息导出

需求:需要在导出 excel时,合并单元格自定义头信息(动态生成),然后才是字段列表头即导出数据。 EasyExcel - 使用table去写入:https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write#%E4%BD%BF%E7%94%A8table%E…...

MySQL 之INDEX 索引(Index Index of MySQL)

MySQL 之INDEX 索引 1.4 INDEX 索引 1.4.1 索引介绍 索引:是排序的快速查找的特殊数据结构,定义作为查找条件的字段上,又称为键 key,索引通过存储引擎实现。 优点 大大加快数据的检索速度; 创建唯一性索引,保证数…...

Linux驱动学习(二)--字符设备

设备分类 字符设备块设备网络设备 内核结构图&#xff1a; 字符设备号 字符设备号是32位的无符号整型值 高12位&#xff1a;主设备号低20位&#xff1a;次设备号 查看设备号 cat /proc/devices 设备号构造 直接使用宏MKDEV #define MKDEV(ma,mi) (((ma) << MINORBITS…...

计算机毕业设计--基于深度学习技术(Yolov11、v8、v7、v5)算法的高效人脸检测模型设计与实现(含Github代码+Web端在线体验界面)

基于深度学习技术&#xff08;Yolov11、v8、v7、v5&#xff09;算法的高效人脸检测模型 Yolo算法应用之《基于Yolo的花卉识别算法模型设计》&#xff0c;请参考这篇CSDN作品&#x1f447; 计算机毕业设计–基于深度学习技术&#xff08;Yolov11、v8、v7、v5&#xff09;算法的…...

leetcode-414.第三大的数

leetcode-414.第三大的数 code review! 文章目录 leetcode-414.第三大的数一.题目描述二.代码提交 一.题目描述 二.代码提交 class Solution { public:int thirdMax(vector<int>& nums) {set<int> set_v(nums.begin(), nums.end());auto it set_v.rbegin()…...

使用API有效率地管理Dynadot域名,参与过期域名竞价

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…...

iOS 上自定义编译 FFmpeg

在 iOS 上自定义编译 FFmpeg 是一个复杂但非常灵活的过程。通过自定义编译,您可以选择启用或禁用特定的功能和编解码器,以满足项目的需求,同时减少二进制文件的大小。 1. 自定义编译 FFmpeg 1.1 准备工作 在开始编译之前,您需要以下工具和环境: macOS:运行编译的主机。…...

解锁 JavaScript 异步编程:Promise 链式操作、async/await 与 Promise.all 深度剖析

1.引言 在 JavaScript 的世界里,异步编程是一个核心且关键的概念。随着 Web 应用的复杂度不断提升,处理多个异步操作的需求也日益增长。传统的回调函数方式容易陷入 “回调地狱”,让代码的可读性和可维护性大打折扣。而 Promise 的出现为异步编程带来了新的曙光,后续又衍生…...

30 款 Windows 和 Mac 下的复制粘贴软件对比

在日常电脑操作中&#xff0c;复制粘贴是极为高频的操作&#xff0c;一款好用的复制粘贴软件能极大提升工作效率。以下为你详细介绍 30 款 Windows 和 Mac 下的复制粘贴软件&#xff0c;并对比它们的优缺点&#xff0c;同时附上官网下载地址&#xff0c;方便大家获取软件。 Pa…...

复现论文:DPStyler: Dynamic PromptStyler for Source-Free Domain Generalization

论文&#xff1a;[2403.16697] DPStyler: Dynamic PromptStyler for Source-Free Domain Generalization github: TYLfromSEU/DPStyler: DPStyler: Dynamic PromptStyler for Source-Free Domain Generalization 论文: 这篇论文还是在PromptStyler:Prompt-driven Style Gener…...

【数据库维护】Clickhouse数据库维护关键系统表相关指标说明,支撑定位慢SQL及多实例场景下分析各实例运行情况

背景 当前使用环境上以Docker容器化部署Clickhouse服务8个实例&#xff0c;但在实际运行过程中&#xff0c;发现8个实例内存负载不均衡&#xff0c;ck-0实例在固定时间段内存会直线上升&#xff0c;直至服务报错memory exceeded max memory limit。 为排查ck-0节点内存直线上升…...

java爬虫抓取网页搜索数据

首先访问这个使用必应并搜索想要的内容 https://www.bing.com/images/search?q[把这里替换成想要的搜索内容] 按下f12来查看源码 我们可以找到a.iusc这个元素可以获取图片的源地址 注意&#xff0c;直接选中网页上的图片只能看到它的缩略图在哪。 由此可以编写出来爬虫脚本来…...

智能编程助手功能革新与价值重塑之:GitHub Copilot

引言&#xff1a; GitHub Copilot 的最新更新为开发者带来了显著变化&#xff0c;其中 Agent Mode 功能尤为引人注目。该模式能够自动识别并修复代码错误、自动生成终端命令&#xff0c;并具备多级任务推理能力&#xff0c;这使得开发者在开发复杂功能时&#xff0c;可大幅减少…...

Linux3-文件io、时间有关函数

一、前情回顾 1.当scanf输入10\n直接结束程序&#xff0c;因为scanf接收了10&#xff0c;fgets&#xff08;接收了\n结束程序&#xff09;&#xff0c; 因此可以加一个getchar();消耗一个\n。 2.fgets();所接收的\n利用buff[strlen(buff)-1]0; 二、文件io 1.目的&#xff1a…...

VScode运行C语言提示“#Include错误,无法打开源文件stdio.h”

C/C环境配置 参考&#xff1a; VS Code 配置 C/C 编程运行环境&#xff08;保姆级教程&#xff09;_vscode配置c环境-CSDN博客 基本步骤 - 安装MinGW-W64&#xff0c;其包含 GCC 编译器&#xff1a;bin目录添加到环境变量&#xff1b;CMD 中输入gcc --version或where gcc验证…...

【Linux】线程全解:概念、操作、互斥与同步机制、线程池实现

&#x1f3ac; 个人主页&#xff1a;谁在夜里看海. &#x1f4d6; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长&#xff0c;行则将至 目录 &#x1f4da;一、线程概念 &#x1f4d6; 回顾进程 &#x1f4d6; 引入线程 &#x1f4d6; 总结 &a…...

【第4章:循环神经网络(RNN)与长短时记忆网络(LSTM)— 4.3 RNN与LSTM在自然语言处理中的应用案例】

咱今天来聊聊在人工智能领域里,特别重要的两个神经网络:循环神经网络(RNN)和长短时记忆网络(LSTM),主要讲讲它们在自然语言处理里的应用。你想想,平常咱们用手机和别人聊天、看新闻、听语音助手说话,背后说不定就有 RNN 和 LSTM 在帮忙呢! 二、RNN 是什么? (一)…...

平板作为电脑拓展屏

有线串流&#xff08;速度更快&#xff09; spacedesk 打开usb对安卓的连接 用usb线直接连接电脑和平板 无线串流&#xff08;延迟高&#xff0c;不推荐&#xff09; todesk pc和手机端同时下载软件&#xff0c;连接后可以进行远程控制或扩展屏幕 spacedesk 连接到同一个…...

【Spring+MyBatis】留言墙的实现

目录 1. 添加依赖 2. 配置数据库 2.1 创建数据库与数据表 2.2 创建与数据库对应的实体类 3. 后端代码 3.1 目录结构 3.2 MessageController类 3.3 MessageService类 3.4 MessageMapper接口 4. 前端代码 5. 单元测试 5.1 后端接口测试 5.2 使用前端页面测试 在Spri…...

Redis的简单使用

1.Redis的安装Ubuntu安装Redis-CSDN博客 2.Redis在Spring Boot 3 下的使用 2.1 pom.xml <!-- Redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifac…...

IDEA集成DeepSeek AI助手完整指南

在当今快速发展的软件开发领域,AI辅助编程工具正在成为开发者的重要助手。本文将详细介绍如何在IDEA中集成DeepSeek AI助手,帮助开发者提升编程效率。 一、环境准备 © ivwdcwso (ID: u012172506) 1.1 IDEA版本要求 在开始集成之前,需要确保你的IDEA版本满足要求: …...

rust学习笔记1-window安装开发环境

1.登录官网下载https://www.rust-lang.org/zh-CN/tools/install 下载 rustup-init.exe。 2.设置环境变量 &#xff08;1&#xff09;在指定路径新建.cargo和.rustup文件夹 CARGO_HOME RUSTUP_HOME &#xff08;2&#xff09;配置rustup下载源镜像 提高rust安装组件下载速…...

【钱包】【WEB3】【Flutter】一组助记词如何推导多个账号钱包

一、前言 一组助记词可以推导多个账户&#xff0c;是因为在区块链钱包中&#xff0c;助记词&#xff08;Mnemonic&#xff09;实际上是 BIP39 标准下生成的一个种子&#xff0c;该种子通过 BIP32/BIP44 标准可以派生出无限多个账户地址。 这里我将以太坊Ethereum为例&#xf…...

基于SSM+Vue的智能汽车租赁平台设计和实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...

Zotero PDF Translate插件配置百度翻译api

Zotero PDF Translate插件可以使用几种翻译api&#xff0c;虽然谷歌最好用&#xff0c;但是由于众所周知的原因&#xff0c;不稳定。而cnki有字数限制&#xff0c;有道有时也不行。其他的翻译需要申请密钥。本文以百度为例&#xff0c;进行申请 官方有申请教程&#xff1a; Zot…...

深度学习05 ResNet残差网络

目录 传统卷积神经网络存在的问题 如何解决 批量归一化BatchNormalization, BN 残差连接方式 ​残差结构 ResNet网络 ResNet 网络是在 2015年 由微软实验室中的何凯明等几位大神提出&#xff0c;斩获当年ImageNet竞赛中分类任务第一名&#xff0c;目标检测第一名。获得CO…...

【Python项目】文本相似度计算系统

【Python项目】文本相似度计算系统 技术简介&#xff1a;采用Python技术、Django技术、MYSQL数据库等实现。 系统简介&#xff1a;本系统基于Django进行开发&#xff0c;包含前端和后端两个部分。前端基于Bootstrap框架进行开发&#xff0c;主要包括系统首页&#xff0c;文本分…...

【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析④】

ISO 14229-1:2023 UDS诊断【ECU复位0x11服务】_TestCase04 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月17日 关键词&#xff1a;UDS诊断协议、ECU复位服务、0x11服务、ISO 14229-1:2023 TC11-004测试用例 用例ID测试场景验证要点参考条款预期结果TC…...

机器学习:k近邻

所有代码和文档均在golitter/Decoding-ML-Top10: 使用 Python 优雅地实现机器学习十大经典算法。 (github.com)&#xff0c;欢迎查看。 K 邻近算法&#xff08;K-Nearest Neighbors&#xff0c;简称 KNN&#xff09;是一种经典的机器学习算法&#xff0c;主要用于分类和回归任务…...

Pytorch实现论文之一种基于扰动卷积层和梯度归一化的生成对抗网络

简介 简介:提出了一种针对鉴别器的梯度惩罚方法和在鉴别器中采用扰动卷积,拟解决锐梯度空间引起的训练不稳定性问题和判别器的记忆问题。 论文题目:A Perturbed Convolutional Layer and Gradient Normalization based Generative Adversarial Network(一种基于扰动卷积层…...

Golang 面试题

常见的 Go 语言面试题及其答案和代码示例: 一、高频面试题 1. Goroutine 和线程的区别? 答案: Goroutine 是 Go 语言中的轻量级线程,由 Go 运行时管理,初始栈大小约为 2KB,可以动态扩展和收缩,创建和切换成本非常低。线程 是操作系统级别的线程,栈大小通常为 MB 级,…...

数据结构-栈、队列、哈希表

1栈 1.栈的概念 1.1栈:在表尾插入和删除操作受限的线性表 1.2栈逻辑结构: 线性结构(一对一) 1.3栈的存储结构:顺序存储(顺序栈)、链表存储(链栈) 1.4栈的特点: 先进后出(fisrt in last out FILO表)&#xff0c;后进先出 //创建栈 Stacklist create_stack() {Stacklist lis…...

newgrp docker需要每次刷新问题

每次都需要运行 newgrp docker 的原因: 当用户被添加到 docker 组后&#xff0c;当前会话并不会立即更新组信息&#xff0c;因此需要通过 newgrp docker 切换到新的用户组以使权限生效 如果不想每次都手动运行 newgrp docker&#xff0c;可以在终端中配置一个自动刷新的脚本。…...

JAVA Kotlin Androd 使用String.format()格式化日期

在以前的开发中&#xff0c;日期格式化一直使用的是SimpleDateFormat进行格式化。今天发现String.format也可以格式化。当 然&#xff0c;两种方式的优劣没有进行深入分析。 val date Date()//月&#xff0c;日&#xff0c;星期&#xff0c;AM/PM//Fue 1 (Sat) pmval fullDate…...

Python----数据结构(单链表:节点,是否为空,长度,遍历,添加,删除,查找)

一、链表 链表是一种线性数据结构&#xff0c;由一系列按特定顺序排列的节点组成&#xff0c;这些节点通过指针相互连接。每个节点包含两部分&#xff1a;元素和指向下一个节点的指针。其中&#xff0c;最简单的形式是单向链表&#xff0c;每个节点含有一个信息域和一个指针域&…...