《KVM虚拟化技术基础与实践》课件1第四章_第1页
《KVM虚拟化技术基础与实践》课件1第四章_第2页
《KVM虚拟化技术基础与实践》课件1第四章_第3页
《KVM虚拟化技术基础与实践》课件1第四章_第4页
《KVM虚拟化技术基础与实践》课件1第四章_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

KVM核心模块配置4QEMU命令基本格式CPU配置内存配置存储器配置网络配置图形显示配置4.1QEMU命令基本格式

QEMU命令基本格式为“qemu-kvm[options][disk_image]”,其选项非常多,不过,大致可分为如下几类:标准选项,USB选项,显示选项,i386平台专用选项,网络选项,字符设备选项,蓝牙相关选项,Linux系统引导专用选项,调试/专家模式选项,PowerPC专用选项,Sparc32专用选项。第4章KVM核心模块配置QEMU的标准选项如下:-namename:设定客户机名称;-Mmachine:指定要模拟的主机类型,例如StandardPC、ISA-onlyPC和Ubuntu14.04PC等,可以使用命令“qemu-system-x86_64-M?”获取所支持的所有类型;-mmegs:设定客户机的RAM大小;-cpumodel:设定CPU模型,例如qemu32、qemu64等。-smp[cpus=]n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]:设定模拟的SMP架构中CPU的个数、每个CPU的core个数及CPU的socket个数等。第4章KVM核心模块配置-numaopts:指定模拟多节点的numa设备;-fdafile:使用指定文件(file)作为软盘镜像,file为/dev/fd0表示使用物理软驱;-fdbfile:使用指定file作为软盘镜像,file为/dev/hda或者/dev/sda表示使用物理硬盘;-hdafile:使用指定file作为硬盘镜像;-hdbfile:使用指定file作为硬盘镜像;-hdcfile:使用指定file作为硬盘镜像;-hddfile:使用指定file作为硬盘镜像;第4章KVM核心模块配置-cdromfile:使用指定file作为CD-ROM镜像,需要注意的是-cdrom和-hdc不能同时使用;-driveoption[,option[,option[,...]]]:定义一个硬盘设备;可用子选项有很多。file=/path/to/somefile:硬件映像文件路径;if=interface:指定硬盘设备所连接的接口类型。index=index:设定同一种控制器类型中不同设备的索引号,即标识号;media=media:定义介质类型为硬盘(disk)还是光盘(cdrom);snapshot=snapshot:指定当前硬盘设备是否支持快照功能,on或off。第4章KVM核心模块配置4.2CPU配置CPU是计算机的核心,负责处理、运算计算机内部的所有数据。QEMU负责模拟客户机中的CPU,使得客户机显示出指定数目的CPU和相关的CPU特性。而当打开KVM时,客户机中CPU指令的执行将由硬件处理器的模拟化功能(如IntelVT-x和AMDSVM)来辅助执行。本节主要介绍KVM中CPU的基本配置和CPU的基本模型。第4章KVM核心模块配置4.2.1CPU设置基本参数

随着科技的快速发展,多核、多处理器以及超线程技术相继出现,SMP(SymmetricMulti-Processor,对称多处理器)系统越来越被广泛使用。QEMU不但可以模拟客户机中的CPU,也可以模拟SMP架构,让客户机在运行时充分利用物理硬件来实现并行处理。

在QEMU中,“-smp”参数是为了配置客户机的SMP系统。在命令行中,关于配置SMP系统的参数如下:-smp[cpus=]n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]第4章KVM核心模块配置主要参数说明:(1) cpus用来设置客户机中使用的逻辑CPU的数量(默认值是1);(2) maxcpus用来设置客户机的最大CPU的数量,最多支持255个CPU。其中,包含启动时处于下线状态的CPU数目;(3) cores用来设置在一个socket上CPUcore的数量;(4) threads用来设置在一个CPUcore上线程的数量;(5) sockets用来设置客户机中看到的总socket的数量。第4章KVM核心模块配置4.2.2CPU模型

每一种虚拟机监视器都定义了自己的策略,让客户机有一个默认的CPU模型。有的VMM会简单地将宿主机中的CPU类型和特性直接传递给客户机使用。在默认情况下,QEMU为客户机提供一个名为qemu64或qemu32的基本CPU模型。虚拟机监视器的这种策略不但可以为CPU提供一些高级的过滤功能,还可以将物理平台根据基本CPU模型进行分组,使得客户机在同一组硬件平台上的动态迁移更加平滑和安全。第4章KVM核心模块配置4.3内存配置

内存是电脑的主要部件,在计算机系统中,占据着非常重要的地位。内存作为一种存储设备是程序中所必不可少的,因为所有的程序都要通过内存将代码和数据提交到CPU中去处理和执行。由于CPU与内存之间进行数据交换的速度是最快的,所以CPU在工作时都会从硬盘调用数据存放在内存中,然后再从内存中读取数据供自己使用。简单来说,内存是电脑的一个缓冲区,内存的大小和访问速度会直接影响电脑的运行速度。

第4章KVM核心模块配置4.3.1内存设置的基本参数

启动客户机时,设置内存大小的参数如下:-m[size=]megs

设置客户机虚拟内存的大小为megsMB字节。在默认情况下,单位为MB,内存大小的默认值为128M。也可以加上“M”或者“G”为后缀,指定使用MB或者GB作为内存分配的单位。第4章KVM核心模块配置4.3.2大页

在Linux环境中,内存是以页Page的方式进行分配的,默认大小为4K。如果需要比较大的内存空间,则需要进行频繁的页分配和管理寻址动作。HugePage是传统4 KPage的替代方案,它的广泛启用开始于Kernel2.6,使用HugePage可以让我们有更大的内存分页。第4章KVM核心模块配置在宿主机中让客户机使用HugePage的指令:第一步,查看宿主机中内存页的大小和HugePage的大小。第二步,创建HugePage目录/dev/hugepages。第三步,挂载hugetlbfs文件系统到Linux的HugePage目录下。第四步,设置HugePage的数量。第五步,启动客户机,并让其使用HugePage内存。第六步,查看宿主机中HugePage的使用情况。第4章KVM核心模块配置在Linux环境中开启HugePage的好处如下:(1)非Swap内存:当开启HugePage的时候,HugePage是不会Swap的;(2)减少TLB负担:TLB是在CPU里面的一块缓冲区域,其中包括了部分PageTable内容。(3)减少PageTable空间负载:在PageTable管理中,每条Page记录会占据64 byte的空间。(4)减少PageTable检索负载。(5)内存性能提升:Page数量的减少和大小的增加,减少了管理过程的复杂性,进一步减小了瓶颈出现的概率。第4章KVM核心模块配置4.4存储器配置

在计算机系统中,存储器(Memory)是记忆设备,主要用来存放程序和数据,是计算机的重要组成部分。随着计算机硬件系统和软件系统的不断发展,计算机应用领域的日益扩大,对存储器的要求也越来越高,既要求存储容量大,又要求存取速度快。和内存相比,磁盘存储容量大,存取速度慢,但是磁盘上的数据可以永久存储,不像内存一样断电就会消失。

本节将以磁盘为例介绍存储器的基本配置。第4章KVM核心模块配置4.4.1常见的存储器配置在QEMU命令行工具中,常见的存储配置的主要参数说明如下所示:-hdafile:此为默认选项,指定file镜像作为客户机中的第一个IDE设备。-cdromfile:指定file作为CD-ROM镜像,/dev/cdrom。也可以将host的/dev/cdrom作为 -cdrom的file参数来使用。注意,-cdrom不能和 -hdc同时使用,因为 -cdrom就是客户机中的第三个IDE设备。第4章KVM核心模块配置4.4.2启动顺序配置在QEMU中,可以使用“-boot”参数指定客户机的启动顺序:-boot[order=drives][,once=drives][,menu=on|off][,splash=splashfile][,splash-time=sp-time]主要参数说明如下:order=drives:在QEMU模拟的x86_64平台中,用“a”和“b”表示第一和第二个软驱,用“c”表示第一个硬盘,用“d”表示CD-ROM光驱,用“n”表示从网络启动。once=drives:表示设置第一次启动的启动顺序,重启后恢复为默认值。splash=splashfile:在menu=on时,设置BIOS的splash的logo图片splashfile。第4章KVM核心模块配置4.4.3QEMU支持的镜像文件格式常见的文件格式做一个详细的介绍:1)

rawraw是qemu-img默认创建的格式,是原始的磁盘镜像格式,它直接将文件系统的存储单元分配给客户机使用,采取了直读直写的策略。它的优势在于可以非常简单、容易地移植到其他模拟器上去使用。

默认情况下,qemu-img的raw格式的文件是稀疏文件,如果客户机文件系统支持“空洞”,那么镜像文件只有在被写有数据的扇区才会真正占用磁盘空间,从而有节省磁盘空间的作用。第4章KVM核心模块配置简而言之,raw有以下几个优点:①寻址简单,访问效率较高;②可以通过格式转换工具方便地转换为其他格式;③可以方便地被宿主机挂载,不用开虚拟机即可在宿主机和虚拟机间进行数据传输。但是,由于raw格式实现简单,也存在很多缺点:不支持压缩、快照、加密和CoW(copy-on-write,写时拷贝)等。第4章KVM核心模块配置2)

cowcow格式是QEMU的copy-on-write镜像文件格式,和raw一样简单,也是创建时分配所有空间。但cow有一个bitmap表记录当前哪些扇区被使用,所以cow可以使用增量镜像,也就是说可以对其做外部快照。目前由于历史遗留原因不支持窗口模式,因而使用较少。3)

qcowqcow是一种比较老的QEMU镜像格式,它在cow的基础上增加了动态增加文件大小的功能,并且支持加密和压缩。但是,一方面其优化和功能不及qcow2,另一方面,读写性能又没有cow和raw好,因而目前qcow使用较少。第4章KVM核心模块配置4)

qcow2qcow2是qcow的一种改进,是QEMU0.8.3版本引入的镜像文件格式。它是QEMU目前推荐的镜像格式,也是一种集各种技术为一体的超级镜像格式。qcow2有以下几大优点:①占用更小的空间,支持写时拷贝,镜像文件只反映底层磁盘的变化;②支持快照,镜像文件能够包含多个快照的历史;③支持基于zlib的压缩方式;④支持AES加密以提高镜像文件的安全性;⑤访问性能很高,接近了raw裸格式的性能。第4章KVM核心模块配置5)

vdivdi(VirtualDiskImage)是兼容Oracle的VirtualBox1.1的镜像文件格式。6)

vmdkvmdk(VirtualMachineDiskFormat)是VMware实现的虚拟机镜像格式,兼容VMWare4版本以上。7)

qedqed(QEMUenhanceddisk)是从QEMU0.14版开始加入的增强磁盘文件格式,为了避免qcow2格式的一些缺点,也为了提高性能,不过目前还不够成熟。第4章KVM核心模块配置4.4.4qemu-img命令qemu-img是QEMU的磁盘管理工具,本节将介绍qemu-img的基本命令及语法:1)

check[-ffmt]filenamecheck命令用来对磁盘镜像文件进行一致性检查,查找镜像文件中的错误。参数 -ffmt是指定文件的格式,如果不指定格式,qemu-img会自动检测,filename是磁盘镜像文件的名称(包括路径)。目前仅支持对“qcow2”、“qed”、“vdi”格式文件的检查。第4章KVM核心模块配置2)create[-ffmt][-ooptions]filename[size]

create命令用来创建一个格式为fmt,大小为size,文件名为filename的镜像文件。根据文件格式的不同,还可以添加多个选项来对该文件进行功能设置。如果想要查询某种格式文件支持哪些选项,可以使用“-o?”,在“-o”选项中各个选项用逗号来分隔。第4章KVM核心模块配置4)

convert[-c][-p][-ffmt][-tcache][-Ooutput_fmt][-ooptions][-ssnapshot_name][-Ssparse_size]filename[filename2[...]]output_filename通过“convert”命令,可以实现不同格式的镜像文件之间的转换。可以将格式为fmt名为filename的镜像文件根据options选项转换成格式为output_fmt名为output_filename的镜像文件。其中,“-c”参数是对输出的镜像文件进行压缩,只有qcow和qcow2格式的镜像文件才支持压缩。第4章KVM核心模块配置5)

info[-ffmt]filenameinfo命令主要用来展示filename镜像文件的信息。如果文件使用稀疏文件的存储方式,则会显示出它本来分配的大小以及实际已占用磁盘空间的大小。如果磁盘映像中存放有客户机快照,则快照的信息也会被显示出来。

第4章KVM核心模块配置6)

snapshot[-l|-asnapshot|-csnapshot|-dsnapshot]filenamesnapshot命令主要用来操作镜像文件中的快照,快照这个功能只支持qcow2格式,raw不支持。快照的主要参数说明如下所示。“-l”:查询并列出镜像文件中的所有快照;“-asnapshot”:让镜像文件使用某个快照;“-csnapshot”:创建一个快照;“-d”:删除一个快照。注意,创建磁盘快照时客户机需要处于关闭的状态。第4章KVM核心模块配置7)

rebase[-ffmt][-tcache][-p][-u]-bbacking_file[-Fbacking_fmt]filenamerebase命令主要用来改变镜像文件的后端镜像文件,只有qcow2和qed格式才支持rebase命令。使用“-bbacking_file”中指定的文件作为后端镜像,后端镜像也被转化为“-Fbacking_fmt”中指定的后端镜像格式。它可以工作于两种模式之下,一种是安全模式,也是默认的模式。此模式下qemu-img会去比较原来的后端镜像与现在的后端镜像的不同进行合理的处理;另一种是非安全模式,可以通过“-u”参数来指定。第4章KVM核心模块配置8)

resizefilename[+|-]sizeresize命令主要用来改变镜像文件的大小。“+”用于增加镜像文件的大小,“-”用于减少镜像文件的大小,而size也支持K、M、G、T等单位。注意,在缩小镜像文件的大小之前,需要确保客户机中的文件系统有空余空间,否则会丢失数据。在增加了镜像文件大小后,还需启动客户机到里面去应用分区工具进行相应的操作才能真正让客户机使用到增加后的镜像空间。不过使用resize命令之前最好做好备份,否则失败的话,可能会导致镜像文件无法正常使用而造成数据丢失。第4章KVM核心模块配置4.4.5Ubuntu客户机的镜像制作过程本小节以Ubuntu12.04为例,详细讲述Ubuntu客户机镜像的制作过程,过程如下:(1)下载要制作为Ubuntu镜像的ISO文件;(2)准备好制作Ubuntu镜像的服务器系统(例如,Ubuntu系统);(3)创建一个10GB大小的镜像“硬盘”(raw格式);#root@kvm-host:~#qemu-imgcreate-frawubuntu12.04.img10GFormatting'ubuntu12.04.img',fmt=rawsize=10737418240第4章KVM核心模块配置(4)上传这个ISO文件到服务器系统上,结合刚创建的镜像“硬盘”引导启动Ubuntu系统安装,具体步骤如下:#root@kvm-host:~#qemu-system-x86_64-m1024ubuntu12.04-desktop-amd64.iso-drivefile=ubuntu12.04.img-bootd进入第一个安装界面后,由于需要安装Ubuntu,因此选择InstallUbuntu。第4章KVM核心模块配置图4-2Ubuntu安装界面1第4章KVM核心模块配置图4-3Ubuntu安装界面2第4章KVM核心模块配置图4-4Ubuntu安装界面3第4章KVM核心模块配置图4-5Ubuntu安装界面4第4章KVM核心模块配置4.4.6Windows客户机的镜像制作过程本小节以Window7为例,详细讲述Window客户机镜像的制作过程,过程如下:(1)下载要制作为Windows7镜像的ISO文件。(2)创建一个10GB大小的镜像“硬盘”(raw格式)。(3)下载Virtio驱动。由于Windows默认不支持Virtio驱动,而管理虚拟机是需要Virtio驱动的,因此需要下载两个Virtio驱动,即:virtio-win-0.1-30.iso和virtio-win-1.1.16.vfd。其中,iso文件中安装了网卡驱动,vfd里面安装了硬盘驱动。第4章KVM核心模块配置(4)使用刚下载的Windows7镜像文件和刚创建的镜像“硬盘”引导系统的安装,映射驱动vfd到软盘A,开启BIOS启动选择菜单,启动时按F12键,进入光盘安装界面,具体命令如下:#root@kvm-host:~#qemu-system-x86_64-m1024-drivefile=win7.img,cache=writeback,if=virtio,boot=on-fdavirtio-win-1.1.16.vfd-cdromwin7-x86.iso-netnic-netuser-bootorder=d,menu=on-usbdevicetablet-nographic-vnc:1第4章KVM核心模块配置图4-6Windows7安装界面1第4章KVM核心模块配置图4-7Windows7安装界面2第4章KVM核心模块配置图4-8Windows7安装界面3第4章KVM核心模块配置图4-9Windows7安装界面4第4章KVM核心模块配置图4-10Windows7安装界面5第4章KVM核心模块配置图4-11Windows7安装界面6第4章KVM核心模块配置图4-12Windows7安装界面7第4章KVM核心模块配置4.5网络配置

在互联网技术飞速发展的今天,网络在人类生活的各个领域有着越来越重要的影响。而在虚拟化技术中,QEMU对客户机也提供了多种类型的网络支持。在QEMU中,主要给客户机提供了以下4种不同模式的网络配置方案:

(1)基于网桥(Bridge)的虚拟网卡模式。(2)基于NAT(NetworkAddresssTranslation)的虚拟网络模式。(3)

QEMU内置的用户模式网络。(4)直接分配网络设备模式(例如,VT-d)。第4章KVM核心模块配置QEMU命令行中基本的“-net”参数如下:-netnic[,vlan=n][,macaddr=mac][,model=type][,name=name][,addr=addr][,vectors=v]主要参数说明如下:-netnic:是必需的参数,表明为客户机创建客户机网卡。vlan=n:表示将建立一个新的网卡。macaddr=mac:设置网卡的MAC地址。model=type:设置模拟的网卡的类型,默认为rtl8139。name=name:设置网卡的名字,该名称仅在QEMUmonitor中可能用到,一般由系统自动分配。第4章KVM核心模块配置4.5.1网桥模式

在QEMU中,网桥模式是一种比较常见的网络连接模式。在这种模式下,客户机和宿主机共享一个物理网络,客户机的IP是独立的,它和宿主机是在同一个网络里面。客户机可以访问外部网络,外部网络也可以访问这台客户机。在QEMU命令行中,关于网桥模式的网络参数如下:net  tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,helper=helper] [,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostforce=on|off]第4章KVM核心模块配置主要参数说明如下:-nettap:是必需的参数,表示创建一个tap设备。vlan=n:设置该设备VLAN编号,默认值为0。name=str:设置网卡的名字。在QEMUmonitor里面用到,一般由系统自动分配。fd=h:连接到现在已经打开着的TAP接口的文件描述符。ifname=name:表示tap设备的接口名字。script=file:表示host在启动guest时自动执行的脚本,默认为/etc/qemu-ifup。第4章KVM核心模块配置downscript=dfile:表示host在关闭guest时自动执行的脚本,默认值为/etc/qemu-ifdown;如果不需要执行,则设置为“downscript=no”。helper=helper:设置启动客户机时在宿主机中运行的辅助程序,包括去建立一个TAP虚拟设备,它的默认值为/usr/local/libexec/qemu-bridge-helper,一般不用自定义,采用默认值即可。sndbuf=nbytes:限制TAP设备的发送缓冲区大小为n字节,当需要流量进行流量控制时可以设置该选项。其默认值为“sndbuf=0”,即不限制发送缓冲区的大小。第4章KVM核心模块配置如何在宿主机上通过配置实现网桥方式:要采用网桥模式的网络配置。在宿主机中,要安装两个配置网络所需的软件包,uml-utilities和bridge-utils。使用“lsmod”命令查看KVM相关模块和tun的模块是否加载。检查/dev/net/tun,查看当前用户是否用于可读写权限。建立一个bridge,并将其绑定在一个可以正常工作的网络接口上,同时让bridge成为连接本机和外部网络的接口。第4章KVM核心模块配置(5)准备启动脚本qemu_ifup,其功能是在启动时创建和打开指定的TAP接口,并将该接口添加到虚拟网桥中。(6)准备结束脚本qemu_ifdown,主要功能是退出时将该接口从虚拟网桥中移除,然后关闭该接口。一般不用做这个,QEMU应会自动做。(7)用“qemu-kvm”命令启动bridge模式的网络。第4章KVM核心模块配置4.5.2NAT模式

使用NAT模式,就是让客户机借助NAT功能,通过宿主机所在的网络来访问互联网。由于NAT模式下的客户机TCP/IP配置信息是由DHCP服务器提供的,无法进行手工修改,因此客户机也就无法和本局域网中的其他真实主机进行通讯。使用NAT模式进行网络连接,可支持宿主机和客户机之间的互访,也支持客户机访问网络。与网桥方式不同的是,当外界访问客户机时NAT就表现出局限性,需要在拥有IP的宿主机上实现端口映射,让宿主机IP的一个端口被重新映射到NAT内网的客户机相应端口上。

第4章KVM核心模块配置如何在宿主机上通过配置实现NAT方式:检查宿主机,将网络配置选项中与NAT相关的选项配置好。在宿主机中,可以通过“apt-getinstall”命令安装必要的软件包:bridge-utils,iptables和dnsmasq。其中,bridge-utils是一个桥接工具,里面包含管理bridge的工具brctl。准备一个为客户机建立NAT所使用的qemu-ifup-NAT脚本。这个脚本的主要功能是:建立bridge,设置bridge的内网IP,并且将客户机的网络接口与之绑定。第4章KVM核心模块配置(4)准备一个关闭客户机时调用的网络qemu-ifdow-NAT脚本,主要功能是:关闭网络,解除bridge绑定,删除bridge和iptables的NAT规则。(5)启动客户机。(6)在客户机中,通过DHCP动态获得IP。默认网关是宿主机中bridge的IP(192.168.122.1)。此刻,客户机已经可以连接到外部网络,但是外部网络(宿主机除外)无法直接连接到客户机中。(7)为了让外部网络也能访问客户机,可以在宿主机中添加iptables规则来进行端口映射。第4章KVM核心模块配置4.6图形显示配置

在客户机中,图形显示是非常重要的功能。本节主要介绍KVM中图形界面显示的相关配置。显示选项用于定义客户机启动后的显示接口的相关类型及属性等,常见的选项如下。-nographic:默认情况下,QEMU使用SDL来显示VGA输出,而此选项用于禁止图形接口。此时,QEMU类似一个简单的命令行程序,其仿真串口设备将被重定向到控制台。第4章KVM核心模块配置4.6.1SDL使用SDL是SimpleDirectMediaLayer(简易直控媒体层)的缩写,是为多媒体编程而设计的一个跨平台的多媒体库。它通过OpenGL和2D视频帧缓冲,提供了针对音频、视频、键盘、鼠标、控制杆及3D硬件的低级别的访问接口,具有优越的跨平台特性,支持以下操作系统:Linux、Windows、WindowsCE、BeOS、MacOS、MacOSX、FreeBSD、NetBSD、OpenBSD、BSD/OS、Solaris、IRIX以及QNX。同时代码中包含了针对AmigaOS、Dreamcast、Atari、AIX、OSF/Tru64、RISCOS、SymbianOS和OS/2的支持。第4章KVM核心模块配置

在QEMU模拟器中,图形显示默认的就是使用SDL。要使用它,就得确保在编译时,安装了SDL软件包,配置对SDL的支持,然后才能编译SDL功能到QEMU的命令行工具,从而启动客户机时使用SDL的功能。如果未安装SDL软件包,则在运行QEMU命令行启动客户机时会有产生“无法加载libSDL”的错误。第4章KVM核心模块配置4.6.2VNC的使用

温馨提示

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

评论

0/150

提交评论