WayCa鲲鹏基础IO完全解析:SAS模块特性与优化实践
WayCa鲲鹏基础IO完全解析SAS模块特性与优化实践【免费下载链接】WayCaWayca repo display kunpeng featuer and establish ecology communication项目地址: https://gitcode.com/openeuler/WayCa前往项目官网免费下载https://ar.openeuler.org/ar/WayCa鲲鹏基础IO是openEuler WayCa SIG中专注于鲲鹏处理器基础输入输出系统的关键技术模块为鲲鹏920系列处理器提供完整的存储解决方案。作为openEuler生态的重要组成部分WayCa鲲鹏基础IO通过SASSerial Attached SCSI驱动模块实现了高性能、高可靠性的存储连接能力为数据中心和企业级应用提供了坚实的存储基础架构支持。 SAS驱动模块鲲鹏存储的基石SAS驱动是适配920系列处理器SAS控制器的核心驱动模块它实现了串行SCSI技术为磁盘与内存之间的高效交互提供了关键支持。在openEuler WayCa项目中SAS模块位于WayCa-Kunpeng-底软/Wayca-Kunpeng-基础IO/目录其详细特性文档为Wayca-Kunpeng-基础IO-SAS模块特性介绍.md。核心技术特性概览鲲鹏920系列SAS模块支持以下关键特性协议兼容性完全兼容SAS 3.0协议同时向下兼容SAS 2.0和SAS 1.0多协议支持支持SSP/SMP/STP三种主要协议SATA盘兼容支持连接SATA盘非AHCI方式高性能并发支持最多1024个设备和4096个并发IO高速连接支持SAS链接速率12/6/3/1.5Gbit/s自协商热插拔支持支持设备的热插拔功能数据完整性支持SAS DIFData Integrity Field数据完整性保护图SAS模块在鲲鹏基础IO架构中的位置 五大核心特性深度解析1. 中断聚合优化技术中断聚合是提升SAS控制器性能的关键技术。当IO产生比较频繁时频繁的中断会降低系统效率。SAS驱动支持两种中断聚合模式类型1中断聚合所有CQ队列CQ0-CQ15的中断全部在CQ0上产生简化中断处理流程。类型2中断聚合在规定时间内对队列产生的中断进行聚合达到指定数量或时间阈值时产生一次中断。实践配置示例# 使能中断聚合类型1 insmod hisi_sas_v3_hw.ko intr_conv1 # 配置中断聚合参数 echo 8 /sys/devices/pci0000:74/0000:74:02.0/host0/scsi_host/host0/intr_coal_count echo 1000 /sys/devices/pci0000:74/0000:74:02.0/host0/scsi_host/host0/intr_coal_ticks2. DIF/DIX端到端数据保护为了保证从硬盘到控制器再到应用程序之间的数据完整性SAS模块实现了DIFData Integrity Field DIXData Integrity Extension的端到端数据保护机制。保护机制原理DIF在主机适配器和磁盘之间交换额外的保护信息DIX提供应用程序到主机适配器之间的保护信息在传输过程中在数据IO后追加完整性保护信息8字节配置与使用# 配置DIF/DIX支持模式 insmod hisi_sas_v3_hw.ko prot_mask0x70 # 支持DIX0/DIX1/DIX2/DIX3 insmod hisi_sas_v3_hw.ko prot_mask0x77 # 支持DIF1/DIF2/DIF3支持DIX0/DIX1/DIX2/DIX3 # 查询SAS盘对DIF的支持 sg_vpd --pageei --long /dev/sdx | grep SPT # 格式化DIF SAS盘 sg_format --format --fmtpinfo2 /dev/sdx # DIF1格式 sg_format --format --fmtpinfo3 --pfu1 /dev/sdx # DIF3格式3. 强大的debug调测功能SAS控制器驱动通过debugfs目录提供完善的调试功能路径为/sys/kernel/debug/hisi_sas/核心调试功能自动dump在SAS控制器出现严重错误时自动触发手动dump通过命令echo 1 trigger_dump手动触发FIFO功能收集链路信息提供7个配置接口和1个数据展示接口FIFO配置示例# 配置FIFO调试功能 echo 0 /sys/kernel/debug/hisi_sas/0000:30:04.0/fifo/0/signal_sel echo 0x7ff /sys/kernel/debug/hisi_sas/0000:30:04.0/fifo/0/dump_msk echo 1 /sys/kernel/debug/hisi_sas/0000:30:04.0/fifo/0/dump_mode echo 1 /sys/kernel/debug/hisi_sas/0000:30:04.0/fifo/0/update_config echo 12.0 Gbit /sys/class/sas_phy/phy-4:0/maximum_linkrate cat /sys/kernel/debug/hisi_sas/0000:30:04.0/fifo/0/fifo_data图SAS模块调试功能架构4. BIST环回测试功能BISTBuilt-In Self-Test功能通过设置链接速率、码型、PHY ID、环回类型等参数让控制器产生对应的码流检验链路质量和控制器逻辑的正确性。测试配置流程# 配置BIST测试参数 echo 1 /sys/kernel/debug/hisi_sas/0000:30:04.0/bist/phy_id echo 3.0 Gbit /sys/kernel/debug/hisi_sas/0000:30:04.0/bist/link_rate echo 1 /sys/kernel/debug/hisi_sas/0000:30:04.0/bist/enable # 查看测试结果 cat /sys/kernel/debug/hisi_sas/0000:30:04.0/bist/cnt # 关闭BIST测试 echo 0 /sys/kernel/debug/hisi_sas/0000:30:04.0/bist/enable测试注意事项除remote模式外其他模式不连接任何设备remote模式需外接SAS环回头首次测试需要将速率设置为≥3.0Gbit对于FIXED_DATA码型不会产生误码5. Runtime PM电源管理Runtime PM功能实现了智能的电源管理机制显著降低系统能耗。SCSI设备Runtime PM设备空闲达到指定时间后自动进入休眠状态业务到来时自动唤醒设备空闲后再次自动休眠SAS控制器Runtime PM所有连接的SCSI设备都进入休眠后控制器自动休眠任一设备被唤醒时控制器自动唤醒配置示例# SCSI设备Runtime PM配置 echo auto /sys/devices/pci0000:b4/0000:b4:02.0/host6/port-6:0/end_device-6:0/target6:0:0/6:0:0:0/power/control echo 5000 /sys/devices/pci0000:b4/0000:b4:02.0/host6/port-6:0/end_device-6:0/target6:0:0/6:0:0:0/power/autosuspend_delay_ms # SAS控制器Runtime PM配置 echo auto /sys/devices/pci0000:b4/0000:b4:02.0/power/control echo 2000 /sys/devices/pci0000:b4/0000:b4:02.0/power/autosuspend_delay_ms 模块参数与配置指南SAS驱动模块包含四个关键模块参数位于hisi_sas_main.ko和hisi_sas_v3_hw.ko中模块参数所属模块含义默认值配置说明debugfs_enablehisi_sas_main.ko是否使能debugfs11使能0不使能debugfs_dump_counthisi_sas_main.kodebugfs dump次数设置10≤n≤50prot_maskhisi_sas_v3_hw.koDIF/DIX类型设置0n: 设置DIF/DIX类型intr_convhisi_sas_v3_hw.ko是否使能中断聚合01使能0不使能️ 部署与使用最佳实践内核配置要求要使能鲲鹏920系列处理器的SAS功能需要同时配置以下内核选项CONFIG_SCSI_HISI_SASCONFIG_SCSI_HISI_SAS_PCI模块加载顺序先加载hisi_sas_main.ko再加载hisi_sas_v3_hw.ko性能优化建议中断聚合配置根据业务负载调整中断聚合参数平衡延迟和吞吐量DIF/DIX启用对于数据完整性要求高的场景启用DIF/DIX保护Runtime PM调优根据业务空闲模式调整休眠延迟参数调试功能管理生产环境建议关闭debugfs以减少性能开销 故障排查与诊断常见问题解决方案问题1SAS设备无法识别检查内核配置是否正确验证模块加载顺序确认硬件连接状态问题2性能不达标调整中断聚合参数检查DIF/DIX配置验证链路速率协商问题3调试信息不足启用debugfs功能配置FIFO监控使用BIST进行链路质量测试诊断工具使用# 查看SAS控制器状态 lspci | grep SAS dmesg | grep hisi_sas # 检查设备连接 lsscsi cat /proc/scsi/scsi # 监控性能指标 iostat -x 1 sar -d 1 总结与展望WayCa鲲鹏基础IO的SAS模块为openEuler生态提供了企业级的存储解决方案。通过五大核心特性——中断聚合优化、DIF/DIX数据保护、debug调试功能、BIST环回测试和Runtime PM电源管理SAS模块在性能、可靠性和可维护性方面都达到了行业领先水平。随着openEuler WayCa SIG的不断发展鲲鹏基础IO将继续优化SAS模块的性能增强数据保护能力并扩展更多高级功能。对于希望构建高性能、高可靠性存储系统的开发者和系统管理员来说深入理解并合理配置SAS模块的各项特性将能够充分发挥鲲鹏处理器的存储潜力。立即开始您的鲲鹏存储优化之旅访问项目仓库获取最新文档和代码加入openEuler WayCa社区共同构建更强大的鲲鹏存储生态【免费下载链接】WayCaWayca repo display kunpeng featuer and establish ecology communication项目地址: https://gitcode.com/openeuler/WayCa创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考