• ceph bluestore与 filestore 数据存放的区别


    一、 filestore 对象所在的PG以文件方式放在xfs文件中
    1 查看所有的osd硬盘,跟其他linux其他硬盘一样,被挂载一个目录中。
    [root@hz-storage1 ~]# df -h | grep -i ceph
    /dev/sda1 3.7T 112G 3.6T 3% /var/lib/ceph/osd/ff279da7-446d-451f-9dcf-7d281e9b85a6
    /dev/sdb1 3.7T 77G 3.6T 3% /var/lib/ceph/osd/263adb71-1902-4e21-acea-b7f53921b484
    /dev/sdc1 3.7T 74G 3.6T 2% /var/lib/ceph/osd/e71a1f8e-08eb-4fa6-ba17-90ec20bfe84b
    /dev/sdd1 3.7T 96G 3.6T 3% /var/lib/ceph/osd/f308c1e5-6d39-442e-883a-e3253e6ba4f0
    /dev/sde1 3.7T 97G 3.6T 3% /var/lib/ceph/osd/81772621-7175-4d5d-bdb3-ccad15fa3848
    /dev/sdf1 3.7T 111G 3.6T 3% /var/lib/ceph/osd/889ba3b0-09a9-43e8-b0c9-adc938337ccd
    /dev/sdh1 3.7T 77G 3.6T 3% /var/lib/ceph/osd/269d36ae-7e3f-4c72-89a1-6f5841c3212f
    /dev/sdi1 3.7T 91G 3.6T 3% /var/lib/ceph/osd/5476a45d-ca0e-4728-b09d-7a277394bda7
    /dev/sdj1 3.7T 65G 3.6T 2% /var/lib/ceph/osd/6b1ab4bb-82b1-4fbd-8a57-3fae690df4e9
    /dev/sdk1 3.7T 85G 3.6T 3% /var/lib/ceph/osd/0a44ee0c-c5f3-4769-b4bc-1dd819c3f1ad
    /dev/sdl1 3.7T 127G 3.6T 4% /var/lib/ceph/osd/60536d66-31f2-4ec4-8728-e02bf11fd04f
    2 这个uuid:ff279da7-446d-451f-9dcf-7d281e9b85a6其实就是一块硬盘保存的数据,进入这个目录。
    [root@hz-storage1 ~]# cd /var/lib/ceph/osd/ff279da7-446d-451f-9dcf-7d281e9b85a6
    [root@hz-storage1 ff279da7-446d-451f-9dcf-7d281e9b85a6]# ls -ls
    total 40
    4 -rw-r--r-- 1 root root 37 Dec 29 23:06 ceph_fsid
    4 drwxr-xr-x 92 root root 4096 Feb 18 09:19 current
    4 -rw-r--r-- 1 root root 37 Dec 29 23:06 fsid
    4 -rw------- 1 root root 56 Dec 29 23:06 keyring
    4 -rw-r--r-- 1 root root 21 Dec 29 23:06 magic
    4 -rw-r--r-- 1 root root 6 Dec 29 23:06 ready
    4 -rw-r--r-- 1 root root 4 Dec 29 23:06 store_version
    4 -rw-r--r-- 1 root root 53 Dec 29 23:06 superblock
    4 -rw-r--r-- 1 root root 10 Dec 29 23:06 type
    4 -rw-r--r-- 1 root root 2 Dec 29 23:06 whoami
    3 在进入current目录
    [root@hz-storage1 ff279da7-446d-451f-9dcf-7d281e9b85a6]# cd current/
    [root@hz-storage1 current]# ls -ls
    total 920
    36 drwxr-xr-x 2 root root 32768 Jan 1 18:24 1.7_head
    0 drwxr-xr-x 2 root root 6 Dec 29 23:11 1.7_TEMP
    20 drwxr-xr-x 2 root root 16384 Feb 22 16:22 2.15_head
    0 drwxr-xr-x 2 root root 6 Dec 31 23:07 2.15_TEMP
    24 drwxr-xr-x 2 root root 20480 Feb 22 16:07 2.1d_head
    0 drwxr-xr-x 2 root root 66 Feb 22 02:54 2.1d_TEMP
    24 drwxr-xr-x 2 root root 20480 Feb 22 16:36 2.1f_head
    0 drwxr-xr-x 2 root root 66 Feb 21 20:31 2.1f_TEMP
    24 drwxr-xr-x 2 root root 20480 Feb 22 15:44 2.36_head
    0 drwxr-xr-x 2 root root 6 Dec 31 23:07 2.36_TEMP
    24 drwxr-xr-x 2 root root 20480 Feb 22 16:38 2.41_head
    0 drwxr-xr-x 2 root root 6 Dec 31 23:07 2.41_TEMP
    28 drwxr-xr-x 2 root root 24576 Feb 22 16:39 2.43_head
    0 drwxr-xr-x 2 root root 6 Dec 31 23:07 2.43_TEMP
    28 drwxr-xr-x 2 root root 24576 Feb 22 16:39 2.51_head
    0 drwxr-xr-x 2 root root 58 Feb 22 15:57 2.51_TEMP
    24 drwxr-xr-x 2 root root 20480 Feb 22 16:37 2.5c_head
    0 drwxr-xr-x 2 root root 6 Dec 31 23:07 2.5c_TEMP
    24 drwxr-xr-x 2 root root 20480 Feb 22 15:33 2.78_head
    可见PG是一个文件方式保存的。
    二、bluestore 直接写到裸盘上面,由于无文件系统,在系统无法看到具体文件。
    1 查看所有的osd硬盘,只是一个日志挂载到目录中。
    [root@99cloud3 d531c723-2bd7-4197-9b6d-8a7fa7ac4719]# df -h | grep -i ceph
    /dev/sdb1 97M 5.3M 92M 6% /var/lib/ceph/osd/d531c723-2bd7-4197-9b6d-8a7fa7ac4719
    /dev/sdc1 97M 5.3M 92M 6% /var/lib/ceph/osd/b781e99e-7100-4bdd-9223-0b44c2ba6bb8
    /dev/sdd1 97M 5.3M 92M 6% /var/lib/ceph/osd/baa319a7-d7cc-4ba2-88ef-9377c3f27d90
    2 进入/var/lib/ceph/osd/d531c723-2bd7-4197-9b6d-8a7fa7ac4719,发觉又一个链接文件,直接指到一块块设备。
    [root@99cloud3 d531c723-2bd7-4197-9b6d-8a7fa7ac4719]# ls -ls
    total 40
    0 lrwxrwxrwx 1 root root 45 Jan 24 14:38 block -> /dev/disk/by-partlabel/KOLLA_CEPH_DATA_BS_6_B
    4 -rw-r--r-- 1 root root 2 Jan 24 14:38 bluefs
    4 -rw-r--r-- 1 root root 37 Jan 24 14:38 ceph_fsid
    4 -rw-r--r-- 1 root root 37 Jan 24 14:38 fsid
    4 -rw------- 1 root root 56 Jan 24 14:38 keyring
    4 -rw-r--r-- 1 root root 8 Jan 24 14:38 kv_backend
    4 -rw-r--r-- 1 root root 21 Jan 24 14:38 magic
    4 -rw-r--r-- 1 root root 4 Jan 24 14:38 mkfs_done
    4 -rw-r--r-- 1 root root 6 Jan 24 14:38 ready
    4 -rw-r--r-- 1 root root 10 Jan 24 14:38 type
    4 -rw-r--r-- 1 root root 2 Jan 24 14:38 whoami
    3 进入真正的目录,发现指到的是一块硬盘sdb2,其实df查到的是sdb1,是日志盘。
    [root@99cloud3 d531c723-2bd7-4197-9b6d-8a7fa7ac4719]# cd /dev/disk/by-partlabel/
    [root@99cloud3 by-partlabel]# ls -ls
    total 0
    0 lrwxrwxrwx 1 root root 10 Jan 24 14:38 KOLLA_CEPH_DATA_BS_0 -> ../../sdd1
    0 lrwxrwxrwx 1 root root 10 Feb 21 17:21 KOLLA_CEPH_DATA_BS_0_B -> ../../sdd2
    0 lrwxrwxrwx 1 root root 10 Jan 24 14:38 KOLLA_CEPH_DATA_BS_3 -> ../../sdc1
    0 lrwxrwxrwx 1 root root 10 Feb 21 17:21 KOLLA_CEPH_DATA_BS_3_B -> ../../sdc2
    0 lrwxrwxrwx 1 root root 10 Jan 24 14:38 KOLLA_CEPH_DATA_BS_6 -> ../../sdb1
    0 lrwxrwxrwx 1 root root 10 Feb 21 17:21 KOLLA_CEPH_DATA_BS_6_B -> ../../sdb2
    三、
    1 首先建立一个测试文件。
    #echo "Hello Ceph, You are Awesome like MJ" > /tmp/helloceph
    #ceph osd pool create HPC_Pool 128 128
    2 将生成的测试文件存入该池中并确认文件在池中:
    #rados -p HPC_Pool put object1 /tmp/helloceph
    #rados -p HPC_Pool ls
    object1
    3 在ceph中,数据都是以对象的形式存储的,这些对象属于一个PG,这些PG又对应多个OSD。现在我们来直观地感受一下这个概念:
    # ceph osd map HPC_Pool object1
    osdmap e221395 pool 'HPC_Pool' (14) object 'object1' -> pg 14.bac5debc (14.3c) -> up ([6,4,7], p6) acting ([6,4,7], p6)
    我们来探讨一下这个命令的输出。
    osdmap e221395: 这个是OSD map的版本号。
    pool 'HPC_Pool' (14) : 这是池名字和ID
    object 'object1': 这个是对象名称。
    pg 14.bac5debc (14.3c):这是PG编号,这表示对象oject1属于PG 14.3c。
    up ([6,4,7] :这是osd的up集合,这里包含osd.6、osd.4、osd.7。由于副本级是3,因此每一个PG将会存放到三个OSD上。这同时表明存放PG 14.3c的三个OSD的状态都是up。这是每一个特定crush map规则集中的一个特点osd map版本的所有相关osd的有序列表。正常情况下,这个和acting集合是一样的。
    acting ([6,4,7]:这表明osd.6、osd.4、osd.7都在集合中,其中osd.6是主osd, osd.4是第二个、osd.7是第三个。acting集合是负责一个特定osd map的osd有序列表
    4 检查这些osd的物理位置。你会发现osd.6、osd.4、osd.7彼此是物理隔开的,他们分别在三个节点上。
    [root@99cloud1 /]# ceph osd tree
    ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
    -1 4.85994 root default
    -2 0 host 10.160.20.197
    -4 0 host 10.160.20.198
    -3 0 host 10.160.20.199
    -11 1.61998 host 99cloud3
    0 hdd 0.53999 osd.0 up 1.00000 1.00000
    3 hdd 0.53999 osd.3 up 1.00000 1.00000
    6 hdd 0.53999 osd.6 up 1.00000 1.00000
    -9 1.61998 host 99cloud4
    2 hdd 0.53999 osd.2 up 1.00000 1.00000
    4 hdd 0.53999 osd.4 up 1.00000 1.00000
    8 hdd 0.53999 osd.8 up 1.00000 1.00000
    -13 1.61998 host 99cloud5
    1 hdd 0.53999 osd.1 up 1.00000 1.00000
    5 hdd 0.53999 osd.5 up 1.00000 1.00000
    7 hdd 0.53999 osd.7 up 1.00000 1.00000


  • 相关阅读:
    SQL 学习随笔
    hibernate查询方式总结基于原生SQL查询(二)
    hibernate查询方式总结(四)之QBC,QBE查询
    Hibernate查询方式汇总之Hql查询(三)
    java 强引用,软引用,弱引用,虚引用
    JAVA-对java平台的理解
    Git SSH本机配置
    Windows下Python3解决 Microsoft Visual C++ 14.0 is required 报错
    checkpoint原理剖析与源码分析
    CacheManager原理剖析与源码分析
  • 原文地址:https://www.cnblogs.com/cloud-datacenter/p/12346254.html
Copyright © 2020-2023  润新知