Ceph集群管理之OSD

通过子命令的配合实现对OSD的管理和配置。


黑名单(blacklist)

管理客户端黑名单。通过子命令管理。

添加某个地址到黑名单:

    ceph osd blacklist add <EntityAddr> {<float[0.0-]>}

显示黑名单列表:

    ceph osd blacklist ls

从黑名单列表中移除某项:

    ceph osd blacklist rm <EntityAddr>

阻塞(blocked-by)

显示被阻塞的OSD的直方图(不明觉厉),示例如下:

    ceph osd blocked-by

新建(create)

创建一个新的OSD,可以指定具体的UUID,示例如下:

    ceph osd create {<uuid>}

crush管理

通过若干子命令进行crush map的管理。

add

通过新的权重和位置信息,添加或者更新crushmap的位置和权重。命令格式如下:

ceph osd crush add <osdname (id|osd.id)> <float[0.0-]> […]

具体示例如下:

ceph osd crush add 3 0.02 root=default host=ceph-osd3

该示例在节点ceph-osd3上添加一个OSD节点,节点名称为3,权重为0.02。

 

add-bucket

添加特定类型和名字的无父节点的crush桶。具体格式如下:

    ceph osd crush add-bucket <name> <type>

create-or-move

添加一个新的项或者移除一个已经存在的项。

    ceph osd crush create-or-move <osdname (id|osd.id)> <float[0.0-]> <args>

dump

显示crush map信息。

    ceph osd crush dump

get-tunable

       Subcommand get-tunable get crush tunable straw_calc_version

          ceph osd crush get-tunable straw_calc_version

link

将存在的OSD项连接到特定的位置(不清楚作用)。      

    ceph osd crush link <name> <args> […]

move

将存在的OSD项移动到特定位置。

    ceph osd crush move <name> <args> […]

remove

将特定的OSD项从crush map移除。

    ceph osd crush remove <name> {<ancestor>}

rename-bucket

 重命名桶的名称。

     ceph osd crush rename-bucket <srcname> <dstname>

reweight

 更改某个OSD项的权重。

     ceph osd crush reweight <name> <float[0.0-]>

reweight-all

 重新计算OSD树的权重,确保正确性。

     ceph osd crush reweight-all

reweight-subtree

 重新计算某个子树的权重。

     ceph osd crush reweight-subtree <name> <weight>

rm

 将OSD项从crush map中移除。

     ceph osd crush rm <name> {<ancestor>}

rule

 通过一些子命令创建crush规则。

create-erasure

子命令create-erasure为矫删码存储池创建crush规则。

     ceph osd crush rule create-erasure <name> {<profile>}

create-simple

子命令create-simple创建一个名称为<name>,跨越多个类型为<type>的桶,使用<firstn|indep>中任意一种模式(默认为firstn,矫删码存储池最好用indep)的crush规则。

ceph osd crush rule create-simple <name> <root> <type> {firstn|indep}

dump

 显示特定名称的crush规则。

     ceph osd crush rule dump {<name>}

list

 显示crush规则列表。

     ceph osd crush rule list

ls

显示crush规则。

     ceph osd crush rule ls

rm

移除crush规则。

     ceph osd crush rule rm <name>

set

如果单独使用set子命令,则通过输入文件设置crush map。

     ceph osd crush set

如果包含OSD的名称信息,则用来更新crush map的位置和权重。

    ceph osd crush set <osdname (id|osd.id)> <float[0.0-]> […]

set-tunable

设置crush的可调参数为某个特定的值,唯一可以设置的可调参数是straw_calc_version。

     ceph osd crush set-tunable straw_calc_version <value>

如下为当前系统的可调参数。

ceph-set-tunables

show-tunables

显示当前crush的可调参数。      

    ceph osd crush show-tunables

 

 

tunables

将可调参数设置为某个版本默认值。

ceph osd crush tunables legacy|argonaut|bobtail|firefly|hammer|optimal|default

unlink

取消连接。

    ceph osd crush unlink <name> {<ancestor>}

df

显示磁盘空间的使用情况。

    ceph osd df {plain|tree}

deep-scrub

       Subcommand deep-scrub initiates deep scrub on specified osd.

    ceph osd deep-scrub <who>

down

 设置某个OSD为down状态。

     ceph osd down <ids> […]

dump

打印OSD map的摘要信息。

          ceph osd dump {<int[0-]>}

erasure-code-profile

Subcommand erasure-code-profile is used for managing the erasure code profiles. It uses some additional subcommands.

get

获取矫删码profile(配置?)信息。

    ceph osd erasure-code-profile get <name>

ls

获取所有矫删码配置。

    ceph osd erasure-code-profile ls

rm

移除特定的矫删码配置。

    ceph osd erasure-code-profile rm <name>

set

用指定的kv对设置特定名称的矫删码配置。如果使用–force将覆盖一个已经存在的配置(危险)。

ceph osd erasure-code-profile set <name> {<profile> […]}

find

根据OSD的ID,从Crush map中查找该OSD,并且显示该OSD的位置等信息。

    ceph osd find <int[0-]>

getcrushmap

获取CRUSH map,获取的内容是编码的数据,需要用crushtool进行解码。命令格式如下:

ceph osd getcrushmap {<int[0-]>}

 

getmap

获取OSD map,获取的内容是编码的数据,需要通过osdmaptool显示可识别的信息。

ceph osd getmap {<int[0-]>}

 

getmaxosd

获取最大的OSD id。

    ceph osd getmaxosd

 

in

将OSD设置为in状态。

    ceph osd in <ids> […]

lost

该命令将OSD标记为永久的丢失(如果没有多余的副本,数据将会丢失)

    ceph osd lost <int[0-]> {–yes-i-really-mean-it}

ls

显示所有的OSD ID.

    ceph osd ls {<int[0-]>}

 

lspools

显示所有的存储池。

    ceph osd lspools {<int>}

 

map

查找存储池中某个对象所在的PG。

    ceph osd map <poolname> <objectname>

metadata

 获取某个OSD的元数据。

      ceph osd metadata <int[0-]>

ceph-meta

out

将某个OSD设置为out状态。

   ceph osd out <ids> […]

pause

暂停某个OSD。

    ceph osd pause

perf

显示OSD的性能统计信息。

    ceph osd perf

 

pg-temp

设置pg_temp映射在某个pgid上(仅限开发使用)。

     ceph osd pg-temp <pgid> {<id> […]}

 

pool

通过若干子命令管理数据池。

 

create

创建数据池(跟rados的mkpool命令一致?)。

    ceph osd pool create <poolname> <int[0-]> {

          {<erasure_code_profile>} {<ruleset>} {<int>}

 

delete

删除数据池。

    ceph osd pool delete <poolname> {<poolname>} {–yes-i-really-really-mean-it}

get

获取存储池的参数。

    ceph osd pool get <poolname> size|min_size|crash_replay_interval|pg_num|

          pgp_num|crush_ruleset|auid|write_fadvise_dontneed

 

如下仅用于分级存储池:

ceph osd pool get <poolname> hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|

          target_max_objects|target_max_bytes|cache_target_dirty_ratio|

          cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|

          min_read_recency_for_promote

 

如下仅用于矫删码存储池:

 

          ceph osd pool get <poolname> erasure_code_profile

 

get-quota

获取存储池的对象限制或者容量限制。

   ceph osd pool get-quota <poolname>

ls

显示存储池列表。

    ceph osd pool ls {detail}

 

mksnap

为某个存储池打快照。

     ceph osd pool mksnap <poolname> <snap>

rename

重命名存储池。

    ceph osd pool rename <poolname> <poolname>

 

rmsnap

删除存储池的某个快照。

          ceph osd pool rmsnap <poolname> <snap>

 

set

设置存储池的某个参数值。

    ceph osd pool set <poolname> size|min_size|crash_replay_interval|pg_num|

        pgp_num|crush_ruleset|hashpspool|nodelete|nopgchange|nosizechange|

     hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|debug_fake_ec_pool|

          target_max_bytes|target_max_objects|cache_target_dirty_ratio|

      cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|auid|

          min_read_recency_for_promote|write_fadvise_dontneed

          <val> {–yes-i-really-mean-it}

 

set-quota

设置存储池的对象极限或者容量极限。

    ceph osd pool set-quota <poolname> max_objects|max_bytes <val>

 

stats

获取某个存储池或者所有存储池的统计信息。

    ceph osd pool stats {<name>}

 

primary -affinity

调整OSD的初始相关性,从0.0到1.0。

     ceph osd primary-affinity <osdname (id|osd.id)> <float[0.0-1.0]>

 

primary-temp

设置primary_temp映射到pgid。(进行开发使用)

      ceph osd primary-temp <pgid> <id>

 

repair

修复一个特定的OSD。

    ceph osd repair <who>

 

reweight

调整一个OSD的权重,范围从0.0到1.0。

    osd reweight <int[0-]>

 

reweight-by-pg

通过PG分布的方式调整OSD的权重(PG分布为负载百分比的方式)。

ceph osd reweight-by-pg {<int[100-]>} { [

 

 

reweight-by-utilization

通过使用率的方式调整OSD的比重(默认120)。

    ceph osd reweight-by-utilization {<int[100-]>}

 

rm

移除某个集群中的OSD。

    ceph osd rm <ids> […]

 

scrub

清理某个OSD。

    ceph osd scrub <who>

 

set

设置某个值。

    ceph osd set full|pause|noup|nodown|noout|noin|nobackfill|

          norebalance|norecover|noscrub|nodeep-scrub|notieragent

 

setcrushmap

通过输入文件(Crush文件)设置集群的crush map。

    ceph osd setcrushmap

 

setmaxosd

设置新的最大的OSD值。

    ceph osd setmaxosd <int[0-]>

 

stat

显示OSD map的概要信息。

     ceph osd stat

 

thrash

将OSD map设置为某个版本(将引起OSD的下线和集群数据的迁移)。

     ceph osd thrash <int[0-]>

 

tier

用来管理分级存储池。

add

将分级存储池添加到基本存储池中。

    ceph osd tier add <poolname> <poolname> {–force-nonempty}

其中,第一个参数是基本存储池,第二个为分级存储池。

add-cache

添加一个缓存分级存储池到已经存在的存储池中。

     ceph osd tier add-cache <poolname> <poolname> <int[0-]>

 

cache-mode

 设置缓存分级存储的模式。

      ceph osd tier cache-mode <poolname> none|writeback|forward|readonly|

          readforward|readproxy

remove

  从基本存储池中移除分级存储池。

     ceph osd tier remove <poolname> <poolname>

remove-overlay

不清楚搞什么的。

     ceph osd tier remove-overlay <poolname>

 

set-overlay

设置某个存储池被另一个存储池覆盖(不明白什么意思)。

     ceph osd tier set-overlay <poolname> <poolname>

 

     tree

 显示OSD的树形结构。

      ceph osd tree {<int[0-]>}

unpause

恢复OSD的工作

     ceph osd unpause

 

unset

撤销

    ceph osd unset full|pause|noup|nodown|noout|noin|nobackfill|

       norebalance|norecover|noscrub|nodeep-scrub|notieragent

如果引用本站的原创文章,请注明原文链接:,本站保留追究责任的权利!