永发信息网

如何在ceph中找出存放的数据

答案:2  悬赏:50  手机版
解决时间 2021-02-15 02:00
  • 提问者网友:城市野鹿
  • 2021-02-14 23:02
如何在ceph中找出存放的数据
最佳答案
  • 五星知识达人网友:执傲
  • 2021-02-15 00:11
CRUSH算法通过每个设备的权重来计算数据对象的分布。对象分布是由cluster map和data distribution policy决定的。cluster map描述了可用存储资源和层级结构(比如有多少个机架,每个机架上有多少个服务器,每个服务器上有多少个磁盘)。data distribution policy由placement rules组成。rule决定了每个数据对象有多少个副本,这些副本存储的限制条件(比如3个副本放在不同的机架中)。CRUSH算出x到一组OSD集合(OSD是对象存储设备):(osd0, osd1, osd2 … osdn) = CRUSH(x)CRUSH利用多参数HASH函数,HASH函数中的参数包括x,使得从x到OSD集合是确定性的和独立的。CRUSH只使用了cluster map、placement rules、x。CRUSH是伪随机算法,相似输入的结果之间没有相关性。
全部回答
  • 1楼网友:山君与见山
  • 2021-02-15 00:23
1、首先查看一个pool中的image的指纹信息,目的是该image的所有的object文件都是以这个指纹命名的。比如我这里创建了一个pool zhangyipool,该pool下有一个image zhangyi image : $rados -p zhangyipool ls rbd_directory rbd_header.8c316b8b4567 rbd_id.zhangyiimage 这里8c316b8b4567就是这个image的指纹。所有这个image相关的object 4m对象都会以这个指纹命名来当文件存放在filestore后端文件系统上,比如xfs文件系统上。 2、查看这个pool下该image所有对象信息 $rados -p zhangyipool ls |grep 8c316b8b4567 rbd_data.8c316b8b4567.00000000000000a0 rbd_data.8c316b8b4567.0000000000000000 rbd_data.8c316b8b4567.0000000000000431 rbd_data.8c316b8b4567.000000000000042c rbd_data.8c316b8b4567.0000000000000424 rbd_data.8c316b8b4567.0000000000000433 rbd_data.8c316b8b4567.0000000000000430 如这里都是以指纹8c316b8b4567对应的4m文件。 3、比如我们这里以rbd_data.8c316b8b4567.0000000000000430这个4m对象文件为例来查找这个文件的位置。首先找到这个文件对应的pg和osd集合。 $ceph osd map zhangyipool rbd_data.8c316b8b4567.0000000000000430 osdmap e181 pool ‘zhangyipool’ (2) object ‘rbd_data.8c316b8b4567.0000000000000430’ -> pg 2.13fe02d6 (2.2d6) -> up ([180,118,212], p180) acting ([180,118,212], p180) 从而指导这个对象对应的pg是2.2d6,osd集合是[180,118,212],其中osd.180是主osd。 3、在查看这个主osd在那台osd节点上,比如查看180主osd在那台节点上。此时需要执行ceph osd tree查看整个map,从而得到该osd归属那个节点 $ceph osd tree 172 1.62379 osd.172 up 1.00000 1.00000 180 1.62379 osd.180 up 1.00000 1.00000 189 1.62379 osd.189 up 1.00000 1.00000 201 1.62379 osd.201 up 1.00000 1.00000 4、从而得到osd.180是在主机名:host zhangyi01上,因此这里需要登录着台机器.ssh zhangyi01.然后查看osd目录: $sudo ls -l /var/lib/ceph/osd total 0 drwxr-xr-x 3 ceph ceph 228 may 3 15:47 ceph-165 drwxr-xr-x 3 ceph ceph 228 may 3 15:47 ceph-172 drwxr-xr-x 3 ceph ceph 228 may 3 15:47 ceph-180 drwxr-xr-x 3 ceph ceph 228 may 3 15:47 ceph-189 drwxr-xr-x 3 ceph ceph 228 may 3 15:47 ceph-201 5、发现ceph-180目录。该目录下存放和这个osd所对应的pg,因此也存放这个这些pg对应的image的对象文件。在current目录下查看上面pg id对应的文件: $sudo ls -l /var/lib/ceph/osd/ceph-180/current |grep 2.2d6 drwxr-xr-x 2 ceph ceph 95 may 3 23:34 2.2d6_head drwxr-xr-x 2 ceph ceph 6 may 3 23:01 2.2d6_temp 6、在/var/lib/ceph/osd/ceph-180/current/2.2d6_head目录下存放着文件rbd\udata.8c316b8b4567.0000000000000430__head_13fe02d6__2即是4m的object对象rbd_data.8c316b8b4567.0000000000000430的文件 $sudo ls -lh /var/lib/ceph/osd/ceph-180/current/2.2d6_head total 4.0m -rw-r–r– 1 ceph ceph 0 may 3 23:01 __head_000002d6__2 -rw-r–r– 1 ceph ceph 4.0m may 3 23:34 rbd\udata.8c316b8b4567.0000000000000430__head_13fe02d6__2
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯