OpenStack主要功能和作用

2023-11-16

OpenStack主要组件和作用


​ openstack是一个开源的云计算管理平台,由几个重要的组件结合起来完成工作。openstack支持所有类型的云环境,实施简单可以大规模扩展丰富标准统一的云计算管理平台。openstack通过各种互补的服务提供了基础设施即服务也就是laas的解决方案,每个服务提供API进行集成。

openstack主要有两个模块:Nova和Swift,nova是虚拟服务器部署和计算模块,swift是分布式云存储模块,两个可以一起使用也可以分开使用。

openstack服务是由几个进程组成。所有服务至少有一个API进程,用来监听API请求,预处理它们并将它们传递给其他部分,除了身份服务外。实际上由不同的流程来完成。

对一个服务进程直接的通信,使用AMQP消息代理。服务的状态存储在数据库中,在部署openstack云时,可以选择多种消息代理和数据库解决方案(mysql、rabbitmq、mariadb、sqlite)

​ 用户可以通过Horizon Dashboard实现基于Web用户界面,命令行客户端以及通过浏览器插件或curl工具法术API请求来访问OpenStack。对于应用程序,可以使用多SDK。最终,所欲这些访问方法都会向各种OpenStack服务发出REST API调用。



整个OpenStack是由控制节点,计算节点,网络节点,存储节点,四大部分组成。(这四个节点也可以单机部署)
1.控制节点:负责对其余节点的控制,包括虚机创建、迁移、网络分配、存储分配等。

​ 控制节点架构如下:

控制节点又包括其他服务如下:

​ 管理支持服务:数据库作为基础/扩展服务产生的数据存放的地方,消息代理服务(也称消息中间 件)为其他各种服务之间提供了统一的消息通信服务

​ 基础管理服务包含Keystone、Glance、Nova、Neutron、Horizon五个服务

Keystone:认证管理服务,提供所有组件的认证信息令牌管理、创建和修改,使用mysql数据库存储 认证信息

glance:镜像管理服务,提供了对虚机部署的时候提供镜像的管理导入和格式以及制作相应的模板

nova:计算管理服务,提供了对计算节点的nova管理、使用nova-api进行通信。

neutron:网络管理服务,提供了网络节点的网络拓扑管理,同时提供neutron在horizon的管理界面

horizon:控制台服务,提供了以web形式对所有节点的所有服务的管理,把该服务成为dashboard。

扩展管理服务包含:cinder、swift、trove、heat、centmeter五个服务

Cinder:提供管理存储节点的Cinder相关、同时提供Cinder在Horizon中的管理面板

Swift:提供管理存储节点Swift相关、同时提供Swift在Horizon中的管理面板

Trove:提供管理数据库节点的Trove先关、同时提供Trove在Horizon中的管理面板

Heat:提供了基于模板来实现云环境中的资源的初始化,依赖关系处理,部署等基本操作,也可以 解决自动收缩、负 载均衡等高级特性

Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些书库,读数据进行分析,在一定条件下出发现货供应动 作控制节点通常来说只需要一个网络端口来用于通信和管理各个节点

2.计算节点负责虚拟机的运行,他的架构如下:

计算节点包含Nova、Neutron、Telemter三个服务

nova:提供虚拟机的创建】运行、迁移、快照等围绕虚拟机的服务、并提供API与控制节点对接由控 制节点下发任务

neutron:提供计算节点与网络节点之间的通信

​ 拓展服务:telmeter提供计算节点监控代理,将虚拟机的情况反馈到控制节点,是centimeter的代理 服务

3.网络节点负责对外网络与内网之间的通信,网络节点架构如下

Neutron:负责管理私有网络与公有网络的通信,以及管理虚拟机网络之间通信/拓扑、管理虚拟机之 上的防火墙等等

​ 网络节点包含三个网络端口

​ 端口1:用于与控制节点进行通信

​ 端口2:用于除了控制节点之外的计算/存储节点之间的通信

​ 端口3:用于外部的虚拟机与相应的网络之间通信

  1. 存储节点负责对虚拟机的额外存储管理等,存储节点架构如下

    存储节点包含cinder,swift等服务

    Cinder:块存储服务,提供相应的块才能出,简单来说,就是虚拟出一块存盘,可以挂载到相应的虚拟机之上,不收文件系统的影响,对虚拟机来说,这个操作像是加了一块硬盘,可以完成对磁盘的任何操作,包括挂载、卸载、格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等

    **Swift:**对象存储服务,提供相应的独享存储、简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件

    存储节点包含最少两个网络端口

    端口1:与控制节点进行通信,接受控制节点任务,受控制节点统一调配

    端口2:与计算/网络节点进行通信,完成控制节点下发的各类任务


nova主要功能包括:

实例生命周期管理

计算资源的管理

向外提供REST风格的API

nova包含以下主要部分:

nova-api:位于表示层,用于接受外部请求

rabbitMQ:消息队列服务

nova-comoute:运算工作站负责虚拟机的创建和分配

nova-network:网络控制器

nova-volume:卷管理

nova-scheduler:调度如何选择哪个主机创建VM

API服务(nova-api)

API服务提供了云设施与外界交互的接口,它是外界用户对云实施管理的唯一通道。通过使用Web服务来调用各种EC2的API,接着API服务便通过消息队列把请求发送达至云内目标实施进行出路。作为对EC2-api的替代,用户也可以使用OpenStack的原生API,我们把它叫做"OpenStack API".

消息队列(Rabbit MQ )

OpenStack内部在遵循AMQP(高级消息队列协议)的基础上采用消息队列进行通信,Nova对请求应答进行异步调用,当请求接受后立即出发一个回调。由于使用了异步通信,不会有用户的动作被长置于等待状态。例如,启动一个实例或上传一个镜像的过程较为耗时,API调用就将等待返回结果而不影响其他操作,在此异步通信起到了很大作用,使整个系统变得更加高效。

调度器(nova-scheduler)

调度器负责把nova-API调用送达给目标。调度器以名为"nova-schedule"的守护进程方式运行,并根据调度算法从可用资源池恰当的选择运算服务器。有很多因素都可以影响调度结果,比如负责、内存、、子节点的远近,CPU架构等等。强大的nova调度器采用的是可插入式架构。

目前nova调度器使用了几种基本的调度算法:

随机化:主机随机选择可用的节点;

可用化:与随机相似,只是随机选择的范围被制定;

简单化:应用这种方式,主机选择负载最小者来运行实例。负载均衡数据可以从别处获得,如负载均衡服务器。

运算工作站(nova-compute)

运算工作站的主要任务是管理实例的整个生命周期。他们通过消息队列接受请求并执行,从而对实例进行各种操作。在典型实际生产环境中,会架设许多运算工作站,根据调度算法,一个实例可以在可用的任意一台运算工作站上部署。

网络控制器(nova-network)

网络控制器处理主机的网络配置,例如IP地址分配,配置项目VLAN,设定安全群组以及为计算节点配置网络。

卷工作站(nova-volume)

卷工作站管理基于LVM的实例卷,它能够为一个实例创建、删除、附加卷、也可以从一个实例中分离卷。卷管理为何如此重要?因为它提供了一中保持实例持续存储的手段,比如当结束一个实力后,根分区如果是非持续化的,那么对其的任何改变都将丢失。可是。如果从一个实例中将卷分离出来,或者为这个实例附加上的卷的话,及时实例被关闭,数据仍保存其中。这些数据可以通过将卷附加到原实例或其他实例的方式而重新访问。

因此,为了日后访问,重要数据必要写入卷中。这种应用对于数据服务器实例的存储而言,尤为重要。


Keystone为所有的OpenStack组件提供认证和访问策略服务,它依赖资深REST(基于Identity API)系统进行工作主要对(单不限于)Swift、Glance、Nova等进行认证与授权

keystone采用两种授权方式,一种是基于用户名和密码,另一种是基于令牌(token)

除此之外keystone还提供三种服务

令牌服务:含有授权用户的授权信息

目录服务:含有用户合法操作的可用服务列表

策略服务:利用keystone具体指定用户或群组某些访问权限

Keystion认证服务注意点:

服务入口:如Nova、Swift和Glance一样每个OpenStack服务都拥有一个制定的端口和专属的URL,我们称其为入口(endpoints)。

区位:在某个数据中心,一个区位具体制定了一处物理位置。在典型的云架构中,如果不是所有的服务都访问分布式数据中心或服务其的话,则也称其为区位。

用户:Keystone授权使用者

PS:代表一个个体,OpenStack以用户的形式来授权服务给它们。用户拥有证书(credentials),且可能分配个一个或多个租户。经过验证后,会为每个单独的租户提供一个特定的令牌。

服务:总体而言,任何通过Keystone进行连接或管理的组件都被称为服务。举个例子,我们可以称Glance为Keystone的服务

角色:为了维护安全限定,就云内特定用户可执行的操作而言,该用户关联的角色是非常重要的。

PS:一个角色是应用于某个租户的使用权限集合,以允许某个指定用户访问或使用特定操作。角色是使用权限的逻辑分组、它使得通过的权限可以简单的分组并绑定到与某个指定租户相关的用户。

租间:租间指的是具有全部服务入库并配有特定成员角色的一个项目。

PS:一个租间映射到一个Nova的"project-id",在对象存储中,一个租间可以有多个容器。根据不同的安装方式,一个租间可以代表一个客户、账号、组织或项目。



glance

openstac镜像服务器是一套虚拟机镜像发现、注册、检索系统、可以将镜像存储到以下任意一种存储中

默认是本地文件系统、S3直接存储、S3对象存储、openstack对象存储等。

功能和特点:

**glance-api:**主要负责接收相应镜像管理命令的Resrful请求,分析消息请求并分发所带的命令比如新增 删除更新等,默认绑定端口是9292

glance-registry:主要负责接收响应镜像元数据命令的Restful请求,分析消息请求并分发其所带的命令,比如获取元数据更新元数据等。more绑定的端口是9191.



Swift是openstack提供的一种分布式持续虚拟对象存储,它类似于amazon web service的s3简单存储服务。swift具有跨节点百级对象存储的能力。swift内建冗余和失效备源管理,也能处理归档和媒体流,特别是对大数据和大流量的测度非常高效。

swift的功能和特点

​ 海量对象存储、大文件{S3}存储、数据冗余管理、归档能力-处理大数据集、为虚拟机和云应用提供数据容器、处理流媒体、对象安全存储、备份与归档、良好的可伸缩性。

系统架构:Swift采用完全对称、面向资源的分布式存储架构设计,所有组件都可扩展,避免因单点失 效而扩散并影响整个系统运转;通信方式采用非阻塞式I/O模式,提高了系统吞吐和响应能力

Swift组件包括:

代理服务(Proxy Server):对外提供对象服务API,会根据环的信息来查找服务地址并转发用户请求至相应的账户、容器或者对象服务;由采用无状态的REST请求协议,可以进行横向扩展来均衡负载。

认证服务(Authentication Server):验证访问用户的身份信息,并获得一个对象方位令牌(Token),在一定的时间内会一直有效;验证访问令牌的有效性并缓存下来直至过期时间。

缓存服务(Cache Server):缓存的内容包括对象服务令牌,账户和容器的存在信息,但不会缓存对象本身的数据;缓存服务可采用Memcached集群,Swift会使用一致性三列算法来分配缓存地址。

账户服务(Account Server):提供账户元数据和统计信息,并维护所包含容器列表的服务,每个账户的信息被存储在一个SQLite数据库中。

容器服务(Container Server):提供容器元数据和统计信息,并维护所含对象列表的服务,每个容器的信息也存储在一个SQLlite数据库中。

对象服务(Object Server):提供对象元数据和内容服务,每个对象的内容会以文件的形式存储在文件系统中,元数据会作为文件属性来存储,建议采用支持扩展属性的XFS文件系统。

复制服务(Replicator):会检测本地分区副本和远程副本是否一致,具体是通过对比散列文件和高级水印来完成,发现不一致时会采用推式(Push)更新远程副本,例如对象复制服务会使用远程文件拷贝工具rsync来同步;另外一个任务是确保被标记删除的对象从文件系统中移除。

更新服务(Updater):当对象由于高负载的原因而无法立即更新时,任务将会被序列化到本地文件系统中进行排队,以便服务恢复后进行异步更新;例如成功创建对象后容易服务器没有及时更新对象列表,这个时候容器的跟新操作就会进入排队中,更新服务会在系统恢复正常后扫描队列并进行相应的更新处理。

审计服务(Auditor):检查对象,容器和账户的完整性,如果发现比特级的错误,文件将被隔离,并复制其他的副本以覆盖本地损坏的副本;其他类型的错误会被记录到日志中。

账户清理服务(Account Reaper):移除被标记为删除的账号,删除其所包含的所有容器对和对象。



cinder是openstack Block Storage服务,用于为nova虚拟机,lronic裸机主机,容器等提供卷。

cinder的一些目标是:

基于组组件体系结构:快速添加新的行为

高度可用:扩展到非常严重的工作负载

容错:隔离进程避免级联失败

可恢复的:故障应该易于诊断,调试和纠正

开放标准:成为社区驱动api的参考表现

Cinder的所有功能都是通过REST API公开,可用于使用Cinder构建更复杂的逻辑或自动化, 这可以直接使用或者通过各种SDK使用

Cinder服务通过一系列守护进程的交互来工作,这些进程名称cinder-*永久驻留在主机或机器上,我们可以从单个节点运行所有二进制文件,也可以分布在多个节点上,我们也可以在与其他OpenStack服务想用的节点上运行他们

cinder的特性:

默认的Cinder服务实现是一种iscsi解决方案,它使用linux的逻辑卷管理器(LVM)

网络模式不会干扰Cinder操作,但必须为块存储设置网络才能工作

在某些情况下我们也可以从内部卷中存储和运行实例

Cinder同时还支持使用NFS存储

可以创建多个后端存储。这些后端存储为相同的OpenStack Compute配置提供服务,并为每个后端存储或后端存储池启动一个cinder-volume

通过lvm快照备份块存储服务磁盘

volume number weigher调度器。OpenStack允许用户创建云盘时根据后端存储剩余容量和已分配容量来选择后端。而volume number weigher调度器是根据不同存储后端的云盘数量来选择后端,调度到存储后端上云盘数量最少的节点来处理用户有关云盘生命周期的请求,这样做的好处是可以使用不同存储厚点的I/O负载均衡并提高IO性能。

一致性组;Cinder提供了一致性组支持。添加了支持以创建一致性组的快照。此功能利用存储级别的一致性技术。它允许在同一时间点采集同一一致性组中的多个卷的快照,以确保数据一致性。可以使用块存储命令行执行。

DriverFilter和GoodnessWeigher调度器;根据后端特定属性选择卷后端。可以帮助确保调度程序根据请求的卷属性以及各种后端特定属性选择最佳后端。

速率限制卷复制带宽;从映像或现有卷创建新卷时,或者将卷映像上传到映像服务时,大型数据复制可能会对磁盘和网络带宽造成压力。为了减轻来自实例的数据访问速度,OpenStack块存储支持对卷数据复制带宽进行速率限制

精简配置中的超额订阅;Cinder可以使用超额配置比率, 根据虚拟容量选择卷后端,以进行精简配置为默认LVM驱动程序提供了参考实现。

镜像卷缓存;Cinder具有可选的镜像卷缓存,可以显著提高从镜像创卷卷的性能。改进取决于许多因素,主要是配置的后端克隆卷的速度。

Volume-backed image;Cinder能够快速的从保存镜像数据的云盘创建新的云盘,与镜像数据保存到File和Swift相比,如果后端存储克隆性能比较好,从Volume-backed image创建新的云盘速度会更快,如果镜像属性是public,那么这个volume-backed image中的数据可以在所有的项目中共享。该功能要求在镜像服务中增加Cinder的locations信息。为了允许镜像服务使用Cinder作为后端存储,需要增加Cinder到允许存储的配置项中。

通用卷组;自Nweton发布以来,Cinder中提供了通用卷组支持,添加了支持、用于创建组类和组规范、创建卷组以及创建组的快照,可以使用块存储命令行执行组操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenStack主要功能和作用 的相关文章

  • 如何阅读shell命令的源代码?

    我想阅读编写linux命令的实际源代码 我已经获得了一些使用它们的经验 现在我认为是时候与我的机器进行更深层次的交互了 我在这里找到了一些命令http directory fsf org wiki GNU http directory fs
  • linux下如何获取昨天和前天?

    我想在变量中获取 sysdate 1 和 sysdate 2 并回显它 我正在使用下面的查询 它将今天的日期作为输出 bin bash tm date Y d m echo tm 如何获取昨天和前天的日期 这是另一种方法 对于昨天来说 da
  • Bash 脚本 - 迭代 find 的输出

    我有一个 bash 脚本 其中需要迭代 find 命令输出的每一行 但似乎我正在迭代 find 命令中的每个单词 以空格分隔 到目前为止我的脚本看起来像这样 folders find maxdepth 1 type d for i in f
  • 我应该使用哪个 Linux 发行版作为 Xen 主机? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我为家庭办公室订购了一台服务器 我想用 Xen 对其进行分区 我认为这将使事情保持干净并且更容易维护 我将运行 MySQL PostgreSQL
  • 错误:NVIDIA-SMI 失败,因为无法与 NVIDIA 驱动程序通信

    NVIDIA SMI 抛出此错误 NVIDIA SMI 失败 因为无法与 NVIDIA 通信 司机 确保安装了最新的 NVIDIA 驱动程序并且 跑步 我清除了 NVIDIA 并按照提到的步骤重新安装了它here https askubun
  • 无关的库链接

    我有一个可能有点愚蠢的问题 因为我很确定我可能已经知道答案了 假设你有静态库A 动态共享库B和你的linux下的程序C 假设库 A 调用库 B 中的函数 并且您的程序调用库 A 中的函数 现在假设 C 在 A 中调用的所有函数都不使用 B
  • 如何确保 numpy BLAS 库可用作动态加载库?

    The theano安装文档 http www deeplearning net software theano install html troubleshooting make sure you have a blas library指
  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • Linux 上的 Python 3.6 tkinter 窗口图标错误

    我正在从 Python GUI 编程手册 学习 Python GUI 某项任务要求我通过将以下代码添加到我的配方中来更改窗口图标 Change the main windows icon win iconbitmap r C Python3
  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • 在 LINUX 上使用 Python 连接到 OLAP 多维数据集

    我知道如何在 Windows 上使用 Python 连接到 MS OLAP 多维数据集 嗯 至少有一种方法 通常我使用 win32py 包并调用 COM 对象进行连接 import win32com client connection wi
  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • 如何以编程方式从Linux中的进程名称获取进程ID

    在我的项目中 我们使用 ACE 自适应通信环境 中间件来编写可在 Windows 和 Linux 上运行的独立于操作系统的代码 要求是从进程名称中获取进程 ID 由于 ACE 不支持这一点 因此我们必须使用特定于平台的宏来分离 Window
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • 无需 cron 在后台发送邮件

    我想知道是否有一种方法可以运行 PHP 循环 以便在后台向订阅者发送几百封电子邮件 我的目标是格式化新闻通讯 单击发送 然后关闭浏览器或更改页面 当然 发送电子邮件的实际过程将在后台运行 不会因浏览器关闭而中断 我知道这可以通过 cron
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何

随机推荐

  • 多元统计分析与R语言练习

    多元考试练习 文章目录 多元考试练习 一 多元线性回归模型 1 建立回归模型 2 逐步筛选 3 最优标准方程 影响最大 4 全局择优法 使用4 2 1版本的R 5 分析 6 由标准化偏回归系数可见 方差分析结果 二 判别分析 1 线性判别
  • python学习心得总结

    21年7月8上午是我第一次接触python这个语言 对于python这个语言之前了解的也并不是很多 也可以说几乎为零 因为我们之前的学习也不考python 所以也没想过去主动学习它 然而当我听老师讲解的时候 首先我发现python这个语言相
  • 使用VS2005下自带的MSSQL 2005 EXPRESS

    VS2005安装后自带一个试用版的SQL2005 EXPRESS版 方便了开发时使用数据库 不用再安装一个sql 2005 怪占用资源的 如何使用 安装后 在开始菜单里出现个sql的菜单组 但是找不到sql server的控制台 习惯用sq
  • 《机器学习实战》——决策树

    本章介绍的决策树算法为ID3算法 Iterative Dichotomiser 3 迭代二叉树3代 主要流程为 根据信息增益找到划分数据的最佳特征 判断划分后每个数据子集是否为同一分类 若是 返回分类结果 若不是 再次划分数据子集 递归 同
  • iOS. Xcode11 dylib封装成framework 图文教程

    Frameworks 制作 Xcode 版本 1 framework是什么 framework是一个层级的目录结构 将一系列可共享的资源 比如动态共享库 nib文件 图形文件 本地化相关文件 头文件 以及相关引用文档 包装成一个包 pack
  • 输入PM2.5的值,判断空气质量

    一个简单的if语句 a int input 请输入PM2 5的值 if 0 lt a lt 35 print 优 elif 35 lt a lt 75 print 良 elif 75 lt a lt 115 print 轻度污染 elif
  • Linux下的文件名空格处理

    转载原文 https blog csdn net michaelzhou224 article details 12708333 解决空格问题的几种方案 1 使用 来替代一个含有空格的文件以及目录 jorncess red black 可以
  • Android开发-Android项目结构

    文章目录 前言 一 Gradle 1 1什么是Gradle 1 2Gradle是一个构建工具 那么为什么要用构建工具 二 项目结构 三 app目录结构 四 res目录结构 总结 前言 Android工程的项目结构比较复杂 在进行Androi
  • AWD简单介绍和搭建AWD平台

    AWD简单介绍和搭建AWD平台 何为AWD 比赛中每个队伍维护多台服务器 服务器中存在多个漏洞 利用漏洞攻击其他队伍可以进行得分 修复漏洞可以避免被其他队伍攻击失分 1 一般分配Web服务器 服务器 多数为Linux 某处存在flag 一般
  • KNN数据分类算法的matlab仿真

    目录 1 算法概述 2 仿真效果 3 MATLAB仿真源码 1 算法概述 KNN的本质是通过距离判断待测样本和已知样本是否相似 待测样本找到与已知样本中与其距离最近的K个样本 对这k个样本 它们大多数属于哪一类别 就把待测样本归为哪一类别
  • [工程编写]cmakelist多版本python环境编写

    问题 最近在写一个工程的时候需要用到python3 但是由于引入了ROS相关的环境 导致希望使用python3的那部分代码一直默认使用ROS中的python2 这样环境就不对了 解决的方法 很顺理成章的想法是为需要python3的那部分代码
  • 注解&反射学习笔记

    1 注解的作用域及使用方式 表示我们的注解可以使用在那些地方 Target value ElementType METHOD ElementType TYPE 表示注解在什么地方有效 RESOUT 源码 lt CLASS 类 lt RUNT
  • IntelliJ Idea 常用快捷键 超实用!

    IntelliJ Idea 常用快捷键 列表 实战终极总结 1 自动代码 常用的有fori sout psvm Tab即可生成循环 System out main方法等boilerplate样板代码 例如要输入for User user u
  • Pytorch如何保存训练好的模型

    0 为什么要保存和加载模型 用数据对模型进行训练后得到了比较理想的模型 但在实际应用的时候不可能每次都先进行训练然后再使用 所以就得先将之前训练好的模型保存下来 然后在需要用到的时候加载一下直接使用 模型的本质是一堆用某种结构存储起来的参数
  • docker 迁移 /var/lib/docker(解决 /var/lib/docker 占用大 / 根目录空间占满问题)

    迁移docker工作目录 目的 为了解决 var lib docker 占用大 var 分区空间不够问题 说明 由于centos7 4系统 系统默认根目录下面为50G空间 docker默认数据目录在 var lib docker中 所以 会
  • 云孚快写:自动生成多级目录,一键生成万字长文

    1 产品简介 云孚快写是云孚科技自主研发的一款智能写作产品 基于大模型技术打造 针对长文写作场景深度优化 可根据文章标题一键生成目录 再根据目录一键生成正文 文章字数无上限 可极大提升用户的长文写作效率 云孚快写以哈工大与云孚科技联合研发的
  • Hive的常用HiveQL操作

    文章目录 Hive的常用HiveQL操作 1 HiveQL概述 2 HiveQL操作命令 2 1 数据定义 2 1 1 创建 修改和删除数据库 2 1 2 创建 修改和删除表 2 1 3 视图 索引创建 修改和删除 2 1 4 用户自定义函
  • 【如何处理信息收集时子域名爆破泛解析的问题】

    如何处理信息收集时子域名爆破泛解析的问题 子域名泛解析的成因 泛域名解析举例 子域名爆破中解决泛解析的方式 推荐工具 子域名泛解析的成因 在子域名解析中 每个子域名都会解析为一个特定的IP地址 只有被设置解析 用户才能正常进行访问 一旦用户
  • 一种解决ChatGPT报错“Sorry, you have been blocked“的方法

    ChatGPT突然不能用 尝试了网上说的重启V某N 打开隐私模式等方法都不管用 采用下面方式 解决 1 打开浏览器的 设置 2 找到语言设置 3 将首选语言改成英语 搞定
  • OpenStack主要功能和作用

    OpenStack主要组件和作用 openstack是一个开源的云计算管理平台 由几个重要的组件结合起来完成工作 openstack支持所有类型的云环境 实施简单可以大规模扩展丰富标准统一的云计算管理平台 openstack通过各种互补的服