自已建网站微信登录,百度建站,凡科网站怎么做链接头像logo,济南百度推广1. 最佳实践
1.1 基本
监控节点对于集群的正确运行非常重要#xff0c;应当为其分配独立的硬件资源。如果跨数据中心部署#xff0c;监控节点应该分散在不同数据中心或者可用性区域日志可能会让集群的吞吐量减半。理想情况下#xff0c;应该在不同磁盘上运行操作系统、OSD…1. 最佳实践
1.1 基本
监控节点对于集群的正确运行非常重要应当为其分配独立的硬件资源。如果跨数据中心部署监控节点应该分散在不同数据中心或者可用性区域日志可能会让集群的吞吐量减半。理想情况下应该在不同磁盘上运行操作系统、OSD数据、OSD日志。对于高吞吐量工作负载考虑使用SSD进行日志存储纠删编码Erasure coding可以用于存储大容量的一次性写、非频繁读、性能要求不高的数据。纠删编码存储消耗小但是IOPS也降低目录项Dentry和inode缓存可以提升性能特别是存在很多小对象的情况下使用缓存分层Cache Tiering可以大大提升集群性能。此技术可以在热、冷Tier之间自动的进行数据迁移。为了最大化性能请使用SSD作为缓存池、并且在低延迟节点上部署缓存池部署奇数个数的监控节点以便仲裁投票Quorum Voting建议使用3-5个节点。更多的节点可以增强集群的健壮性但是mon之间需要保持数据同步这会影响性能诊断性能问题的时候总是从最底层磁盘、网络开始然后再检查块设备、对象网关等高层接口在大型集群里用单独的集群网络Cluster Newwork可显著地提升性能和安全性
1.2 文件系统
限制最大文件大小创建极大的文件会导致删除过程很缓慢避免在生产环境下使用试验特性。你应该使用单个活动MDS、不使用快照默认如此避免增大max_mds可能导致大于1个的MDS处于Active客户端选择 FUSE容易使用、容易升级和服务器集群保持一致内核性能好不同客户端的功能并不完全一致例如FUSE支持客户端配额内核不支持 对于Ceph 10.x最好使用4.x内核。如果必须使用老内核你应该使用FUSE作为客户端
2. 基础设施要求
2.1 处理器
OSD需要消耗CPU资源可以将其绑定到一个核心上。如果使用纠删码则需要更多的CPU资源。此外集群处于Recovery状态时OSD的CPU消耗显著增加
MON不怎么消耗CPU资源几个G内存的单核心物理机即可。
MDS相当消耗CPU资源考虑4核心或更多CPU。如果依赖于CephFS处理大量工作应当分配专用物理机
2.2 内存
MON/MDS需要不少于2G内存。OSD通常需要1G内存和存储容量有关。此外集群处于Recovery状态时OSD的内存消耗显著增加因此配备2G内存更好
2.3 网络
最好具有万兆网络公共网络、集群网络需要物理隔离双网卡连接到独立交换机。对于数百TB规模的集群千兆网络也能够正常工作
集群网络往往消耗更多的带宽此外高性能的集群网络对于Recovery的效率很重要。
如果交换机支持应当启用Jumbo帧可以提升网络吞吐量。
2.4 磁盘
在生产环境下最好让OSD使用独立的驱动器如果和OS共享驱动最好使用独立的分区。
通常使用SATA SSD作为日志存储预算足够可以考虑PCIE SSD。Intel S3500的4K随机写 IOPS可达10K
关于RAID
最好不要使用RAID如果有RAID卡并且磁盘数量太多而对应的内存数量不足每个OSD大概需要2G内存可以RAID0不要使用RAID5因为随机IO的性能降低
关于filestore
建议使用SSD存储日志以减少访问时间、读取延迟实现吞吐量的显著提升可以为创建SSD分区每个分区作为一个OSD的日志存储但是最好不要超过4个
2.5 BIOS设置
启用超线程Hyper-Threading技术关闭节能关闭NUMA
2.6 内核参数
# 修改pid max
# 执行命令
echo 4194303 /proc/sys/kernel/pid_max
# 或者
sysctl -w kernel.pid_max4194303# read_ahead, 数据预读到内存提升磁盘读操作能力
echo 8192 /sys/block/sda/queue/read_ahead_kb# 禁用交换文件
echo vm.swappiness 0 | tee -a /etc/sysctl.conf# I/O SchedulerSSD使用用noopSATA/SAS使用deadline
echo deadline /sys/block/sda/queue/scheduler
echo noop /sys/block/sda/queue/scheduler2.7 文件系统
底层文件系统的稳定性和性能对于Ceph很重要。在开发、非关键部署时可以使用btrfs这也是未来的方向。关键的生产环境下应该使用XFS。
在高可扩容性的存储环境下XFS和btrfs相比起ext3/4有很大优势。XFS和btrfs都是日志式文件系统更健壮容易从崩溃、断电中恢复。日志文件系统会在执行写操作之前把需要进行的变更记录到日志。
OSD依赖于底层文件系统的扩展属性Extended AttributesXATTRs来存储各种内部对象状态和属性。XFS支持64KB的XATTRs但是ext4就太小了你应该为运行在ext4上的OSD配置
# 新版本Ceph此配置项已经没了
filestore xattr use omap true关于文件系统的一些知识
XFS 、 btrfs 和 ext4 都是日志文件系统XFS很成熟btrfs相对年轻他是一个写时复制COW文件系统因而支持可写文件系统快照。此外它还支持透明压缩、完整性校验
3. 归置组
3.1 PG数量
PG的数量应当总是和PGP相同。PGP是为了实现定位而创建的PG。再平衡仅仅再pgp_num被修改后才会触发仅仅修改pg_num不会触发。
随着OSD数量的变化选取适当的PG数量很重要。因为PG数量对集群行为、数据持久性Durability灾难性事件发生时保证数据堡丢失有很大影响。此外归置组很耗计算资源所以很多存储池x很多归置组会导致性能下降。建议的取值
对于小于5个OSD的集群设置为1285-10个OSD的集群设置为51210-50个OSD的集群设置为1024超过50个OSD的集群需要自己权衡利用pgcalc来计算适合的PG数量
《Ceph分布式存储学习指南》一书中建议的PG数量算法
每个池的PG数量 OSD总数 * 100 / 最大副本数 / 池数
计算结果需要向上舍入到2的N次幂。此外该书倾向于让所有池具有相同的PG数量。
4. 再平衡
加入新的OSD后考虑设置权重为0然后逐渐增加权重这样可以避免性能下降