Ceph配置参数(二)


6、KEYVALUESTORE CONFIG REFERENCE
KeyValueStore is an alternative OSD backend compared to FileStore. Currently, it uses LevelDB as backend. KeyValueStore doesn’t need journal device. Each operation will flush into the backend directly.
  • KeyValueStore所用的后端(leveldb):keyvaluestore backend
(1)队列
  • 队列上可以存储的最大操作数:keyvaluestore queue max ops
  • 队列上可以存储的最大btye数:keyvaluestore queue max bytes
(2)线程
  • 并行线程数:keyvaluestore op threads
  • 文件操作线程超时秒数:keyvaluestore op thread timeout
  • 提交一个操作多少秒都可以取消:keyvaluestore op thread suicide timeout
(3)MISC
  • 条带大小:keyvaluestore default strip size
          注:每个对象会分割成多个键值对存储在后端
  • header cache大小:keyvaluestore header cache size
          注:存的东西和文件系统中的inode差不多

7、OSD CONFIG REFERENCE
(1)通用设置
  • OSD的UUID:osd uuid
           注:一个uuid作用于一个OSD Daemon,一个fsid作用于整个cluster,这两个不一样
  • OSD数据存储的路径:osd data
           注:实际底层设备挂载的地方e.g. /var/lib/ceph/osd/$cluster-$id
  • 一次写入最大的MB数(默认90):osd max write size
  • 在内存中允许存储的最大客户端数据信息(默认500MB):osd client message size cap
  •  RADOS class插件地址($libdir/rados-classes):osd class dir
(2)文件系统设置
  • 生成文件系统的类型:osd mkfs options {fs-type}
           注:对XFS默认-f -i 2048,其他类型无默认,e.g. osd mkfs options xfs = -f -d agcount=24
  • 挂载选项:osd mount options {fs-type}
            注:对XFS默认rw,noatime,inode64,其他类型rw, noatime,e.g. osd mount options xfs = rw, noatime, inode64, nobarrier, logbufs=8 其中noatime表示取消读文件时记录最后一次读取的时间(access time),节省时间,inode64表示inode数有64位(近乎无限制)现在的很多文件系统会在数据提交时强制底层设备刷新cache,避免数据丢失,称为write barriers。但是,其实我们数据库服务器底层存储设备要么采用RAID卡,RAID卡本身的电池可以掉电保护;要么采用Flash卡,它也有自我保 护机制,保证数据不会丢失。所以我们可以安全的使用nobarrier挂载文件系统。
(3)日志设置
  • 日志路径:osd journal
         注:建议使用硬盘或SSD单独存放,默认/var/lib/ceph/osd/$cluster-$id/journal
  • 日志大小(默认5120MB,即5G):osd journal size
         注:如果是0表示整个块设备都用来存日志,建议初始设为1G,至少为2 * (expected throughput * filestore max sync interval),其中throughput 为磁盘转速和网络速率的最小值,filestore max sync interval参数在上文filestore参数设置中有解释。
(4)SCRUBBING
          scrubbing相当于一个周期性检查工作,保证数据完整性,对象没有丢失,轻量级的scrubbing每天进行,它检查对象的大小和属性,深度scrubbing每周进行,它读取数据并进行校验和来保证数据的完整性。
  • 一个Ceph OSD Daemon内能够同时进行的scrubbing操作(默认1):osd max scrubs
  • scrub线程超时(默认60秒):osd scrub thread timeout
  • 终止一个scrub最终线程(finalize thread)的超时(默认600秒):osd scrub finalize thread timeout
  • 最大负载(超过这个负载scrub不进行):osd scrub load threshold
  • 最小scrub间隔(负载低时进行,默认每天):osd scrub min interval
  • 最大scrub间隔(不管负载如何,默认每周):osd scrub max interval
  • 深层scrub间隔(默认每周):osd deep scrub interval
  • 深层scrub时的读大小(默认512K):osd deep scrub stride
(5)操作
  • Ceph OSD Daemon 并行线程数(0表示关闭多线程,默认是2):osd op threads
  • 客户端操作的优先级(默认63):osd client op priority
  • 修复操作的优先级(默认10):osd recovery op priority
  • 线程超时(默认30秒):osd op thread timeout
  • 一个操作变成 complaint worthy (不造啥意思)的超时(默认30s):osd op complaint time
  • 后端磁盘线程数(如scrub操作和snap trimming操作。默认为1):osd disk threads
  • 磁盘线程优先级(默认不设置)类:osd disk thread ioprio class
         注:idle-磁盘线程优先级比任何一个OSD线程都低,这有助于在一个繁忙的OSD上不让他scrub;rt-磁盘线程优先级比任何一个OSD线程都高,如果scrub比较需要。这个参数要将内核设置为CFQ调度才有用。
  • 磁盘线程优先级(默认是-1):osd disk thread ioprio priority
         注:这个参数要个上面那个参数一起使用,有0-7(最低)个级别,-1表示不设置,单独设置每个OSD scrub的优先级,拥塞或存在IO竞争是可以用这个,这个参数要将内核设置为CFQ调度才有用。
  • 可以跟踪到的已完成的操作数量(默认20):osd op history size
  • 最老可以跟踪到的已完成的操作(默认600):osd op history duration
  • 一次显示多少操作的log(默认5):osd op log threshold
(6)BACKFILLING
       当新加入OSD或删除OSD时,部分PG会迁移已达到新的平衡,这一行为会导致性能下降,为避免性能下降,可以设置迁移为backfill操作,并设置它的优先级低于正常读写。(backfill我猜是先标志一下,等空闲的时候在实际操作)
  • 一个OSD运行的最大的backfill操作数(默认10):osd max backfills
  • 每一个backfill扫描的最小对象数(默认64):osd backfill scan min
  • 每一个backfill扫描的最大对象数(默认512):osd backfill scan max
  • 如果OSD Daemon的使用率高于这个值测不响应backfills请求(默认0.85):osd backfill full ratio
  • backfill请求重试间隔(默认10秒):osd backfill retry interval
(7)OSD MAP 
        osd map记录着OSD所有信息,包括节点的改变,加入和退出等等信息,随着集群的运行,这个map会越变越大,一下一些配置保证了在map变大的情况下集群仍然能够运行良好。
  • 开启删除Map中的重复内容(默认是true):osd map dedup
  • map的cache大小(默认500MB):osd map cache size
  • OSD进程运行时map在内存中的cache大小(默认50MB):osd map cache bl size
  • OSD进程运行时map在内存中的cache的增量大小:osd map cache bl inc size
  • 每个MOSDMap消息的最大的映射项:osd map message max
(8)RECOVERY
  • 延迟多少秒开始修复对象(默认0):osd recovery delay start
  • 每个OSD一次可以接受的修复请求(默认15):osd recovery max active
        注:增大会加速修复但同时也会增加集群负载
  • 修复最大的chunk大小:osd recovery max chunk
  • 修复过程的线程数量(默认1):osd recovery threads
  • 修复线程超时(默认30s):osd recovery thread timeout
  • 在恢复过程中保留克隆重叠(应始终设置为true):osd recover clone overlap
(9)杂项
  • snap trim线程的超时设定(默认1小时):osd snap trim thread timeout
  • 后台log线程的超时设定(默认1小时):osd backlog thread timeout
  • 默认通知超时(默认30s):osd default notify timeout
  • 检查日志文件是否损坏(代价大,默认false):osd check for log corruption
  • 命令线程超时设定(默认10分钟):osd command thread timeout
  • 返回最大的丢失对象数(默认256):osd command max records
  • 将tmap用作omap(默认false):osd auto upgrade tmap
  • 只将tmap用作调试(默认false):osd tmapput sets users tmap
  • 不删减log空间,多用磁盘空间(默认false):osd preserve trimmed log
<think>好的,我需要为用户介绍如何配置Ceph的iSCSI服务。首先,我应该回忆一下Ceph的基本概念以及iSCSI在其中的作用。Ceph是一个分布式存储系统,而iSCSI是一种基于IP的存储网络标准,允许客户端通过TCP/IP网络访问存储设备。将Ceph与iSCSI结合使用,可以让客户端通过iSCSI协议访问Ceph存储,这对于需要块存储服务的场景非常有用。 接下来,我需要确定配置Ceph iSCSI服务的主要步骤。通常,这涉及到以下几个关键部分:安装必要的软件包、配置iSCSI网关、创建存储池和镜像、配置iSCSI目标,最后在客户端连接iSCSI目标。 首先,安装软件包。Ceph的iSCSI功能通常由ceph-iscsi工具提供,可能需要安装tcmu-runner、rbd-target-api等软件包。不同的Linux发行版可能有不同的包名,需要根据用户的系统来调整命令,比如在Ubuntu上使用apt,在CentOS上使用yum或者dnf。 然后,配置iSCSI网关。iSCSI网关作为客户端和Ceph存储之间的桥梁,需要配置在至少两个节点上以实现高可用。可能需要编辑配置文件,如iscsi-gateway.cfg,设置集群名称、网关名称、API用户等参数。同时,需要确保iSCSI网关节点能够访问Ceph集群,并且具有适当的权限。 接下来,创建存储池和RBD镜像。用户需要在Ceph中创建一个存储池,然后在该池中创建一个块设备镜像(RBD),作为iSCSI的后端存储。这可以通过rados命令创建存储池,使用rbd命令创建镜像。 然后,配置iSCSI目标。使用gwcli工具来创建iSCSI目标,将RBD镜像映射到目标上,并设置访问控制,如CHAP认证。需要确保iSCSI目标正确配置,允许客户端访问。 最后,在客户端连接iSCSI目标。这涉及到安装iSCSI发起程序,发现目标,登录并挂载存储设备。不同的客户端操作系统(如Linux、Windows)步骤有所不同,需要分别说明。 在思考过程中,我需要验证每个步骤的正确性,确保命令和配置文件的准确性。例如,在配置iSCSI网关时,需要确认API端口和密钥的正确性,避免权限问题。同时,高可用性配置可能需要使用Keepalived或类似的工具来实现VIP,确保网关的冗余。 还需要注意潜在的问题,比如网络连通性、防火墙设置、SELinux或AppArmor的安全策略是否阻碍了iSCSI服务。在客户端连接时,可能会遇到认证失败或目标不可见的情况,需要检查CHAP配置和网络访问控制列表。 另外,考虑到用户可能需要详细的命令示例,我应该提供具体的命令行操作,比如使用gwcli的步骤,创建磁盘、目标、主机的命令,以及如何设置LUN映射。同时,提醒用户在配置过程中备份重要数据,避免误操作导致数据丢失。 最后,总结整个流程,强调关键步骤和注意事项,帮助用户系统地完成Ceph iSCSI服务的配置,并确保他们理解每个环节的作用和可能的风险。</think>以下是配置Ceph iSCSI服务的分步指南: --- ### **一、核心概念** 1. **Ceph iSCSI网关** 将Ceph RBD块设备通过iSCSI协议暴露给客户端,支持多节点高可用架构。 2. **组件依赖** - `tcmu-runner`: 将RBD映射为SCSI设备 - `ceph-iscsi`: 提供iSCSI网关管理工具(gwcli) - `librbd`:Ceph RBD核心库 --- ### **配置步骤** #### **1. 安装软件包** ```bash # CentOS/RHEL sudo yum install -y ceph-iscsi tcmu-runner # Ubuntu sudo apt install -y ceph-iscsi tcmu-runner ``` #### **2. 配置iSCSI网关** ```bash # 生成配置文件模板(所有网关节点执行) sudo cp /usr/share/doc/ceph-iscsi/config.json.sample /etc/ceph/iscsi-gateway.json # 编辑配置文件(示例) { "config": { "cluster_name": "ceph", "gateway_keyring": "client.iscsi.gw", "api_port": 5000, "trusted_ip_list": ["192.168.1.10", "192.168.1.11"] } } ``` #### **3. 创建Ceph存储池和RBD镜像** ```bash # 创建存储池 ceph osd pool create iscsi_pool 128 128 # 创建RBD镜像(例如100GB) rbd create iscsi_image --size 102400 --pool iscsi_pool ``` #### **4. 配置iSCSI目标** ```bash # 进入gwcli交互式工具 sudo gwcli # 创建iSCSI目标 /> cd /iscsi-target /iscsi-target> create iqn.2023-08.com.example:ceph-iscsi # 映射RBD镜像到iSCSI /iscsi-target> cd iqn.2023-08.com.example:ceph-iscsi/disk /disk> create pool=iscsi_pool image=iscsi_image size=100G # 配置客户端访问(CHAP认证) /iscsi-target> cd /iscsi-target/iqn.2023-08.com.example:ceph-iscsi/gateways /gateways> create client_name=initiator1 password=mysecret # 退出gwcli /> exit ``` #### **5. 客户端连接(Linux示例)** ```bash # 安装iSCSI发起端 sudo apt install open-iscsi # Ubuntu sudo yum install iscsi-initiator-utils # CentOS # 发现目标 sudo iscsiadm -m discovery -t st -p 192.168.1.10 # 登录目标(使用CHAP认证) sudo iscsiadm -m node -T iqn.2023-08.com.example:ceph-iscsi -p 192.168.1.10:3260 --login # 查看新磁盘 lsblk # 将看到新设备(如/dev/sdb) ``` --- ### **三、高可用配置** - **多网关部署**: 至少配置2个iSCSI网关节点 - **负载均衡**: 使用Keepalived实现VIP漂移 - **配置同步**: 通过`gwcli`自动同步配置到所有网关节点 --- ### **四、关键验证命令** ```bash # 检查iSCSI网关状态 sudo systemctl status rbd-target-api tcmu-runner # 查看iSCSI会话 sudo iscsiadm -m session -P 3 # 查看RBD映射状态 rbd -p iscsi_pool ls ``` --- ### **五、常见问题** 1. **客户端无法发现目标** - 检查防火墙:`3260`端口是否开放 - 验证网关节点间网络连通性 2. **CHAP认证失败** - 检查`/etc/iscsi/iscsid.conf`中的用户名密码配置 - 重启`iscsid`服务:`sudo systemctl restart iscsid` 3. **性能优化** - 启用`cephx`认证时,调整`ms_tcp_read_timeout`参数 - 使用多路径IO(MPIO)提升冗余和吞吐量 --- 通过以上步骤,您可以将Ceph RBD块设备通过iSCSI协议提供给客户端,并实现高可用存储服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值