CurveFS Client Config For Curveadm

简要说明

本篇文章简要介绍下Curveadm使用到的,CurveFS client端涉及到的一些主要配置项

通用配置

通用配置展示的是一些必要的基础配置项。

名称默认值说明
kindcurvefs所属的是fs还是bs集群
mdsOpt.rpcRetryOpt.addrs127.0.0.1:9000,127.0.0.1:9001,127.0.0.1:9002fs集群信息
container_image使用的fs的镜像
log_dircurve-fuse日志路径(这里指的是宿主机上的路径)
core_dir/corecore文件保存路径(指宿主机上的路径)
s3.bucket_names3信息
s3.aks3信息
s3.sks3信息
s3.endpoints3信息
s3.bucket_names3信息

缓存盘配置项

如果没有本地缓存盘,那么client的读写便会直接与s3对象存储交互,而s3的访问时延和吞吐均受限,因此建议使用缓存盘来提升读写能力。一般推荐使用SSD/NVMe盘或者高性能云盘做缓存盘,不建议使用HDD盘。由于缓存盘会占用大量空间和吞吐,因此也不建议与系统盘共用。缓存盘的容量越大,缓存数据越多,性能越好。建议至少100G。缓存盘的使用方法很简单,只需格式化对应硬盘,然后挂载后可以使用该路径作为本地缓存路径配置到配置项diskCache.cacheDir。若是多个Client共用一个本地缓存盘,那么可以通过不同路径名来配置,比如client1的配置项为diskCache.cacheDir=/mnt/cache/client1,client2的配置项为diskCache.cacheDir=/mnt/cache/client2。另外还支持对每个client配置缓存盘容量限制和性能限制(IOPS、BPS等)。

  • 写缓存

client写入过程中,如果可使用缓存,那么便会先把s3对象写入本地缓存盘,然后再异步写入s3 (注意:数据重要场景不建议直接使用单硬盘作为写缓存,存在数据丢失风险。可本地raid1或者使用云盘作为本地缓存盘)。

对于上述因异常未来得及上传s3的数据,在客户端进程被再次拉起后会继续上传到s3。

关于缓存盘面更详细内容可参考本地缓存盘

  • 读缓存

可以借用预读机制或者是预热机制,把s3上的数据提前加载到缓存盘,提升读性能

名称默认值说明
diskCache.cacheDir/mnt/curvefs_cache缓存盘路径(指宿主机目录)
diskCache.diskCacheType20:不使用,1:仅读缓存,2:读写缓存
diskCache.maxUsableSpaceBytes107374182400缓存盘最多可使用容量
diskCache.maxFileNums1000000最多缓存文件数量
diskCache.fullRatio90缓存目录对应文件系统使用率达到该阈值,缓存盘不可写,直传s3
diskCache.safeRatio70缓存目录对应文件系统使用率达到该阈值,开始清理

其他

名称默认值说明
client.loglevel00,3,6,9(越大输出日志越细致)
s3.throttle.iopsTotalLimit0s3总的iops限流(默认不限)
s3.throttle.iopsReadLimit0s3读iops限流
s3.throttle.iopsWriteLimit0s3写iops限流
s3.throttle.bpsTotalMB0s3总的带宽限流(默认不限)
s3.throttle.bpsReadMB0s3读带宽限流
s3.throttle.bpsWriteMB0s3写带宽限流