注意
本文档适用于 Ceph 开发版本。
OSD 配置参考
您可以在 Ceph 配置文件(或最近发布的版本中的中央配置存储)中配置 Ceph OSD 守护进程,但 Ceph OSD 守护进程可以使用默认值和一个非常最小的配置。最小的 Ceph OSD 守护进程配置设置host
和
Ceph OSD 守护进程以增量方式进行编号,从0
使用以下约定。
osd.0
osd.1
osd.2
在配置文件中,您可以通过向您的配置文件的[osd]
部分添加配置设置来指定集群中所有 Ceph OSD 守护进程的设置。要将设置直接添加到特定的 Ceph OSD 守护进程(例如,host
),请将其输入您的配置文件中的 OSD 特定部分。例如:
[osd]
osd_journal_size = 5120
[osd.0]
host = osd-host-a
[osd.1]
host = osd-host-b
通用设置
以下设置提供 Ceph OSD 守护进程的 ID,并确定数据和日记的路径。Ceph 部署脚本通常自动生成 UUID。
警告
不要更改数据或日记的默认路径,因为它使以后排查 Ceph 的问题更加困难。
当使用 Filestore 时,日记的大小应至少为预期驱动器速度乘以filestore_max_sync_interval
的两倍。然而,最常见的做法是分区日记驱动器(通常是 SSD),并将其挂载为 Ceph 使用整个分区作为日记。
- osd_uuid
Ceph OSD 守护进程的通用唯一标识符 (UUID)。
- type:
uuid
Note
The
osd_uuid
适用于单个 Ceph OSD 守护进程。Thefsid
适用于整个集群。
- osd_data
OSD 数据的路径。在部署 Ceph 时,您必须创建该目录。您应该在挂载点挂载驱动器以用于 OSD 数据。我们不建议更改默认值。
- type:
str
- default:
/var/lib/ceph/osd/$cluster-$id
- osd_max_write_size
写入的最大大小(以兆字节为单位)。
- type:
size
- default:
90B
- min:
4
- osd_max_object_size
RADOS 对象的最大大小(以字节为单位)。
- type:
size
- default:
128Mi
- osd_client_message_size_cap
允许在内存中的最大客户端数据消息。
- type:
size
- default:
500Mi
- osd_class_dir
RADOS 类插件的路由路径。
- type:
str
- default:
$libdir/rados-classes
文件系统设置
Ceph 构建并挂载用于 Ceph OSD 的文件系统。
osd_mkfs_options {fs-type}
- 描述:
创建新的 Ceph Filestore OSD {fs-type} 时使用的选项。
- 类型:
字符串
- xfs 的默认值:
-f -i 2048
- 其他文件系统的默认值:
{空字符串}
- 例如::
osd_mkfs_options_xfs = -f -d agcount=24
osd_mount_options {fs-type}
- 描述:
挂载 Ceph Filestore OSD {fs-type} 时使用的选项。
- 类型:
字符串
- xfs 的默认值:
rw,noatime,inode64
- 其他文件系统的默认值:
rw, noatime
- 例如::
osd_mount_options_xfs = rw, noatime, inode64, logbufs=8
Journal 设置
此部分仅适用于较旧的 Filestore OSD 后端。由于 Luminous BlueStore 已成为默认和首选。
默认情况下,Ceph 期望您在以下路径处配置 Ceph OSD 守护进程的日记,该路径通常是到设备或分区的符号链接:
/var/lib/ceph/osd/$cluster-$id/journal
当使用单个设备类型(例如,旋转驱动器)时,日记应共位置: 逻辑卷(或分区)应与data
逻辑卷位于同一设备。
当使用快速(SSD、NVMe)设备与较慢的设备(如旋转驱动器)的混合时,将日记放在较快的设备上是有意义的,而data
完全占用较慢的设备。
默认osd_journal_size
值是 5120(5 吉字节),但可以更大,在这种情况下,它需要设置在ceph.conf
文件中。
osd_journal_size = 10240
- osd_journal
OSD 日志的路径。这可以是文件或块设备的路径(例如,SSD 的分区)。如果是文件,您必须创建包含它的目录。我们建议在
osd_data
驱动器是 HDD 时使用单独的快速设备。- type:
str
- default:
/var/lib/ceph/osd/$cluster-$id/journal
- osd_journal_size
日志的大小(以兆字节为单位)。
- type:
size
- default:
5Ki
请参阅日志配置参考以获取更多详细信息。
监控 OSD 交互
Ceph OSD 守护进程检查彼此的心跳,并定期向监控器报告。Ceph 在许多情况下可以使用默认值。但是,如果您的网络有延迟问题,您可能需要采用更长的间隔。有关心跳的详细讨论,请参阅配置监控器/OSD交互。
数据放置
请参阅池和 PG 配置参考 for details.
扫描
Ceph 通过“扫描”放置组来确保数据完整性。Ceph 扫描类似于fsck
对象存储层。Ceph 为每个放置组生成所有对象目录,并将每个主对象与其副本进行比较,确保没有丢失或错配的对象。轻扫描检查对象大小和属性,通常每天进行。深度扫描读取数据并使用校验和来确保数据完整性,通常每周进行。轻扫描和深度扫描的频率由集群的配置决定,该配置完全由您控制,并受本节下面解释的设置的约束。
虽然扫描对于维护数据完整性很重要,但它可能会降低 Ceph 集群的性能。您可以调整以下设置来增加或减少扫描操作的频率和深度。
- osd_max_scrubs
Ceph OSD 守护进程的最大并发扫描操作数。
- type:
int
- default:
3
- osd_scrub_begin_hour
此处限制扫描到此天的某个小时或之后。使用
osd_scrub_begin_hour = 0
和osd_scrub_end_hour = 0
允许扫描整天。与osd_scrub_end_hour
它们一起定义了一个时间窗口,只有在其中才会启动定期扫描。- type:
int
- default:
0
- 允许范围:
[0, 23]
- 参见:
- osd_scrub_end_hour
此处限制扫描到此之前的某个小时。使用
osd_scrub_begin_hour = 0
和osd_scrub_end_hour = 0
允许扫描整天。与osd_scrub_begin_hour
,它们定义了一个时间窗口,只有在其中可以自动启动定期扫描。- type:
int
- default:
0
- 允许范围:
[0, 23]
- 参见:
- osd_scrub_begin_week_day
此处限制扫描到此周或之后的一天。0 = 星期日,1 = 星期一,等等。使用
osd_scrub_begin_week_day = 0
和osd_scrub_end_week_day = 0
允许整周扫描。与osd_scrub_end_week_day
,它们定义了一个时间窗口,在其中有定期扫描可以自动启动。- type:
int
- default:
0
- 允许范围:
[0, 6]
- 参见:
- osd_scrub_end_week_day
此处限制扫描到此之前的某一天。0 = 星期日,1 = 星期一,等等。使用
osd_scrub_begin_week_day = 0
和osd_scrub_end_week_day = 0
允许整周扫描。与osd_scrub_begin_week_day
,它们定义了一个时间窗口,在其中有定期扫描可以自动启动。- type:
int
- default:
0
- 允许范围:
[0, 6]
- 参见:
- osd_scrub_during_recovery
允许在恢复期间扫描。将此设置为
false
将禁用在活动恢复期间安排新的扫描(和深度--扫描)。正在运行的扫描将继续。这可能有助于减少繁忙集群的负载。- type:
bool
- default:
false
- osd_scrub_load_threshold
归一化的最大负载。当系统负载(由
getloadavg() / number of online CPUs
定义)高于此数字时,Ceph 不会启动定期(常规)扫描。默认值设置得足够高,以允许在大多数负载条件下进行定期扫描。- type:
float
- default:
10.0
- osd_scrub_min_interval
特定 PG 扫描之间的所需间隔(以秒为单位)。
- type:
float
- default:
1 day
- 参见:
- osd_scrub_max_interval
每个PG扫描的最大间隔(以秒为单位)。
- type:
float
- default:
7 days
- 参见:
- osd_scrub_chunk_min
单次操作期间要扫描的最小对象存储块数。Ceph 在扫描期间阻止对单个块的写入。
- type:
int
- default:
5
- 参见:
- osd_shallow_scrub_chunk_min
单次操作期间要扫描的最小对象存储块数。不适用于深度扫描。Ceph 在扫描期间阻止对单个块的写入。
- type:
int
- default:
50
- 参见:
- osd_scrub_chunk_max
单次内部扫描操作期间要深度扫描的最大对象数。较大的值将提高扫描性能,但可能会影响客户端操作延迟。
- type:
int
- default:
15
- 参见:
- osd_shallow_scrub_chunk_max
单次操作期间要扫描的最大对象存储块数。不适用于深度扫描。
- type:
int
- default:
100
- 参见:
- osd_scrub_sleep
在扫描下一组对象(下一个块)之前要休眠的时间(以秒为单位)。增加此值将减慢扫描的整体速率,减少扫描对客户端操作的影响。
- type:
float
- default:
0.0
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_deep_scrub_interval
“深度”扫描的间隔(完全读取所有数据)。
- type:
float
- default:
7 days
- osd_scrub_interval_randomize_ratio
在安排下一个 PG 扫描作业时,向
osd_scrub_min_interval
添加随机延迟。延迟是一个小于osd_scrub_min_interval
*osd_scrub_interval_randomized_ratio
的随机值。默认设置将扫描分散到[1, 1.5]
*osd_scrub_min_interval
.- type:
float
- default:
0.5
- 参见:
- osd_deep_scrub_stride
深度扫描时的读取大小。
- type:
size
- default:
512Ki
- osd_scrub_auto_repair
将此设置为
true
将在扫描或深度扫描发现错误时启用自动 PG 修复。但是,如果发现超过osd_scrub_auto_repair_num_errors
错误,则不会执行修复。- type:
bool
- default:
false
- osd_scrub_auto_repair_num_errors
如果发现错误超过此数量,则不会发生自动修复。
- type:
uint
- default:
5
- 参见:
操作
- osd_op_num_shards
为给定 OSD 分配的碎片数。每个碎片都有自己的处理队列。OSD 上的 PG 在碎片中均匀分布。此设置覆盖 _ssd 和 _hdd 如果非零。
- type:
int
- default:
0
- osd_op_num_shards_hdd
为给定 OSD 分配的碎片数(用于旋转媒体)。
- type:
int
- default:
1
- 参见:
- osd_op_num_shards_ssd
为给定 OSD 分配的碎片数(用于固态媒体)。
- type:
int
- default:
8
- 参见:
- osd_op_num_threads_per_shard
为给定 OSD 生成的每个 OSD 碎片的工作线程数。每个工作线程在运行时处理碎片队列中的项目。此设置覆盖 _ssd 和 _hdd 如果非零。
- type:
int
- default:
0
- osd_op_num_threads_per_shard_hdd
为给定 OSD 生成的每个 OSD 碎片的工作线程数(用于旋转媒体)。
- type:
int
- default:
5
- 参见:
- osd_op_num_threads_per_shard_ssd
为给定 OSD 生成的每个 OSD 碎片的工作线程数(用于固态媒体)。
- type:
int
- default:
2
- 参见:
- osd_op_queue
此处设置用于在 OSD 内优先处理操作的队列类型。两个队列都 feature 一个严格的子队列,该子队列在正常队列之前出队。正常队列在不同的实现之间有所不同。加权优先队列 (
wpq
) 根据其优先级出队操作,以防止任何队列遭受饥饿。WPQ 应有助于在几个 OSD 比其他 OSD 更繁忙的情况下。需要重启。mclock_scheduler
) prioritizes operations based on which class they belong to (recovery, scrub, snaptrim, client op, osd subop). See 基于 mClock 的 QoS. Requires a restart.- type:
str
- default:
mclock_scheduler
- valid choices:
wpq
mclock_scheduler
debug_random
- 参见:
- osd_op_queue_cut_off
此处选择优先操作将发送到严格队列而不是正常队列。The
low
设置将所有复制操作和更高级别的操作发送到严格队列,而high
选项仅将复制确认操作和更高级别的操作发送到严格队列。将此设置为high
应该有助于集群中几个非常繁忙的 OSD,特别是当它与wpq
。Cephadm 还支持使用osd_op_queue
设置结合使用时。非常繁忙地处理复制流量而没有这些设置的 OSD 可能会导致主要客户端流量遭受饥饿。- type:
str
- default:
high
- valid choices:
low
high
debug_random
- 参见:
- osd_client_op_priority
为客户端操作设置的优先级。此值相对于下面的
osd_recovery_op_priority
的值是相对的。默认值强烈优先考虑客户端操作而不是恢复。- type:
uint
- default:
63
- osd_recovery_op_priority
恢复操作与客户端操作的优先级,如果池的
recovery_op_priority
未指定。默认值优先考虑客户端操作(见上文)而不是恢复操作。您可以通过降低此值来增加客户端操作的优先级,或者通过增加它来优先考虑恢复。- type:
uint
- default:
3
- osd_scrub_priority
当池未指定
scrub_priority
的值时,计划的扫描的默认工作队列优先级。当扫描阻塞客户端操作时,可以将此值提高到osd_client_op_priority
的值。- type:
uint
- default:
5
- osd_requested_scrub_priority
已弃用。使用
osd_scrub_priority
instead.- type:
uint
- default:
5
- osd_snap_trim_priority
为快照修剪工作队列设置的优先级。
- type:
uint
- default:
5
- osd_snap_trim_sleep
下一次快照修剪操作之前的休眠时间(以秒为单位)。增加此值将减慢快照修剪。此选项覆盖后端特定变体。
- type:
float
- default:
0.0
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_snap_trim_sleep_hdd
HDD 的下一次快照修剪操作之前的休眠时间(以秒为单位)。
- type:
float
- default:
5.0
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_snap_trim_sleep_ssd
SSD OSD 的下一次快照修剪操作之前的休眠时间(以秒为单位)(包括 NVMe)。
- type:
float
- default:
0.0
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_snap_trim_sleep_hybrid
当 OSD 数据位于 HDD 上且 OSD 日志或 WAL+DB 位于 SSD 上时,下一次快照修剪操作之前的休眠时间(以秒为单位)。
- type:
float
- default:
2.0
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_op_thread_timeout
Ceph OSD 守护进程操作线程超时(以秒为单位)。
- type:
int
- default:
15
- osd_op_complaint_time
操作在经过指定数量的秒数后变得值得投诉。
- type:
float
- default:
30.0
- osd_op_history_size
要跟踪的最大完成操作数。
- type:
uint
- default:
20
- osd_op_history_duration
要跟踪的最老完成操作。
- type:
uint
- default:
600
- osd_op_log_threshold
同时显示多少条操作日志。
- type:
int
- default:
5
- osd_op_thread_suicide_timeout
- type:
int
- default:
150
Note
请参阅https://old.ceph.com/planet/dealing-with-some-osd-timeouts/更多关于osd_op_thread_suicide_timeout
的信息。注意,这是一个链接到 2017 年的博客文章的重新编写,并且其结论将引导您返回此页面“以获取更多信息”。
基于 mClock 的 QoS
Ceph 使用 mClock 现在更加精细,并且可以通过按照mClock 配置参考.
核心概念中描述的步骤来使用。
Ceph 的 QoS 支持是使用基于的 dmClock 算法的队列调度程序实现的。此算法按权重比例分配 Ceph 集群的 I/O 资源,并执行最小预留和最大限制的约束,以便服务可以公平地竞争资源。目前,a7ecb8: 操作队列将涉及 I/O 资源的 Ceph 服务分为以下桶:mclock_scheduler operation queue divides Ceph services involving I/O resources into following buckets:
client op: 客户端发出的 iops
osd subop: 主要 OSD 发出的 iops
快照修剪: 与快照修剪相关的请求
pg recovery: 与恢复相关的请求
pg scrub: 与扫描相关的请求
And the resources are partitioned using following three sets of tags. In other
reservation: 为服务分配的最小 IOPS。
limitation: 为服务分配的最大 IOPS。
weight: 如果有额外的容量或系统超订阅,则容量按比例分配。
在 Ceph 中,操作按“成本”进行分级。为服务提供资源的这些“成本”被消耗。因此,例如,服务拥有的保留越多,只要它需要,它拥有的资源就越多。假设有 2 个服务:恢复和客户端操作:
恢复: (r:1, l:5, w:1)
客户端操作: (r:2, l:0, w:9)
上述设置确保恢复不会获得超过每秒 5 个请求的服务,即使它需要(见 CURRENT IMPLEMENTATION NOTE 下面),并且没有其他服务与之竞争。但是,如果客户端开始发出大量 I/O 请求,它们也不会耗尽所有 I/O 资源。只要存在任何此类请求,就始终为恢复工作分配 1 个请求每秒。因此,即使在负载高的集群中,恢复工作也不会遭受饥饿。同时,客户端操作可以享受更大的 I/O 资源份额,因为它的权重是“9”,而它的竞争对手“1”。在客户端操作的情况下,它不受限制设置的限制,如果有恢复正在进行,它可以利用所有资源。
CURRENT IMPLEMENTATION NOTE: 当前实现强制执行限制值。因此,如果服务跨越了强制限制,则操作将保持在操作队列中,直到限制恢复。
mClock 的微妙之处
预留和限制值的单位为每秒请求。然而,权重在技术上没有单位,权重是相互关联的。因此,如果一个请求类别的权重为 1,另一个请求类别的权重为 9,那么后者类别的请求应该以 9:1 的比例执行。但是,只有当预留满足时才会发生这种情况,并且这些值包括预留阶段执行的值。即使权重没有单位,在如何选择它们的值时也必须小心,因为算法如何将权重标签分配给请求。如果权重是
Even though the weights do not have units, one must be careful in choosing their values due how the algorithm assigns weight tags to requests. If the weight is W,那么对于给定的请求类别,下一个进入的请求将具有权重标签1/W加上之前的权重标签或当前时间,以较大的为准。这意味着如果W足够大,因此1/W足够小,则计算出的标签可能永远不会被分配,因为它将获得当前时间的值。最终教训是权重的值不应该太大。它们应该在每秒预期服务的请求数以下。
警告
有一些因素可以减少 mClock 操作队列在 Ceph 中的影响。首先,对 OSD 的请求按其放置组标识符进行分片。每个分片都有自己的 mClock 队列,这些队列既不交互也不共享信息。分片数可以通过配置选项osd_op_num_shards
, osd_op_num_shards_hdd
, and
osd_op_num_shards_ssd
控制数。分片数较少将增加 mClock 队列的影响,但可能会有其他有害影响。如果分片工作线程不足,则这是特别的情况。分片工作线程数可以通过配置选项osd_op_num_threads_per_shard
,
osd_op_num_threads_per_shard_hdd
和osd_op_num_threads_per_shard_ssd
.
控制。其次,请求从操作队列转移到操作序列器,在其中它们经过执行阶段。操作队列是 mClock 的位置,mClock 决定将下一个操作转移到操作序列器。允许在操作序列器中的操作数量是一个复杂的问题。通常我们希望保持足够多的操作在序列器中,这样当它等待磁盘和网络访问完成时,它总是在某些操作上有所作为。另一方面,一旦操作转移到操作序列器,mClock 就不再控制它。因此,为了最大限度地提高 mClock 的影响,我们希望尽可能少地保留操作在操作序列器中。所以我们有一个固有的紧张关系。
影响操作序列器中操作数量的配置选项是bluestore_throttle_bytes
,
bluestore_throttle_deferred_bytes
,
bluestore_throttle_cost_per_io
,
bluestore_throttle_cost_per_io_hdd
, and
bluestore_throttle_cost_per_io_ssd
.
第三,影响 mClock 算法影响的因素是我们使用分布式系统,其中请求被发送到多个 OSD,并且每个 OSD 都有(可以)多个分片。然而,我们目前使用的是 mClock 算法,这不是分布式的(注意:dmClock 是 mClock 的分布式版本)。
各种组织和个人目前正在试验此代码库中的 mClock 以及他们对代码库的修改。我们希望您能在ceph-devel
邮件列表上分享您的 mClock 和 dmClock 实验经验。
- osd_async_recovery_min_cost
当前日志条目差异和历史上缺失对象的混合度量,在上述值之上,我们会在适当的时候切换到使用异步恢复
- type:
uint
- default:
100
- osd_push_per_object_cost
服务推送操作的开销
- type:
size
- default:
1000B
- osd_mclock_scheduler_client_res
为每个客户端保留的 IO 比例(默认)。
- type:
float
- default:
0.0
- 允许范围:
[0, 1.0]
- 参见:
- osd_mclock_scheduler_client_wgt
为每个客户端保留的 IO 分享(默认)。
- type:
uint
- default:
1
- 参见:
- osd_mclock_scheduler_client_lim
为每个客户端保留的 IO 限制(默认)。
- type:
float
- default:
0.0
- 允许范围:
[0, 1.0]
- 参见:
- osd_mclock_scheduler_background_recovery_res
为后台恢复保留的 IO 比例(默认)。
- type:
float
- default:
0.0
- 允许范围:
[0, 1.0]
- 参见:
- osd_mclock_scheduler_background_recovery_wgt
为后台恢复保留的 IO 分享。
- type:
uint
- default:
1
- 参见:
- osd_mclock_scheduler_background_recovery_lim
为后台恢复保留的 IO 限制。
- type:
float
- default:
0.0
- 允许范围:
[0, 1.0]
- 参见:
- osd_mclock_scheduler_background_best_effort_res
为后台最佳努力保留的 IO 比例(默认)。
- type:
float
- default:
0.0
- 允许范围:
[0, 1.0]
- 参见:
- osd_mclock_scheduler_background_best_effort_wgt
为后台最佳努力保留的 IO 分享。
- type:
uint
- default:
1
- 参见:
- osd_mclock_scheduler_background_best_effort_lim
为后台最佳努力保留的 IO 限制。
- type:
float
- default:
0.0
- 允许范围:
[0, 1.0]
- 参见:
填充
当您向集群添加或删除 Ceph OSD 守护进程时,CRUSH 将通过将放置组移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从 Ceph OSD 守护进程移动到或从
Note
Some of these settings are automatically reset if the mClock scheduler is active, see mClock backfill.
- osd_max_backfills
The maximum number of backfills allowed to or from a single OSD. Note that this is applied separately for read and write operations. This setting is automatically reset when the mClock scheduler is used.
- type:
uint
- default:
1
- 参见:
- osd_backfill_scan_min
The minimum number of objects per backfill scan.
- type:
int
- default:
64
- osd_backfill_scan_max
The maximum number of objects per backfill scan.p
- type:
int
- default:
512
- osd_backfill_retry_interval
The number of seconds to wait before retrying backfill requests.
- type:
float
- default:
30.0
OSD 映射
OSD maps reflect the OSD daemons operating in the cluster. Over time, the number of map epochs increases. Ceph provides some settings to ensure that Ceph performs well as the OSD map grows larger.
- osd_map_dedup
Enable removing duplicates in the OSD map.
- type:
bool
- default:
true
- osd_map_cache_size
The number of OSD maps to keep cached.
- type:
int
- default:
50
- osd_map_message_max
The maximum map entries allowed per MOSDMap message.
- type:
int
- default:
40
恢复
When the cluster starts or when a Ceph OSD Daemon crashes and restarts, the OSD begins peering with other Ceph OSD Daemons before writes can occur. See 监控 OSDs 和 PGs for details.
If a Ceph OSD Daemon crashes and comes back online, usually it will be out of sync with other Ceph OSD Daemons containing more recent versions of objects in the placement groups. When this happens, the Ceph OSD Daemon goes into recovery mode and seeks to get the latest copy of the data and bring its map back up to date. Depending upon how long the Ceph OSD Daemon was down, the OSD’s objects and placement groups may be significantly out of date. Also, if a failure domain went down (e.g., a rack), more than one Ceph OSD Daemon may come back online at the same time. This can make the recovery process time consuming and resource intensive.
To maintain operational performance, Ceph performs recovery with limitations on the number recovery requests, threads and object chunk sizes which allows Ceph perform well in a degraded state.
Note
Some of these settings are automatically reset if the mClock scheduler is active, see mClock backfill.
- osd_recovery_delay_start
After peering completes, Ceph will delay for the specified number of seconds before starting to recover RADOS objects.
- type:
float
- default:
0.0
- osd_recovery_max_active
The number of active recovery requests per OSD at one time. More requests will accelerate recovery, but the requests places an increased load on the cluster.
- type:
uint
- default:
0
- 参见:
osd_recovery_max_active_hdd
,osd_recovery_max_active_ssd
,osd_mclock_override_recovery_settings
Note
This value is only used if it is non-zero. Normally it is
0
, which means that thehdd
或ssd
values (below) are used, depending on the type of the primary device backing the OSD. This setting is automatically reset when the mClock scheduler is used.
- osd_recovery_max_active_hdd
The number of active recovery requests per OSD at one time, if the primary device is rotational.
- type:
uint
- default:
3
- 参见:
osd_recovery_max_active
,osd_recovery_max_active_ssd
,osd_mclock_override_recovery_settings
Note
This setting is automatically reset when the mClock scheduler is used.
- osd_recovery_max_active_ssd
The number of active recovery requests per OSD at one time, if the primary device is non-rotational (i.e., an SSD).
- type:
uint
- default:
10
- 参见:
osd_recovery_max_active
,osd_recovery_max_active_hdd
,osd_mclock_override_recovery_settings
Note
This setting is automatically reset when the mClock scheduler is used.
- osd_recovery_max_chunk
the maximum total size of data chunks a recovery op can carry.
- type:
size
- default:
8Mi
- osd_recovery_max_single_start
The maximum number of recovery operations per OSD that will be newly started when an OSD is recovering.
- type:
uint
- default:
1
- osd_recover_clone_overlap
Preserves clone overlap during recovery. Should always be set to
true
.- type:
bool
- default:
true
- osd_recovery_sleep
Time in seconds to sleep before the next recovery or backfill op. Increasing this value will slow down recovery operation while client operations will be less impacted.
- type:
float
- default:
0.0
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_recovery_sleep_hdd
Time in seconds to sleep before next recovery or backfill op for HDDs.
- type:
float
- default:
0.1
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_recovery_sleep_ssd
Time in seconds to sleep before the next recovery or backfill op for SSDs.
- type:
float
- default:
0.0
- 参见:
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_recovery_sleep_hybrid
Time in seconds to sleep before the next recovery or backfill op when OSD data is on HDD and OSD journal / WAL+DB is on SSD.
- type:
float
- default:
0.025
- 参见:
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_recovery_sleep_degraded
Time in seconds to sleep before the next recovery or backfill op when PGs are degraded. Increasing this value will slow down recovery ops while client ops will be less impacted.
- type:
float
- default:
0.0
- osd_recovery_sleep_degraded_hdd
Time in seconds to sleep before next recovery or backfill op for HDDs when PGs are degraded.
- type:
float
- default:
0.1
- osd_recovery_sleep_degraded_ssd
Time in seconds to sleep before the next recovery or backfill op for SSDs when PGs are degraded.
- type:
float
- default:
0.0
- 参见:
- osd_recovery_sleep_degraded_hybrid
Time in seconds to sleep before the next recovery or backfill op when PGs are degraded and OSD data is on HDD and OSD journal / WAL+DB is on SSD.
- type:
float
- default:
0.025
- 参见:
- osd_recovery_priority
The default priority set for recovery work queue. Not related to a pool’s
recovery_priority
.- type:
uint
- default:
5
分层
- osd_agent_max_ops
The maximum number of simultaneous flushing ops per tiering agent in the high speed mode.
- type:
int
- default:
4
- osd_agent_max_low_ops
The maximum number of simultaneous flushing ops per tiering agent in the low speed mode.
- type:
int
- default:
2
请参阅cache target dirty high ratio for when the tiering agent flushes dirty objects within the high speed mode.
Miscellaneous
- osd_default_notify_timeout
The OSD default notification timeout (in seconds).
- type:
uint
- default:
30
- osd_check_for_log_corruption
Check log files for corruption. Can be computationally expensive.
- type:
bool
- default:
false
- osd_delete_sleep
Time in seconds to sleep before the next removal transaction. This throttles the PG deletion process.
- type:
float
- default:
0.0
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_delete_sleep_hdd
Time in seconds to sleep before next removal transaction for HDDs.
- type:
float
- default:
5.0
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_delete_sleep_ssd
Time in seconds to sleep before next removal transaction for SSDs
- type:
float
- default:
1.0
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_delete_sleep_hybrid
Time in seconds to sleep before next removal transaction when OSD data is on HDD and OSD journal or WAL+DB is on SSD
- type:
float
- default:
1.0
Note
当使用 mClock 调度程序时,此设置将被忽略。
- osd_command_max_records
Limits the number of lost objects to return.
- type:
int
- default:
256
- osd_fast_fail_on_connection_refused
If this option is enabled, crashed OSDs are marked down immediately by connected peers and MONs (assuming that the crashed OSD host survives). Disable it to restore old behavior, at the expense of possible long I/O stalls when OSDs crash in the middle of I/O operations.
- type:
bool
- default:
true
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.