Ceph安装步骤2——ceph存储池

Ceph安装步骤1完成之后,即可进行该步骤的操作。

本文中以对sas池进行操作为例。

一、创建Ceph Pool 。

1. 计算每个池所需要的PG数目。

   在创建池之前,首先需要计算PG数目(简单来说,PG就是负责管理对象都存储在哪些OSD上)。计算公式如下:

   PG 数目= (OSD数目 x 100) / 副本数(如果是纠删码池,则除以k与m的和),计算的结果取大于这个值并且最接近的2的幂。(例如,如果计算得到PG数目为600,则设置的Pool的PG数目应为1024)。

   如果在同样的一些OSD上要创建多个池,则每个池的PG数目需要再除以池的数量。

2.创建Pool。

 2.1  创建池的命令如下:

        ceph osd pool create <pool> <pgnumber> <pgpnumber>

        其中pgpnumber=pgnumber,pgnumber即为上一步得到的PG数目。

        此命令创建的池为副本池,并且默认为三副本池。

 2.2  如果想要修改副本数量,比如将三副本改为二副本,则使用以下命令(Ceph要求副本数或k+m的和必须小于等于OSD数目):

        ceph osd pool set sas size 2

 2.3  如果想要查看某一个池的副本数量,则使用以下命令:

        ceph osd pool get sas size

 2.4  如果想要创建一个纠删码池,则使用以下命令:

        首先创建一个纠删码规则,设置K、M值(此处创建一个名为abc的规则,k=2,m=1),纠删码规则可同时创建多个,

        ceph osd erasure-code-profile set abc k=2 m=1 runleset-failure-domain=host

        然后创建纠删码池:

        ceph osd pool create sas 256 256 erasure abc

二、删除池。

     在创建池后,由于种种原因,可能需要将池删掉,删除池使用以下命令:

     ceph osd pool delete sas sas  --yes-i-really-really-mean-it

三、配置Crush Map。

     通过配置Crush Map,使得Pool知道自己可以使用哪些OSD。

     首先,通过以下命令创建Crush Map :

     ceph osd getcrushmap -o raw_map

     crushtool -d raw_map -o decode_map

     创建完成后,打开Crush Map, Crush Map中包含以下几部分内容:

     1. 生成Crush Map时,自动生成的三部分:

        (1)tunable

                 # begin crush map
                  tunable choose_local_tries 0
                  tunable choose_local_fallback_tries 0
                  tunable choose_total_tries 50
                  tunable chooseleaf_descend_once 1
                  tunable chooseleaf_vary_r 1
                  tunable chooseleaf_stable 1
                  tunable straw_calc_version 1
                  tunable allowed_bucket_algs 54

           (2) device

                  # devices
                  device 0 osd.0 class hdd
                  device 1 osd.1 class hdd
                  device 2 osd.2 class ssd
                  device 3 osd.3 class hdd
                  device 4 osd.4 class hdd
                  device 5 osd.5 class ssd
                  device 6 osd.6 class hdd
                  device 7 osd.7 class hdd
                  device 8 osd.8 class ssd

           (3) type

                  # types
                  type 0 osd
                  type 1 host
                  type 2 chassis
                  type 3 rack
                  type 4 row
                  type 5 pdu
                  type 6 pod
                  type 7 room
                  type 8 datacenter
                  type 9 region
                  type 10 root     

      2. 需要手动编辑的部分

         (1)host

                 # buckets
                 host ceph-admin {
                           id -1       # do not change unnecessarily
                           id -2 class hdd        # do not change unnecessarily
                           id -3 class ssd        # do not change unnecessarily
                           # weight 0.038
                           alg straw2
                           hash 0    # rjenkins1
                           item osd.0 weight 0.019
                           item osd.1 weight 0.019
                   }      

                其中,

                ceph-admin为配置的主机名,每一台主机都需要配置这个部分。

                id 为负整数,只需要保证每个id都不同即可。

                id -2 class hdd 和id -3 class ssd 表明该host节点包含ssd和hdd两种硬盘。

                alg straw2和hash 0与数据平衡分配有关。

                item osd.0 weight 0.019 表明该host节点包含osd.0这一磁盘,并且磁盘容量为0.019T。

       (2)root

                root sas {
                          id -9        # do not change unnecessarily
                          id -1 class hdd        # do not change unnecessarily
                          id -23 class ssd        # do not change unnecessarily
                          # weight 0.114
                          alg straw2
                          hash 0    # rjenkins1
                          item ceph-admin weight 0.038
                          item ceph-1 weight 0.038
                          item ceph-2 weight 0.038
                       }

                root需要包含需要建池的所管理的所有host节点,并且表明节点总容量大小。

      (3)rule

               # rules
               rule sas {
               id 1
               type [replicated | erasure ]
               min_size <min-size>
               max_size <max-size>
               step set_chooseleaf_tries 5
               step set_choose_tries 100
               step take sas
               step choose indep 0 type osd
               step emit
              }

       至此,Crush Map配置完成,然后,通过以下命令使Crush Map的配置生效。

       crushtool -c decode_map -o crush_map

       ceph osd setcrushmap -i crush_map    

       ceph osd pool set sas crush_rule sas

 至此,Ceph Pool配置完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值