C7-CID: Chinamobile在QEMU中引入SCSI支持:挑战与解决方案

需积分: 9 0 下载量 144 浏览量 更新于2024-07-08 收藏 4.76MB PDF 举报
本篇文档主要探讨了将SCSI支持引入QEMU块层(Block Layer)的技术挑战和实施方案,由作者白耀伟分享。背景部分着重介绍了当前集群服务的需求,如OCFS(Open Cluster File System)、MSCS(Microsoft Cluster Server)和使用并发控制机制的共享存储,如Ceph分布式块存储。这些服务依赖于块级协议(如iSCSI)来实现数据一致性,然而传统的iSCSI支持在QEMU中尚不完全集成。 问题点在于现有的解决方案存在一些局限性,比如IO路径较长、组件成熟度不足以及维护复杂性高。为解决这些问题,作者提出了三个关键步骤: 1. Ceph中的SCSI支持:文档提到已经完成了对Ceph的SCSI支持,这可能包括优化存储性能和提高数据一致性。 2. COMPAREANDWRITE和PERSISTENT RESERVATION:这是两种关键技术,前者用于数据比较和写入确认,后者确保数据在写入后被持久保留。这些功能对于提升存储性能和可靠性至关重要。 3. 引入QEMU的SCSI支持:文档详细描述了如何在QEMU中实现SCSI设备的仿真,涉及hw/scsi/scsi-disk.c文件的修改,以及与Block Layer、Block IO路径接口和Block驱动器接口的整合。对于SCSI功能的实现,包括硬件级模拟(例如SCSI硬盘设备)、软件接口的更新,以及对特定操作如COMPAREANDWRITE和PERSISTENT RESERVATION的定制模拟。 未来的工作计划可能包括将这些改进合并到主分支(upstream),以提高QEMU的整体性能和兼容性,同时考虑私有版本的PERSISTENT RESERVATION实现。 这份文档提供了一个深入理解如何在QEMU中引入SCSI支持,并优化分布式存储环境性能的方法,对于开发人员和系统管理员来说,是理解和扩展QEMU以满足高性能集群需求的重要参考资料。