项目六 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客户端提供的用于创建虚拟机实例的命令。

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

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

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

(5)Conductor组件从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-compute与Hypervisor一起实现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 密钥 注入 的 实现过程

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

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

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

3.2 •元数据服务机制

• 元数据 服务的 架构

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

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

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

(3)neutron-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_listen和instances_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.tpcf.cn/diannao/31374.html

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

相关文章

单商户社区团购卖菜卖水果商城自提点商城系统小程序源码

打造便捷团购新体验 &#x1f34e; 引言&#xff1a;社区团购的崛起 近年来&#xff0c;社区团购以其独特的优势&#xff0c;迅速崛起并受到广大消费者的喜爱。它不仅能够提供物美价廉的商品&#xff0c;还能让居民们享受到更加便捷的购物体验。而单商户社区团购系统小程序&am…

Python的进程、线程和协程

在Python中&#xff0c;进程、线程和协程是处理并发和并行任务的三种主要方式。下面我将对它们进行简要的比较&#xff0c;并提供一些示例代码。 进程&#xff08;Process&#xff09; 进程是操作系统进行资源分配和调度的基本单位&#xff0c;它包含独立的内存空间、系统资源…

OpenCV之cv::undistort

在 OpenCV 中&#xff0c;cv::undistort 函数用于校正畸变的图像。它的基本形式如下&#xff1a; void undistort(InputArray src, OutputArray dst, InputArray cameraMatrix, InputArray distCoeffs, InputArray newCameraMatrix noArray());参数解释&#xff1a; src&…

Vue与Web标准:如何在Vue项目中更好地利用Web标准,例如Web Components、PWA

理解Vue和Web标准 Vue.js 的定义、优点与缺点 定义:Vue.js 是一种轻量级的前端框架,它被设计为易于上手和集成。Vue 的核心库只关注视图层,使得 Vue 可以轻松地和其它库或已有项目整合。 优点: 易学易用:Vue.js 的 API 相对简单直观,学习曲线平缓。 灵活:Vue.js 提供了…

每天一个数据分析题(三百八十三)- 聚类

关于忽略自相关可以带来什么问题描述错误的是&#xff1f; A. 均方误差可能严重低估误差项的方差 B. 可能导致高估检验统计量t值&#xff0c;致使本不显著的变量变得显著了 C. 参数估计值的最小方差无偏性不再成立 D. 参数估计值的最小方差无偏性仍成立 数据分析认证考试介…

docker download failed after attempts=6:dial tcp IP:Port i/o timeout

国内服务器使用docker拉取镜像出现下载超时问题&#xff0c;直觉问题是网络不通&#xff0c;ping相关的域名或IP发现是无法ping通的&#xff0c;鉴于此本文提供两种方法&#xff1a; 1&#xff09;添加公开的docker加速代理(下文的代理一段时间后可能失效)&#xff1a; a&…

详解 HBase 的架构和基本原理

一、基本架构 StoreFile&#xff1a;保存实际数据的物理文件&#xff0c;StoreFile 以 HFile 的格式 (KV) 存储在 HDFS 上。每个 Store 会有一个或多个 StoreFile&#xff08;HFile&#xff09;&#xff0c;数据在每个 StoreFile 中都是有序的MemStore&#xff1a;写缓存&#…

前端从零配置 基于 TypeScript 的 Jest 单元测试环境,手把手教程

写在前面 本教程从零开始而且不是基于一个 Vue 或者 React 框架&#xff0c;打破测试环境配置的心里障碍&#xff0c;如果从零都可以配置成功&#xff0c;上个框架原理和方法也会大差不差。 本教程基于 yarn 来进行安装&#xff0c;如果使用使用 npm 和 pnpm 的话方法类似&am…

【YOLOv5/v7改进系列】引入特征融合网络——ASFYOLO

一、导言 ASF-YOLO结合空间和尺度特征以实现精确且快速的细胞实例分割。在YOLO分割框架的基础上&#xff0c;通过引入尺度序列特征融合(SSFF)模块来增强网络的多尺度信息提取能力&#xff0c;并利用三重特征编码器(TFE)模块融合不同尺度的特征图以增加细节信息。此外&#xff…

信息打点web篇----web后端源码专项收集

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 专栏描述&#xff1a;因为第一遍过信息收集的时候&#xff0c;没怎么把收集做回事 导致后来在实战中&#xff0c;遭遇资产获取少&#xff0c;可渗透点少的痛苦&#xff0c;如今决定 从头来过&#xff0c;全面全方位…

手把手教你实现条纹结构光三维重建(3)——相机投影仪标定

我们都知道&#xff0c;投影仪其实就是个反向相机&#xff0c;如果我们了解双目标定的原理&#xff0c;那么相机和投影仪的标定就不难&#xff0c;关键是我们怎么得到投影仪在图像特征点&#xff08;比如棋盘格角点&#xff09;上的像素位置。 投影仪也类似于一个cmos&#xf…

WebSocket实现消息实时通知

参考文档&#xff1a;万字长文&#xff0c;一篇吃透WebSocket&#xff1a;概念、原理、易错常识、动手实践、WebSocket 教程 1 背景 有一个需求&#xff0c;需要实现实时通信的功能&#xff0c;如果有新消息&#xff0c;后端会主动发送请求告知前端有新消息&#xff0c;需要前…

改进YOLOv7 | 在 ELAN 模块中添加【Triplet】【SpatialGroupEnhance】【NAM】【S2】注意力机制 | 附详细结构图

改进 YOLOv7 | 在 ELAN 模块中添加【Triplet】【SpatialGroupEnhance】【NAM】【S2】注意力机制&#xff1a;中文详解 1. 简介 YOLOv7 是目前主流的目标检测算法之一&#xff0c;具有速度快、精度高的特点。但 YOLOv7 的原始模型结构中缺乏注意力机制&#xff0c;导致模型对全…

Matlab基础语法:变量和数据类型,基本运算,矩阵和向量,常用函数,脚本文件

目录 一、变量和数据类型 二、基本运算 三、矩阵和向量 四、常用函数 五、脚本文件 六、总结 一、变量和数据类型 Matlab 支持多种数据类型&#xff0c;包括数值类型、字符类型和逻辑类型。掌握这些基本的变量和数据类型&#xff0c;是我们进行数学建模和计算的基础。 数…

嵌入式软件stm32面试

一、STM32的内核型号有哪些&#xff1f; STM32系列是STMicroelectronics&#xff08;意法半导体&#xff09;生产的基于ARM Cortex-M内核的微控制器产品线。这些产品按照不同的内核架构和性能特点分为了主流产品、超低功耗产品和高性能产品。 1.1 主流产品 STM32F0 系列&…

利用sortablejs实现拖拽排序

import Sortable from "sortablejs";created() {//禁止火狐拖拽进行搜索document.body.ondrop function(event){event.preventDefault();event.stopPropagation();}}// 打开对话框的时候调用下openCustomDialog(){this.rowDrop()}// 行拖拽 rowDrop() {this.$nextTi…

Linux工具(包含sudo提权与vim快捷配置)

目录 什么是软件包 查看软件包 如何安装软件 1.官方yum源下载 2.扩展yum源下载 如何卸载软件 补充知识如何将普通用户加入白名单 补充知识rzsz vim编辑器 1.命令模式&#xff08;进入默认为这个模式&#xff09;用户所有的输入都会被当成命令 2.插入模式 3.底行模…

SpringCloud Maven多模块项目导包

目录 一、父项目配置 二、配置子项目 三、Maven执行 四、运行Jar包 一、父项目配置 所有父项目均需确保配置了 <packaging>pom</packaging> 因为Maven某人的打包方式是 <packaging>jar</packaging> 二、配置子项目 仅在有SpringBoot启动类的…

Qt Designer 中设置信号与槽,QT5的四种编辑模式

目录 QT5的四种编辑模式 Qt Designer 中设置信号与槽 Qt Designer 中设置信号与槽 QT5的四种编辑模式 在QT5中,特别是在使用Qt Designer进行界面设计时,存在多种编辑模式以满足不同的开发需求。以下是对QT5中四种主要编辑模式的详细解释: 控件编辑模式(Edit Widgets):…

速盾:cdn高防免备案

云计算和互联网技术的发展&#xff0c;带来了无数便利和机遇&#xff0c;但也带来了各种网络安全威胁。网站被黑、DDoS攻击、敏感信息泄露等问题&#xff0c;给企业和个人带来了巨大的损失和风险。因此&#xff0c;保护网络安全成为了当务之急。 CDN&#xff08;Content Deliv…