【Ceph的部署】

目录

  • 一、基于 ceph-deploy 部署 Ceph 集群
    • 1、Ceph 生产环境推荐:
    • 2、Ceph 环境规划
    • 3、环境准备
      • 1、关闭 selinux 与防火墙
      • 2、根据规划设置主机名
      • 3、配置 hosts 解析
      • 4、安装常用软件和依赖包
      • 5、在 admin 管理节点配置 ssh 免密登录所有节点
      • 6、为每一个服务器配置时间同步
      • 7、配置 Ceph yum源
      • 8、执行完上面所有的操作之后重启所有主机(可选)
      • 9、为每哥节点主机多设置三张硬盘进行使用
      • 10、为每个节点设置vip地址
    • 2、部署 Ceph 集群
      • 1、为所有节点都创建一个 Ceph 工作目录,后续的工作都在该目录下进行
      • 2、在admin节点上安装 ceph-deploy 部署工具
      • 3、在管理节点为其它节点安装 Ceph 软件包
      • 4、生成初始配置
      • 5、在管理节点初始化 mon 节点
        • 1、命令执行成功后会在 /etc/ceph 下生成配置文件
        • 2、在 node 节点上查看自动开启的 mon 进程
        • 3、在管理节点查看 Ceph 集群状态
        • 4、查看 mon 集群选举的情况
        • 5、扩容 mon 节点
      • 6、部署能够管理 Ceph 集群的节点
        • 1、在 mon 节点上查看
      • 7、部署 osd 存储节点
        • 1、如果是利旧的硬盘,则需要先擦净(删除分区表)磁盘(可选,无数据的新硬盘可不做)
        • 2、添加 osd 节点
        • 3、查看 ceph 集群状态
        • 4、扩容 osd 节点
      • 8、部署 mgr 节点
        • 1、扩容 mgr 节点
      • 9、开启监控模块
        • 1、在 ceph-mgr Active节点执行命令开启
        • 2、开启 dashboard 模块
        • 3、禁用 dashboard 的 ssl 功能
        • 4、配置 dashboard 监听的地址和端口
        • 5、重启 dashboard
        • 6、确认访问 dashboard 的 url
        • 7、设置 dashboard 账户以及密码
  • 二、资源池 Pool 管理
    • 1、创建一个 Pool 资源池
    • 2、查看集群 Pool 信息
    • 3、查看资源池副本的数量
    • 4、查看 PG 和 PGP 数量
    • 5、修改 pg_num 和 pgp_num 的数量为 128
    • 6、修改 Pool 副本数量为 2
    • 7、修改默认副本数为 2
    • 8、删除 Pool 资源池


一、基于 ceph-deploy 部署 Ceph 集群

1、Ceph 生产环境推荐:

1、存储集群全采用万兆网络
2、集群网络(cluster-network,用于集群内部通讯)与公共网络(public-network,用于外部访问Ceph集群)分离
3、mon、mds 与 osd 分离部署在不同主机上(测试环境中可以让一台主机节点运行多个组件)
4、OSD 使用 SATA 亦可
5、根据容量规划集群
6、至强E5 2620 V3或以上 CPU,64GB或更高内存
7、集群主机分散部署,避免机柜的电源或者网络故障

字号4

2、Ceph 环境规划

主机名Public网络Cluster网络角色
admin192.168.102.10admin(管理节点负责集群整体部署)、client
node01192.168.102.20192.168.100.20mon、mgr、osd(/dev/sdb、/dev/sdc、/dev/sdd)
node02192.168.102.30192.168.100.30mon、mgr、osd(/dev/sdb、/dev/sdc、/dev/sdd)
node03192.168.102.40192.168.100.40mon、osd(/dev/sdb、/dev/sdc、/dev/sdd)
client192.168.102.50client

3、环境准备

可选步骤:创建 Ceph 的管理用户
useradd cephadm
passwd cephadmvisudo
cephadm ALL=(root) NOPASSWD:ALL

在这里插入图片描述

1、关闭 selinux 与防火墙

systemctl disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

2、根据规划设置主机名

给每台服务器设置主机名

hostnamectl set-hostname admin
hostnamectl set-hostname node01
hostnamectl set-hostname node02
hostnamectl set-hostname node03
hostnamectl set-hostname client

3、配置 hosts 解析

在这里插入图片描述

4、安装常用软件和依赖包

yum -y install epel-release
yum -y install yum-plugin-priorities yum-utils ntpdate python-setuptools python-pip gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel zip unzip ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssh openssl-devel nss_ldap openldap openldap-devel openldap-clients openldap-servers libxslt-devel libevent-devel ntp libtool-ltdl bison libtool vim-enhanced python wget lsof iptraf strace lrzsz kernel-devel kernel-headers pam-devel tcl tk cmake ncurses-devel bison setuptool popt-devel net-snmp screen perl-devel pcre-devel net-snmp screen tcpdump rsync sysstat man iptables sudo libconfig git bind-utils tmux elinks numactl iftop bwm-ng net-tools expect snappy leveldb gdisk python-argparse gperftools-libs conntrack ipset jq libseccomp socat chrony sshpass

5、在 admin 管理节点配置 ssh 免密登录所有节点

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
sshpass -p 'Dz030617' ssh-copy-id -o StrictHostKeyChecking=no root@admin
sshpass -p 'Dz030617' ssh-copy-id -o StrictHostKeyChecking=no root@node01
sshpass -p 'Dz030617' ssh-copy-id -o StrictHostKeyChecking=no root@node02
sshpass -p 'Dz030617' ssh-copy-id -o StrictHostKeyChecking=no root@node03

在这里插入图片描述

vim /etc/ssh/ssh_config 

在这里插入图片描述

6、为每一个服务器配置时间同步

systemctl enable --now chronyd
timedatectl set-ntp true					#开启 NTP
timedatectl set-timezone Asia/Shanghai		#设置时区
chronyc -a makestep							#强制同步下系统时钟
timedatectl status							#查看时间同步状态
chronyc sources -v							#查看 ntp 源服务器信息
timedatectl set-local-rtc 0					#将当前的UTC时间写入硬件时钟

在这里插入图片描述

#重启依赖于系统时间的服务
systemctl restart rsyslog 
systemctl restart crond#关闭无关服务
systemctl disable --now postfix

7、配置 Ceph yum源

wget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificaterpm -ivh ceph-release-1-1.el7.noarch.rpm --force

8、执行完上面所有的操作之后重启所有主机(可选)

sync
reboot

9、为每哥节点主机多设置三张硬盘进行使用

在这里插入图片描述
添加好硬盘后进行刷新硬盘

echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan

在这里插入图片描述

10、为每个节点设置vip地址

在这里插入图片描述

2、部署 Ceph 集群

1、为所有节点都创建一个 Ceph 工作目录,后续的工作都在该目录下进行

mkdir -p /etc/ceph

2、在admin节点上安装 ceph-deploy 部署工具

cd /etc/ceph
yum install -y ceph-deployceph-deploy --version

在这里插入图片描述

3、在管理节点为其它节点安装 Ceph 软件包

#也可采用手动安装 Ceph 包方式,在其它节点上执行下面的命令将 Ceph 的安装包都部署上:
sed -i 's#download.ceph.com#mirrors.tuna.tsinghua.edu.cn/ceph#' /etc/yum.repos.d/ceph.repoyum install -y ceph-mon ceph-radosgw ceph-mds ceph-mgr ceph-osd ceph-common ceph

4、生成初始配置

#在管理节点运行下述命令,告诉 ceph-deploy 哪些是 mon 监控节点
cd /etc/ceph
ceph-deploy new --public-network 192.168.102.0/24 --cluster-network 192.168.100.0/24 node01 node02 node03
#命令执行成功后会在 /etc/ceph 下生成配置文件
ls /etc/ceph
ceph.conf					#ceph的配置文件
ceph-deploy-ceph.log		#monitor的日志
ceph.mon.keyring			#monitor的密钥环文件

在这里插入图片描述

5、在管理节点初始化 mon 节点

cd /etc/ceph
ceph-deploy mon create node01 node02 node03			#创建 mon 节点,由于 monitor 使用 Paxos 算法,其高可用集群节点数量要求为大于等于 3 的奇数台ceph-deploy --overwrite-conf mon create-initial		#配置初始化 mon 节点,并向所有节点同步配置# --overwrite-conf 参数用于表示强制覆盖配置文件ceph-deploy gatherkeys node01						#可选操作,向 node01 节点收集所有密钥

1、命令执行成功后会在 /etc/ceph 下生成配置文件

ls /etc/ceph
ceph.bootstrap-mds.keyring			#引导启动 mds 的密钥文件
ceph.bootstrap-mgr.keyring			#引导启动 mgr 的密钥文件
ceph.bootstrap-osd.keyring			#引导启动 osd 的密钥文件
ceph.bootstrap-rgw.keyring			#引导启动 rgw 的密钥文件
ceph.client.admin.keyring			#ceph客户端和管理端通信的认证密钥,拥有ceph集群的所有权限
ceph.conf
ceph-deploy-ceph.log
ceph.mon.keyring

在这里插入图片描述

2、在 node 节点上查看自动开启的 mon 进程

#在 node 节点上查看自动开启的 mon 进程
ps aux | grep ceph

在这里插入图片描述

3、在管理节点查看 Ceph 集群状态

cd /etc/ceph
ceph -s

在这里插入图片描述

4、查看 mon 集群选举的情况

ceph quorum_status --format json-pretty | grep leader

在这里插入图片描述

5、扩容 mon 节点

ceph-deploy mon add <节点名称>

6、部署能够管理 Ceph 集群的节点

#可实现在各个节点执行 ceph 命令管理集群
cd /etc/ceph
ceph-deploy --overwrite-conf config push node01 node02 node03		#向所有 mon 节点同步配置,确保所有 mon 节点上的 ceph.conf 内容必须一致ceph-deploy admin node01 node02 node03			#本质就是把 ceph.client.admin.keyring 集群认证文件拷贝到各个节点

1、在 mon 节点上查看

ls /etc/ceph
ceph.client.admin.keyring  ceph.conf  rbdmap  tmpr8tzyccd /etc/ceph
ceph -s

7、部署 osd 存储节点

#主机添加完硬盘后不要分区,直接使用
lsblk 

在这里插入图片描述

1、如果是利旧的硬盘,则需要先擦净(删除分区表)磁盘(可选,无数据的新硬盘可不做)

cd /etc/ceph
ceph-deploy disk zap node01 /dev/sdb
ceph-deploy disk zap node02 /dev/sdb
ceph-deploy disk zap node03 /dev/sdb

2、添加 osd 节点

ceph-deploy --overwrite-conf osd create node01 --data /dev/sdb
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdb
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdb

3、查看 ceph 集群状态

ceph -s

在这里插入图片描述

ceph osd stat
ceph osd tree
rados df

在这里插入图片描述

ceph osd status    #查看 osd 状态,需部署 mgr 后才能执行

在这里插入图片描述

ceph osd df    #查看 osd 容量,需部署 mgr 后才能执行

在这里插入图片描述

4、扩容 osd 节点

cd /etc/ceph
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdd
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdd
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdd

添加 OSD 中会涉及到 PG 的迁移,由于此时集群并没有数据,因此 health 的状态很快就变成 OK,如果在生产环境中添加节点则会涉及到大量的数据的迁移。

8、部署 mgr 节点

ceph-mgr守护进程以Active/Standby模式运行,可确保在Active节点或其ceph-mgr守护进程故障时,其中的一个Standby实例可以在不中断服务的情况下接管其任务。根据官方的架构原则,mgr至少要有两个节点来进行工作。

cd /etc/ceph
ceph-deploy mgr create node01 node02
ceph -s

在这里插入图片描述

解决 HEALTH_WARN 问题:mons are allowing insecure global_id reclaim问题:
禁用不安全模式:ceph config set mon auth_allow_insecure_global_id_reclaim false

在这里插入图片描述

1、扩容 mgr 节点

ceph-deploy mgr create <节点名称>

9、开启监控模块

1、在 ceph-mgr Active节点执行命令开启

ceph -s | grep mgryum install -y ceph-mgr-dashboardcd /etc/cephceph mgr module ls | grep dashboard

在这里插入图片描述

2、开启 dashboard 模块

ceph mgr module enable dashboard --force

3、禁用 dashboard 的 ssl 功能

ceph config set mgr mgr/dashboard/ssl false

4、配置 dashboard 监听的地址和端口

ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
ceph config set mgr mgr/dashboard/server_port 8000

5、重启 dashboard

ceph mgr module disable dashboard
ceph mgr module enable dashboard --force

6、确认访问 dashboard 的 url

ceph mgr services

在这里插入图片描述

7、设置 dashboard 账户以及密码

echo "12345678" > dashboard_passwd.txt
ceph dashboard set-login-credentials admin -i dashboard_passwd.txt或
ceph dashboard ac-user-create admin administrator -i dashboard_passwd.txt

在这里插入图片描述


浏览器访问:http://192.168.80.11:8000 ,账号密码为 admin/12345678

在这里插入图片描述在这里插入图片描述

二、资源池 Pool 管理

上面我们已经完成了 Ceph 集群的部署,但是我们如何向 Ceph 中存储数据呢?首先我们需要在 Ceph 中定义一个 Pool 资源池。Pool 是 Ceph 中存储 Object 对象抽象概念。我们可以将其理解为 Ceph 存储上划分的逻辑分区,Pool 由多个 PG 组成;而 PG 通过 CRUSH 算法映射到不同的 OSD 上;同时 Pool 可以设置副本 size 大小,默认副本数量为 3。

Ceph 客户端向 monitor 请求集群的状态,并向 Pool 中写入数据,数据根据 PGs 的数量,通过 CRUSH 算法将其映射到不同的 OSD 节点上,实现数据的存储。 这里我们可以把 Pool 理解为存储 Object 数据的逻辑单元;当然,当前集群没有资源池,因此需要进行定义。

1、创建一个 Pool 资源池

创建一个 Pool 资源池,其名字为 mypool,PGs 数量设置为 64,设置 PGs 的同时还需要设置 PGP(通常PGs和PGP的值是相同的):

PG (Placement Group),pg 是一个虚拟的概念,用于存放 object,PGP(Placement Group for Placement purpose),相当于是 pg 存放的一种 osd 排列组合
cd /etc/ceph
ceph osd pool create mypool 64 64

2、查看集群 Pool 信息

ceph osd pool ls    或    rados lspools
ceph osd lspools

在这里插入图片描述

3、查看资源池副本的数量

ceph osd pool get mypool size

在这里插入图片描述

4、查看 PG 和 PGP 数量

ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num

在这里插入图片描述

5、修改 pg_num 和 pgp_num 的数量为 128

ceph osd pool set mypool pg_num 128
ceph osd pool set mypool pgp_num 128ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num

在这里插入图片描述

6、修改 Pool 副本数量为 2

ceph osd pool set mypool size 2ceph osd pool get mypool size

在这里插入图片描述

7、修改默认副本数为 2

到管理节点上进行添加内容
在这里插入图片描述

vim ceph.conf
......
osd_pool_default_size = 2ceph-deploy --overwrite-conf config push node01 node02 node03

操作完成后对所有节点进行重启服务

systemctl restart ceph-mon.target 

在这里插入图片描述

8、删除 Pool 资源池

1)删除存储池命令存在数据丢失的风险,Ceph 默认禁止此类操作,需要管理员先在 ceph.conf 配置文件中开启支持删除存储池的操作

vim ceph.conf
......
[mon]
mon allow pool delete = true

在这里插入图片描述

2)推送 ceph.conf 配置文件给所有 mon 节点

ceph-deploy --overwrite-conf config push node01 node02 node03

操作完成后对所有节点进行重启服务

systemctl restart ceph-mon.target 

在这里插入图片描述
3)执行删除 Pool 命令

ceph osd pool rm dz dz --yes-i-really-really-mean-it

在这里插入图片描述

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

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

相关文章

写给后端开发的『vue3』请求后端接口

本文分享一下在vue3前端项目中请求后端接口获取数据。比较简单&#xff0c;内容如下&#xff1a; 1、使用axios请求后端接口 首先npm install axios&#xff0c;添加axios依赖&#xff0c;就靠它来请求后端接口了&#xff0c;基本等同于使用jquery发ajax。 # src/main.js i…

每天一点Python——day58

#第五十八天 集合间的关系&#xff1a; 类似于数学中学到的集合一样&#xff0c;关系差不多&#xff0c;譬如相等&#xff0c;子集&#xff0c;交集 如图所示&#xff1a;#①两个集合是否相等&#xff1a;运用运算符【等号】或者运算符&#xff01;【不等号】进行判断 #例&…

人工智能大语言模型微调技术:SFT 监督微调、LoRA 微调方法、P-tuning v2 微调方法、Freeze 监督微调方法

人工智能大语言模型微调技术&#xff1a;SFT 监督微调、LoRA 微调方法、P-tuning v2 微调方法、Freeze 监督微调方法 1.SFT 监督微调 1.1 SFT 监督微调基本概念 SFT&#xff08;Supervised Fine-Tuning&#xff09;监督微调是指在源数据集上预训练一个神经网络模型&#xff…

听GPT 讲K8s源代码--pkg(六)

pkg/kubelet/cm 目录是 Kubernetes 源代码中的一个目录&#xff0c;包含了 kubelet 组件中的 ConfigMap 相关代码。 在 Kubernetes 中&#xff0c;ConfigMap 是一种用于存储非机密数据的 API 对象类型&#xff0c;它可以用来存储配置信息、环境变量、命令行参数等等。 kubelet …

Twisted Circuit

题目描述 输入格式 The input consists of four lines, each line containing a single digit 0 or 1. 输出格式 Output a single digit, 0 or 1. 题意翻译 读入四个整数 00 或者 11&#xff0c;作为如图所示的电路图的输入。请输出按照电路图运算后的结果。 感谢PC_DOS …

时序预测 | MATLAB实现Hamilton滤波AR时间序列预测

时序预测 | MATLAB实现Hamilton滤波AR时间序列预测 目录 时序预测 | MATLAB实现Hamilton滤波AR时间序列预测预测效果基本介绍程序设计参考资料预测效果 基本介绍 预测在很大程度上取决于适合周期的模型和所采用的预测方法,就像它们依赖于过滤器提取的周期一样。标准 Hodrick-P…

Python教程(4)——Python开发工具PyCharm的下载与安装

PyCharm是一种专业的Python集成开发环境&#xff08;IDE&#xff09;&#xff0c;由JetBrains公司开发和维护。它提供了丰富的功能和工具&#xff0c;帮助开发人员更高效地编写、调试和测试Python代码。如果是一些大型Python项目强烈推荐用这个来开发。今天我们来介绍一下PyCha…

nginx系列第八篇:Ubuntu下验证nginx各请求处理阶段

Nginx处理请求的过程一共划分为11个阶段&#xff0c;按照执行顺序依次是 post-read、server-rewrite、find-config、rewrite、post-rewrite、preaccess、access、post-access、try-files、content 以及 log。 准备工作&#xff1a;host文件加入测试域名 sudo vi /etc/hosts 加入…

C语言--程序环境和预处理

翻译环境 C语言的代码是文本信息&#xff0c;对于计算机来说无法直接理解&#xff0c;需要通过翻译环境进行翻译成二进制信息&#xff1b; 我们在写代码的时候&#xff0c;一般都会写在一个源文件中&#xff0c;这时候我们就使用我们的编译器(VS)将其转换为机器代码&#xff0…

Android应用启动全流程分析(源码深度剖析)

作者&#xff1a;努比亚技术团队 源码来源&#xff1a;努比亚技术团队 1.前言 从用户手指点击桌面上的应用图标到屏幕上显示出应用主Activity界面而完成应用启动&#xff0c;快的话往往都不需要一秒钟&#xff0c;但是这整个过程却是十分复杂的&#xff0c;其中涉及了Android系…

TortoiseGit 入门指南13:拣选

对于多分支的代码库&#xff0c;将代码从一个分支转移到另一个分支是常见需求。 这时分两种情况。一种情况是&#xff0c;你需要另一个分支的所有代码变动&#xff0c;那么就采用 合并&#xff08;merge&#xff09;。另一种情况是&#xff0c;你只需要部分代码变动&#xff0…

[JVM] 2. 类加载子系统(1)-- 内存结构、类加载子系统概述

一、内存结构 类加载子系统的职责是&#xff1a;加载class文件到内存中。 完整的内存结构如下&#xff1a; 二、类加载过程 类加载过程总体分为Loading&#xff08;加载&#xff09;、Linking&#xff08;链接&#xff09;、Initialization&#xff08;初始化&#xff09;三…

Mars3d采用ellipsoid球实现模拟地球旋转效果

1.Mars3d采用ellipsoid球实现模拟地球旋转效果 2.开始自选装之后&#xff0c;模型一直闪烁 http://mars3d.cn/editor-vue.html?idgraphic/entity/ellipsoid 3.相关代码&#xff1a; import * as mars3d from "mars3d"export let map // mars3d.Map三维地图对象 …

深入浅出如何通过API瞬间搭建亿万商品外贸代购系统PHP系统

什么是淘宝代购 淘宝代购是近年兴起的一种购物模式&#xff0c;是帮国外客户购买中国商品。主要是通过万邦 科技的外贸代购系统&#xff0c;把淘宝、天猫等电商平台的全站商品通过API 接入到你的网站 上&#xff0c;瞬间就可以架设一个有数亿产品的大型网上商城&#xff0c;而…

2023年测试之路,从功能测试进阶测试开发工程师,突破内卷...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试开发工程师到…

Redis可视化工具(Redis Desktop Manager)

redis是我们平时开发工作中经常用到的非关系型数据库&#xff0c;常用于做数据缓存&#xff0c;分布式锁等。 为了更方便的使用redi&#xff0c;这里给大家推荐一款可视化工具&#xff1a;Redis Desktop Manager。 1.下载与安装 直接到gihub下载&#xff0c;地址 Release 0.…

uni-app的H5版本下载跨域问题

前端能正常访问图片&#xff0c;但无法下载 因为路径不经过业务代码&#xff0c;所以需要在nginx配置跨域 代码&#xff1a; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods GET, POST, OPTIONS; add_header Access-Control-Allow-H…

基于simulink的DPLL仿真笔记

该笔记主要用于本人思路整理与记录 本设计运用的是电荷泵一阶环路滤波器&#xff0c;二阶三阶则在此基础上举一反三&#xff0c;以后如有机会会慢慢补全 文章目录 一.仿真模型PS&#xff08;题外话&#xff09; 二.仿真结果三.环路滤波器分析1. 环路滤波器对比LPF2. 环路滤波器…

Shikra:新一代多模态大语言模型,理解指向,说出坐标

“ Shikra&#xff1a;解锁多模态语言模型参考对话的魔法” Shikra和用户的对话案例 在人类的日常交流中&#xff0c;经常会关注场景中的不同区域或物体&#xff0c;双方都可以通过说话并指向这些区域来进行高效的信息交换。我们将这种对话模式称为参考对话&#xff08;Referen…

uniapp自定义头部,计算状态栏和导航栏高度超简单三步

效果图 1.pages.json 页面给要自定义头部的页面加入一行代码 "navigationStyle":"custom" {"path": "pages/index/index","style": {"navigationBarTitleText": "","navigationStyle":"…