云计算Openstack Cinder

news2024/11/20 11:26:51

OpenStack Cinder是OpenStack平台中的一个重要组件,它主要提供块存储服务。

一、基本概念

  • 定义:Cinder是OpenStack项目中的一个模块,专注于为云计算环境中的虚拟机提供持久化的块存储服务。
  • 功能:Cinder允许用户创建和管理持久化的块设备,如硬盘,这些设备可以附加到虚拟机实例上,实现数据的持久性和可靠性。
    在这里插入图片描述

二、主要组件

  • API服务器:提供REST API接口,与其他组件和用户进行交互。用户可以通过API创建、删除或修改卷。
  • 卷管理器(Volume Manager):负责卷的创建、删除、调整大小等操作,还处理卷和虚拟机实例之间的附加和分离。
  • 调度器(Scheduler):根据用户定义的策略,将卷分配给适当的存储后端。它考虑存储后端的可用性、性能和容量等因素。
  • 存储后端(Storage Backends):Cinder支持多种类型的存储后端,如本地磁盘、网络附加存储(NAS)、存储区域网络(SAN)等,实际存储和管理卷。
  • 卷状态和信息数据库:用于存储卷的状态和元数据信息,如卷的大小、类型、状态等。

三、主要功能

  1. 卷管理:
  • 支持卷的创建、删除、扩容和缩小。
  • 管理员可以通过API或命令行接口指定卷的大小、类型、名称和描述等信息。
  1. 卷快照:
  • 支持对现有卷的某个时刻的状态进行备份,可以用于数据的保护和还原。
  • 管理员可以通过API或命令行接口创建、删除和还原卷快照。
  1. 卷的迁移和复制:
  • 支持卷的迁移,即将卷从一个存储后端迁移到另一个存储后端。
  • 支持在同一存储后端中复制卷。
  • 管理员可以通过API或命令行接口进行卷的迁移和复制。
  1. 备份和还原:
  • 支持卷的备份和还原,将卷的数据备份到其他地方进行保护。
  • 管理员可以通过API或命令行接口创建、删除和还原卷的备份。
  1. 多租户支持:
  • 为不同的租户提供独立的块存储服务,并可以限制不同租户的配额和权限。
  1. 高可用性和容错性:
  • 支持多副本和数据冗余,同时还支持故障转移和自动恢复,确保存储服务的可用性和数据的安全性。

四、使用场景

Cinder广泛应用于云计算环境中,为虚拟机提供持久的块存储服务。它可以满足用户对存储资源的灵活性和可扩展性的需求,支持按需分配存储资源,降低存储和管理成本。

  1. 云服务器:
    Cinder可以作为云服务器的后端存储,提供高效的块存储服务。用户可以在云服务器上运行各种应用程序,并将数据存储在Cinder中,以保证数据的可靠性和可用性。
  2. 虚拟机:
    Cinder为虚拟机提供镜像的块存储服务。虚拟机可以在云环境中快速创建和部署,而Cinder则为其提供高效、稳定的存储支持,确保虚拟机的正常运行。
  3. 容器:
    随着容器技术的兴起,Cinder也可以作为容器的后端存储,为容器镜像提供块存储服务。容器是一种轻量级的虚拟化技术,可以快速创建和部署应用程序,而Cinder则为其提供可靠和高效的存储支持。
  4. 其他应用:
    Cinder还适用于其他多种应用场景,如在线游戏、视频处理、科学计算等。它可以与OpenStack的其他组件(如Nova和Swift)集成,为用户提供完整的云存储解决方案。

五、安装与配置

安装和配置OpenStack Cinder需要遵循一定的步骤,包括创建数据库、服务凭证和API节点,安装软件包,编辑配置文件等。具体过程可以参考OpenStack官方文档或相关教程。

1、安装前准备

  1. 创建数据库
    在控制节点上,为Cinder服务创建数据库并授权。以MySQL为例,可以使用如下命令:
mysql -u root -p  
CREATE DATABASE cinder;  
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';  
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';  
FLUSH PRIVILEGES;  
exit;

其中,CINDER_DBPASS是Cinder数据库用户的密码,请根据实际情况替换。

  1. 创建身份认证证书
    在OpenStack环境中,通常需要为Cinder服务创建一个用户,并分配相应的角色和权限。这可以通过OpenStack的命令行工具(如openstack CLI)完成。例如:
source admin-openrc.sh  # 加载admin用户的客户端脚本  
openstack user create --password-prompt cinder  
openstack role add --project service --user cinder admin  
openstack service create --name cinder --description "OpenStack Block Storage" volume  
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2  
openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volume  
openstack endpoint create --publicurl http://controller:8776/v3/%\(project_id\)s --internalurl http://controller:8776/v3/%\(project_id\)s --adminurl http://controller:8776/v3/%\(project_id\)s --region RegionOne volumev3

请注意,上述命令中的controller应替换为实际的控制节点主机名或IP地址,并且根据OpenStack的版本和配置,可能需要创建不同版本的endpoint。

2、安装Cinder

在控制节点和存储节点上安装Cinder。安装方法取决于使用的Linux发行版。以Ubuntu为例,可以使用apt-get命令:

sudo apt-get update  
sudo apt-get install cinder-api cinder-scheduler cinder-volume

在存储节点上,通常只需要安装cinder-volume组件。

3、配置Cinder

  1. 配置数据库连接
    编辑Cinder的配置文件(通常是/etc/cinder/cinder.conf),配置数据库连接信息:
[database]  
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder

请将CINDER_DBPASS替换为实际的数据库密码,controller替换为控制节点的主机名或IP地址。
2. 配置认证服务
在配置文件中,还需要配置认证服务的访问信息,以便Cinder能够与Keystone进行交互:

[keystone_authtoken]  
auth_uri = http://controller:5000  
auth_url = http://controller:35357  
auth_plugin = password  
project_domain_name = Default  
user_domain_name = Default  
project_name = service  
username = cinder  
password = CINDER_PASS

请将CINDER_PASS替换为Cinder用户的密码,其他信息根据实际情况填写。

  1. 配置消息队列
    Cinder使用RabbitMQ作为消息队列,需要在配置文件中配置RabbitMQ的访问信息:
[oslo_messaging_rabbit]  
rabbit_host = controller  
rabbit_userid = openstack  
rabbit_password = RABBIT_PASS

请将RABBIT_PASS替换为RabbitMQ用户的密码,controller替换为RabbitMQ服务器的主机名或IP地址。
4. 其他配置
根据实际需求,可能还需要配置存储后端、卷类型、日志记录等。这些配置通常在[DEFAULT]、[lvm]等部分进行。

4、初始化数据库并启动服务

在控制节点上,使用cinder-manage命令初始化数据库:

sudo su -s /bin/sh -c "cinder-manage db sync" cinder

然后,启动Cinder服务:

sudo service cinder-api restart  
sudo service cinder-scheduler restart  
sudo service cinder-volume restart

在存储节点上,只需启动cinder-volume服务。

5、验证配置

安装和配置完成后,可以通过OpenStack Dashboard或命令行工具验证Cinder服务的配置是否正确。例如,可以创建一个卷并尝试将其附加到虚拟机实例上。

请注意,上述步骤和命令可能因OpenStack的版本和配置而有所不同。因此,在实际操作中,请参考OpenStack的官方文档或相关教程。

六、通用命令

OpenStack Cinder提供了丰富的命令行工具,允许用户通过命令行界面对块存储服务进行管理和操作。以下是一些常用的Cinder命令行操作:

  1. 查看Cinder服务状态:
cinder service-list

该命令用于查看Cinder服务的状态,包括服务名称、主机、状态等信息。

  1. 创建块存储卷:
cinder create --display-name my_volume --size 1

该命令用于创建一个新的块存储卷,其中–display-name指定卷的名称,–size指定卷的大小(单位为GB)。

  1. 查看块存储卷列表:
cinder list

该命令用于列出当前存在的所有块存储卷。

  1. 挂载块存储卷:
    将块存储卷挂载到指定的虚拟机上通常需要使用Nova命令(因为Cinder主要负责存储管理,而Nova负责虚拟机管理),但Cinder命令可用于准备卷以进行挂载。挂载后,使用Nova命令进行实际的挂载操作。
  2. 卸载块存储卷:
    同样,卸载操作也主要由Nova命令完成,但Cinder命令可用于准备卷以进行卸载。
  3. 删除块存储卷:
cinder delete <volume_id>

该命令用于删除指定的块存储卷。

  1. 备份与恢复:
cinder backup-create <volume>  
cinder backup-delete <backup>  
cinder backup-list

这些命令用于创建、删除和列出卷的备份。

  1. 快照管理:
cinder snapshot-create <volume>  
cinder snapshot-delete <snapshot>  
cinder snapshot-list

这些命令用于对卷进行快照操作,包括创建、删除和列出快照。

  1. 查询与修改卷信息:
cinder show <volume>  
cinder rename <volume> <new_name>  
cinder reset-state <volume> --state available

这些命令用于查询卷的详细信息、重命名卷以及重置卷的状态。

  1. 卷迁移与复制:

Cinder支持卷的迁移和复制功能,但具体的命令行操作可能因版本和配置而异。通常,这些操作需要通过特定的API或扩展工具来完成。

七、API服务器

1、功能概述

Cinder API服务器的主要功能包括:

  1. 提供REST API:允许用户通过HTTP请求查询和管理卷(volume)、卷快照(volume snapshot)以及卷类型(volume type)等存储资源。
  2. 响应请求:接收来自客户端(如OpenStack Dashboard、命令行工具等)的请求,并调用Cinder的其他子组件(如cinder-volume、cinder-scheduler)来处理这些请求。
  3. 验证和授权:在处理请求之前,通常会验证客户端的身份和权限,确保只有合法的用户才能访问存储资源。

2、架构与部署

  1. 架构:
  • Cinder API服务器是Cinder组件的门户,它与其他Cinder组件(如cinder-volume、cinder-scheduler)以及OpenStack的其他组件(如Nova、Keystone)进行交互。
  • 它通过REST API提供统一的接口,使得用户可以方便地管理和操作存储资源。
  1. 部署:
  • Cinder API服务器可以单独部署在一个或多个节点上,以提供高可用性和负载均衡。
  • 在部署时,需要配置相应的网络、存储和安全设置,以确保Cinder API服务器能够正常运行并与其他组件安全通信。

3、操作与管理

  1. 创建卷:
  • 用户可以通过Cinder API发送HTTP POST请求来创建一个新的卷。请求中需要包含卷的名称、大小、类型等参数。
  • Cinder API服务器接收到请求后,会调用cinder-scheduler来选择合适的存储节点,并调用cinder-volume在该节点上创建卷。
  1. 查询卷:
  • 用户可以通过Cinder API发送HTTP GET请求来查询卷的列表或特定卷的详细信息。
  • Cinder API服务器会根据请求的参数返回相应的卷信息。
    修改和删除卷:
  • 用户还可以通过Cinder API发送HTTP PUT或DELETE请求来修改或删除卷。
  • 这些操作同样需要Cinder API服务器与cinder-volume等组件进行交互来完成。

4、安全性与可靠性

  1. 安全性:
  • Cinder API服务器支持HTTPS协议,可以加密客户端和服务器之间的通信数据,保护用户信息的安全。
  • 同时,Cinder还提供了基于角色的访问控制(RBAC)等安全机制,以确保只有具有相应权限的用户才能访问存储资源。
  1. 可靠性:
  • Cinder API服务器通常部署在高可用性的环境中,通过负载均衡和故障转移等技术来确保服务的连续性和可靠性。
  • 此外,Cinder还提供了数据备份和恢复等机制,以保护用户数据的安全和完整性。

八、卷管理器

OpenStack Cinder卷管理器(Volume Manager)是Cinder组件中的核心部分,负责管理和操作块存储卷(volumes)的生命周期。以下是关于Cinder卷管理器的详细解析:

1、功能概述

  1. 卷的创建与删除:
  • 卷管理器负责接收来自Cinder API服务器的请求,根据请求中的参数(如大小、类型、名称等)在指定的存储后端上创建新的卷。
  • 当卷不再需要时,卷管理器会处理来自Cinder API服务器的删除请求,确保卷被正确地从存储后端中移除。
  1. 卷的调整:
  • 支持卷的扩容和缩小操作。用户可以通过Cinder API发送请求来改变卷的大小,卷管理器会处理这些请求并确保数据的完整性和一致性。
  1. 卷的附加与分离:
  • 卷管理器还负责处理卷与虚拟机实例之间的附加和分离操作。当卷需要被挂载到虚拟机实例上时,卷管理器会确保卷被正确地附加到实例的指定接口上;当卷不再需要被挂载时,卷管理器会处理分离操作。
  1. 卷的复制与迁移:
  • 支持卷的复制和迁移功能。卷管理器可以将卷从一个存储后端复制到另一个存储后端,或者在同一个存储后端中复制卷。同时,也支持将卷从一个节点迁移到另一个节点,以提高系统的灵活性和可用性。
  1. 卷的快照与备份:
  • 卷管理器还负责管理卷的快照和备份操作。用户可以创建卷的快照来保存某个时刻的卷状态,以便后续恢复或分析。同时,卷管理器也支持将卷的数据备份到其他地方进行保护。

2、架构与部署

  1. 架构:
  • 卷管理器是Cinder组件中的一个独立服务,通常与其他Cinder子服务(如Cinder API服务器、Cinder调度器等)一起部署在OpenStack环境中。
  • 它通过内部消息队列(如RabbitMQ)与其他Cinder子服务进行通信和协作,以完成卷的创建、管理、删除等操作。
  1. 部署:
  • 在部署Cinder时,需要配置卷管理器的相关参数,包括存储后端的类型、位置、凭证信息等。
  • 根据实际需求,可以在不同的节点上部署多个卷管理器实例,以实现负载均衡和故障转移。

3、操作与管理

  1. 命令行操作:
  • 用户可以通过OpenStack的命令行工具(如openstack CLI)与卷管理器进行交互,完成卷的创建、删除、调整、附加、分离等操作。
  • 例如,使用openstack volume create命令可以创建一个新的卷;使用openstack volume delete命令可以删除一个卷;使用openstack volume attach和openstack volume detach命令可以分别将卷附加和分离到虚拟机实例上。
  1. Web界面操作:
    -除了命令行工具外,用户还可以通过OpenStack Dashboard(Horizon)等Web界面与卷管理器进行交互。这些界面提供了更直观、更友好的操作方式,使得用户可以更方便地管理卷资源。

九、调度器

OpenStack Cinder调度器(Scheduler)是Cinder组件中的一个重要部分,它负责根据用户定义的策略将卷(volume)创建请求分配给适当的存储后端。以下是关于Cinder调度器的详细解析:

1、功能概述

  1. 请求调度:
  • 当用户通过Cinder API发送卷创建请求时,Cinder调度器会接收这些请求,并根据预定义的调度策略和存储后端的可用性、性能、容量等因素,选择最合适的存储节点来创建卷。
  1. 策略优化:
  • Cinder调度器通过智能调度算法,优化存储资源的分配,确保系统的高效运行和资源的合理利用。
  1. 后端支持:
  • 它支持多种类型的存储后端,如本地磁盘、网络附加存储(NAS)、存储区域网络(SAN)等,可以根据实际需求进行选择和配置。

2、调度策略

Cinder调度器采用灵活的调度策略,用户可以根据实际需求进行配置。常见的调度策略包括:

  1. 容量优先:
  • 选择剩余容量最大的存储节点来创建卷,以确保系统有足够的空间来存储数据。
  1. 性能优先:
  • 选择性能最好的存储节点来创建卷,以满足对性能要求较高的应用场景。
  1. 负载均衡:
  • 尝试将卷创建请求分散到多个存储节点上,以实现负载均衡,提高系统的整体性能。
  1. 自定义策略:
  • 用户还可以根据实际需求编写自定义的调度策略,并将其集成到Cinder调度器中。

3、架构与部署

  1. 架构:
  • Cinder调度器是Cinder组件中的一个独立服务,通常与其他Cinder子服务(如Cinder API服务器、Cinder卷管理器等)一起部署在OpenStack环境中。
  • 它通过内部消息队列(如RabbitMQ)与其他Cinder子服务进行通信和协作,以完成卷的调度和创建等操作。
  1. 部署:
  • 在部署Cinder时,需要配置调度器的相关参数,包括调度策略、存储后端的类型、位置、凭证信息等。
  • 根据实际需求,可以在控制节点上部署Cinder调度器,以便集中管理所有存储节点的调度请求。

4、操作与管理

  1. 配置调度策略:
  • 用户可以通过修改Cinder配置文件(如cinder.conf)来配置调度策略。在配置文件中,可以指定调度器的类型、参数以及调度算法等。
  1. 监控与调优:
  • 管理员可以通过OpenStack的监控工具(如Ceilometer、Aodh等)来监控Cinder调度器的性能和状态,以便及时发现并解决问题。
  • 根据监控结果,管理员可以对调度策略进行调整和优化,以提高系统的性能和可靠性。

十、存储后端

OpenStack Cinder存储后端是Cinder服务的重要组成部分,它负责为虚拟机提供持久性块存储设备。Cinder可以与多种存储后端技术集成,以满足不同场景下的需求。以下是对OpenStack Cinder存储后端的详细解析:

1、支持的后端类型

Cinder支持多种类型的存储后端,包括但不限于:

  1. 本地存储:最简单的存储方式,即将虚拟机实例的块存储直接挂载到宿主机上。这种方式适用于对性能要求不高的场景,如测试环境。
  2. 分布式文件系统:如GlusterFS、CephFS等。分布式文件系统可以将数据分布在多个物理节点上,提供高性能、高可用性和容错能力。
  3. 对象存储:如Amazon S3、OpenStack Swift等。对象存储将数据以对象的形式进行管理,每个对象都有一个唯一的标识符,具有高度的可扩展性、持久性和安全性。
  4. 块设备:如硬盘、固态硬盘等。Cinder支持与多种块设备集成,如EMC、IBM等厂商的存储设备。

2、配置过程

配置Cinder存储后端的过程可能因所选的后端类型而异,但一般包括以下步骤:

  1. 环境准备:安装OpenStack组件及其必要的依赖。
  2. 配置文件修改:打开Cinder的配置文件(如cinder.conf),添加或修改与所选后端相关的配置信息。例如,对于LVM后端,需要指定卷驱动、后端名称、卷组等信息。
  3. 后端准备:根据所选的后端类型进行相应的准备工作。例如,对于LVM后端,需要创建物理卷和卷组;对于分布式文件系统或对象存储后端,需要配置和启动相应的服务。
  4. 服务启动:启动Cinder服务,使配置生效。
  5. 测试验证:通过创建和管理卷来测试Cinder存储后端是否正常工作。

3、特点与优势

  1. 灵活性:Cinder支持多种存储后端,用户可以根据实际需求选择合适的存储方案。
  2. 可扩展性:随着存储需求的增长,用户可以轻松地扩展存储后端,以满足虚拟机实例的存储需求。
  3. 高可用性:通过配置分布式文件系统或对象存储等后端,Cinder可以提供高可用性的存储解决方案,确保数据的可靠性和持久性。
  4. 易于管理:OpenStack提供了丰富的管理工具和API接口,用户可以方便地管理和监控Cinder存储后端的状态和性能。

4、示例配置

以LVM后端为例,配置过程可能包括:

  1. 在cinder.conf文件中添加以下配置:
[lvm]  
volume_driver = cinder.volume.drivers.lvm.LVMISCSIDriver  
volume_backend_name = lvm  
volume_group = cinder-volumes
  1. 创建物理卷和卷组:
sudo pvcreate /dev/sdb  
sudo vgcreate cinder-volumes /dev/sdb
  1. 启动Cinder服务:
sudo cinder-manage db sync  
sudo service cinder-volume restart
  1. 测试配置:
openstack volume create --size 1 test-volume  
openstack volume list

通过上述步骤,用户可以将LVM配置为Cinder的存储后端,并为虚拟机实例提供块存储服务。需要注意的是,实际配置过程可能因OpenStack版本和存储后端类型的不同而有所差异,用户应参考OpenStack官方文档或相关社区指南进行配置。

十一、卷状态和信息数据库

OpenStack Cinder中的卷状态和信息数据库是Cinder组件的重要组成部分,它们共同协作以确保块存储服务的有效性和可靠性。以下是对这两个方面的详细解析:

1. 卷状态

在OpenStack Cinder中,卷的状态用于表示卷的当前状况,以便管理员和用户能够了解卷是否可用、正在使用、发生错误或处于其他状态。常见的卷状态包括:

  • available:卷可用于实例,处于空闲状态。
  • in-use:卷正在被某个实例使用。
  • error:卷在创建或操作中发生了错误,需要管理员进行干预。
  • creating:卷正在被创建过程中。
  • deleting:卷正在被删除过程中。
  • attaching:卷正在被附加到某个实例上。

管理员可以使用OpenStack CLI或API来查询和更改卷的状态。例如,通过openstack volume show <volume_id>命令可以查询特定卷的详细信息,包括其当前状态。在需要时,管理员还可以通过CLI或API将卷的状态更改为其他状态,如将卷从“available”更改为“error”或重置为“available”。

2. 信息数据库

Cinder的信息数据库用于存储卷的状态信息和其他元数据,如卷的大小、类型、创建时间等。这些信息对于管理块存储服务至关重要,因为它们使管理员能够了解卷的详细情况,并在需要时执行相应的操作。

Cinder的数据库通常是一个关系型数据库,如MySQL或PostgreSQL。在OpenStack部署中,Cinder服务会连接到这个数据库,以读取和写入卷的状态和元数据信息。数据库中的表结构经过精心设计,以确保能够高效地存储和检索这些信息。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端辅助工具分享(像素大厨)

引言&#xff1a; 我们在从事前端开发工作时&#xff0c;常会需要测量许多盒子的尺寸&#xff0c;颜色提取种种&#xff0c;切图&#xff0c;还有文字大小等信息&#xff0c;光从肉眼很难看出来&#xff0c;当然我们传统的会使用Photoshop来帮助我们完成这些工作&#xff0c;但…

LeetCode 第417场周赛个人题解

目录 Q1. 找出第 K 个字符 I 原题链接 思路分析 AC代码 Q2. 元音辅音字符串计数 I 原题链接 思路分析 AC代码 Q3. 元音辅音字符串计数 II 原题链接 思路分析 AC代码 Q4. 找出第 K 个字符 II 原题链接 思路分析 AC代码 Q1. 找出第 K 个字符 I 原题链接 Q1. 找出…

ethtool网络命令

1、ethtool命令描述 ethtool 是用于查询及设置网卡参数的命令。 2、查看网卡eth0信息 [rootes01 ~]# ethtool eth0 3、查看网络eth0速率 [rootmgr2 tmp]# ethtool -S eth0 4、设置网口 设置网口速率10/100/1000M、设置网口半/全双工、设置网口是否自协商 ethtool –s eth…

现在企业生存都困难,还谈什么数字化转型?

在当下经济大环境不好的情景下&#xff0c;经常听到如下论调&#xff1a;企业生存都困难&#xff0c;还谈什么数字化?这一论调反映了在当前经济环境下&#xff0c;一些企业对于数字化转型的疑虑和担忧&#xff0c;同时对数字化转型也缺乏正确的认知。下面笔者就上述论调进行简…

JAVA TCP协议初体验

文章目录 一、需求概述二、设计选择三、代码结构四、代码放送五、本地调试1. 服务端日志2. 客户端日志3. 断线重连日志 六、服务器部署运行1. 源码下载2. 打包镜像3. 运行容器 一、需求概述 最近开发某数据采集系统&#xff0c;系统整体的数据流程图如下&#xff1a; #mermaid…

聚观早报 | 淘宝已接入微信支付;Meta Orion AR眼镜发布

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 9月29日消息 淘宝已接入微信支付 Meta Orion AR眼镜发布 iQOO 13将登陆印度市场 小鹏汽车加码布局上海 哔哩哔哩…

电脑自带dll修复在哪里,dll丢失的6种解决方法总结

在现代科技日新月异的时代&#xff0c;电脑已经成为我们生活中不可或缺的一部分。然而&#xff0c;在使用电脑的过程中&#xff0c;我们常常会遇到一些常见的问题&#xff0c;其中之一就是dll文件丢失或损坏。当这些dll文件丢失或损坏时&#xff0c;可能会导致某些应用程序无法…

网络抓包03 - 实践篇

声明&#xff1a; 本文中提及的APK及相关内容仅用于学习和交流目的&#xff0c;不涉及任何商业用途。本文不鼓励或支持任何形式的版权侵犯行为&#xff0c;同时也强调对软件的安全使用。我们尊重和维护开发者的权益&#xff0c;强烈建议读者在使用软件时遵守相关法律法规&#…

烟雾检测算法、明烟明火检测、烟火识别算法

烟火检测是一种基于先进技术的安全监控手段&#xff0c;主要用于及时发现和预防火灾等安全事故。其技术原理和应用领域可以详细阐述如下&#xff1a; 技术原理 烟火检测算法主要依赖于计算机视觉、深度学习以及图像处理技术。具体步骤包括&#xff1a; 1、数据采集与预处理&…

jQuery——css

本文分享到此结束&#xff0c;欢迎大家评论区相互讨论学习&#xff0c;下一篇继续分享jQuery中offset 和 position的学习。

深度学习--------------------------------门控循环单元GRU

目录 门候选隐状态隐状态门控循环单元GRU从零开始实现代码初始化模型参数定义隐藏状态的初始化函数定义门控循环单元模型训练该部分总代码简洁代码实现 做RNN的时候处理不了太长的序列&#xff0c;这是因为把整个序列信息全部放在隐藏状态里面&#xff0c;当时间很长的话&#…

SpringCloud学习记录|day1

学习材料 2024最新SpringCloud微服务开发与实战&#xff0c;java黑马商城项目微服务实战开发&#xff08;涵盖MybatisPlus、Docker、MQ、ES、Redis高级等&#xff09; 学redis讲到微服务就停了&#xff0c;nginx也是。 所以嘛&#xff0c;我终于来到微服务了。 复习MyBatisP…

鸿蒙HarmonyOS开发生态

1、官网 华为开发者联盟-HarmonyOS开发者官网&#xff0c;共建鸿蒙生态 2、开发工具IDE下载及使用 https://developer.huawei.com/consumer/cn/ 3、使用帮助文档 4、发布到华为应用商店 文档中心

免费分享一套SpringBoot+Vue火车票订票管理系统【论文+源码+SQL脚本】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue火车票订票管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringbootVue火车票订票管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 传统办法管理信息首先需要花费的时间比较多&…

CEX上币趋势分析:Infra赛道与Ton生态的未来

在当前的加密市场中&#xff0c;CEX&#xff08;中心化交易所&#xff09;上币的选择愈发重要&#xff0c;尤其是对项目方而言。根据 FMG 的整理&#xff0c;结合「杀破狼」的交易所上币信息&#xff0c;显然 Infra 赛道成为了交易所的热门选择&#xff0c;而 Ton 生态也展现出…

相互作用感知的 3D 分子生成 VAE 模型 - DeepICL 评测

DeepICL 是一个基于相互作用感知的 3D 分子生成模型&#xff0c;能够在目标结合口袋内进行相互作用引导的小分子设计。DeepICL 通过利用蛋白质-配体相互作用的普遍模式作为先验知识&#xff0c;在有限的实验数据下也能实现高度的泛化能力。 一、背景介绍 DeepICL 来源于韩国科学…

CHItrans简介--DVM

DVM基础flow 注&#xff1a;上图中&#xff0c;没有画出DVM指令对应的snoop request&#xff0c;相关snp请求如下所示&#xff1a; 对应的snp请求 Non-sync DVM trans flow Sync DVM trans flow Flow Control 后续的说明&#xff0c;参考&#xff1a; CHI协议之DVM操作_dvm r…

MySql语言操作数据库---MySql引擎,数据表,约束,基本查询,条件查询

数据库引擎 作用:引擎决定了数据是如何存在于数据库中的.不同引擎存储结构和特征是不同的. 常见引擎: InnoDB,MyISAM,MemoryMysql引擎操作: 查看支持的引擎: show engines; 给表设置引擎:create table student2(name varchar(20),age int )engine InnoDB; -- todo 展示所有的…

elasticsearch_exporter启动报错 failed to fetch and decode node stats

最近把服务器迁移到了ubuntu系统&#xff0c;结果发现在centos还正常运行的elasticsearch_exporter&#xff0c;用systemd启动后一直报错 failed to fetch and decode node stats 在网上翻了大半年&#xff0c;竟然都无解&#xff01;这种报错&#xff0c;很明显就是你的ES密码…

使用WPF实现一个快速切换JDK版本的客户端工具

发现网上一键切换JDK环境的方法都是在mac或Linux下的&#xff0c;本人主力电脑是Windows&#xff0c;于是看了一下WPF的文档&#xff0c;自己开发了一个客户端。 直接上代码吧&#xff1a; using JavaSwitch.Properties; using Newtonsoft.Json; using System; using System.…