zoukankan      html  css  js  c++  java
  • 使用存储池中的对象拼接cephfs文件系统中的文件

    之前写过一篇关于如何使用对象网关存储池中的对象来将对象网关中的文件拼接出来的文章,其实cephfs文件系统中的文件也可以使用对象来进行拼接的,以下是操作方法:

    1、首先查看cephfs的存储池信息:

    ceph fs ls

     上图中我们可以看到有一个名称为ceph的cephfs文件系统,它的元数据池为metadata,数据池为data

    2、在集群cephfs挂载目录中创建一个test目录,然后拷贝一个文件到test目录下;;

     3、刷新文件元数据信息到mds;

    ceph daemon mds.node11 flush journal

    4、查看文件的Inode ID号,并将其转换成16进制,得出的这个值就是该文件的对象标识;

    printf %x `stat -c %i 有道翻译.exe`;printf "
    "

    5、根据文件的对象标识,在ceph文件系统的数据存储池中查找该文件的所有对象;

    rados -p data ls|grep 1000063ef10|sort

     6、将步骤5中查询到的数据导出到本地一个文档中,注意一定要按照对象的切片顺序排列好;

    rados -p data ls|grep 1000063ef10|sort>yd

     7、使用导出的对象列表文档,将文件拼接出来;

    for i in `cat yd`;do rados -p data get $i $i; cat $i >> ydfy.exe;done

     8、检查原始文件的md5值和拼接出来的文件的md5值,md5值一致表示两个文件一样;

    这篇文章有助于更加直观的理解cephfs文件系统下文件存储的过程,可以看到文件是如何转化为对象并进行存储的。

    最后说明一下就是在cephfs文件系统中,目录只有元数据对象,目录的元数据对象中存储的是该目录下面的所有子目录(不包含子目录下面的子目录和文件)和文件的元数据信息(文件名称和Inode号信息)。

     

  • 相关阅读:
    HTML(图像img、表格table、列表)
    HTML(标题h、段落p、文本格式化、链接a、头部head)
    List的复制 (浅拷贝与深拷贝)
    最新CentOS6.5安装Docker, 使用阿里云源下载(亲测)
    VirtualBox安装CentOS6.5
    P1010 幂次方 题解
    P1469 找筷子 题解
    P1866 编号 题解
    EasyNVR通道离线但视频流可正常播放是什么原因导致的?
    EasyNVR通过国标GB28181协议级联出现报错及播放不了的问题调整
  • 原文地址:https://www.cnblogs.com/xzy186/p/14292623.html
Copyright © 2011-2022 走看看