项目六 OpenStack虚拟机实例管理

任务一 理解OpenStack计算服务

1.1 •什么是Nova

Nova是OpenStack中的计算服务项目 ,计算虚拟机实例生命周期的所有活动都由 Nova 管理
Nova 提供统一的计算资源 服务。
Nova 需要下列 OpenStack 服务的 支持。
Ø Keystone :为所有的 OpenStack 服务提供身份管理和认证。
Ø Glance :提供计算用的镜像库
Ø Neutron :负责配置管理计算实例启动时的虚拟或物理网络连接。
Ø Placement :负责跟踪云中可用的资源 库存。

1.2 •Nova所用的虚拟化技术

KVM——通用的开放虚拟化技术。
Xen —— 部署 最快速、最安全、开源的虚拟化软件 技术。
Linux 容器 —— 单一 Linux 主机上提供多个隔离的 Linux 环境的操作系统级虚拟化技术
Hyper- vare ——Microsoft 公司推出的企业级虚拟化解决方案
VMware ESXi ——VMware 用于 创建和运行虚拟机和虚拟 设备的产品。
Baremetal Ironic—— 传统 的物理机服务

1.3 •Nova的系统架构

1.4 •虚拟机实例化流程

1用户执行Nova客户端提供的用于创建虚拟机实例的命令。

2API组件将请求转换为AMQP消息之后加入消息队列,通过消息队列调用Conductor组件。

3Conductor组件从消息队列中接收到虚拟机实例化请求消息后,进行一些准备工作。

4Conductor组件通过消息队列通知Scheduler组件选择一个合适的计算节点来创建虚拟机实例。

5Conductor组件从Scheduler组件处得到合适的计算节点信息后,通过消息队列通知Compute组件实现虚拟机实例的创建

1.5 •验证Nova服务

查看 当前运行的 Nova 服务。

[root@node-a ~]#  systemctl status *nova*.service

Ø openstack -nova- scheduler.service —— 计算 调度子 服务
Ø openstack -nova- compute.service —— 计算 服务
Ø openstack -nova- conductor.service —— 处理 需要调度的请求的子 服务
Ø openstack -nova- novncproxy.service —— 通过 VNC 连接访问正在运行的虚拟机实例提供一个 代理

1.6 •试用计算服务的API

Nova 支持 3 API 端点
Ø / :列出可用的版本。
Ø / v2 :计算 API 的第 1 个版本,可进行扩展。
Ø / v2.1 :除了使用 Microversion (小版本)之外,与 v2 版本相同。
列出 所有可用的主版本列表。

curl -s -H "X-Auth-Token: $OS_TOKEN"   http://localhost:8774/

试用 API

1)请求一个demo项目作用域的令牌。

2)导出环境变量OS_TOKEN,将其值设置为上述操作获取的令牌ID

3)尝试通过Nova API v2.1获取当前实例列表。

curl -s -H "X-Auth-Token: $OS_TOKEN"   http://localhost:8774/v2.1/servers

任务二 创建和管理虚拟机实例

2.1 •nova-api服务

nova-api服务接收和响应来自最终用户的计算API请求。
最终 用户不会直接发送 RESTful API 请求,而是通过 OpenStack 命令行、仪表板和其他需要跟 Nova 交换的组件 使用 API
•nova-api是外部访问并使用Nova提供的各种服务的唯一途径 ,也是客户端和 Nova 之间的中间层

2.2 •nova-scheduler服务

nova-scheduler 服务解决 选择启动虚拟机实例的计算节点的问题
nova-scheduler 服务按照 实例类型去选择合适的计算节点

2 )过滤器调度器调度过程。过滤器调度器的调度过程分为两个阶段。第 1 个阶段通过指定的过滤器选择满足条件的计算节点(运行 nova-compute 服务的主机),例如内存使用率低于 50% ,可以使用多个过滤器依次进行过滤。第 2 个阶段对过滤之后的主机列表进行权重计算并排序,选择最优(权重值最大)的计算节点来创建虚拟机实例。
这里展示调度过程的一个实例,如图 6-2 所示。刚开始有 6 个可用的计算节点主机,通过多个过滤器层层过滤,将主机 2 和主机 4 排除了。剩下的 4 个主机再通过计算权重与排序,按优先级从高到低依次为主机 5 、主机 3 、主机 6 和主机 1 ,主机 5 权重值最高,最终入选。
6-2  过滤调度器调度过程
3 )过滤器。当过滤器调度器需要执行调度操作时,会让过滤器对计算节点进行判断,返回 True (真)或 False (假)。 / etc /nova/ nova.conf 配置文件中的 scheduler_available_filters 选项用于配置可用的过滤器,默认所有 Nova 内置的过滤器都可以用于执行过滤操作。
scheduler_available_filters = nova.scheduler.filters.all_filters
另外还有一个 scheduler_default_filters 选项用于指定 nova-scheduler 服务要使用的过滤器,其默认值如下。
scheduler_default_filters = RetryFilter , AvailabilityZoneFilter , RamFilter , DiskFilter , ComputeFilter , ComputeCapabilitiesFilter , ImagePropertiesFilter , ServerGroupAntiAffinityFilter , ServerGroupAffinityFilter
过滤器调度器将按照选项值列表中的顺序依次过滤。各过滤器的简介如表 6-1 所示。
6-1  Nova 内置的过滤器
过滤器  说明
RetryFilter (再审过滤器)  用于过滤掉之前已经调度过的节点
AvailabilityZoneFilter (可用区域过滤器)  用于将不属于指定可用区域的计算节点过滤掉。为提高容灾性和提供隔离服务,可以将计算节点划分到不同的可用区域中
RamFilter (内存过滤器)  根据可用内存来调度,将不能满足实例类型内存需求的计算节点过滤掉
DiskFilter (磁盘过滤器)  根据可用磁盘空间来调度,将不能满足实例类型磁盘需求的计算节点过滤掉
CoreFilter (核心过滤器)  根据可用 CPU 核心来调度,将不能满足实例类型 vCPU 需求的计算节点过滤掉
ComputeFilter (计算过滤器)  只有 nova-compute 服务正常工作的计算节点才能够被 nova-scheduler 服务调度,这是必选的过滤器
ComputeCapabilitiesFilter (计算能力过滤器)  根据计算节点的特性来过滤
ImagePropertiesFilter (镜像属性过滤器)  根据所选镜像的属性来过滤
ServerGroupAntiAffinityFilter (服务器组反亲和性过滤器)  要求尽量将虚拟机实例分散部署到不同的计算节点上
ServerGroupAffinityFilter (服务器组亲和性过滤器)  要求尽量将虚拟机实例部署到同一个计算节点上
4 )权重计算。 nova-scheduler 服务可以使用多个过滤器依次进行过滤,过滤之后的节点再通过计算权重选出最合适的能够部署虚拟机实例的节点。如果有多个计算节点通过了过滤,那么最终选择哪个节点还需要进一步确定。可以为这些主机计算权重值并进行排序,得到一个最佳的计算节点。这个过程需要调用指定的各种 Weighter 模块,得出主机的权重值。
所有的权重实现模块位于 nova/scheduler/weights 目录下。目前 nova-scheduler 的默认权重实现模块是 RAMWeighter ,根据计算节点空闲的内存量来计算权重值,空闲内存越多,权重越大,虚拟机实例将被部署到当前空闲内存最多的计算节点上。
过滤器 调度器调度 过程

1阶段:通过指定的过滤器选择满足条件的计算节点。

2阶段:对过滤之后的主机列表进行权重计算并排序,选择最优的计算节点来创建虚拟机实例。

过滤器
Ø RetryFilter (再审过滤器
Ø AvailabilityZoneFilter (可用区域过滤器
Ø RamFilter (内存过滤器
Ø DiskFilter (磁盘过滤器
Ø CoreFilter (核心过滤器
Ø ComputeFilter (计算过滤器
Ø ComputeCapabilitiesFilter (计算能力过滤器
Ø ImagePropertiesFilter (镜像属性过滤器
Ø ServerGroupAntiAffinityFilter (服务器组反亲和性过滤器
Ø ServerGroupAffinityFilter (服务器组亲和性过滤器

权重计算
Ø nova-scheduler 服务可以使用多个过滤器依次进行过滤,过滤之后的节点再通过计算权重选出最合适的能够部署虚拟机实例的节点
Ø 所有的权重实现模块位于 nova/scheduler/weights 目录下
Ø 目前 nova-scheduler 的默认权重实现模块是 RAMWeighter ,根据计算节点空闲的内存量来计算权重 值。

2.3 •nova-compute服务

nova-compute 在计算节点上运行,负责管理节点上的虚拟机实例
创建 虚拟机实例最终需要与 Hypervisor 打交道。 Hypervisor 以驱动形式 OpenStack 系统中实现即插即 用。

                       nova-computeHypervisor一起实现OpenStack对虚拟机实例生命周期的管理。

2.4 •nova-conductor服务

nova-conductor 服务对数据库进行操作。
nova-conductor 作为 nova-compute 服务与数据库之间交互的中介,避免了直接访问由 nova-compute 服务创建的云数据库
nova-conductor nova-compute 与数据库分离之后提高了 Nova 的可伸缩性
nova-conductor 方便升级。

2.5 •Nova计算服务与Placement放置服务

OpenStack Stein 版本开始 Placement API 作为 一个独立的项目,提供的是放置服务,用于满足计算服务和其他任何服务的资源选择和使用的管理需求。
nova-compute 中的 Nova 资源跟踪器负责创建对应于运行资源跟踪器的计算主机资源提供者 记录。
nova-scheduler 负责为工作负载选择合适的目标主机。

2.6 •镜像和实例的关系

实例是在云中的计算节点上运行的虚拟机个体
虚拟机镜像为 虚拟机文件系统提供模板
实例所做的任何改变都不会影响基础镜像
计算 服务控制实例、镜像的存储和管理。
未运行虚拟机实例的基础镜像状态

2.7 •命令行的实例创建用法

查看 所需的前提 条件
Ø openstack flavor list           # 列出可用的实例类型
Ø openstack image list          # 列出可用的镜像
Ø openstack network list        # 列出可用的网络
Ø openstack security group list  # 列出可用的安全组

                                        openstack keypair list         #列出可用的密钥

创建实例命令

openstack server create

    (--image <镜像> | --volume <>)

    --flavor <实例类型>

    [--security-group <安全组>]

    [--key-name <密钥对>]

    [--property <服务器属性>]

    [--file <目的文件名=源文件名>]

    [--user-data <实例注入文件信息>]

    [--availability-zone <域名>]

    [--block-device-mapping <块设备映射>]

    [--nic <net-id=网络ID,v4-fixed-ip=IP地址,v6-fixed-ip=IPv6地址,port-id=端口UUID,auto,none>]

    [--network <网络>]

    [--port <端口>]

    [--hint <=>]

    [--config-drive <配置驱动器卷>|True]

    [--min <创建实例最小数量>]

    [--max <创建实例最大数量>]

    [--wait]

    <实例名>

2.8 •命令行的实例管理用法

1)获取列表

openstack server list

2)查看实例详情

openstack server show [--diagnostics] <实例名或ID >

3)启动实例

openstack server start <实例名或ID> [<实例名或ID > ...]

4)暂停实例及恢复

openstack server [pause  | unpause] <实例名或ID> [<实例名或ID > ...]

5)挂起实例及恢复

openstack server [suspend | resume] <实例名或ID> [<实例名或ID > ...]

6)废弃实例及恢复

openstack server [shelve  | unshelve]<实例名或ID> [<实例名或ID > ...]

7)关闭实例

openstack server stop  <实例名或ID> [<实例名或ID > ...]

8)重启实例

openstack server reboot [--hard | --soft] [--wait] <实例名或ID>

9)调整实例大小

openstack server resize   [--flavor <flavor> | --confirm | --revert]  [--wait]  <实例名或ID>

10)删除实例

openstack server delete <实例名或ID> [<实例名或ID > ...]

11)修改实例

openstack server set  [--name <新名称>]  [--root-password]  [--property <=>]

    [--state <状态>]  <实例名或ID>

2.9 •生成密钥对

创建 一个名为“ demo-pub” 的公钥。

openstack keypair create --public-key ~/.ssh/id_rsa.pub demo-pub

查看 当前的密钥对列表,列表中显示每个密钥对的名称和对应的指纹。

openstack keypair list

查看 指定密钥对的详细信息。

openstack keypair show demo-key

加上 --public-key 选项则仅显示指定密钥对的公钥。

openstack keypair show --public-key demo-key

使用 openstack keypair delete 命令可删除指定密钥对。

任务三  注入元数据实现虚拟机实例个性化配置

3.1 •元数据注入

通过 向虚拟机实例注入元数据 信息完成 个性化配置工作
元数据 信息分成两大
Ø 元数据 —— 结构化数据,以键值对形式注入虚拟机 实例。
Ø 用户数据 —— 结构化数据,通过文件或脚本的方式进行注入,支持多种文件 格式。
注入 机制分为 两种
Ø 元数据 服务 机制。
Ø 配置 驱动器机制
SSH 密钥 注入 实现过程

                   (1OpenStack创建一个SSH密钥对。

                   (2)创建虚拟机实例时选择该SSH密钥对。

                   (3)用户可以用该SSH密钥对的私钥直接登录实例。

3.2 •元数据服务机制

元数据 服务的 架构

虚拟机 实例通过元数据服务获取元数据的大致 流程

1)虚拟机实例通过项目网络将元数据请求发送到neutron-ns-metadata-proxy

2neutron-ns-metadata-proxy通过unix domain socket将请求发送给neutron- metadata-agent

3neutron-metadata-agent通过内部管理网络将请求转发给nova-api-metadata

4)获取的元数据被原路返回给发出请求的虚拟机实例。

3.3 •配置驱动器机制

配置 驱动器主要用于配置虚拟机实例的网络 信息。
配置 驱动器是一个特殊的文件系统。
配置驱动器的具体实现会根据 Hypervisor 和具体配置 有所不同。
使用配置驱动器对计算主机和镜像都有一定的要求
启用 配置驱动器, 可在 执行 openstack server create 命令创建虚拟机实例时使用 --config-drive true 选项,也在 / etc /nova/ nova.conf 配置文件中 设置 force_config_drive =true

3.4 •向虚拟机实例注入用户数据

在脚本中使用 cloud- config 指令,利用 cloud- init cc_set_passwords.py 模块为用户设置密码并启用密码登录方式。
需要传入的脚本示例

#cloud-config        #cloud-init会读取它开头的数据,这一行一定要写上

chpasswd:

   list: |

       root:abc123     #设置root密码

       fedora:abc123  #设置默认用户fedora的密码

   expire: false         #密码不过期

ssh_pwauth: true       #启用SSH密码登录(默认只能通过SSH密钥登录

3.5 •验证元数据服务机制

实例 可通过 http://169.254.169.254 访问元数据服务
元数据 服务支持两套 API
Ø OpenStack 元数据 API
Ø EC2 兼容的 API
获取 元数据 API 所支持的版本列表。

curl http://169.254.169.254/openstack

进一步 获取其中最新版本( latest )的元数据文件目录。

curl http://169.254.169.254/openstack/latest

查看 meta_data.json 文件的内容并以 JSON 格式 显示。

curl http://169.254.169.254/openstack/latest/meta_data.json | python -m json.tool

访问用户数据。

curl http://169.254.169.254/openstack/latest/user_data

3.6 •验证配置驱动器机制

通过 SSH 登录该实例 ,将 配置 驱动器挂载 / mnt /config 目录。

[fedora@fedora-newvm ~]$ su root                                       #切换到root身份操作

Password:

[root@fedora-newvm fedora]# mkdir -p /mnt/config                          #创建挂载目录

[root@fedora-newvm fedora]# mount /dev/disk/by-label/config-2 /mnt/config   #挂载配置驱动器

mount: /mnt/config: WARNING: device write-protected, mounted read-only.

[root@fedora-newvm fedora]# exit                                         #退出root身份操作

exit

执行 mount 命令查看当前挂载的 文件系统。

/dev/sr0 on /mnt/config type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)

查看 该挂载目录下的内容,可以发现其中有两个目录。

[root@fedora-newvm fedora]# ls /mnt/config

ec2  openstack

查看 最新版本( latest )的元数据文件目录。

[root@fedora-newvm fedora]# ls /mnt/config/openstack/latest

meta_data.json  network_data.json  user_data  vendor_data2.json  vendor_data.json

任务四  增加一个计算节点

4.1 •Nova的物理部署

Nova 个组件和 服务部署 在计算节点和控制 节点节点
计算 节点上安装 Hypervisor 以运行虚拟机实例,只需要运行 nova-compute 服务
其他 Nova 组件和服务则一起部署在控制节点 上。
通过增加控制节点和计算节点,可以实现简单、方便的系统扩容

4.2 •Nova的部署模式

4.3 •准备双节点OpenStack云平台安装环境

添加 一个计算节点 node-b 192.168.199.32/24 ),为 2 个节点准备环境
更改 其主机名为“ node-b” ,将新的主机名追加到 / etc /hosts 配置文件中,并将第 1 个节点的主机名的解析添加进来,本例配置如下。

192.168.199.31   node-a node-a.localdomain

192.168.199.32   node-b node-b.localdomain

2 个节点主机名的解析也添加到第 1 个节点主机的 / etc /hosts 配置文件中。
设置 时间同步。第 2 个节点也与第 1 个节点一样配置 Chrony
编辑应答文件
编辑 packstack-answers-addnode.txt

CONFIG_COMPUTE_HOSTS=192.168.199.31,192.168.199.32

CONFIG_PROVISION_DEMO_FLOATRANGE=192.168.199.0/24

CONFIG_KEYSTONE_ADMIN_PW=ABC123456

CONFIG_KEYSTONE_DEMO_PW=ABC123456

使用修改过的应答文件运行 Packstack 安装器

[root@node-a ~]# packstack --answer-file=packstack-answers-addnode.txt

Installing:

Clean Up                                             [ DONE ]

Discovering ip protocol version                      [ DONE ]

root@192.168.199.32's password:                     #提供第2个节点root账户密码

Setting up ssh keys                                  [ DONE ]

Preparing servers                                    [ DONE ]

Copying Puppet modules and manifests                 [ DONE ]

Applying 192.168.199.31_controller.pp

192.168.199.31_controller.pp:                        [ DONE ]          

Applying 192.168.199.31_network.pp

192.168.199.31_network.pp:                           [ DONE ]       

Applying 192.168.199.31_compute.pp

Applying 192.168.199.32_compute.pp                     #应用第2个计算节点

192.168.199.31_compute.pp:                           [ DONE ]       

192.168.199.32_compute.pp:                           [ DONE ]       

Applying Puppet manifests                            [ DONE ]

Finalizing                                           [ DONE ]

最后登入仪表盘进行验证

任务五  迁移虚拟机实例

5.1 什么是实例冷迁移

冷迁移是一种非在线的迁移 方式。
冷迁移 主要 用于重新分配节点的计算资源,或者主机节点停机维护等场合
实例 冷迁移的功能与调整实例大小类似 ,只是冷 迁移不改变实例的实例 类型。
冷迁移不要求源和目的主机必须共享存储,但要求两者必须满足在计算节点间配置 nova 用户的无密码 SSH 访问。
默认只有云管理员角色能够执行实例迁移 操作。

5.2 •什么是实例热迁移

热迁移是一种在线的迁移方式,又称实时 迁移。
迁移过程中实例不会关闭,始终保持运行 状态。

5.3 •热迁移命令行用法

openstack server migrate

    [--live <目的主机>]

    [--shared-migration | --block-migration]

    [--disk-overcommit | --no-disk-overcommit]

    [--wait]

    <实例名或ID>

在计算节点之间配置 SSH 无密码访问

1)在两个节点上准备SSH密钥对及其配置文件。

Ø 使 SSH 可以进行非交互式登录。

[root@node-a ~]# echo -e 'StrictHostKeyChecking no' > /var/lib/nova/.ssh/config

Ø /var/lib/nova/. ssh /config 文件复制到 node-b 节点对应的目录中。

[root@node-a ~]# scp -r /var/lib/nova/.ssh/config node-b:/var/lib/nova/.ssh

2在两个节点上分别执行命令使nova用户可以登录。

usermod -s /bin/bash nova

3在两个节点上检查确认nova用户可以不用密码登录到对方节点

4)以root用户身份在两个节点上重新启动libvirt和计算服务。

systemctl restart libvirtd.service openstack-nova-compute.service

执行实例的冷迁移 操作
查看实例 列表
执行命令 迁移虚拟机 实例

[root@node-a ~(keystone_admin)]# openstack server migrate c76418b1-24ca- 43b0-8d49-70114d8e41e6

执行实例的冷迁移 操作
执行命令 确认调整。

[root@node-a ~(keystone_admin)]# openstack server resize confirm c76418b1-24ca-43b0- 8d49-70114d8e41e6

查看 实例列表
实现热迁移的通用配置

1)在每个计算节点上的/etc/nova/nova.conf配置文件中设置server_listeninstances_path参数

2确认每个计算节点具有相同的名称解析配置,以便它们能通过主机名互相访问

3启用root用户免密码SSH功能。

① 在1个节点上将root用户的SSH公钥加入authorized_keys文件。

② 在1个节点上将authorized_keys文件复制到第2个节点上。

2个节点上将root用户的SSH公钥追加到authorized_keys文件中。

④ 在第2个节点上将authorized_keys文件复制回第一个节点上。

4)如果启用防火墙,则应允许计算节点之间的libvirt通信

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

django学习入门系列之第二点《浏览器能识别的标签3》

文章目录 列表表格往期回顾 列表 无序列表 <!-- <ul </ul> 无序列表 --> <ul><li> 内容1 </li><li> 内容2 </li><li> 内容3 </li><li> 内容4 </li> </ul>有序列表 <!-- <ol> &…

第6章 设备驱动程序(6)

目录 6.7 总线系统 6.7.2 PCI总线 6.7.3 USB 6.8 小结 本专栏文章将有70篇左右&#xff0c;欢迎关注&#xff0c;查看后续文章。 6.7 总线系统 6.7.2 PCI总线 PCI由Intel开发&#xff0c;用于替代ISA。 PCI已过时&#xff0c;目前采用PCIe。 PCI特点&#xff1a; 高带宽…

停车场防逃费设备有哪些,捷曜超眸相机怎么样,有哪些功能?

在当今快速发展的城市交通环境中&#xff0c;车场管理面临着诸多挑战&#xff0c;其中防逃费现象尤为突出。频繁的逃费行为不仅给车场运营带来了经济损失&#xff0c;也严重影响了停车场的正常秩序。对于车场防逃费方案中&#xff0c;超眸相机&#xff0c;以其尖端的高清成像技…

C++学习(23)

#学习自用# union 共用体和结构体相似&#xff0c;但是共用体一次只能占用一个成员的内存&#xff0c;所有成员共用同一地址。 #include<iostream> using namespace std; union A {int int_val;float float_val; }a; int main() {a.float_val 2.0f;cout << a.f…

浏览器加了token的header导致部分网页打不开

因为测试加了个token&#xff0c;忘记去掉&#xff0c;导致一些系统进不去&#xff0c;只能用无痕浏览器打开&#xff0c;后来发现是因为token的原因

零散的面试题

★1.java常见的引用类型 强:普通的变量引用 软:内存够时,GC不会主动删除,内存不够时,GC会删除 弱:一旦执行GC就会被删除 虚:用了感觉没用 ★2.JDK1.8新特性 lambda表达式(极大简化了匿名内部类的创建&#xff0c;促进函数式编程的风格)函数式接口(只能有一个抽象方法的接口 )日…

Nexus安卓木马分析报告

概述 2023年3月21日晚上&#xff0c;链安与中睿天下联合研发的监控系统检测到一种新型安卓木马。在经过睿士沙箱系统捕获样本之后&#xff0c;发现该安卓木马极有可能是原安卓网银盗号木马SOVA的变种。与此同时&#xff0c;意大利安全公司Cleafy发布了一篇题为《Nexus&#xf…

一款Wordpress网站导航主题,带昼夜切换功能

Wordpress网站导航主题&#xff0c;带昼夜切换功能。 基于wordpress&#xff0c;部署和使用都比较方便。 界面比较简洁大方。后台管理功能也比较全面&#xff0c;值得一试。 这款主题界面、功能都非常简洁。 作者把这款定位为简约导航主题&#xff0c;所以这款wordpress导航…

飞书API 2-1:如何通过 API 创建文件夹?

本文探讨如何通过飞书的 API 来创建文件夹。通过 API 创建的文件夹&#xff0c;一般是放在共享空间&#xff0c;如果要放在个人空间&#xff0c;建议手动创建。 查看 API 文档 API 路径&#xff0c;可在飞书开放平台的服务端 API&#xff0c;依次查找云文档>云空间>文件…

MavenPlus插件的基础功能完善

本次更新主要是在初版的searchEverywhere的基础上增加了pom.xml文件编辑器&#xff0c;目前的界面布局如下&#xff0c;进行适当说明&#xff1a; 打开pom文件后&#xff0c;你会得到如上图所示的布局页面&#xff0c;数据会同步显示 如果有冲突信息&#xff0c;则会以红色显示…

【Android面试八股文】你刚刚提到了V2签名使用美团的Walle实现多渠道打包,那么你能讲一讲Android 签名的 v1、v2、v3、v4版本的区别吗?

文章目录 前言一、简介二、APK 签名方案 v1 (JAR签名)2.1. 签名过程2.2 验证过程2.3 详细例子2.4 优缺点2.5 美团基于V1版本的多渠道打包方案三、APK 签名方案 v23.1 为什么要设计APK 签名方案 v2 ?3.2 APK 签名方案 v2 : 签名前和签名后的 APK3.2.1 签名前和签名后的 APK3.2…

qmt量化交易策略小白学习笔记第40期【qmt编程之期货数据--如何获取合约基础信息】

qmt编程之获取期货数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 感谢关注&#xff0c;咨询免费开通量化回测与获取实盘权限&#xff0c;欢迎和博主联系&#xff01; 获取合约基础信息 …

Faiss:选择合适的索引Index

向量相似性搜索彻底改变了搜索领域。它允许我们高效地检索从GIF到文章等各种媒体&#xff0c;即使在处理十亿级别数据集时&#xff0c;也能在亚秒级时间内提供令人印象深刻的准确性。 然而&#xff0c;这种灵活性也带来了一个问题&#xff1a;如何知道哪种索引大小最适合我们的…

React+TS 从零开始教程(1)

源码链接&#xff1a;https://pan.quark.cn/s/c6fbc31dcb02 创建项目 直接通过以下命令&#xff0c;我们来创建一个reactts的项目。 npx create-react-app myapp --template typescript这样就创建好了,然后我们导入vscode. npx是npm里面的一个库&#xff0c;可以让你自动使用…

DAB-DETR

论文地址&#xff1a; https://arxiv.org/pdf/2201.12329 文章通过前人的经验得出&#xff0c;导致 DETR 训练速度慢的原因很大可能是因为 decoder 中 cross attention 这个模块&#xff0c;由上面的对比可以看出其与 self attention 的区别主要就在于query的不同。文章猜想两个…

【Maven】项目的Maven插件报错

1. 找到本地maven库 2. 删除本地插件 3. 在IDEA上更新pom.xml

ctfshow web七夕杯

web签到 执行命令没有回显&#xff0c;我们直接写文件就可以了 有字符长度限制 ls />a nl /*>a访问url/api/a下载文件 easy_calc <?phpif(check($code)){eval($result."$code".";");echo($result); }function check(&$code){$num1…

LVS/NAT负载均衡实操

添加规则,并做持久操作 1 添加规则 [rootlvs ~]# ipvsadm -A -t 10.36.178.183:80 -s wrr [rootlvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.201:80 -m -w 3 [rootlvs ~]# ipvsadm -a -t 10.36.178.183:80 -r 192.168.65.202:80 -m -w 1[rootlvs ~]# ipvsadm -Ln …

百度YY设计稿转代码的探索与实践

作者 | KyrieChen 导读 本文阐述了百度&YY互动团队在设计稿转代码方面的实践与沉淀&#xff0c;自研的YYF2C是Figma & AI相结合生成开发代码的一站式解决方案。文章将从遇到的痛点以及对应的方案成果来阐述&#xff0c;并介绍相对应的YYF2C功能点。 全文7217字&#xf…

我的创作纪念日--码农阿豪

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…