admin管理员组文章数量:1029635
Samsung:大IU落地的应用生态(LBS实践)
全文概览
在数据爆炸式增长的今天,固态硬盘(SSD)作为核心存储介质,其性能优化至关重要。本文深入探讨了SSD架构设计中面临的挑战,尤其是在逻辑块地址(LBA)与内部单元(IU)大小匹配问题上的权衡。从传统的512B扇区到如今QLC闪存和大IU的演进,SSD的性能瓶颈日益凸显。为了突破这些限制,三星等行业领导者正积极探索主机操作系统层面的优化方案,如大块大小(LBS)技术。
本文将带您抽丝剥茧,解析LBA、IU及LBS之间的复杂关系,揭示NVMe和OCP等标准在其中的作用,并展望LBS如何为主机软件生态系统带来“免费”的性能提升,最终实现QLC SSD在数据库等工作负载下的卓越表现。通过阅读本文,您将对SSD底层架构的优化策略有更深刻的理解,把握未来存储技术的发展趋势。
阅读收获
- 深入理解SSD逻辑地址与物理存储单元的映射关系,掌握LBA、IU等关键概念。
- 了解NVMe、OCP等行业标准在SSD性能优化中的作用。
- 掌握LBS大块尺寸技术原理及其在提升QLC SSD性能方面的优势。
- 洞悉主机操作系统层面优化对SSD性能提升的重要性及未来趋势。
Fig-14:LBA 逻辑块大小与 IU大小匹配的优与劣
图片探讨了将逻辑块地址(LBA)扇区格式与间接单元(IU)大小相匹配的优缺点。赞成匹配的观点包括可以减少系统开销,并可能带来 ECC 效率的潜在提升。反对匹配的观点则强调了目前仍然广泛存在的 512B 使用情况,以及支持不同 LBA 大小的挑战性。此外,匹配还可能需要新的保护信息标准,并可能导致小命令的性能下降。最后的结论建议应该考虑其他的选项。
===
匹配 | 反对匹配 |
---|---|
* 4KiB IU 匹配扇区大小的先例 | * 多年的过渡期后,仍然存在大量的 512B 使用情况 |
* 系统开销减少 | * 1998 年引入 4KB 格式 |
* 可能通过各种组件实现非常小的效率提升 | * 2010 年出现原生 4KB 驱动器 |
* ECC 效率的潜在优势 | * 支持不同的 LBA 大小非常具有挑战性 |
* 当前的 SSD 并未利用这一点 | * IU 大小可能因容量、供应商和 SSD 代而异 |
* ECC 优势始终伴随着 IU 的增加 | * 在非常大的扇区大小下,可能需要新的保护信息 (PI) 标准 |
* 扇区大小的改变与许多额外的系统紧密相关 | |
* 例如:内存页 | |
* 小命令性能下降的风险 | |
* 例如:QD1 4KiB 随机读取,最终应用程序需要读取整个 SSD LBA,ECC 解码,然后一起传输才能获得请求的 4KiB 数据 |
Fig-15:NVMe 与 OCP 标准在SSD中发挥的作用
图片介绍了 NVMe® 和 OCP 规范在固态硬盘领域的作用。
- NVMe® 的最佳性能参数 (OPTPERF) 定义了 IU 大小,并关注了由于写入粒度不一致可能导致的读-修改-写(RMW)性能影响。
- OCP(开放计算项目)的数据中心 NVMe SSD 规范可以补充 NVMe®,解决一些它可能无法覆盖的问题,并允许添加物理定义。
===
- NVMe® - 最佳性能参数 (OPTPERF)
- 定义 IU 大小为 NPWG - 因为清晰的规范可以定义物理参数。
- 说明了 512B LBA 在 4KiB IU 上的情况。
- 强调了对 RMW 性能影响的担忧。
- OCP - 数据中心 NVMe SSD 规范
- 可以添加物理定义。
- 解决了 NVMe 无法解决的困惑。
Fig-16:在主机操作系统中启用大块大小 (LBS)
图片讨论了在主机操作系统层面启用大块大小(LBS)以更好地支持 QLC 和使用大 IU 的 SSD 的工作。三星 GOST 正在 Linux 系统上进行这方面的研究,旨在评估相关的操作系统更改,量化软件影响和潜在收益,并推动这些更改在整个软件栈中的应用。
===
- 三星 GOST 一直在 Linux 中主导一项大块大小 (LBS) 的工作。
- 评估最有利于 QLC 和大间接单元 (IU) SSD 的操作系统更改。
- 量化每个选项的软件影响以及主机和 SSD 的潜在收益。
- 将这些更改传播到所有层。
- LBS 结论
- 增加 LBA 扇区大小很困难。
- 对原子掉电保护提出新要求是启用大 IU 的最佳解决方案。
- AWUPF(Atomic Write Unit Power Fail) >= NPWG(Namespace Preferred Write Granularity) = IU
- 以最大化优势实现最小的生态系统影响。
- 没有后向兼容性问题。
- 多原子模式可能对某些客户评估很有趣,但尚未帮助当前的软件更改。
为什么说增加 LBA 扇区大小是困难的?
- 广泛的软件生态系统依赖: LBA 扇区大小是一个非常基础的存储接口参数,它被操作系统、文件系统、应用程序甚至驱动程序等软件栈的各个层面所依赖。改变 LBA 扇区大小意味着需要对这些软件进行大量的修改和更新,这是一个庞大而复杂的工程。Fig 15 就明确指出,“扇区大小的改变与许多额外的系统紧密相关”,并以“内存页”为例。操作系统的内存管理、文件系统的块分配等都可能与存储设备的扇区大小相关联。
- 遗留兼容性问题: 存储行业有着长期的历史,很多现有的系统和应用仍然是基于传统的 512 字节 LBA 扇区大小设计的(即使物理上是 4KiB,但通过 512e 模拟)。直接增加 LBA 扇区大小会破坏与这些遗留系统的兼容性,导致用户升级或迁移困难。Fig15 提到了“多年的过渡期后,仍然存在大量的 512B 使用情况”,这正是兼容性问题的一个体现。
如何理解 原子掉电保护 在SSD存储中的作用?
在计算机存储领域,"原子性"(Atomicity)是一个非常重要的概念,它指的是一个操作要么完全执行成功,要么完全不执行,不存在中间状态。在电源突然中断的情况下,"原子掉电保护"就是指存储设备(如 SSD)能够确保正在进行的写入操作要么完全持久化到非易失性存储介质(NAND 闪存)上,要么完全不影响之前的数据状态,就像这个写入操作从未发生过一样。
简单来说,如果电源在 SSD 执行一个写入操作的中间突然断开,原子掉电保护机制可以确保:
- 数据不会处于不一致或损坏的状态。 不会发生部分数据写入成功而部分数据丢失或损坏的情况。
- 元数据(如 L2P 表的更新)也能保持一致性。 写入操作通常不仅仅涉及用户数据的写入,还包括内部元数据的更新。原子掉电保护也确保这些元数据的更新要么和数据一起完成,要么完全不发生。
Fig-17:LBS如何增益大IUs
图片解释了如何在主机操作系统层面通过一种称为“大块大小(LBS)”的方法来更好地支持使用大 IU 的 SSD。图片强调,这种方法的主要优势在于其对现有主机软件生态系统的影响最小,几乎可以让所有主机软件“免费”获得收益,因为相关的更改被封装在操作系统内核的底层(块层、页缓存、文件系统等)中,并且正在进行支持原子掉电保护单位 (AWUPF) 大于或等于 IU 大小的修改。
图片还指出,这种方法保持了后向兼容性,并且提供了一个选项,允许 I/O 对齐的确定性,通过选择使用扇区大小并将主机 I/O 与原子性对齐来实现。右侧的图示清晰地展示了这些更改发生在操作系统内核的各个层次。此外,图片还展示了 QLC SSD 在采用这种方法后在数据库工作负载中的性能收益,包括 TPS 的提升和变异性的降低。
===
图片右侧是一个图示,展示了从用户空间/应用程序到物理设备的软件栈层级。
- 用户空间/应用程序 (Userspace/applications) 调用系统调用 (system calls) 如 read()、write()、open() 等。
- 这些系统调用进入内核 (Kernel)。
- 内核中包含 虚拟文件系统 (VFS)、块层 (Block layer) 和 页缓存 (Page cache)。
- VFS 下方是基于块的文件系统 (Block based filesystems),例如 ext4、f2fs、gfs2 和 btrfs。
- 块层通过 NVMe 层 (NVMe layer) 与 物理设备 (Physical devices) 通信,例如 PCIe NVMe 设备。
- 左侧有一个 块缓存 (Block cache) 与块层关联。
Note
整理这篇文章,笔者最大的收获是:增强对块存储的理解,以及为什么说块存储小文件IO读写性能相对较高。归根结底可以追溯到LBA--L2P--IU的IO读写映射关系,块存储作为存储设备原生数据组织方式,从硬件设计上做了更深层次优化,从而具备更高寻址效率,而对象和文件存储都是在块的组织基础上,另做了语义(元数据)设计,从而具备场景的丰富特性。
图片通过一个实验数据表格展示了主机操作系统中的 LBS(大块大小)如何帮助实现 IU 对齐,从而显著降低最坏情况下的写入放大因子(WAF)。
表格中的数据显示,在某些工作负载下,当文件系统块大小、扇区大小与 IU 大小匹配,并且启用 LBS 和使用 Direct I/O 时,WAF 可以接近理想值 1.0。这意味着写入操作能够很好地与固态硬盘内部的 IU 对齐,减少了读-修改-写(RMW)操作,从而提高了性能和耐久性。图片还提供了一个名为 blkalign
的工具的示例,该工具可能用于评估不同配置下的对齐效果。这进一步证实了主机操作系统层面的优化(如 LBS)对于充分发挥 SSD 性能和延长寿命的重要性。
图片通过可视化方式展示了在特定配置下(FIO 512B 写入、64KiB IU、XFS 文件系统块大小 64KiB、SSD 和文件系统扇区大小 4KiB、启用 LBS)LBS 如何影响块大小和对齐大小分布,从而实现接近 1.0 的低写入放大因子(WAF)。
左侧的“块大小分布”图显示了写入操作的块大小分布情况,大部分集中在 4KB 和 8KB。右侧的“对齐大小分布”图则展示了这些写入操作在物理存储上的对齐情况,也主要集中在 4KB 和 8KB。图中的文字解释说,尽管执行的是 512B 写入,但启用 LBS 后,由于文件系统块大小和 IU 大小的设置,实际的写入和对齐操作以 4KB 和 8KB 为主,从而避免了小块写入导致的 RMW 效应,使得 WAF 非常接近理想值 1.0。这进一步证明了主机操作系统层面的 LBS 优化对于提高 SSD 性能和效率的有效性。
图片对之前讨论的 AWUPF(原子掉电保护单位)与 NPWG(命名空间首选写入粒度,即 IU 大小)之间的关系进行了最终评论。它推荐 AWUPF 应该大于或等于 NPWG 和 IU 大小。图片解释说,之所以采用“大于或等于”,是为了给固态硬盘供应商提供更大的设计灵活性。因为 AWUPF 通常是设计在 SSD 控制器的硬件中的,一旦控制器设计完成就相对固定,而 IU 大小可能会根据不同的容量或产品代进行调整。
图片还指出,独立于 IU 大小,主机可以将写入的交互大小增加到 AWUPF 的上限。这意味着,如果主机认为使用小于 AWUPF 但大于或等于 NPWG 的较小 I/O 大小在某些情况下更有利,它可以在不超过 AWUPF 的前提下进行优化。这允许在满足原子性要求的同时,根据具体的工作负载需求进行灵活的性能调整。
延伸思考
这次分享的内容就到这里了,或许以下几个问题,能够启发你更多的思考,欢迎留言,说说你的想法~
- 大块尺寸(LBS)技术的普及和应用,将对现有数据中心和云计算环境产生哪些深远影响?
- 除了LBS之外,未来SSD主控和闪存技术还可能在哪些方面进行创新,以应对日益增长的数据存储挑战?
- 在追求更高SSD性能的同时,如何兼顾数据可靠性、耐久性和成本效益,找到最佳平衡点?
原文标题:SSD Architecture Challenges with DRAM
Notice:Human's prompt, Datasets by Gemini-2.0-flash-thinking
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-20,如有侵权请联系 cloudcommunity@tencent 删除操作系统实践数据性能samsungSamsung:大IU落地的应用生态(LBS实践)
全文概览
在数据爆炸式增长的今天,固态硬盘(SSD)作为核心存储介质,其性能优化至关重要。本文深入探讨了SSD架构设计中面临的挑战,尤其是在逻辑块地址(LBA)与内部单元(IU)大小匹配问题上的权衡。从传统的512B扇区到如今QLC闪存和大IU的演进,SSD的性能瓶颈日益凸显。为了突破这些限制,三星等行业领导者正积极探索主机操作系统层面的优化方案,如大块大小(LBS)技术。
本文将带您抽丝剥茧,解析LBA、IU及LBS之间的复杂关系,揭示NVMe和OCP等标准在其中的作用,并展望LBS如何为主机软件生态系统带来“免费”的性能提升,最终实现QLC SSD在数据库等工作负载下的卓越表现。通过阅读本文,您将对SSD底层架构的优化策略有更深刻的理解,把握未来存储技术的发展趋势。
阅读收获
- 深入理解SSD逻辑地址与物理存储单元的映射关系,掌握LBA、IU等关键概念。
- 了解NVMe、OCP等行业标准在SSD性能优化中的作用。
- 掌握LBS大块尺寸技术原理及其在提升QLC SSD性能方面的优势。
- 洞悉主机操作系统层面优化对SSD性能提升的重要性及未来趋势。
Fig-14:LBA 逻辑块大小与 IU大小匹配的优与劣
图片探讨了将逻辑块地址(LBA)扇区格式与间接单元(IU)大小相匹配的优缺点。赞成匹配的观点包括可以减少系统开销,并可能带来 ECC 效率的潜在提升。反对匹配的观点则强调了目前仍然广泛存在的 512B 使用情况,以及支持不同 LBA 大小的挑战性。此外,匹配还可能需要新的保护信息标准,并可能导致小命令的性能下降。最后的结论建议应该考虑其他的选项。
===
匹配 | 反对匹配 |
---|---|
* 4KiB IU 匹配扇区大小的先例 | * 多年的过渡期后,仍然存在大量的 512B 使用情况 |
* 系统开销减少 | * 1998 年引入 4KB 格式 |
* 可能通过各种组件实现非常小的效率提升 | * 2010 年出现原生 4KB 驱动器 |
* ECC 效率的潜在优势 | * 支持不同的 LBA 大小非常具有挑战性 |
* 当前的 SSD 并未利用这一点 | * IU 大小可能因容量、供应商和 SSD 代而异 |
* ECC 优势始终伴随着 IU 的增加 | * 在非常大的扇区大小下,可能需要新的保护信息 (PI) 标准 |
* 扇区大小的改变与许多额外的系统紧密相关 | |
* 例如:内存页 | |
* 小命令性能下降的风险 | |
* 例如:QD1 4KiB 随机读取,最终应用程序需要读取整个 SSD LBA,ECC 解码,然后一起传输才能获得请求的 4KiB 数据 |
Fig-15:NVMe 与 OCP 标准在SSD中发挥的作用
图片介绍了 NVMe® 和 OCP 规范在固态硬盘领域的作用。
- NVMe® 的最佳性能参数 (OPTPERF) 定义了 IU 大小,并关注了由于写入粒度不一致可能导致的读-修改-写(RMW)性能影响。
- OCP(开放计算项目)的数据中心 NVMe SSD 规范可以补充 NVMe®,解决一些它可能无法覆盖的问题,并允许添加物理定义。
===
- NVMe® - 最佳性能参数 (OPTPERF)
- 定义 IU 大小为 NPWG - 因为清晰的规范可以定义物理参数。
- 说明了 512B LBA 在 4KiB IU 上的情况。
- 强调了对 RMW 性能影响的担忧。
- OCP - 数据中心 NVMe SSD 规范
- 可以添加物理定义。
- 解决了 NVMe 无法解决的困惑。
Fig-16:在主机操作系统中启用大块大小 (LBS)
图片讨论了在主机操作系统层面启用大块大小(LBS)以更好地支持 QLC 和使用大 IU 的 SSD 的工作。三星 GOST 正在 Linux 系统上进行这方面的研究,旨在评估相关的操作系统更改,量化软件影响和潜在收益,并推动这些更改在整个软件栈中的应用。
===
- 三星 GOST 一直在 Linux 中主导一项大块大小 (LBS) 的工作。
- 评估最有利于 QLC 和大间接单元 (IU) SSD 的操作系统更改。
- 量化每个选项的软件影响以及主机和 SSD 的潜在收益。
- 将这些更改传播到所有层。
- LBS 结论
- 增加 LBA 扇区大小很困难。
- 对原子掉电保护提出新要求是启用大 IU 的最佳解决方案。
- AWUPF(Atomic Write Unit Power Fail) >= NPWG(Namespace Preferred Write Granularity) = IU
- 以最大化优势实现最小的生态系统影响。
- 没有后向兼容性问题。
- 多原子模式可能对某些客户评估很有趣,但尚未帮助当前的软件更改。
为什么说增加 LBA 扇区大小是困难的?
- 广泛的软件生态系统依赖: LBA 扇区大小是一个非常基础的存储接口参数,它被操作系统、文件系统、应用程序甚至驱动程序等软件栈的各个层面所依赖。改变 LBA 扇区大小意味着需要对这些软件进行大量的修改和更新,这是一个庞大而复杂的工程。Fig 15 就明确指出,“扇区大小的改变与许多额外的系统紧密相关”,并以“内存页”为例。操作系统的内存管理、文件系统的块分配等都可能与存储设备的扇区大小相关联。
- 遗留兼容性问题: 存储行业有着长期的历史,很多现有的系统和应用仍然是基于传统的 512 字节 LBA 扇区大小设计的(即使物理上是 4KiB,但通过 512e 模拟)。直接增加 LBA 扇区大小会破坏与这些遗留系统的兼容性,导致用户升级或迁移困难。Fig15 提到了“多年的过渡期后,仍然存在大量的 512B 使用情况”,这正是兼容性问题的一个体现。
如何理解 原子掉电保护 在SSD存储中的作用?
在计算机存储领域,"原子性"(Atomicity)是一个非常重要的概念,它指的是一个操作要么完全执行成功,要么完全不执行,不存在中间状态。在电源突然中断的情况下,"原子掉电保护"就是指存储设备(如 SSD)能够确保正在进行的写入操作要么完全持久化到非易失性存储介质(NAND 闪存)上,要么完全不影响之前的数据状态,就像这个写入操作从未发生过一样。
简单来说,如果电源在 SSD 执行一个写入操作的中间突然断开,原子掉电保护机制可以确保:
- 数据不会处于不一致或损坏的状态。 不会发生部分数据写入成功而部分数据丢失或损坏的情况。
- 元数据(如 L2P 表的更新)也能保持一致性。 写入操作通常不仅仅涉及用户数据的写入,还包括内部元数据的更新。原子掉电保护也确保这些元数据的更新要么和数据一起完成,要么完全不发生。
Fig-17:LBS如何增益大IUs
图片解释了如何在主机操作系统层面通过一种称为“大块大小(LBS)”的方法来更好地支持使用大 IU 的 SSD。图片强调,这种方法的主要优势在于其对现有主机软件生态系统的影响最小,几乎可以让所有主机软件“免费”获得收益,因为相关的更改被封装在操作系统内核的底层(块层、页缓存、文件系统等)中,并且正在进行支持原子掉电保护单位 (AWUPF) 大于或等于 IU 大小的修改。
图片还指出,这种方法保持了后向兼容性,并且提供了一个选项,允许 I/O 对齐的确定性,通过选择使用扇区大小并将主机 I/O 与原子性对齐来实现。右侧的图示清晰地展示了这些更改发生在操作系统内核的各个层次。此外,图片还展示了 QLC SSD 在采用这种方法后在数据库工作负载中的性能收益,包括 TPS 的提升和变异性的降低。
===
图片右侧是一个图示,展示了从用户空间/应用程序到物理设备的软件栈层级。
- 用户空间/应用程序 (Userspace/applications) 调用系统调用 (system calls) 如 read()、write()、open() 等。
- 这些系统调用进入内核 (Kernel)。
- 内核中包含 虚拟文件系统 (VFS)、块层 (Block layer) 和 页缓存 (Page cache)。
- VFS 下方是基于块的文件系统 (Block based filesystems),例如 ext4、f2fs、gfs2 和 btrfs。
- 块层通过 NVMe 层 (NVMe layer) 与 物理设备 (Physical devices) 通信,例如 PCIe NVMe 设备。
- 左侧有一个 块缓存 (Block cache) 与块层关联。
Note
整理这篇文章,笔者最大的收获是:增强对块存储的理解,以及为什么说块存储小文件IO读写性能相对较高。归根结底可以追溯到LBA--L2P--IU的IO读写映射关系,块存储作为存储设备原生数据组织方式,从硬件设计上做了更深层次优化,从而具备更高寻址效率,而对象和文件存储都是在块的组织基础上,另做了语义(元数据)设计,从而具备场景的丰富特性。
图片通过一个实验数据表格展示了主机操作系统中的 LBS(大块大小)如何帮助实现 IU 对齐,从而显著降低最坏情况下的写入放大因子(WAF)。
表格中的数据显示,在某些工作负载下,当文件系统块大小、扇区大小与 IU 大小匹配,并且启用 LBS 和使用 Direct I/O 时,WAF 可以接近理想值 1.0。这意味着写入操作能够很好地与固态硬盘内部的 IU 对齐,减少了读-修改-写(RMW)操作,从而提高了性能和耐久性。图片还提供了一个名为 blkalign
的工具的示例,该工具可能用于评估不同配置下的对齐效果。这进一步证实了主机操作系统层面的优化(如 LBS)对于充分发挥 SSD 性能和延长寿命的重要性。
图片通过可视化方式展示了在特定配置下(FIO 512B 写入、64KiB IU、XFS 文件系统块大小 64KiB、SSD 和文件系统扇区大小 4KiB、启用 LBS)LBS 如何影响块大小和对齐大小分布,从而实现接近 1.0 的低写入放大因子(WAF)。
左侧的“块大小分布”图显示了写入操作的块大小分布情况,大部分集中在 4KB 和 8KB。右侧的“对齐大小分布”图则展示了这些写入操作在物理存储上的对齐情况,也主要集中在 4KB 和 8KB。图中的文字解释说,尽管执行的是 512B 写入,但启用 LBS 后,由于文件系统块大小和 IU 大小的设置,实际的写入和对齐操作以 4KB 和 8KB 为主,从而避免了小块写入导致的 RMW 效应,使得 WAF 非常接近理想值 1.0。这进一步证明了主机操作系统层面的 LBS 优化对于提高 SSD 性能和效率的有效性。
图片对之前讨论的 AWUPF(原子掉电保护单位)与 NPWG(命名空间首选写入粒度,即 IU 大小)之间的关系进行了最终评论。它推荐 AWUPF 应该大于或等于 NPWG 和 IU 大小。图片解释说,之所以采用“大于或等于”,是为了给固态硬盘供应商提供更大的设计灵活性。因为 AWUPF 通常是设计在 SSD 控制器的硬件中的,一旦控制器设计完成就相对固定,而 IU 大小可能会根据不同的容量或产品代进行调整。
图片还指出,独立于 IU 大小,主机可以将写入的交互大小增加到 AWUPF 的上限。这意味着,如果主机认为使用小于 AWUPF 但大于或等于 NPWG 的较小 I/O 大小在某些情况下更有利,它可以在不超过 AWUPF 的前提下进行优化。这允许在满足原子性要求的同时,根据具体的工作负载需求进行灵活的性能调整。
延伸思考
这次分享的内容就到这里了,或许以下几个问题,能够启发你更多的思考,欢迎留言,说说你的想法~
- 大块尺寸(LBS)技术的普及和应用,将对现有数据中心和云计算环境产生哪些深远影响?
- 除了LBS之外,未来SSD主控和闪存技术还可能在哪些方面进行创新,以应对日益增长的数据存储挑战?
- 在追求更高SSD性能的同时,如何兼顾数据可靠性、耐久性和成本效益,找到最佳平衡点?
原文标题:SSD Architecture Challenges with DRAM
Notice:Human's prompt, Datasets by Gemini-2.0-flash-thinking
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-20,如有侵权请联系 cloudcommunity@tencent 删除操作系统实践数据性能samsung本文标签: Samsung大IU落地的应用生态(LBS实践)
版权声明:本文标题:Samsung:大IU落地的应用生态(LBS实践) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747602168a2191727.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论