zoukankan      html  css  js  c++  java
  • ceph luminous版部署bluestore

    简介

    与filestore最大的不同是,bluestore可以直接读写磁盘,即对象数据是直接存放在裸设备上的,这样解决了一直被抱怨的数据双份写的问题

    Bluestore直接使用一个原始分区来存放ceph对象数据,不再需要任何文件系统,也就是说一个OSD对应一个裸分区;而OSD的元数据存放在一个名为RocksDB的键值对数据库中

    默认的Bluestore数据存放模型:

    一个OSD对应一个磁盘
    
    磁盘的第一个分区:默认只有100MB,XFS文件系统,用于存放osd相关的 ceph_fsid、fsid、keyring等,并且其中包含一个名为block的软连接用于指向第二个分区。该分区默认挂载到/var/lib/ceph/osd/ceph-X位置。
    
    第二个分区:原始分区,第一个分区中的block软连接指向的就是这个分区,这个分区是真正存放对象数据的分区。
    

    部署

    两个节点:ceph0、ceph1

    ceph0: mon.a、mds、mgr、osd.0、osd.1
    ceph1: mon.b、osd.2、osd.3
    

    操作系统:ubuntu14.04
    网络配置:

    ceph1: 管理网络,eth0, 192.168.31.100
           存储网络,eth1, 172.16.31.100
    ceph2: 管理网络,eth0, 192.168.31.101
           存储网络,eth1, 172.16.31.101
    

    环境配置和https://www.cnblogs.com/wshenjin/p/11806761.html一致
    OSD的部署采用bluestore的方式

    配置:

    [osd.0]
    host = ceph0
    devs = /dev/sdb1
    public addr = 192.168.31.100
    cluster addr = 172.16.31.100
    enable experimental unrecoverable data corrupting features = bluestore rocksdb
    osd objectstore = bluestore
    bluestore = true
    [osd.1]
    host = ceph0
    devs = /dev/sdc1
    public addr = 192.168.31.100
    cluster addr = 172.16.31.100
    enable experimental unrecoverable data corrupting features = bluestore rocksdb
    osd objectstore = bluestore
    bluestore = true
    [osd.2]
    host = ceph1
    devs = /dev/sdb1
    public addr = 192.168.31.101
    cluster addr = 172.16.31.101
    enable experimental unrecoverable data corrupting features = bluestore rocksdb
    osd objectstore = bluestore
    bluestore = true
    [osd.3]
    host = ceph1
    devs = /dev/sdc1
    public addr = 192.168.31.101
    cluster addr = 172.16.31.101
    enable experimental unrecoverable data corrupting features = bluestore rocksdb
    osd objectstore = bluestore
    bluestore = true
    

    ceph-disk prepare磁盘,一般执行完这条命令,新建的OSD已经up和in:

    root@ceph0:~# ceph-disk prepare --bluestore  /dev/sdb
    

    如果osd没有up,可以通过ceph-disk activate激活磁盘:

    root@ceph0:~# ceph-disk activate /dev/sdb1
    

    其他节点用同样的方式部署osd
    查看:

    root@ceph0:~# ceph osd stat  
    4 osds: 4 up, 4 in
    
    root@ceph0:~# ceph osd tree 
    ID CLASS WEIGHT  TYPE NAME      STATUS REWEIGHT PRI-AFF 
    -1       0.19476 root default                           
    -3       0.09738     host ceph0                         
     0   hdd 0.04869         osd.0      up  1.00000 1.00000 
     1   hdd 0.04869         osd.1      up  1.00000 1.00000 
    -5       0.09738     host ceph1                         
     2   hdd 0.04869         osd.2      up  1.00000 1.00000 
     3   hdd 0.04869         osd.3      up  1.00000 1.00000 
    

    一些报错

    报错1:

    ERROR: error creating empty object store in /var/lib/ceph/tmp/mnt.cq2OM8: (5) Input/output error
    

    原因:扇区中仍然存在上一个版本osd相关元数据信息
    解决:

    #使用0重写前一个G内容
    root@ceph0:~# dd if=/dev/zero of=/dev/sdb bs=1M count=1024  
    #先破坏磁盘所有分区,再将分区由mgr转为gpt格式分区 
    root@ceph0:~# sgdisk -Z -g /dev/sdb 
    

    参考:https://blog.csdn.net/Z_Stand/article/details/90383762
    报错2:

    ERROR: error creating empty object store in /var/lib/ceph/tmp/mnt.Ubow06: (17) File exists
    

    解决:
    配置文件里去掉osd data字段即可,不知道为啥

    报错3:

    Invalid partition data!
    '/sbin/sgdisk -xxxx' failed with status code 2
    

    解决:

    root@ceph0:~# ceph-disk zap /dev/sdc
    
  • 相关阅读:
    寒假 学习进度七
    寒假学习进度
    寒假学习进度五
    寒假学习进度四
    寒假学习进度三
    寒假学习进度二
    Spark实验五
    半篇论文笔记
    REPL
    Scala基本语法及操作、程序控制结构
  • 原文地址:https://www.cnblogs.com/wshenjin/p/11831047.html
Copyright © 2011-2022 走看看