---
title: EC Turbo特性使能
description: "1. 使能EC Turbo特性。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2400/sds/kunpengecturbo_20_0013.html
sourcePath: /source/zh/kunpengboostkithistory/2400/sds/kunpengecturbo_20_0013.html
indexId: cc00d227d8f324b7a99943787ffaac764e00d18e55f07e9516406953e86aae1a70
---
# EC Turbo特性使能

1. 使能EC Turbo特性。
  创建EC存储池请参考《Ceph对象存储 部署指南（CentOS 7.6&openEuler 20.03）》中的“创建存储池(https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephobject_04_0011.html)”相关内容。

  EC数据池的stripe_unit等于256KB。在k=4，m=2的条件下，条带大小（stripe_width）是1MB。EC Turbo对于1MB大小以内的IO有优化效果。 EC Turbo使用了isa-l的纠删码库，创建“EC profile”时必须启用isa-l插件，即增加“plugin=isa”参数。同时修改“stripe_unit”为256KB。创建EC profile的命令不能使用参考文档中的命令，正确的创建EC profile的命令是： 1 ceph osd erasure-code-profile set myprofile k=4 m=2 crush-failure-domain=osd crush-device-class=hdd plugin=isa stripe_unit=256K 当集群的节点数量大于等于6（k+m）时，crush-failure-domain可以配置成host。

  修改ceph.conf，在[global]中增加以下项目。这些参数可以在创建池的前后修改。

  1 2 3 4 5 osd_ec_partial_read = true osd_ec_partial_write = true osd_ec_partial_update = true osd_ec_zero_opt = true bluestore_kpsallocator_enable = true

  partial read与 ec 的fast read 冲突。开启osd_ec_partial_read必须关闭osd_pool_default_ec_fast_read（该参数默认关闭），否则partial read无法生效。 上文中的五个参数的默认值为true。用户如果不在ceph.conf中添加这几个参数，系统将生效默认值。如需关闭EC Turbo特性，用户必须在ceph.conf中显示的将参数都改为false。 检查参数当前生效情况，可执行“ceph daemon osd.<OSD编号> config show | grep -E 'osd_ec_partial_read|osd_ec_partial_write|osd_ec_partial_update|osd_ec_zero_opt|bluestore_kpsallocator_enable'”命令。

2. 配置EC Turbo相关日志参数“kpsec_log_fullpath”，“kpsec_log_level”，“kpsec_log_memlogsize”。
  这些参数可以在ceph.conf的[global]区域中定义。如果用户没有定义这些参数，系统将使用默认值。

  下面列出这些参数的默认值： 1 2 3 4 5 6 [global] ...... kpsec_log_fullpath = /var/log/ceph/ kpsec_log_level = CRITICAL/DEBUG kpsec_log_memlogsize = 100 ...... EC Turbo的主要业务封装在libkps_ec动态库。该动态库不使用Ceph的日志系统，所以需要新增日志。 一般情况下，Ceph的日志记录在“/var/log/ceph”目录里。如果定义其他目录，用户需要确保Ceph对应用户可以对该目录读写。 日志等级分为文件日志等级和内存日志等级，两个等级需要分别定义。一般情况下内存日志记录的内容比文件日志记录的更详细。日志等级必须在[CRITICAL=0，ERROR=1，WARNING=2，INFORMATION=3，DEBUG=4]中选择。mem_log_size的范围是100-1000。 用户在OSD进程运行时修改kpsec日志参数，需要重启OSD进程使之生效。 如果不方便重启OSD进程，可以使用“ceph tell osd.<OSD编号> injectargs --<参数名>=<参数值>”命令在线修改参数，之后执行“ceph tell osd.<OSD编号> reload_kps_conf”重载kpsec日志参数。

3. 将ceph.conf推送到各个节点。
  1 ceph-deploy --overwrite-conf admin {node1} {node2}

  {nodeX}是Ceph的节点名，一条命令可以将ceph.conf推送到集群下的多个节点。推送完成后重启集群。

4. 验证EC Turbo生效。

  a. 调整ceph-osd的日志等级到20/20。例如修改OSD.3的日志等级。
    1 ceph daemon osd.3 config set debug_osd 20/20

  b. 执行EC池的数据读写业务，查看编号3的ceph-osd日志。日志中如有“partial_write=1 partial_update=1”的字样表示EC Turbo已生效。
  c. 将该ceph-osd的日志等级改回默认值。
    1 ceph daemon osd.3 config set debug_osd 0/1
