基于可编程网卡的高性能数据中心系统研究_第1页
基于可编程网卡的高性能数据中心系统研究_第2页
基于可编程网卡的高性能数据中心系统研究_第3页
基于可编程网卡的高性能数据中心系统研究_第4页
基于可编程网卡的高性能数据中心系统研究_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于可编程网卡的

高性能数据中心系统研究背景软件网络功能和数据结构处理的性能瓶颈可编程网卡在数据中心内的部署研究内容基于可编程网卡的数据中心系统网络功能加速–ClickNP数据结构加速–KV-Direct通信原语加速–SocksDirect报告总结答辩报告提纲现代数据中心架构计算节点存储节点网络节点柜顶交换机核心交换机核心交换机柜顶交换机柜顶交换机柜顶交换机管理节点汇聚交换机汇聚交换机汇聚交换机汇聚交换机InternetAWS,Azure,谷歌云,阿里云,腾讯云…虚拟化的云数据中心虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点虚拟本地盘虚拟云盘虚拟网络普通网卡虚拟网络功能普通网卡网络节点数据结构处理普通网卡存储节点内存/

Flash数据中心网络客户应用操作系统客户应用操作系统客户应用操作系统内存/

Flash网络通信架构客户虚拟机1虚拟网络软件普通网卡防火墙负载均衡…普通网卡计算节点1网络节点虚拟网数据包虚拟网数据包封装网络功能客户应用操作系统套接字通信原语客户虚拟机2虚拟网络软件普通网卡计算节点2虚拟网数据包虚拟网数据包封装客户应用操作系统套接字通信原语数据中心网络性能的提升LOGSCALECPU核的网络数据包

处理能力受限于CPU

主频和指令级并行度吞吐量(Gbps)1GbE10GbE40GbE50GbE100GbE大规模部署的时间25GbE操作系统内核占了网络应用的大部分CPU时间操作系统通信原语的性能瓶颈通信原语开销浪费了低延迟数据中心网络来源:LuizBarroso,MikeMarty,DavidPatterson,ParthasarathyRanganathan.AttackoftheKillerMicroseconds.CommunicationsoftheACM,April2017虚拟化的网络功能传统的专用硬件不够灵活用软件实现网络功能以提高灵活性负载均衡

虚拟机防火墙

虚拟机IPSec网关

虚拟机NAT

虚拟机负载均衡防火墙IPSec

网关NAT8软件网络功能的性能瓶颈处理能力受限处理40Gbps线速所需的CPU核数膨胀且不稳定的延迟给数据平面增加了数十微秒至数毫秒的延迟在高负载下的延迟膨胀更加严重然而1毫秒的延迟就已经违反服务质量保证网络功能软件实现1500Bpkt

(正常情况)64Bpkt

(最坏情况)NVGRE

隧道解包Hyper-V

虚拟交换机5100防火墙(8K

规则)Linuxiptables21480云存储的概念架构客户虚拟机1网络存储软件普通网卡计算节点1数据结构处理普通网卡存储节点1内存/

Flash数据结构处理普通网卡存储节点2内存/

Flash客户虚拟机2网络存储软件普通网卡计算节点2CPU并行度的限制同时计算和随机访存时,CPU每个核每秒仅能处理5M次键值操作对比:仅随机访存时,8个DDR4内存通道每秒可达850M次软件数据结构处理仅利用了37%的内存带宽。多核负载均衡的难题每个键根据哈希映射到固定的CPU核由于不同键的访问频率不均,CPU核的负载也不均衡CPU核数越多,负载越不均衡:在YCSB长尾负载下,64核的最高负载是平均值的5.5倍,10核的最高负载只是均值的1.5倍。软件数据结构处理的性能问题背景软件网络功能和数据结构处理的性能瓶颈可编程网卡在数据中心内的部署研究内容基于可编程网卡的数据中心系统网络功能加速–ClickNP数据结构加速–KV-Direct通信原语加速–SocksDirect报告总结答辩报告提纲异构计算的兴起LOGSCALE重定义摩尔定律:

定制硬件的性能

每18个月翻番通用处理器:频率和Dennard缩放的终结用什么异构硬件加速?CPUGPUFPGA网络处理器(NP)网络交换机(ToR)吞吐量低高高高很高延迟高很高低低低功耗高高低低低大规模部署价格高很高低低低可编程性很高高高高低通用性高高高低低通用处理器专用处理器高并行性数以十万计的逻辑单元(包含逻辑门和寄存器)数以千计的内存块(BRAM):总容量数MB,总带宽数TB/s数以千计的DSP乘法计算单元上述逻辑单元、内存块、DSP间可以灵活互连高速互连FPGA硬核(hard

IP)可连接网络、PCIe、板上DRAM等延迟1

us以下,带宽数十GB/s编程困难传统上使用Verilog、VHDL等硬件描述语言编程FPGA可重构硬件微软Azure云的FPGA部署来源:AReconfigurableFabricforAcceleratingLarge-ScaleDatacenterServices,ISCA’14ACloud-ScaleAccelerationArchitecture,MICRO’16CPU/GPU/TPU计算+

NVMe

SSD存储QPIDRAMDRAM普通网卡CPU140Gb/s2网络Gen3x8Gen32x8FPGADRAMCPU40Gb/s可编程网卡组成的硬件加速平面搜索引擎深度学习加密解密数据库可编程网卡可编程网卡=普通网卡+

FPGA通过已有的数据中心网络互联每台Azure云的物理服务器安装一块智能网卡背景软件网络功能和数据结构处理的性能瓶颈可编程网卡在数据中心内的部署研究内容基于可编程网卡的数据中心系统网络功能加速–ClickNP数据结构加速–KV-Direct通信原语加速–SocksDirect报告总结答辩报告提纲回顾:数据中心架构虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点虚拟本地盘虚拟云盘虚拟网络普通网卡虚拟网络功能普通网卡网络节点数据结构处理普通网卡存储节点内存/

Flash数据中心网络计算、网络、存储节点存在性能瓶颈客户应用操作系统客户应用操作系统客户应用操作系统内存/

Flash1.1.虚拟网络加速虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点可编程网卡数据中心网络虚拟网卡1虚拟网卡2虚拟网卡3虚拟网络客户应用操作系统客户应用操作系统客户应用操作系统内存/

Flash虚拟本地盘虚拟云盘虚拟网络功能普通网卡网络节点数据结构处理普通网卡存储节点内存/

Flash1.2.虚拟网络功能加速虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点可编程网卡数据中心网络虚拟网卡1虚拟网卡2虚拟网卡3虚拟网络客户应用操作系统客户应用操作系统客户应用操作系统内存/

Flash虚拟本地盘虚拟云盘数据结构处理普通网卡存储节点内存/

Flash网络节点可编程网卡虚拟网络功能数据面虚拟网络功能控制面2.1.虚拟存储加速虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点可编程网卡网络节点数据中心网络虚拟网卡1虚拟网卡2虚拟网卡3虚拟本地盘虚拟云盘虚拟网络可编程网卡虚拟网络功能数据面虚拟网络功能控制面客户应用操作系统客户应用操作系统客户应用操作系统内存/

Flash数据结构处理普通网卡存储节点内存/

Flash2.2.数据结构处理加速虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点可编程网卡网络节点存储节点内存/

Flash数据中心网络虚拟网卡1虚拟网卡2虚拟网卡3虚拟本地盘虚拟云盘虚拟网络可编程网卡虚拟网络功能数据面虚拟网络功能控制面可编程网卡数据结构处理数据面数据结构处理控制面客户应用操作系统客户应用操作系统客户应用操作系统内存/

Flash3.操作系统加速虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点可编程网卡网络节点存储节点内存/

Flash数据中心网络虚拟网卡1虚拟网卡2虚拟网卡3虚拟本地盘虚拟云盘虚拟网络可编程网卡虚拟网络功能数据面虚拟网络功能控制面可编程网卡数据结构处理数据面数据结构处理控制面客户应用通信库客户应用通信库客户应用通信库内存/

Flash传输协议基于可编程网卡的数据中心系统虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点可编程网卡网络节点存储节点内存/

Flash数据中心网络虚拟网卡1虚拟网卡2虚拟网卡3虚拟本地盘虚拟云盘虚拟网络可编程网卡虚拟网络功能数据面虚拟网络功能控制面可编程网卡数据结构处理数据面数据结构处理控制面客户应用通信库客户应用通信库客户应用通信库内存/

Flash传输协议背景软件网络功能和数据结构处理的性能瓶颈可编程网卡在数据中心内的部署研究内容基于可编程网卡的数据中心系统网络功能加速–ClickNP数据结构加速–KV-Direct通信原语加速–SocksDirect报告总结答辩报告提纲虚拟网络、网络功能加速虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点可编程网卡网络节点存储节点内存/

Flash数据中心网络虚拟网卡1虚拟网卡2虚拟网卡3虚拟本地盘虚拟云盘虚拟网络可编程网卡虚拟网络功能数据面虚拟网络功能控制面可编程网卡数据结构处理数据面数据结构处理控制面客户应用通信库客户应用通信库客户应用通信库内存/

Flash传输协议挑战:FPGA编程困难硬件描述语言难写、难调、难改PCIeCoreDMAEnginealways@(posedgeSYSCLKornegedgeRST_B)beginif(!RST_B)DMA_TX_DATA<=`UD8'hff;elseDMA_TX_DATA<=`UDDMA_TX_DATA_N;end//send:"helloworld!"always@(posedgeSYSCLK)beginif(rst)begindma_data<=88’h0;dma_valid<=1’b0;elseif(dma_start)begindma_data<=88’h68656C6C6F20776F726C64;dma_valid<=1’b1;endelsebegindma_data<=88’h0;dma_valid<=1’b0;endendend现有高层次综合技术的不足OpenCL

(为GPU设计的批处理模型)28AmemBmemCmem并行执行的核板上共享内存问题:板上共享内存成为吞吐量瓶颈;批处理延迟高(1ms)主机内存网络ClickNP编程模型基于消息通信的流式处理29优点:管道的吞吐量可扩放;流式处理延迟低(1μs)AmemBmemCmem并行执行的核(元件)通过

管道,而非共享内存来通信主机内存网络元件:类比一个处理器核输入管道数据处理函数主机控制信号、命令输出管道内部状态信号处理函数(中断)(I/O)(I/O)(reg/mem)(主线程)(ISR)30ClickNP元件库近200个元件包括数据包解析、校验和计算、隧道封装/解封装、加密、哈希表、前缀匹配、数据包调度、流量控制等吞吐量:200Mpps/100Gbps平均延迟0.19us,最高延迟0.8us代码行数:平均80,最高196元件时钟频率(MHz)峰值性能延迟(时钟周期数)逻辑资源%BRAM内存资源%L4_Parser221.9113.6Gbps110.8%0.2%IPChecksum226.8116.1Gbps182.3%1.3%NVGRE_Encap221.8113.6Gbps91.5%0.6%AES_CTR217.027.8Gbps704.0%23.1%SHA1220.8113.0Gbps1057.9%6.6%CuckooHash209.7209.7Mpps382.0%65.5%HashTCAM207.4207.4Mpps4818.7%22.0%LPM_Tree221.8221.8Mpps1814.3%13.2%SRPrioQueue214.5214.5Mpps412.6%0.6%RateLimiter141.5141.5Mpps1416.9%14.1%网络功能示例:抓包工具ClickNP配置文件(元件间的连接):from_torCountTeeto_torloggerFPGACPU32Count元件:ClickNP开发工具链33CatapultFPGAOSClickNPFPGA主机CatapultPCIe驱动ClickNP运行库ClickNP主机进程管程工作线程ClickNP元件ClickNP管程ClickNP编译器

HLS运行库PCIeI/O管道

FPGA上的HLS运行库ClickNP脚本中间C代码VerilogC编译器HLS工具优化:利用FPGA并行性组件间并行流水线并行数据并行组件内并行原则1:最小化内存依赖

使用寄存器取代片上内存

延迟写入内存

内存分片原则2:平衡流水线各级延迟

循环展开

把慢路径卸载到另一个组件异步执行34ClickNP开发效率与性能网络应用代码行数资源开销(占芯片面积比例)吞吐量(相比CPU软件)平均延迟(相比CPU软件)数据包生成器66516%18x25x抓包工具2508%17x18x防火墙53832%22x40xIPSec网关69535%60x3x负载均衡器86036%55x12x数据包调度器58411%32x10x应用场景:通过Internet加密连接多个数据中心或数据中心与办公园区IPSec网关的应用性能吞吐量随数据包大小的稳定性延迟随负载高低的稳定性云数据中心办公园区IPSec

网关IPSec

网关Internet问题软件网络功能的性能瓶颈。创新点提出首个基于高级语言、能在40

Gbps网络中实现线速处理的FPGA网络功能处理框架。主要挑战FPGA硬件描述语言难以编程,现有OpenCL高级语言编程框架不适合网络功能处理。主要贡献实现了ClickNP开发工具链,与多种商用高层次综合工具集成。基于ClickNP设计和实现了200多个网络元件,并用这些元件组建起多种网络功能。相比基于CPU的软件网络功能,ClickNP的吞吐量提高了10倍,延迟降低到1/10;且具有可忽略的CPU开销。是首个完全用高级语言编程,且能达到40

Gbps线速数据包处理的FPGA网络功能处理平台。ClickNP小结背景软件网络功能和数据结构处理的性能瓶颈可编程网卡在数据中心内的部署研究内容基于可编程网卡的数据中心系统网络功能加速–ClickNP数据结构加速–KV-Direct通信原语加速–SocksDirect报告总结答辩报告提纲数据结构加速虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点可编程网卡网络节点存储节点内存/

Flash数据中心网络虚拟网卡1虚拟网卡2虚拟网卡3虚拟本地盘虚拟云盘虚拟网络可编程网卡虚拟网络功能数据面虚拟网络功能控制面可编程网卡数据结构处理数据面数据结构处理控制面客户应用通信库客户应用通信库客户应用通信库内存/

Flash传输协议键值存储:基础数据结构缓存共享数据结构最新微博用户ID数据库查询查询结果键值网站访客浏览器信息图中的点机器学习特征权重键值数据库事务序列号相邻的点越来越重要的应用键值存储:基础数据结构共享数据结构图中的点机器学习特征权重键值数据库事务序列号相邻的点越来越重要的应用设计目标高性能低延迟写操作比例高

向量操作

____原子操作KV-Direct相关工作软件

(内核绕过)单边RDMAKV-Direct

基于可编程网卡的键值存储把键值处理从服务器端

CPU卸载到可编程网卡的FPGA上软件

(内核TCP/IP)瓶颈:操作系统

网络协议栈瓶颈:CPU随机内存访问和键值操作处理瓶颈:1.通信:每次键值操作多轮访问2.同步:写操作需要同步KV-Direct系统架构网络网络解码请求调度哈希表网络编码负载均衡PCIe

(主机内存)智能网卡DRAM内存分配挑战1:网卡与CPU间带宽小ToR交换机主机DRAM(256GB)PCIeGen3

x16DMA40GbEFPGACPUNIC

可编程网卡网卡DRAM(4GB)13GB/s120Mops需要尽量减少每次键值操作的内存访问次数挑战2:网卡与CPU间延迟高ToR交换机主机DRAM(256GB)PCIeGen3

x16DMA40GbEFPGACPUNIC

可编程网卡板上DRAM

(4GB)1us延迟原子操作存在依赖:需要乱序执行,隐藏PCIe延迟挑战3:利用网卡上的DRAMToR交换机主机DRAM(256GB)PCIeGen3

x16DMA40GbEFPGACPUNIC

可编程网卡板上DRAM

(4GB)如何充分利用板上DRAM?做缓存,太慢;做负载均衡,太小。方法:缓存与负载均衡结合13GB/s120Mops12GB/s100Mops挑战4:网络带宽有限ToR交换机主机DRAM(256GB)PCIeGen3

x16DMA40GbEFPGACPUNIC

可编程网卡板上DRAM

(4GB)13GB/s120Mops5GB/s60

Mpps网卡与主存的PCIe带宽有限

bucketizedchaining哈希表

slab动态内存分配+懒惰垃圾回收

网卡与主存的PCIe延迟较高

访问同一个键的操作有依赖

缓存+乱序执行利用带宽有限的网卡DRAM

缓存与负载均衡结合

一部分可缓存区域用DRAM缓存,另一部分直通PCIe

网络带宽有限

客户端批量发送

向量操作性能优化方案KV-Direct系统性能均匀分布吞吐量长尾分布吞吐量延迟多网卡的性能可扩放性多网卡的性能可扩放性12.2亿次KVop/s357瓦功耗KV-Direct性能比较吞吐量(Mops)

(读/写)功耗(Kops/W)技术延迟(us)

(读/写)Memcached1.5/1.55/5传统50/50MemC34.3/4.314/14传统50/50RAMCloud6/120/3.3内核绕过5/14MICA(12网卡)137/135342/337内核绕过81/81FARM6/330(261)/15单边

RDMA4.5/10DrTM-KV115/14500(3972)

/60单边RDMA3.4/6.3HERD35/25490/300双边RDMA4/4FPGA-Xilinx14/14106/106FPGA3.5/4.5Mega-KV166/80330/160GPU280/280KV-Direct(单网卡)180/1141487(5454)/942(3454)智能网卡4.3/5.4KV-Direct(10网卡)1220/6103417(4518)/1708(2259)智能网卡4.3/5.4*括号内的功耗指的是网卡的功耗,针对KV-Direct、FARM等绕过服务器端CPU的系统。问题软件数据结构处理的性能瓶颈。创新点提出用可编程网卡加速远程数据结构访问。在服务器端绕过CPU,用可编程网卡通过PCIe直接访问主机内存。主要挑战可编程网卡访问主机内存性能受限。主要贡献把单边RDMA的内存操作语义扩展到键值操作语义。为可编程网卡设计了哈希表、内存分配器、乱序执行引擎、负载均衡和缓存、向量操作等一系列性能优化。实现了10倍于CPU的能耗效率和微秒级的延迟,是首个单机性能达到10亿次每秒的通用键值存储系统。KV-Direct小结背景软件网络功能和数据结构处理的性能瓶颈可编程网卡在数据中心内的部署研究内容基于可编程网卡的数据中心系统网络功能加速–ClickNP数据结构加速–KV-Direct通信原语加速–SocksDirect报告总结答辩报告提纲操作系统通信原语加速虚拟机监视器(Hypervisor)虚拟机1虚拟机2虚拟机3计算节点可编程网卡网络节点存储节点内存/

Flash数据中心网络虚拟网卡1虚拟网卡2虚拟网卡3虚拟本地盘虚拟云盘虚拟网络可编程网卡虚拟网络功能数据面虚拟网络功能控制面可编程网卡数据结构处理数据面数据结构处理控制面客户应用通信库客户应用通信库客户应用通信库内存/

Flash传输协议套接字:操作系统通信原语操作系统网卡发送方主机客户应用加锁send系统调用VFS

send拷贝数据,分配内存TCP/IP协议TCP发送缓冲区网络数据包标准C库send套接字操作操作系统网卡接收方主机客户应用加锁recv系统调用VFS

recv拷贝数据,释放内存TCP/IP协议TCP接收缓冲区网络数据包标准C库recv套接字操作事件通知唤醒进程进程调度网络数据包系统调用

用户态库,管程负责特权操作多线程共享连接需要同步

基于令牌的共享,为常见情况优化,并兼容特殊情况(如fork)缓冲区管理

新的环形缓冲区设计TCP/IP协议栈

用可编程网卡(RDMA)实现主机间可靠通信;

用共享内存实现主机内进程间通信数据拷贝

批量页面重映射技术操作系统的通知和调度

协作式多进程消除套接字开销的技术SocksDirect性能单机进程间吞吐量单机进程间往返延迟跨机器网络吞吐量跨机器网络往返延迟SocksDirectCPU核数可扩放性单机进程间跨机器网络SocksDirect实际应用性能NginxHTTP请求端到端延迟问题Linux套接字通信原语的性能差。创新点提出用户态运行库和网卡硬件传输层相结合的方法实现套接字通信原语,从而绕过操作系统内核。主要挑战操作系统虚拟文件系统层功能复杂,兼容性和性能存在矛盾。主要贡献设计实现了一个用户态套接字系统SocksDirect,与现有应用程序完全兼容,能实现接近硬件极限的吞吐量和延迟,且多核性能具有可扩放性。消除线程间同步、缓冲区管理、大数据拷贝、进程唤醒等一系列开销。相比Linux提升了7至20倍吞吐量,降低延迟到1/17至1/35,并将Web服务器的HTTP延迟降低到1/5.5。SocksDirect小结背景软件网络功能和数据结构处理的性能瓶颈可编程网卡在数据中心内的部署研究内容基于可编程网卡的数据中心系统网络功能加速–ClickNP数据结构加速–KV-Direct通信原语加速–SocksDirect报告总结答辩报告提纲本文提出了一个基于可编程网卡的高性能数据中心系统。利用可编程网卡提高云计算中计算、网络和存储节点的性能,并降低成本。创新点1:提出用基于FPGA的可编程网卡加速云计算中的虚拟网络功能。为了简化编程,提出了首个适用于高速网络数据包处理、基于高级语言的FPGA编程框架。相比传统基于CPU的网络功能,把吞吐量提高了10倍,延迟降低到1/10,为每个计算节点节约了1/5的CPU核。创新点2:提出用可编程网卡加速远程数据结构访问。我们以内存键值存储系统为例,在服务器端绕过CPU,用网卡直接访问主机内存,实现了10倍于CPU的吞吐量和微秒级的延迟,是首个单机性能达到10亿次每秒的通用键值存储系统。创新点3:为了降低操作系统网络协议栈的开销,提出一个软硬件结合的用户态套接字通信系统,与现有应用程序完全兼容,并能实现接近硬件极限的吞吐量和延迟,解决了长期以来通用网络协议栈性能较低、专用网络协议栈兼容性较差的矛盾。报告总结展望:可编程网卡成为一等公民传统加速架构CPU把规则的任务卸载到FPGA可编程网卡架构FPGA把不规则的任务卸载到CPUCPUDRAMFPGASSDGPU网卡网络FPGADRAMCPUSSDGPU网卡网络DRAMDRAM可编程网卡ClickNP:HighlyflexibleandHigh-performanceNetworkProcessingwithReconfigurableHardware

BojieLi,KunTan,Layong(Larry)Luo,YanqingPeng,RenqianLuo,NingyiXu,YongqiangXiong,PengCheng,EnhongChen

Proceedingsofthe2016ACMSIGCOMMConference(SIGCOMM‘16)KV-Direct:High-PerformanceIn-MemoryKey-ValueStorewithProgrammableNIC

BojieLi,ZhenyuanRuan,WencongXiao,YuanweiLu,YongqiangXiong,AndrewPutnam,EnhongChen,LintaoZhang

Proceedingsofthe26thSymposiumonOperatingSystemsPrinciples(SOSP‘17)SocksDirect:DatacenterSocketsCanBeFastandCompatibleBojieLi,TianyiCui,ZiboWang,WeiBai,LintaoZhangProceedingsofthe2019ACMSIGCOMMConference(SIGCOMM‘19)主要获奖:2017年微软学者奖学金2017年博士生国家奖学金主要科研成果FastandCompatibleUser-SpaceContainerNetworkingwithProgrammableNIC

BojieLi.(Collaborators:ZiboWanga

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论