ceph存储之查找对象

简介: 对象存储(而非块存储): 要把对象存入ceph集群,客户端必须做到:   1、指定对象名   2、指定存储池 Ceph客户端检出最新集群运行图,客户端用CRUSH算法动态地计算出如何把对象映射到归置组、然后计算如何把归置组分配到OSD。

对象存储(而非块存储):

要把对象存入ceph集群,客户端必须做到:

  1、指定对象名

  2、指定存储池

Ceph客户端检出最新集群运行图,客户端用CRUSH算法动态地计算出如何把对象映射到归置组、然后计算如何把归置组分配到OSD。要定位对象,只需要对象名和存储池名字即可。例如:

  ceph osd map {poolname} {object-name}

练习:定位某个对象

  1、先创建一个对象,有rados put 命令加上对象名、一个有数据的测试文件路径、并制定存储池。

      echo  {Test-data} > testfile.txt

      rados put {object-name} {file-path}  --pool=data

      rados put test-object-1  testfile.txt  --pool=data

    确认Ceph存储集群存储了此对象:

      rados -p data ls

 1 root@u18:~# rados lspools
 2 data
 3 metadata
 4 rbd
 5 kvm
 6 libvirt-pool
 7 template
 8 root@u18:~# echo "Hello World" > testfile.txt
 9 root@u18:~# rados put test-object-1  testfile.txt --pool=data
10 root@u18:~# rados -p data ls
11 test-object-1
12 root@u18:~# 

  2、定位对象:

    ceph  osd  map  {pool-name}  {object-name}

    ceph  osd  map  data   test-object-1

    Ceph应该输入对象位置,例如: 

1 root@u18:~# ceph osd map data test-object-1
2 osdmap e862 pool 'data' (0) object 'test-object-1' -> pg 0.74dc35e2 (0.22) -> up ([1,0], p1) acting ([1,0], p1)
3 root@u18:~# 

   rados  rm可删除此测试对象,例如:

    rados  rm  test-object-1   --pool=data

1 root@u163:/var/www# rados -p rbd listwatchers myimage.rbd
2 root@u163:/var/www# rbd info  myimage
3 rbd image 'myimage':
4     size 2000 MB in 500 objects
5     order 22 (4096 kB objects)
6     block_name_prefix: rb.0.5e948.238e1f29
7     format: 1

查看前缀对应的pg:

root@u163:/var/www# ceph osd map rbd rb.0.5e948.238e1f29
osdmap e303 pool 'rbd' (2) object 'rb.0.5e948.238e1f29' -> pg 2.e65f431a (2.1a) -> up ([1,0], p1) acting ([1,0], p1)

 

相关文章
|
3月前
|
存储 Kubernetes 容器
Kubernetes 存储选项:持久化卷与存储类
【8月更文第29天】随着容器化的普及,越来越多的应用程序需要持久化数据以保持状态信息。Kubernetes 提供了一套完整的解决方案来管理和配置持久化存储,包括持久卷 (Persistent Volume, PV)、持久卷声明 (Persistent Volume Claim, PVC) 和存储类 (StorageClass)。本文将详细介绍这些概念,并通过实际示例来演示如何在 Kubernetes 中配置存储。
219 1
|
3月前
|
Java Docker 索引
记录一次索引未建立、继而引发一系列的问题、包含索引创建失败、虚拟机中JVM虚拟机内存满的情况
这篇文章记录了作者在分布式微服务项目中遇到的一系列问题,起因是商品服务检索接口测试失败,原因是Elasticsearch索引未找到。文章详细描述了解决过程中遇到的几个关键问题:分词器的安装、Elasticsearch内存溢出的处理,以及最终成功创建`gulimall_product`索引的步骤。作者还分享了使用Postman测试接口的经历,并强调了问题解决过程中遇到的挑战和所花费的时间。
|
3月前
|
存储 分布式计算 负载均衡
|
5月前
|
C++ 容器
C++之deque容器(构造、赋值、大小、插入与删除、存取、排序)
C++之deque容器(构造、赋值、大小、插入与删除、存取、排序)
|
5月前
|
算法 C++ 容器
C++之vector容器操作(构造、赋值、扩容、插入、删除、交换、预留空间、遍历)
C++之vector容器操作(构造、赋值、扩容、插入、删除、交换、预留空间、遍历)
202 0
|
6月前
|
存储 JSON NoSQL
Redis中当存储数据为List集合时,如何控制集合内每个数据元素的生命周期
Redis中当存储数据为List集合时,如何控制集合内每个数据元素的生命周期
412 0
|
存储 前端开发 Apache
带你读《存储漫谈:Ceph原理与实践》——3.2.3 I/O 路径
带你读《存储漫谈:Ceph原理与实践》——3.2.3 I/O 路径
|
安全 数据可视化 测试技术
Elastic:集群相关知识点总结(一)数据流 Data Stream、索引生命周期 ILM、可搜索快照 searchable snapshots、跨集群搜索 CCS、跨集群复制 CCR
# 0.引言 集群管理是ES的核心重点,因此相关的知识点至关重要,本期主要针对数据流、索引生命周期、可搜索快照、跨集群搜索、跨集群复制进行讲解
321 0
Elastic:集群相关知识点总结(一)数据流 Data Stream、索引生命周期 ILM、可搜索快照 searchable snapshots、跨集群搜索 CCS、跨集群复制 CCR
|
机器学习/深度学习 容器
通过数组模拟ArrayList结构,完成容器的创建、添加、修改、删除,以及可以 遍历自定义的结构,
通过数组模拟ArrayList结构,完成容器的创建、添加、修改、删除,以及可以 遍历自定义的结构,
125 0