当前位置: 首页 > news >正文

共享存储-一步一步部署ceph分布式文件系统

一、Ceph 简介

Ceph 是一个开源的分布式文件系统。因为它还支持块存储、对象存储,所以很自 然的被用做云计算框架 openstack 或 cloudstack 整个存储后端。当然也可以单独作 为存储,例如部署一套集群作为对象存储、SAN 存储、NAS 存储等。

二、ceph 支持的 3 种存储方式

1、对象存储:即 radosgw,兼容 S3 接口。通过 rest api 上传、下载文件。

2、文件系统:posix 接口。可以将 ceph 集群看做一个共享文件系统挂载到本地。

3、块存储:即 rbd。有 kernel rbd 和 librbd 两种使用方式。支持快照、克隆。相 当于一块硬盘挂到本地,用法和用途和硬盘一样。比如在 OpenStack 项目里,Ceph 的块设备存储可以对接 OpenStack 的后端存储。

三、ceph 集群部署

环境准备 (禁用 selinux, 关闭防火墙)

拓扑

在这里插入图片描述

3台机器添加一块 20G 的硬盘

硬盘给 osd 做存储使用
在这里插入图片描述

禁用 selinux, 关闭防火墙

__所有服务器__都需要关闭防火墙,selinux

[root@cong11 ~]# systemctlstop firewalld[root@cong11 ~]# systemctl disable firewalld[root@cong11 ~]# setenforce 0[root@cong11  ~]# sed  \-i "s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config

编辑 hosts 文件

所有的服务器都需要设置 hosts

[root@cong11 ~]# vim /etc/hosts #在文件最后加入以下行

192.168.1.11 cong11
192.168.1.12 cong12
192.168.1.13 cong13
192.168.1.14 cong14

SSH 免密码登录

在管理节点使用ssh-keygen 生成 ssh keys 发布到各节点,这里使用主机名

[root@cong11 ~]# ssh -keygen       #一直回车,不设密码
[root@cong11 ~]# ssh-copy-id cong11 
[root@cong11 ~]# ssh-copy-id cong12 
[root@cong11 ~]# ssh-copy-id cong13 
[root@cong11 ~]# ssh-copy-id cong14

配置 yum 源配置阿里网络源(所有节点)

\[root@cong11~\]\#wget \-O /etc/yum\.repos\.d/CentOS\-Base\.repo[http://mirrors\.aliyun\.com/repo/Centos\-7\.repo](http://mirrors.aliyun.com/repo/Centos-7.repo)

配置 ceph 源(所有节点)

\[root@cong11 ~\]\# vim /etc/yum\.repos\.d/ceph\.repo\[Ceph\]name=Ceph packages for $basearchbaseurl=[http://mirrors\.aliyun\.com/ceph/rpm\-15\.2\.9/el7/$basearch](http://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/$basearch) enabled=1gpgcheck=0     type=rpm\-md\#gpgkey=[https://download\.ceph\.com/keys/release\.asc](https://download.ceph.com/keys/release.asc)\[Ceph\-noarch\]name=Ceph noarch packagesbaseurl=[http://mirrors\.aliyun\.com/ceph/rpm\-15\.2\.9/el7/noarch](http://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/noarch)enabled=1gpgcheck=0     type=rpm\-md#gpgkey=[https://download\.ceph\.com/keys/release\.asc](https://download.ceph.com/keys/release.asc) \[ceph\-source]name=Ceph source packagesbaseurl=[http://mirrors\.aliyun\.com/ceph/rpm\-15\.2\.9/el7/SRPMS](http://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/SRPMS)enabled=1gpgcheck=0     type=rpm\-md\#gpgkey=[https://download\.ceph\.com/keys/release\.asc](https://download.ceph.com/keys/release.asc)

安装 epel-release(所有节点)

[root@cong11 ~\]# yum \-y install epel\-release yum\-plugin\-priorities yum\-utils ntpdate

在每服务器上部署 ceph

在 cong11、cong12、cong13 上安装,ceph-deploy 是 ceph 集群部署工具。其他软 件是依赖包。

\[root@cong11 ~\]\# yum install \-y ceph\-deploy ceph ceph\-radosgw snappy leveldbgdisk python\-argparse gperftools\-libs python\-setuptools

管理节点 cong11 上部署服务

创建 monitor 服务

也可以同时在 cong12,cong13 上部署 mon,实现高可用,生产环境至少 3 个 mon 独立

[root@cong11 ~]# cd /etc/ceph
[root@cong11 ceph]# ceph-deploy new cong11

在这里插入图片描述

修改副本数

配置文件的默认副本数从 3 改成 2,这样只有两个 osd 也能达到 active+clean 状态

\[root@cong11 ceph\]\# vim ceph\.conf\[global\]fsid = 085c7b61\-cac0\-494b\-9bfc\-18fe2cc2deb0mon\_initial\_members = cong11 mon\_host = [192\.168\.1\.11](192.168.1.11)auth\_cluster\_required = cephx auth\_service\_required = cephx auth\_client\_required = cephx__osd\_pool\_default\_size = 2    \#最后添加这行__

部署 initial monitor

[root@cong11 ceph]# ceph-deploy mon create cong11

在这里插入图片描述

收集节点的 keyring 文件

[root@cong11 ceph]# ceph-deploy     gatherkeys cong11
[root@cong11 ceph]# ls

在这里插入图片描述

[root@cong11 ceph\]\# cat ceph\.client\.admin\.keyring__\#连接__ __ceph 集群的admin 账号密码__### __部署__ __mgr  管理服务__在 master 上部署 mgr 管理服务,也可以同时在 cong12 ,cong13 上部署 mgr,实 现高可用。```bash
[root@cong11 ceph]# ceph-deploy mgr create cong11

在这里插入图片描述

部署 osd 服务

使用 ceph 自动分区
[root@cong11 ceph]# cd /etc/ceph/[root@cong11 ceph]# ceph-deploy disk zap cong11 /dev/sdb 
[root@cong11 ceph]# ceph\-deploy disk zap cong12 /dev/sdb 
[root@cong11 ceph]# ceph\-deploy disk zap cong13 /dev/sdb
添加 osd 节点
[root@cong11 ceph\]# ceph-deploy osd create cong11 --data /dev/sdb 
[root@cong11 ceph\]# ceph-deploy osd create cong12 --data /dev/sdb 
[root@cong11 ceph\]# ceph-deploy osd create cong13 --data /dev/sdb
查看 osd 状态
[root@cong11 ceph]# ceph-deploy osd list cong11 cong12 cong13

统一集群配置

用 ceph-deploy 把配置文件和admin 密钥拷贝到所有节点,这样每次执行 Ceph 命 令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了

[root@cong11 ceph\]\# ceph\-deploy admin cong11 cong12 cong13 cong14

在这里插入图片描述

各节点修改 ceph.client.admin.keyring 权限

[root@cong11 ceph\]# chmod +r /etc/ceph/ceph.client.admin.keyring 
[root@cong12 ~]# chmod +r /etc/ceph/ceph.client.admin.keyring
[root@cong13 ~]# chmod +r /etc/ceph/ceph.client.admin.keyring 
[root@cong14 ~]# chmod +r /etc/ceph/ceph.client.admin.keyring

部署 mds 服务

安装 mds

[root@cong11 ceph]# ceph-deploy mds create     cong12 cong13

查看 mds 服务

\[root@cong11 ceph\]\# ceph mds stat

查看集群状态

[root@cong11 ceph]# ceph -s

在这里插入图片描述

创建 ceph 文件系统

创建之前查看文件系统

[root@cong11 ceph]# cephfsls       #没有 ceph 文件系统No filesystems enabled

创建存储池

命令:ceph osd pool create cephfs_data <pg_num>

ceph osd pool create cephfs_metadata <pg_num>

其中:<pg_num> = 128 , 关于创建存储池

确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值:

*少于 5 个 OSD 时可把 pg_num 设置为 128

*OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512

*OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096

*OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num

取值

*自己计算 pg_num 取值时可借助 pgcalc 工具

随着 OSD 数量的增加,正确的 pg_num 取值变得更加重要,因为它显著地影响 着集群的行为、以及出错时的数据持久性(即灾难性事件导致数据丢失的概率)。

[root@cong11 ceph]# ceph osd pool create cephfs_data 128[root@cong11 ceph]# ceph osd pool create cephfs_metadata 128

创建文件系统

创建好存储池后,你就可以用 fs new 命令创建文件系统了 命令:

cephfs new <fs_name> cephfs_metadata cephfs_data

其中:<fs_name> = cephfs 可自定义 给刚才创建的 2 个存储池创建文件系统

[root@cong11 ceph]# cephfs new cephfscephfs_metadata cephfs_data

查看 ceph 文件系统

[root@cong11 ceph]# cephfsls

查看 mds 节点状态

[root@cong11 ceph]# ceph mds stat

内核驱动挂载 Ceph 文件系统

创建挂载点

[root@cong14 ~]# mkdir /mnt/aa存储密钥(如果没有在管理节点使用 ceph\-deploy 拷贝ceph 配置文件) 
cat /etc/ceph/ceph\.client\.admin\.keyring__\[client\.admin\]____key = AQA6Fuli0zChIBAAN8ZnZp3uR\+\+DzP9cbbzaBA==__

将 __key 对应的值__复制下来保存到文件:/etc/ceph/admin.secret 中。建挂载点

使用密钥挂载

[root@cong14      ~\]#      mount       -t      ceph       [192.168.1.11](192.168.1.11) :6789:/      /mnt/aa       -oname=admin,secret= AQA6Fuli0zChIBAAN8ZnZp3uR\+\+DzP9cbbzaBA== 
[root@cong14 ~\]\# df -h[root@cong14      ~]#      mount       -t      ceph       [192.168.1.11](192.168.1.11) :6789:/      /mnt/aa       -oname=admin,secret= AQA6Fuli0zChIBAAN8ZnZp3uR++DzP9cbbzaBA== 
[root@cong14 ~]# df -h

在这里插入图片描述

使用密钥文件挂载

[root@cong14 ~]# vim admin.secretAQA6Fuli0zChIBAAN8ZnZp3uR++DzP9cbbzaBA==[root@cong14      ~]#       mount       -t       ceph        [192.168.1.11](192.168.1.11):6789:/      /data/       \-oname=admin,secretfile=/root/admin.secret

用户控件挂载 Ceph 文件系统

安装 ceph-fuse

[root@cong14 ~]#    yum install -y ceph-fuse

挂载

[root@cong14 ~]# ceph-fuse -m [192.168.1.11](192.168.1.11):6789 /mnt/aa 
root@cong14 ~]# df -h

在这里插入图片描述

RBD 的使用

Ceph 支持一个非常好的特性,以 COW(写时复制)的方式从 RBD 快照创建克隆, 在 Ceph 中被称为快照分层。分层特性允许用户创建多个 CEPH RBD 克隆实例。这 些特性应用于 OpenStack 等云平台中,使用快照形式保护ceph RBD 镜像,快照是 只读的,但 COW 克隆是完全可以写 ,可以多次来孵化实例,对云平台来说是非常 有用的。

Ceph RBD 镜像有format-1 和 format-2 两种类型,RBD 支持这两种类型,但是 分层特性 COW 克隆特性只支持 format-2 镜像,默认 RBD 创建的镜像是 format-2。 (这个在克隆的时候特别重要)

检测 linux 内核是否支持 RBD

[root@cong11 ~]# modprobe rbd

如果有错误信息说明内核不支持,那你就先去升级一下内核

创建 rbd 存储池

[root@cong11 ~]# ceph osd pool create rbd 64

创建指定大小的块设备

[root@cong11 ~]# rbd create --size 102400 rbd/test1

这里需要注意 size 的大小,这个大小可以超过你实际 pool 的大小,这个叫做瘦 分配,也叫超卖和按需分配。创建块之后可以通过指令 rbd resize test/myrbd1 --size 51200 --allow-shrink 来动态的更改。

查看 test1 信息

[root@cong11 ~]# rbd info test1

在这里插入图片描述

映射进内核

映射进内核操作之前,首先查看内核版本, jw 版本的 ceph 默认 format 为 2, 2.x 及 之前的内核版本需手动调整 format 为 1, 4.x 之前要关闭 object-map, fast-diff, deep- flatten 功能才能成功映射到内核,这里使用的是 centos7.9, 内核版本 3.10。

[root@cong11   ~]#   rbd   feature   disable   test1   object -map   fast-diff   deep-flatten exclusive-lock[root@cong11 ~]# rbdmaptest1[root@cong11 ~]# ls /dev/rbd0

可以看见在/dev 下创建了一个叫 rbd0 的设备文件

挂载使用

挂载 rbd 的 Linux 服务器首先需要机器支持 ceph 客户端,如果是一台新机器的 话,请安装 ceph,然后同步下配置文件。

创建挂载点
[root@cong11 ~]# mkdir /mnt/cephrbd
格式化分区
[root@cong11 ~]# mkfs.xfs    /dev/rbd0

在这里插入图片描述

挂载
[root@cong11 ~]# mount /dev/rbd0 /mnt/cephrbd 
[root@cong11 ~]# df -h
测试写入数据
[root@cong11    ~]#    dd     if=/dev/zero    of=/mnt/cephrbd/file     bs=100M    count=1 oflag=direct[root@cong11 ~]# rados df

可以看到写了 100M 数据,ceph 的 rbd pool相应的使用了 100M 的数据,也就是对/mnt/cephrbd 目录的操作将会直接写到 ceph 集群的 rbd 这个 pool 中,然后写到 ceph 的 osd 上。

相关文章:

共享存储-一步一步部署ceph分布式文件系统

一、Ceph 简介 Ceph 是一个开源的分布式文件系统。因为它还支持块存储、对象存储&#xff0c;所以很自 然的被用做云计算框架 openstack 或 cloudstack 整个存储后端。当然也可以单独作 为存储&#xff0c;例如部署一套集群作为对象存储、SAN 存储、NAS 存储等。 二、ceph 支…...

19.Python实战:实现对博客文章的点赞系统

Flask博客点赞系统 一个基于Flask的简单博客系统&#xff0c;具有文章展示和点赞功能。系统使用MySQL存储数据&#xff0c;支持文章展示、点赞/取消点赞等功能。 功能特点 文章列表展示文章详情查看&#xff08;模态框展示&#xff09;点赞/取消点赞功能&#xff08;每个IP只…...

【stm32】定时器输出PWM波形(hal库)

一. PWM基本原理 PWM是一种通过调节信号的占空比&#xff08;Duty Cycle&#xff09;来控制输出平均电压的技术。占空比是指高电平时间与整个周期时间的比值。例如&#xff1a; - 占空比为50%时&#xff0c;输出平均电压为电源电压的一半。 - 占空比为100%时&#xff0c;输出始…...

当Ollama遇上划词翻译:我的Windows本地AI服务搭建日记

&#x1f680; 实现Windows本地大模型翻译服务 - 基于OllamaFlask的划词翻译实践 &#x1f6e0;️ 步骤概要1️⃣ python 环境准备2️⃣ Ollama 安装3️⃣ 一个 Flask 服务4️⃣ Windows 服务化封装5️⃣ 测试本地接口6️⃣ 配置划词翻译自定义翻译源7️⃣ 效果展示8️⃣ debug…...

Linux上Elasticsearch 集群部署指南

Es 集群部署 Es 集群部署 Es 集群部署 准备好三台服务器。示例使用&#xff1a;110.0.5.141/142/143 1、es用户和用户组创建&#xff0c;使用root账号 groupadd esuseradd -g es es2、将es安装包和ik分词器上传到&#xff1a;/home/es/目录下&#xff08;任意目录都行&#…...

字节Trae使用感想(后端)

前言 昨天分享了字节哥的Trae从0到1创作模式构建一个vue前端项目&#xff0c;今天又来试试她的后端项目能力。不是我舔&#xff0c;不得不说确实不错。可惜现在曾经没有好好学习&#xff0c;进不了字节。既然进不了字节&#xff0c;那我就用字节哥的产品吧。 后面有惊喜…...

国产编辑器EverEdit - 二进制模式下观察Window/Linux/MacOs换行符差异

1 换行符格式 1.1 应用场景 稍微了解计算机历史的人都知道&#xff0c; 计算机3大操作系统&#xff1a; Windows、Linux/Unix、MacOS&#xff0c;这3大系统对文本换行的定义各不相同&#xff0c;且互不相让&#xff0c;导致在文件的兼容性方面存在一些问题&#xff0c;比如它们…...

文心一言4月起全面免费,6月底开源新模型:AI竞争进入新阶段?

名人说&#xff1a;莫听穿林打叶声&#xff0c;何妨吟啸且徐行。—— 苏轼 Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、文心一言免费化的背后&#xff1a;AI成本与应用的双重驱动1️⃣成本下降&#xff0c;推动文心一言普及2…...

解锁机器学习算法 | 线性回归:机器学习的基石

在机器学习的众多算法中&#xff0c;线性回归宛如一块基石&#xff0c;看似质朴无华&#xff0c;却稳稳支撑起诸多复杂模型的架构。它是我们初涉机器学习领域时便会邂逅的算法之一&#xff0c;其原理与应用广泛渗透于各个领域。无论是预测房价走势、剖析股票市场波动&#xff0…...

如何使用Three.js制作3D月球与星空效果

目录 1. 基本设置2. 创建星空效果3. 创建月球模型4. 添加中文3D文字5. 光照与相机配置6. 动画与控制7. 响应式布局8. 结语 在本文中&#xff0c;我们将一起学习如何利用Three.js实现一个3D月球与星空的效果&#xff0c;并添加一些有趣的元素&#xff0c;比如中文3D文字和互动功…...

SQL语句语法

SQL数据库的结构为 库database 表table 段segment 行row 列column 或field SQL 语句主要分为以下几类&#xff1a; 数据定义语言&#xff08;DDL&#xff09;&#xff1a;用于定义数据库对象&#xff0c;如数据库、表、视图、索引等。数据操作语言&#xff08;DML&#xff09;&…...

github上文件过大无法推送问题

GitHub 对文件大小有限制&#xff0c;超过 100 MB 的文件无法直接推送到仓库中。 解决思路&#xff1a; 使用 Git Large File Storage (Git LFS) 来管理大文件不上传对应的大文件 使用Git LFS&#xff1a; 1. 安装 Git LFS 首先&#xff0c;你需要安装 Git LFS。可以按照以…...

微信小程序的请求函数封装(ts版本,uniapp开发)

主要封装函数代码&#xff1a; interface HttpOptions {url: string;method?: string;headers?: { [key: string]: string };data?: any; }class Http {private timeout: number;private baseUrl: string;public constructor() { this.timeout 60 * 1000;this.baseUrl ht…...

Visual Studio Code支持WSL,直接修改linux/ubuntu中的文件

步骤1 开始通过 WSL 使用 VS Code | Microsoft Learn 点击远程开发扩展包。 步骤2 Remote Development - Visual Studio Marketplace 点击install&#xff0c; 允许打开Visual Studio Code。 步骤3 共有4项&#xff0c;一齐安装。 步骤4 在WSL Linux(Ubuntu)中&#xf…...

openAI最新o1模型 推理能力上表现出色 准确性方面提升 API如何接入?

OpenAI o1模型在回答问题前会进行深入思考&#xff0c;并生成一条内部推理链&#xff0c;使其在尝试解决问题时可以识别并纠正错误&#xff0c;将复杂的步骤分解为更简单的部分&#xff0c;并在当前方法无效时尝试不同的途径。据悉&#xff0c;o1不仅数学水平与美国奥林匹克竞赛…...

GC 基础入门

什么是GC&#xff08;Garbage Collection&#xff09;&#xff1f; 内存管理方式通常分为两种&#xff1a; 手动内存管理&#xff08;Manual Memory Management&#xff09;自动内存管理&#xff08;Garbage Collection, GC&#xff09; 手动内存管理 手动内存管理是指开发…...

Go语言协程Goroutine高级用法(一)

什么协程 在Go语言中&#xff0c;协程就是一种轻量的线程&#xff0c;是并发编程的单元&#xff0c;由Go来管理&#xff0c;所以在GO层面的协程会更加的轻量、高效、开销更小&#xff0c;并且更容易实现并发编程。 轻量级线程 Go语言中协程&#xff08;线程&#xff09;与传…...

DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件

1 DeepSeek处理自有业务的案例&#xff1a;让AI给你写一份小众编辑器(EverEdit)的语法着色文件 1.1 背景 AI能力再强&#xff0c;如果不能在企业的自有业务上产生助益&#xff0c;那基本也是一无是处。将企业的自有业务上传到线上训练&#xff0c;那是脑子进水的做法&#xff…...

【鸿蒙HarmonyOS Next实战开发】lottie动画库

简介 lottie是一个适用于OpenHarmony和HarmonyOS的动画库&#xff0c;它可以解析Adobe After Effects软件通过Bodymovin插件导出的json格式的动画&#xff0c;并在移动设备上进行本地渲染。 下载安裝 ohpm install ohos/lottieOpenHarmony ohpm 环境配置等更多内容&#xff0c…...

PAT乙级真题 — 1084 外观数列(java)

外观数列是指具有以下特点的整数序列&#xff1a; d, d1, d111, d113, d11231, d112213111, ...它从不等于 1 的数字 d 开始&#xff0c;序列的第 n1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d&#xff0c;所以就是 d1&#xff1b;第 2 项是 1 个 d&#xff08;对…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

第八部分:阶段项目 6:构建 React 前端应用

现在&#xff0c;是时候将你学到的 React 基础知识付诸实践&#xff0c;构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段&#xff0c;你可以先使用模拟数据&#xff0c;或者如果你的后端 API&#xff08;阶段项目 5&#xff09;已经搭建好&#xff0c;可以直接连…...