OpenStack-Glance组件

news2024/12/27 1:50:20

Glance

    • Glance使用
      • 磁盘格式和容器格式
      • 基础配置
      • 镜像转换

Glance 是 OpenStack 的镜像服务,负责存储、发现和管理虚拟机镜像。它允许用户创建和共享镜像,用于启动虚拟机实例。

Glance 的主要功能
(1)虚拟机镜像的管理
支持镜像的上传、下载、删除和更新。
用户可以通过命令行、API 或 OpenStack Dashboard 管理镜像。
(2)多种镜像格式支持
Glance 支持常见的虚拟机镜像格式,包括:

  • RAW:原始磁盘镜像,无压缩。
  • QCOW2:QEMU/KVM 的可扩展镜像格式,支持快照和压缩。
  • VMDK:VMware 的镜像格式。
  • VHD 和 VHDX:Hyper-V 的镜像格式。
  • ISO:光盘镜像,常用于安装系统。

(3)多种存储后端支持
Glance 支持多种存储后端,用于存储镜像数据:
本地文件系统。
分布式存储系统(如 Ceph、Swift)。
对象存储服务(如 Amazon S3)。
数据库存储。
(4)镜像共享和访问控制
私有镜像:仅限拥有者使用。
公共镜像:所有租户都可以使用。
共享镜像:拥有者可以指定其他租户访问。
(5)镜像的元数据管理
每个镜像都可以包含元数据(metadata),如操作系统类型、版本、创建时间等。
用户和管理员可以自定义元数据,用于描述镜像特性。

Glance 的架构
(1)核心组件
Glance 包括以下核心组件:

  • Glance API:
    提供 RESTful API 接口,供用户和服务调用。
    支持镜像的上传、下载、查询和删除等操作。

  • Glance Registry(已弃用):
    旧版本用于存储镜像的元数据和注册信息,现在的元数据通常直接存储在数据库中。

  • 数据库:
    存储镜像的元数据(如镜像的名称、大小、状态、创建时间等)。
    存储后端:

存放镜像文件的实际数据。可以是本地文件系统、对象存储(如 Swift)或块存储(如 Ceph,Cinder等)

工作流程

  • 镜像上传:
    用户通过 CLI 或 API 调用 Glance,将镜像文件上传到 Glance。
    Glance API 接收镜像数据,并存储在指定的存储后端,同时在数据库中记录元数据。
  • 镜像查询:
    用户通过 Glance 查询可用的镜像列表。
    Glance 从数据库中检索镜像元数据,并返回给用户。
  • 镜像下载:
    当 Nova 启动实例时,会从 Glance 下载指定镜像到计算节点。
    Glance API 从存储后端检索镜像文件,并提供给 Nova。

Glance使用

Ubuntu2404server环境,Glance版本4.4.0

glance服务

systemctl status glance-api

日志路径

tail -f /var/log/glance/glance-api.log

glance默认的镜像存储位置为本地,在配置文件glance-api.conf中进行指定

[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
[image_format]
disk_formats = ami,ari,aki,vhd,vhdx,vmdk,raw,qcow2,vdi,iso,ploop.root-tar

上传cirros测试镜像,web界面也可以上传镜像,但是如果镜像很大则可能失败,这时用命令行界面上传可以成功

Glance的其他命令可参考博文,这里不多概述了

root@controller:~# openstack image create --disk-format qcow2 --container-format bare --file cirros-0.3.4-x86_64-disk.img --progress cirros
[=============================>] 100%
+------------------+-----------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                     |
+------------------+-----------------------------------------------------------------------------------------------------------+
| container_format | bare                                                                                                      |
| created_at       | 2024-12-03T08:39:25Z                                                                                      |
| disk_format      | qcow2                                                                                                     |
| file             | /v2/images/500df5b1-45e7-4cf0-acfe-621b2c61ae5b/file                                                      |
| id               | 500df5b1-45e7-4cf0-acfe-621b2c61ae5b                                                                      |
| min_disk         | 0                                                                                                         |
| min_ram          | 0                                                                                                         |
| name             | cirros                                                                                                    |
| owner            | e85a7093d85344378bb1b016fc6a1b1b                                                                          |
| properties       | os_hidden='False', owner_specified.openstack.md5='', owner_specified.openstack.object='images/cirros',    |
|                  | owner_specified.openstack.sha256=''                                                                       |
| protected        | False                                                                                                     |
| schema           | /v2/schemas/image                                                                                         |
| status           | queued                                                                                                    |
| tags             |                                                                                                           |
| updated_at       | 2024-12-03T08:39:25Z                                                                                      |
| visibility       | shared                                                                                                    |
+------------------+-----------------------------------------------------------------------------------------------------------+
root@controller:~# ls /var/lib/glance/images
500df5b1-45e7-4cf0-acfe-621b2c61ae5b

上传的镜像除了存储在本地外,还可以配置cinder,swift,ceph等作为后端存储

  • 镜像状态
    • Glance 中的图像可以处于以下状态之一:
      queued
      图像标识符已为 Glance 注册表中的图像保留。没有图像数据上传到 Glance,并且图像大小在创建时未明确设置为零。
      saving
      表示当前正在将图片的原始数据上传到 Glance。当使用POST /images调用注册图片并且存在x-image-meta-location标头时,该图片永远不会处于保存状态(因为图片数据已在其他位置可用)。
      uploading
      表示已进行导入数据放入调用。在此状态下,不允许调用PUT /file 。(请注意,对排队图像调用PUT /file会使图像进入保存状态。当图像处于保存状态时,不允许调用PUT /stage。因此,无法在同一图像上使用两种上传方法。)
      importing
      表示已进行导入调用但图像尚未准备好使用。
      active
      表示在 Glance 中完全可用的镜像。当上传镜像数据或创建时明确将镜像大小设置为零时,就会发生这种情况。
      deactivated
      表示不允许任何非管理员用户访问图像数据。禁止下载图像还会禁止可能需要图像数据的图像导出和图像克隆等操作。
      killed
      表示上传图像数据时发生错误,图像无法读取。
      deleted
      Glance 保留了有关该镜像的信息,但已不再可用。处于此状态的镜像将在稍后自动删除。
      pending_delete
      这与已删除类似,但是 Glance 尚未删除映像数据。处于此状态的映像不可恢复。

在这里插入图片描述
任务状态

  • Glance 中的任务可以处于以下状态之一:
    pending
    任务标识符已为 Glance 中的任务保留。尚未开始对其进行处理。
    processing
    该任务已被底层执行器接收,并正在使用该任务类型的后端 Glance 执行逻辑运行。
    success
    表示该任务已在 Glance 中成功运行。result 任务字段显示有关结果的更多详细信息。
    failure
    表示在执行任务期间发生错误,无法继续处理。message任务的字段显示错误是什么。

磁盘格式和容器格式

在 OpenStack 的 Glance 服务中,镜像文件需要指定磁盘格式和容器格式。这两个属性决定了镜像文件的组织方式,以及它如何被用作虚拟机实例的磁盘。

  • 磁盘格式(Disk Format)
    磁盘格式描述镜像文件中虚拟磁盘的存储方式。它决定了镜像如何被解码和加载到虚拟机中, 决定了镜像的存储结构,影响性能、存储占用和功能支持。
格式名称描述使用场景
RAW原始磁盘镜像文件,未压缩,未封装。直接复制磁盘的字节内容,效率高但占用空间较大。
QCOW2QEMU/KVM 的磁盘格式,支持动态分配和快照。文件占用空间小,支持压缩。 常用格式,适合 KVM/QEMU。
VMDKVMware 的磁盘格式,兼容 VMware 产品。使用 VMware 虚拟化平台时。
VHDMicrosoft Hyper-V 的磁盘格式,支持动态和固定大小。在 Hyper-V 环境中使用。
ISO光盘镜像格式,通常用于操作系统的安装盘(例如 Ubuntu、CentOS 的安装 ISO)。系统安装或启动时加载 ISO 文件。
AMIAmazon Machine Image,Amazon EC2 使用的镜像格式。使用 Amazon EC2 云的迁移场景。
VDIVirtualBox 的磁盘格式。VirtualBox 用户使用。
PLAIN非特定格式的数据块镜像,类似于 RAW 格式。特殊场景的自定义存储。
  • 容器格式(Container Format)
    容器格式定义了磁盘镜像的封装方式,以及它是否包含额外的元数据(如启动引导信息、分区表等)。决定了镜像的封装方式,影响其在虚拟化平台上的适用性。
格式名称描述使用场景
bare无容器封装的纯磁盘镜像,直接使用磁盘格式(如 RAW、QCOW2)。最常见的容器格式,直接加载磁盘镜像。
ovfOpen Virtualization Format,包含虚拟机描述文件和磁盘镜像。跨虚拟化平台迁移或分发镜像。
ovaOVF 的封装形式,通常打包为单个文件(包含 OVF 描述和磁盘镜像)。分发虚拟机模板。
akiAmazon Kernel Image,封装用于引导的内核镜像。使用 Amazon 相关服务时。
ariAmazon Ramdisk Image,封装用于引导的 ramdisk 镜像。使用 Amazon 相关服务时。
amiAmazon Machine Image,与磁盘格式 AMI 搭配使用,通常是 Amazon 的完整镜像。使用 Amazon 相关服务时。
dockerDocker 容器格式,用于分发和运行容器化应用。容器化场景。
  • 磁盘格式和容器格式的关系
    磁盘格式 和 容器格式 是独立的,但需要配合使用。

例如:
一个 RAW 磁盘镜像通常使用 bare 容器格式,因为它没有额外的封装。
一个 OVF 容器格式的镜像可能使用 QCOW2 或 VMDK 磁盘格式。

如何选择格式

需求磁盘格式容器格式
高性能,简单直接RAWbare
节省存储空间,支持快照QCOW2bare
VMware 平台迁移或集成VMDKovf
Hyper-V 平台VHD/VHDXbare
创建系统安装盘(如 ISO 文件)ISObare

基础配置

官网示例配置文件
官网参数说明

  • glance-api.conf可以在文件中的 部分下放置以下选项[DEFAULT]。它们分别启用 API 服务器的启动和绑定行为。
[DEFAULT]
bind_host=ADDRESS
#绑定到的主机的地址。
#可选。默认值:0.0.0.0
bind_port=PORT
#服务器应绑定到的端口。
#可选。默认值:9292用于 API 服务器
backlog=REQUESTS
#配置套接字的积压请求数。
#可选。默认值:4096
tcp_keepidle=SECONDS
#为每个服务器套接字设置 TCP_KEEPIDLE 的值(以秒为单位)。不支持 OS X。
#可选。默认值:600
client_socket_timeout=SECONDS
#客户端连接套接字操作的超时时间。如果传入连接在此期间处于空闲状态,则它将被关闭。值为0 表示永远等待。
#可选。默认值:900
workers=PROCESSES
#要启动的 Glance API 工作进程数。每个工作进程将侦听同一端口。增加此值可能会提高性能(尤其是在使用启用了压缩的 SSL 时)。通常建议
#每个 CPU 有一个工作进程。值0将阻止创建任何新的工作进程。当data_api设置为 时 glance.db.simple.api,workers必须设置为0或1。
#可选。默认值:默认使用可用的 CPU 数量。
max_request_id_length=LENGTH
#限制记录的 x-openstack-request-id 标头的最大大小。仅当在管道中配置了上下文中间件时才有效。
#可选。默认值:(64受 max_header_line 默认值限制:16384)

image_size_cap=SIZE
#配置 Glance 镜像大小限制
#可通过 Glance API 服务器上传的最大图像大小(以字节为单位)。
#重要提示:只有经过仔细考虑后才能增加此值,并且必须将其设置为低于 8 EB (9223372036854775808) 的值。
#可选。默认值:1099511627776(1 TB)


user_storage_quota=100G
#可选。默认值:0(无限制)。
#配置 Glance 用户存储配额
#此值指定每个用户可以在所有存储系统上使用的最大存储量。可以选择为该值指定单位。值可以以 B、KB、MB、GB 或 TB 为单位,分别表示字节、千字节、兆字节、千兆字节和太字节。默认单位为字节。
  • 配置 Glance 存储后端

使用多个存储配置文件系统存储后端

[glance_store]
stores = file,http
default_store = file
filesystem_store_datadirs = /var/glance/store
filesystem_store_datadirs = /var/glance/store1:100
filesystem_store_datadirs = /var/glance/store2:200

此选项只能在配置文件中指定,并且仅适用于文件系统存储后端。

filesystem_store_datadirs 选项允许管理员配置多个存储目录,以在文件系统存储后端保存 Glance 映像。每个目录都可以与其优先级结合使用。

  • 可以多次指定此选项以指定多个商店。
    必须在 gaze-api.conf 中指定 filesystem_store_datadir 或 filesystem_store_datadirs 选项
    优先级为 200 的商店优先于优先级为 100 的商店。
    如果没有指定优先级,则默认优先级为“0”。
    如果两个文件系统存储具有相同的优先级,则会选择具有最大可用空间的存储来存储图像。
    如果多次指定同一个商店,则会引发 BadStoreConfiguration 异常。

配置cinder为后端存储

[root@controller ~]# vi /etc/glance/glance-api.conf
#show_multiple_locations = false
改为
show_multiple_locations = True

修改
[glance_store]
stores = cinder
default_store=cinder

[root@controller ~]# systemctl restart openstack-glance-*
[root@controller ~]# vi /etc/cinder/cinder.conf
#allowed_direct_url_schemes =
改为
allowed_direct_url_schemes =cinder

#image_upload_use_internal_tenant = false
改为
image_upload_use_internal_tenant = True
#最后重启cinder
[root@controller ~]# systemctl restart *cinder*

swift作为后端存储

[root@controller ~]# vi /etc/glance/glance-api.conf
[glance_store]
stores=glance.store.filesystem.Store,glance.store.swift.Store,glance.store.http.Store
default_store=swift
swift_store_region=RegionOne
swift_store_endpoint_type=internalURL
swift_store_container=chinaskill_glance
swift_store_large_object_size=5120
swift_store_large_object_chunk_size=200
swift_store_create_container_on_put=True
swift_store_multi_tenant=True
swift_store_admin_tenants=service
swift_store_auth_address=http://controller:5000/v3
swift_store_user=glance
swift_store_key=000000

[root@controller ~]# systemctl restart openstack-glance-*

配置 VMware 存储后端

  • vmware_server_host=ADDRESS
    使用 VMware 存储后端时必需。
    只能在配置文件中指定。
    设置 ESX/ESXi 或 vCenter Server 目标系统的地址。该地址可以包含 IP ( 127.0.0.1)、IP 和端口 ( 127.0.0.1:443)、DNS 名称 ( www.my-domain.com) 或 DNS 和端口。
    此选项特定于 VMware 存储后端。
  • vmware_server_username=USERNAME
    使用 VMware 存储后端时必需。
    只能在配置文件中指定。
    用于通过 VMware ESX/ESXi 或 vCenter Server 进行身份验证的用户名。
  • vmware_server_password=PASSWORD
    使用 VMware 存储后端时必需。
    只能在配置文件中指定。
    用于对 VMware ESX/ESXi 或 vCenter Server 进行身份验证的密码。
  • vmware_datastores
    使用 VMware 存储后端时必需。
    此选项只能在配置文件中指定,并且特定于 VMware 存储后端。
  • vmware_datastores 允许管理员配置多个数据存储,以将 Glance 映像保存在 VMware 存储后端。该选项所需的格式为:<datacenter_path>:<datastore_name>:<optional_weight>。
    其中 datacenter_path 是数据存储所在数据中心的清单路径。可以给出可选权重来指定优先级。
  • vmware_api_retry_count=TIMES
    可选。默认值:10
    只能在配置文件中指定。
    出现连接相关问题时必须重试 VMware ESX/VC 服务器 API 的次数。
  • vmware_task_poll_interval=SECONDS
    可选。默认值:5
    只能在配置文件中指定。
    用于轮询在 VMware ESX/VC 服务器上调用的远程任务的间隔。
  • vmware_store_image_dir
    可选。默认值:/openstack_glance
    只能在配置文件中指定。
    访问数据存储中存储图像的文件夹的路径。
  • vmware_api_insecure=ON_OFF
    可选。默认值:False
    只能在配置文件中指定。
    允许对 ESX/VC 服务器执行不安全的 SSL 请求。
    例子:
[glance_store]
vmware_datastores = datacenter1:datastore1
vmware_datastores = dc_folder/datacenter2:datastore2:100
vmware_datastores = datacenter1:datastore3:200

可以多次指定此选项以指定多个数据存储。
必须在 gaze-api.conf 中指定 vmware_datastore_name 或 vmware_datastores 选项
权重为 200 的数据存储优先于权重为 100 的数据存储。
如果没有指定权重,则默认权重为“0”。
如果两个数据存储具有相同的权重,则将选择具有最大可用空间的数据存储来存储图像。
如果数据中心路径或数据存储名称包含冒号 :符号,则必须使用反斜杠进行转义。

配置S3存储后端

  • s3_store_host
    只能在配置文件中指定。
    S3 服务器正在监听的主机。此选项可以包含 DNS 名称(例如 s3.amazonaws.com、my-object-storage.com)或 IP 地址(127.0.0.1)。
  • s3_store_access_key
    只能在配置文件中指定。
    用于与 Amazon S3 或 S3 兼容存储服务器进行身份验证的访问密钥。
  • s3_store_secret_key
    只能在配置文件中指定。
    用于与 Amazon S3 或 S3 兼容存储服务器进行身份验证的密钥。
  • s3_store_bucket
    只能在配置文件中指定。
    在 S3 中存储 Glance 图像的存储桶名称。如果s3_store_create_bucket_on_put设置为 true,即使存储桶不存在也会自动创建。
  • s3_store_create_bucket_on_put
    可选。默认值:False
    只能在配置文件中指定。
    确定 S3 是否应创建新的 bucket。此选项采用布尔值来指示如果 bucket 不存在,Glance 是否应在 S3 中创建新的 bucket。
  • s3_store_bucket_url_format
    可选。默认值:auto
    只能在配置文件中指定。
    此选项采用用于指定 S3 存储桶中对象地址的访问模型。您可以将值设置为auto、virtual或 path。
  • s3_store_large_object_size
    可选。默认值:100
    只能在配置文件中指定。
    S3 应以什么大小(以 MB 为单位)开始对图像文件进行分块并在 S3 中执行分段上传。
  • s3_store_large_object_chunk_size
    可选。默认值:10
    只能在配置文件中指定。
    S3 在上传部分时应使用多部分上传部分的大小(以 MB 为单位)。
  • s3_store_thread_pools
    可选。默认值:10
    只能在配置文件中指定。
    在 S3 中执行分段上传的线程池数量。

示例:

[glance_store]
s3_store_host = http://s3-ap-northeast-1.amazonaws.com
s3_store_host = https://s3-ap-northeast-1.amazonaws.com
s3_store_host = http://my-object-storage.com
s3_store_host = https://my-object-storage.com:9000

在path风格中,对象的端点看起来像https://s3.amazonaws.com/bucket/example.img。
在virtual风格中,对象的端点看起来像https://bucket.s3.amazonaws.com/example.img。
如果您在存储桶名称中不遵循 DNS 命名约定,则可以获取路径样式的对象,但不能获取虚拟样式的对象。

配置镜像策略的yaml文件:官网

  • 配置格式如下
    该配置文件通过role:admin形式指定配置权限
root@controller:~# cat /etc/glance/policy.yaml
{
    "context_is_admin":  "role:admin",
    "default": "role:admin",

    "add_image": "role:admin",
    "delete_image": "",
    "get_image": "",
    "get_images": "",
    "modify_image": "",
    "publicize_image": "role:admin",
    "communitize_image": "",
    "copy_from": "",

    "download_image": "",
    "upload_image": "",

    "delete_image_location": "",
    "get_image_location": "",
    "set_image_location": "",

    "add_member": "",
    "delete_member": "",
    "get_member": "",
    "get_members": "",
    "modify_member": "",

    "manage_image_cache": "role:admin",

    "get_task": "",
    "get_tasks": "",
    "add_task": "",
    "modify_task": "",
    "tasks_api_access": "role:admin",
    "deactivate": "",
    "reactivate": "",
    "get_metadef_namespace": "",
    "get_metadef_namespaces":"",
    "modify_metadef_namespace":"",
    "add_metadef_namespace":"",

    "get_metadef_object":"",
    "get_metadef_objects":"",
    "modify_metadef_object":"",
    "add_metadef_object":"",

    "list_metadef_resource_types":"",
    "get_metadef_resource_type":"",
    "add_metadef_resource_type_association":"",

    "get_metadef_property":"",
    "get_metadef_properties":"",
    "modify_metadef_property":"",
    "add_metadef_property":"",

    "get_metadef_tag":"",
    "get_metadef_tags":"",
    "modify_metadef_tag":"",
    "add_metadef_tag":"",
    "add_metadef_tags":""
}

镜像转换

qemu-img 是 QEMU 提供的一个用于创建、转换和操作虚拟机磁盘镜像的命令行工具。它支持多种磁盘镜像格式,如 QCOW2、RAW、VMDK 等,是管理虚拟磁盘镜像的核心工具之一

  • 查看镜像信息
    输出镜像的大小、格式、实际占用空间等信息
root@controller:~# qemu-img info cirros-0.3.4-x86_64-disk.img
image: cirros-0.3.4-x86_64-disk.img
file format: qcow2
virtual size: 39.2 MiB (41126400 bytes)
disk size: 12.7 MiB
cluster_size: 65536
Format specific information:
    compat: 0.10
    compression type: zlib
    refcount bits: 16
Child node '/file':
    filename: cirros-0.3.4-x86_64-disk.img
    protocol type: file
    file length: 12.7 MiB (13287936 bytes)
    disk size: 12.7 MiB
  • 转换磁盘格式
    将磁盘镜像从一种格式转换为另一种格式
    qemu-img convert -f <源格式> -O <目标格式> <源镜像文件> <目标镜像文件>
root@controller:~# qemu-img convert -f qcow2 -O raw cirros-0.3.4-x86_64-disk.img cirros-raw.img
root@controller:~# qemu-img info cirros-raw.img
image: cirros-raw.img
file format: raw
virtual size: 39.2 MiB (41126400 bytes)
disk size: 17.8 MiB
Child node '/file':
    filename: cirros-raw.img
    protocol type: file
    file length: 39.2 MiB (41126400 bytes)
    disk size: 17.8 MiB
  • 扩展磁盘大小
    调整磁盘镜像的大小(只能扩展)需要在操作系统中调整分区才能实际使用扩展空间。
root@controller:~# qemu-img resize cirros-0.3.4-x86_64-disk.img +10M
Image resized.
root@controller:~# qemu-img info cirros-0.3.4-x86_64-disk.img
image: cirros-0.3.4-x86_64-disk.img
file format: qcow2
virtual size: 49.2 MiB (51612160 bytes)
disk size: 12.7 MiB
cluster_size: 65536
Format specific information:
    compat: 0.10
    compression type: zlib
    refcount bits: 16
Child node '/file':
    filename: cirros-0.3.4-x86_64-disk.img
    protocol type: file
    file length: 12.7 MiB (13287936 bytes)
    disk size: 12.7 MiB
root@controller:~#
  • 压缩磁盘镜像
    将磁盘镜像压缩以节省存储空间(适用于 QCOW2)
    qemu-img convert -O qcow2 -c <源镜像文件> <目标镜像文件>
root@controller:~# qemu-img convert -O qcow2 -c cirros-0.3.4-x86_64-disk.img cirros-qcow2.img

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

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

相关文章

基于神经网络的弹弹堂类游戏弹道快速预测

目录 一、 目的... 1 1.1 输入与输出.... 1 1.2 隐网络架构设计.... 1 1.3 激活函数与损失函数.... 1 二、 训练... 2 2.1 数据加载与预处理.... 2 2.2 训练过程.... 2 2.3 训练参数与设置.... 2 三、 测试与分析... 2 3.1 性能对比.... 2 3.2 训练过程差异.... 3 四、…

Linux入门攻坚——40、Linux集群系统入门-lvs(1)

Cluster&#xff0c;集群&#xff0c;为了解决某个特定问题将多台计算机组合起来形成的单个系统。 这个单个集群系统可以扩展&#xff0c;系统扩展的方式&#xff1a;scale up&#xff0c;向上扩展&#xff0c;更换更好的主机&#xff1b;scale out&#xff0c;向外扩展&…

威联通-001 手机相册备份

文章目录 前言1.Qfile Pro2.Qsync Pro总结 前言 威联通有两种数据备份手段&#xff1a;1.Qfile Pro和2.Qsync Pro&#xff0c;实践使用中存在一些区别&#xff0c;针对不同备份环境选择是不同。 1.Qfile Pro 用来备份制定目录内容的。 2.Qsync Pro 主要用来查看和操作文…

Docker单机网络:解锁本地开发环境的无限潜能

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…

【Linux操作系统】多线程控制(创建,等待,终止、分离)

目录 一、线程与轻量级进程的关系二、进程创建1.线程创建线程创建函数&#xff08;pthread&#xff09;查看和理解线程id主线程与其他线程之间的关系 三、线程等待&#xff08;回收&#xff09;四、线程退出线程退出情况线程退出方法 五、线程分离线程的优点线程的缺点 一、线程…

解决IDEA的easycode插件生成的mapper.xml文件字段之间逗号丢失

问题 easycode插件生成的mapper.xml文件字段之间逗号丢失&#xff0c;如图 解决办法 将easycode(在settings里面的othersettings)设置里面的Template的mapper.xml.vm和Global Config的mybatisSupport.vm的所有$velocityHasNext换成$foreach.hasNext Template的mapper.xml.vm(…

Android 实现中英文切换

在开发海外项目的时候&#xff0c;需要实现app内部的中英文切换功能&#xff0c;所有的英文都是内置的&#xff0c;整体思路为&#xff1a; 创建一个sp对象&#xff0c;存储当前系统的语言类型&#xff0c;然后在BaseActivity中对语言进行判断&#xff1b; //公共Activitypubl…

11月 | Apache DolphinScheduler月度进展总结

各位热爱 Apache DolphinScheduler 的小伙伴们&#xff0c;社区10月份月报更新啦&#xff01;这里将记录 DolphinScheduler 社区每月的重要更新&#xff0c;欢迎关注&#xff01; 月度Merge之星 感谢以下小伙伴11月份为 Apache DolphinScheduler 所做的精彩贡献&#xff08;排…

[软件开发幼稚指数评比]《软件方法》自测题解析010

第1章自测题 Part2 **9 [**单选题] 以下说法和其他三个最不类似的是: A)如果允许一次走两步&#xff0c;新手也能击败象棋大师 B)百米短跑比赛才10秒钟&#xff0c;不可能为每一秒做周密计划&#xff0c;凭感觉跑就是 C)即使是最好的足球队&#xff0c;也不能保证每…

【JavaWeb后端学习笔记】使用IDEA连接MySQL数据库

IDEA连接MySQL IDEA中集成了DataGrip&#xff0c;因此可以直接使用IDEA操作MySQL数据库。 1.创建一个新的空工程。点击右侧的数据库标志。 2.选择要连接的数据库。第一步&#xff1a;点击“”&#xff1b;第二步&#xff1a;点击 Data Source&#xff1b;第三步&#xff1a;选…

大模型分类2—按训练方式

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl根据训练方式,大模型可分为监督学习、无监督学习、自监督学习和强化学习大模型。 1. 监督学习大模型 1.1 定义与原理 监督学习大模型是一种机器学习范式,它依赖于标记数据集进行训练。这些数据…

鸿蒙特色实战2

服务卡片开发 创建服务卡片 创建一个新的工程后&#xff0c;可以通过如下方法进行创建服务卡片&#xff1a; 创建服务卡片包括如下两种方式&#xff1a; 选择模块&#xff08;如entry模块&#xff09;下的任意文件&#xff0c;单击菜单栏File > New > Service Widget创…

LCD1602液晶显示屏指令详解

文章目录 LCD1602液晶显示屏1.简介2. 液晶引脚说明3. 指令介绍3.1 清屏指令3.2 光标归位指令3.3 进入模式设置指令3.4 显示开关设置指令3.5 设定显示或光标移动方向指令3.6 功能设定指令3.7 设定CGRAM地址指令3.8 设定DDRAM地址指令3.9 读取忙或AC地址指令3.10 总图3.11 DDRAM …

Python毕业设计选题:基于大数据的旅游景区推荐系统_django

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 系统首页界面 用户注册界面 用户登录界面 景点信息界面 景点资讯界面 个人中心界面 …

引领素养教育行业,猿辅导素养课斩获“2024影响力教育品牌”奖项

近日&#xff0c;由教育界网、校长邦联合主办&#xff0c;鲸媒体、职教共创会协办的“第9届榜样教育年度盛典”评奖结果揭晓。据了解&#xff0c;此次评选共有近500家企业提交参评资料进行奖项角逐&#xff0c;历经教育界权威专家、资深教育从业者以及专业评审团队的多轮严格筛…

十七、监控与度量-Prometheus/Grafana/Actuator

文章目录 前言一、Spring Boot Actuator1. 简介2. 添加依赖2. 开启端点3. 暴露端点4. 总结 二、Prometheus1. 简介2. Prometheus客户端3. Prometheus服务端4. 总结 三、Grafana1. 简介2. Grafana安装3. Grafana配置 前言 系统监控‌ 在企业级的应用中&#xff0c;系统监控至关…

PHP语法学习(第六天)

&#x1f4a1;依照惯例&#xff0c;回顾一下昨天讲的内容 PHP语法学习(第五天)主要讲了PHP中的常量和运算符的运用。 &#x1f525; 想要学习更多PHP语法相关内容点击“PHP专栏” 今天给大家讲课的角色是&#x1f34d;菠萝吹雪&#xff0c;“我菠萝吹雪吹的不是雪&#xff0c;而…

关于遥感图像镶嵌后出现斑点情况的解决方案

把几张GF1的影像镶嵌在一起后&#xff0c;结果在Arcgis里出现了明显的斑点情况&#xff08;在ENVI里显示则不会出现&#xff09;&#xff0c;个人觉得可能是斑点噪声问题&#xff0c;遂用Arcgis的滤波工具进行滤波处理&#xff0c;但由于该工具本身没有直接设置对多波段处理方式…

【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

单链表---合并两个链表

将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 struct ListNode {int val;struct ListNode* next; }; w 方法一---不使用哨兵位 我们创建一个新链表用于合并两个升序链表&#xff0c; 将两个链表中最小的结点依次尾插到…