




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
虚拟化技术案例一、KVM日常管理一、实验目的(1) 掌握通过VIRSH对虚拟机进行日常管理的方式。(2) 掌握VNC的使用方式。(3) 理解虚拟机进行CPU扩容,内存扩容及优化的概念。二、实验原理可以使用多种方式创建虚拟机,例如qemu,virt-manager等。本例使用virt-install创建Ubuntu14.04虚拟机demo。以demo虚拟机为例,通过virsh工具进行CPU扩容,内存扩容,网络桥接,内存优化,磁盘I/O优化测试等,通过这些方式,让读者掌握KVM虚拟机的日常管理操作。三、实验环境宿主机操作系统:Ubuntu14.04版本,4.2.0-27-generic内核,QEMU2.0.0版本,IP地址192.168.70.204。虚拟机操作系统:Ubuntu14.04版本。四、实验内容及步骤1、VIRSH创建和管理虚拟机(1) 在宿主机上,创建虚拟磁盘,-f指定格式,代码如下所示:rootxjy-pc:/home/kvm# qemu-img create -f raw /home/kvm/ubuntu.raw 10GFormatting /home/kvm/ubuntu.raw, fmt=raw size=10737418240(2) 使用virt-install(读者也可以通过其他方式创建虚拟机),通过步骤一中创建的虚拟磁盘,创建一台Ubuntu虚拟机,命名为demo,指定VNC端口号。如下所示:rootxjy-pc:/home/kvm# virt-install -name demo -virt-type kvm -ram 1024 -cdrom /home/kvm/iso/ubuntu-14.04-desktop-amd64.iso -disk /home/kvm/ubuntu.raw -network network=default -graphics vnc,listen=0.0.0.0 -noautoconsoleStarting install.Creating domain. | 0 B 00:00 Domain installation still in progress. You can reconnect to the console to complete the installation process.(3) 在另外一台Windows操作系统中,打开一个VNC客户端,输入服务器IP地址和VNC端口号(这里是192.168.70.204:5900),连接建立的KVM虚拟机,如图1所示。图1 VNC连接KVM虚拟机(4) 将步骤二中的Ubuntu虚拟机逐步进行安装,图2为安装过程界面,安装完成后,图3所示为Ubuntu虚拟机启动后界面。图2 Ubuntu14.04的安装界面图3 Ubuntu14.04虚拟机(5) 可以使用virsh list查看已经启动的虚拟机,如果未启动,使用命令“virsh start demo”进行启动,代码如下所示:rootxjy-pc:/etc/libvirt/qemu# virsh list -all Id Name State- - demo shut offrootxjy-pc:/etc/libvirt/qemu# virsh start demoDomain demo startedrootxjy-pc:/etc/libvirt/qemu# virsh list -all Id Name State- 12 demo running(6) 可以使用“virsh shutdown demo”关闭demo虚拟机,使用“virsh destroy demo”强制关闭demo虚拟机电源。如下所示:rootxjy-pc:/etc/libvirt/qemu# virsh list -all Id Name State- 12 demo runningrootxjy-pc:/etc/libvirt/qemu# virsh destroy demoDomain demo destroyedrootxjy-pc:/etc/libvirt/qemu# virsh list -all Id Name State- - demo shut off(7) KVM虚拟机配置文件默认位置为: /etc/libvirt/qemu/,可以通过配置文件定义并启动虚拟机,命令为:virsh create /etc/libvirt/qemu/demo.xml。(8) 通过virsh将内存中运行的虚拟机导出至虚拟机配置文件,命令为:# virsh dumpxml demo /etc/libvirt/qemu/demo2.xml,如图4所示。图4 将虚拟机导出xml文件(9) 通过“virsh edit demo”可以编辑KVM虚拟机配置文件,virsh edit将调用vi命令编辑/etc/libvirt/qemu/demo.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。2、CPU扩容(1) 使用“virsh edit”编辑虚拟机,为了实现CPU的热添加,就需要更改CPU的最大值,当然热添加值不能超过最大值。修改demo虚拟机的vcpu的配置当前为1,自动扩容,最大为4,代码如下:rootxjy-pc:/etc/libvirt/qemu# virsh edit demo demo 7ed0d5dd-d283-5390-9575-c1458db792fd 1048576 1048576 4 hvm (2) 关闭虚拟机demo,再次启动,并使用“virsh setvcpus”命令将demo热修改为2个cpu。rootxjy-pc:/etc/libvirt/qemu# virsh shutdown demoDomain demo is being shutdownrootxjy-pc:/etc/libvirt/qemu# virsh start demo Domain demo startedrootxjy-pc:/etc/libvirt/qemu# virsh setvcpus demo 2 -live(3) 通过VNC登录KVM虚拟机,使用命令“grep processor /proc/cpuinfo |wc -l”查看是否扩容成功,如果结果为2,说明扩容成功。3、内存扩容(1) 内存的设置拥有一个气球(balloon)机制,可以增大也可以减少,但要设置一个最大值,默认并没有最大值,可以在安装时指定。(2) 使用virsh edit编辑demo虚拟机的配置文件,标签表示最大内存。将图5中标签内容设置为4194304(4G),如图6所示。标签内容表示当前内存为1048576(1G)。图5 demo虚拟机配置文件图6 修改demo虚拟机配置文件(3) 配置文件修改后,关闭虚拟机demo,再次启动。如下所示:rootxjy-pc:/etc/libvirt/qemu# virsh shutdown demoDomain demo is being shutdownrootxjy-pc:/etc/libvirt/qemu# virsh start demoDomain demo started(4) demo虚拟机内存修改之前使用“virsh qemu-monitor-command”命令查看demo的当前内存。代码如下,“balloon: actual=1024”表示当前的内存为1024M,即1G。rootxjy-pc:/etc/libvirt/qemu# virsh qemu-monitor-command demo -hmp -cmd info balloonballoon: actual=1024(5) 将demo内存热修改为2097M,即2G。修改完毕后再次查看当前内存,代码如下:rootxjy-pc:/etc/libvirt/qemu# virsh qemu-monitor-command demo -hmp -cmd balloon 2097rootxjy-pc:/etc/libvirt/qemu# virsh qemu-monitor-command demo -hmp -cmd info balloonballoon: actual=2097(6) 可以看出内存已经热修改为2G。4、网络管理(1) 在默认情况KVM的网络是NAT模式,但是在生产情况,用的多的都是网桥模式。(2) 首先在宿主机上添加一个网桥br0,并查看网桥信息。使用命令“brctl”。代码如下:rootxjy-pc:# brctl addbr br0rootxjy-pc:# brctl showbridge name bridge id STP enabled interfacesbr0 8000.000000000000 novirbr0 8000.fe540048bd84 yes vnet0(3) 网桥br0添加完毕后,查看br0的ip地址,代码如下:rootxjy-pc:# ifconfig br0br0 Link encap:Ethernet HWaddr 26:f4:b6:0d:7a:7f BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)(4) 接下来使用桥接模式把eth0加入网桥br0,让eth0成为br0的一个端口。同时将eth0接口ip删除,给br0设置ip为192.168.70.205,24位子网掩码。同时添加路由网关为192.168.70.2,并关闭防火墙,代码如下:(这个步骤会导致宿主机的网络断掉,之后重新通过bridge建立网络连接,所以建立bridge这个步骤不要通过SSH连接远程配置。)rootxjy-pc:# brctl addif br0 eth0 &ip addr del dev eth0 192.168.70.204/24 & ifconfig br0 192.168.70.205/24 up & route add default gw 192.168.70.2& iptables -F(5) 再次查看网桥br0的ip地址,代码如下:rootxjy-pc:# ifconfig br0br0 Link encap:Ethernet HWaddr 00:25:90:76:67:b5 inet addr:192.168.70.205 Bcast:192.168.70.255 Mask:255.255.255.0 inet6 addr: fe80:225:90ff:fe76:67b5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:528 errors:0 dropped:0 overruns:0 frame:0 TX packets:104 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:76041 (76.0 KB) TX bytes:15118 (15.1 KB)(6) 使用virsh edit命令编辑虚拟机的网络配置,修改为使用br0网桥模式。图7 demo虚拟机未修改前网络配置图8 demo虚拟机修改后网络配置(7) 将demo虚拟机关闭后重新启动,代码如下:rootxjy-pc:/etc/libvirt/qemu# virsh shutdown demoDomain demo is being shutdownrootxjy-pc:/etc/libvirt/qemu# virsh start demoDomain demo started(8) 使用VNC连接demo虚拟机,在demo虚拟机中配置其静态IP地址为192.168.70.203后重启网卡。代码如下:rootdemo-pc:# ifconfig eth0eth0 Link encap:Ethernet HWaddr 51:54:00:48:bd:84 inet addr:192.168.70.203 Bcast:192.168.70.255 Mask:255.255.255.0 inet6 addr: fe80:225:90ff:fe76:67b5/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:208452 errors:0 dropped:219 overruns:0 frame:0 TX packets:702108 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:66675114 (66.6 MB) TX bytes:1010891428 (1.0 GB) Interrupt:20 Memory:f7a00000-f7a20000 rootdemo-pc:# /etc/init.d/networking restart(9) 在KVM服务器上使用ping命令测试与demo虚拟机的连通性,代码如下:rootxjy-pc:# ping 192.168.70.203 -c 5PING 192.168.70.203 (192.168.70.203) 56(84) bytes of data.64 bytes from 192.168.70.203: icmp_seq=1 ttl=64 time=0.265 ms64 bytes from 192.168.70.203: icmp_seq=2 ttl=64 time=0.329 ms64 bytes from 192.168.70.203: icmp_seq=3 ttl=64 time=0.225 ms64 bytes from 192.168.70.203: icmp_seq=4 ttl=64 time=0.314 ms64 bytes from 192.168.70.203: icmp_seq=5 ttl=64 time=0.303 ms- 192.168.70.203 ping statistics -5 packets transmitted, 5 received, 0% packet loss, time 3999msrtt min/avg/max/mdev = 0.225/0.287/0.329/0.039 ms(10) 在demo虚拟机中使用ping命令测试与KVM服务器的连通性,代码如下:rootdemo-pc:# ping 192.168.70.205 -c 5PING 192.168.70.205 (192.168.70.205) 56(84) bytes of data.64 bytes from 192.168.70.205: icmp_seq=1 ttl=64 time=0.181 ms64 bytes from 192.168.70.205: icmp_seq=2 ttl=64 time=0.207 ms64 bytes from 192.168.70.205: icmp_seq=3 ttl=64 time=0.329 ms64 bytes from 192.168.70.205: icmp_seq=4 ttl=64 time=0.388 ms64 bytes from 192.168.70.205: icmp_seq=5 ttl=64 time=0.248 ms- 192.168.70.205 ping statistics -5 packets transmitted, 5 received, 0% packet loss, time 3999msrtt min/avg/max/mdev = 0.181/0.288/0.388/0.064 ms(11) 至此,虚拟机通过桥接模式和宿主机连通,和外界网络也保持了通畅。5、内存优化内存优化项通常包括EPT技术、透明大页和KSM技术几种。EPT技术:(1) EPT技术也叫扩展页表,这是Intel开创的硬件辅助内存虚拟化技术。内存的使用,是一个逻辑地址跟物理地址转换的过程。虚拟机内部有逻辑地址转换成物理地址的过程,然后虚拟机又要和宿主机内存进行逻辑到物理的转换过程,整个寻址过程有两次地址转换,效率非常低。而EPT技术,能将两次地址转换变成了一次,提高效率。这项技术基本上现在的服务器CPU都支持,只要在BIOS打开了Intel的VT设置,那么EPT也一起打开了。(2) 使用图9中命令查看CPU是否支持EPT特性,使用图10中命令查看是否已开启EPT和VPID,Y表示已经加载了EPT和VPID,如果没加载可以通过命令“Modprobekvm _intel ept=0,vpid=0”加载。如图9和10所示:图9 查看cpu是否支持EPT特性图10 查看是否开启EPT特性透明大页:(1) 透明大页,也叫透明巨型页(Transparent Huge Page,THP),它允许所有的空余内存被用作缓存以提高性能,使用大页可以显著提高CPU的命中率,所以如果GuestOS使用大内存或者内存负载比较重的情况下,通过配置透明大页可以显著提高性能。这个设置在Ubuntu14.04中是默认开启的,不需要手动去操作。(2) Ubuntu14.04支持透明大页,默认开启,如图11所示:图11 透明大页默认开启(3) 图11中的参数说明:never :关闭。always :尽量使用透明大页,扫描内存,有512个4k页面可以整合,就整合成一个2M的页面, 需要使用swap的时候,内存被分割为4k大小。madvise :避免改变内存占用。(4) 默认情况下,大页的数目为0,通过下面两种方式可以查看到,代码如下:rootxjy-pc:# cat /proc/sys/vm/nr_hugepages0rootxjy-pc:# cat /proc/meminfo|grep HugePageAnonHugePages: 376832 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0(5) 设置大页的数量为2000后,再次查看大页数目,此时系统有2000个可用大页,代码如下:rootxjy-pc:# echo 2000 /proc/sys/vm/nr_hugepagesrootxjy-pc:# cat /proc/sys/vm/nr_hugepages2000(6) 修改大页数量后查看虚拟机运行状态,发现即使虚拟机在运行,透明大页也没有被使用。rootxjy-pc:# virsh list -all Id Name State- 2 demo runningrootxjy-pc:# cat /proc/meminfo|grep HugePageAnonHugePages: 374784 kBHugePages_Total: 2000HugePages_Free: 2000HugePages_Rsvd: 0HugePages_Surp: 0(7) 使用命令“virsh shutdown demo”将demo虚拟机关闭,然后修改demo虚拟机配置,添加使用大页的内容,(图12中可以看到demo虚拟机的内存为1G),在图12标签下面添加标签。如图12和13所示。图12 demo虚拟机配置文件修改前图13 demo虚拟机配置文件修改后(8) 挂载大页,然后重新启动libvirtd-bin。rootxjy-pc:/dev# mount -t hugetlbfs hutetlbfs /dev/hugepagesrootxjy-pc:/dev# mount|tail -lhutetlbfs on /dev/hugepages type hugetlbfs (rw)rootxjy-pc:/dev# /etc/init.d/libvirt-bin restart * Restarting libvirt management daemon /usr/sbin/libvirtd .done.(9) 使用“virsh start demo”重新开启虚拟机后查看结果。从以下代码可以看出,共消耗了520个大页,每个大页默认大小为2M,正好是demo所有的内存。rootxjy-pc:/dev# cat /proc/meminfo|grep -i HugePageAnonHugePages: 34816 kBHugePages_Total: 2000HugePages_Free: 1480HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 2048 kB(10) 如果关闭demo的话,所有大页将被释放,代码如下:rootxjy-pc:/dev# virsh shutdown demoDomain demo is being shutdownrootxjy-pc:/dev# cat /proc/meminfo|grep -i HugePageAnonHugePages: 34816 kBHugePages_Total: 2000HugePages_Free: 2000HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 2048 kB(11) 另外,透明大页的开启使用命令“echo always /sys/kernel/mm/transparent_hugepage/enabled”,关闭使用“echo never /sys/kernel/mm/transparent_hugepage/enabled”。KSM技术:(1) KSM(Kernel SamePage Merging),也叫相同页面内存压缩技术。KSM服务在Linux系统里默认是开启的,它的作用就是让内存利用的更加高效。内存是分页的,如果多个程序中用的内存都是相同的页面,那么KSM就会把相同的内存合并,这样就能腾出更多的空间。(2) KSM在系统里有个守护进程ksmd,它的作用就是不断的扫描宿主机的内存情况,检测有相同的页面就会合并,当然这或多或少会消耗点CPU。查看ksmd进程代码如下:rootxjy-pc:# ps aux|grep ksmd|grep -v greproot 68 0.4 0.0 0 0 ? SN 09:16 0:13 ksmd(3) 如果宿主机的环境,内存资源比较丰富,建议这个功能不开启。如果不够,又想跑多一点的虚拟机,那么可以打开这个功能,但是一定要清楚,这个是一种内存超用的方案,假如大部分虚拟机内存变化比较频繁(比如内存使用率一下高,一下低),那么不建议开启,因为内存不够时,就会用到SWAP,那么KSM会严重影响虚拟机性能。(4) 在宿主机KSM服务打开的情况下,如果不想让虚拟机受宿主机KSM的影响,可以进行如下操作:编辑虚拟机的XML文件,添加:这样,KSM就不会去合并这个虚拟机的内存了 6、磁盘I/O优化(1) I/O调度算法,也叫电梯算法。通常有Noop,Deadline和CFQ几种。Noop Scheduler是一个简单的FIFO队列,一个最简单的调度算法,由于会产生读I/O的阻塞,一般使用在SSD硬盘,此时不需要调度,I/O效果非常好。Deadline Scheduler是按照截止时间的调度算法,为了防止出现读取被饿死的现象,按照截止时间进行调整,默认的是读期限短于写期限,这样就不会产生饿死的状况。CFQ(Complete Fair Queueing Schedule)是完全公平的排队的I/O调度算法,保证每个进程相对特别公平的使用I/O。(2) 查看宿主机Ubuntu14.04支持的调度算法,默认采用Deadline Scheduler,代码如下:rootxjy-pc:/dev# dmesg|grep -i scheduler 0.378025 io scheduler noop registered 0.378027 io scheduler deadline registered (default) 0.378048 io scheduler cfq registered(3) 临时修改宿主机sda磁盘的I/O调度算法,将deadling修改为CFQ模式,代码如下:rootxjy-pc:/dev# cat /sys/block/sda/queue/scheduler noop deadline cfq rootxjy-pc:/dev# echo cfq /sys/block/sda/queue/scheduler rootxjy-pc:/dev# cat /sys/block/sda/queue/scheduler noop deadline cfq(4) 虚拟机的磁盘只不过是宿主机的一个文件,所以其I/O调度并无太大意义,反而会影响I/O效率,所以可以通过将客户机的I/O调度策略设置为NOOP来提高性能。NOOP就是一个FIFO队列,不做I/O调度。五、实验代码无虚拟化技术案例二、虚拟机迁移一、实验目的(1) 掌握虚拟机迁移的概念。(2) 掌握虚拟机的静态迁移方式和动态迁移方式。(3) 掌握NFS服务器的配置和使用。二、实验原理静态迁移是指在虚拟机关闭或暂停的情况下,将源宿主机上虚拟机的磁盘文件和配置文件拷贝到目标宿主机上。这种方式需要显式的停止虚拟机运行,对服务可用性要求高的需求不合适。动态迁移无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的主机之间有相同的目录结构放置虚拟机磁盘文件,可以通过多种方式实现,本例采用基于共享存储动态迁移,通过NFS来实现。三、实验环境服务器操作系统:Ubuntu14.04版本。源宿主机为节点1,主机名xjy-pc,桥接IP为192.168.10.221,NFS挂载目录/home/kvm。目标宿主机为节点2,主机名为lib,桥接IP为192.168.10.215,NFS挂载目录/home/kvm。静态迁移测试虚拟机:demo,IP为192.168.10.210,虚拟磁盘文件为ubuntu.raw。动态迁移测试虚拟机:demo3,IP为192.168.10.210,虚拟磁盘文件为ubuntu.raw。NFS服务器:操作系统版本:OEL5.8x64,桥接IP为192.168.10.161,服务目录为/mnt/vg/。四、实验内容及步骤1、虚拟机静态迁移(1) 静态迁移也叫做常规迁移、离线迁移(Offline Migration)。是在虚拟机关机或暂停的情况下,拷贝虚拟机磁盘文件与配置文件到目标虚拟主机中,实现的从一台物理机到另一台物理机的迁移。因为虚拟机的文件系统建立在虚拟机镜像文件上面,所以在虚拟机关机的情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台物理主机上即可。如果需要保存虚拟机迁移之前的状态,那么应该在迁移之前将虚拟机暂停,然后拷贝状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。从用户角度看,有明确的一段停机时间,虚拟机上的服务不可用。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。(2) 在节点1上进行操作,首先确定demo虚拟机状态为关闭,如图1所示。图1 查看虚拟机状态(3) 准备迁移demo虚拟机,使用命令“virsh domblklist demo”查看demo虚拟机的磁盘文件,如图2所示。图2虚拟机的磁盘文件(4) 导出虚拟机配置文件,如图3所示。图3 导入虚拟机配置文件(5) 拷贝配置文件到目标宿主机上,目标宿主机IP地址为192.168.10.215。如图4所示。图4 拷贝配置文件(6) 将虚拟机磁盘文件也拷贝到目标宿主机。虚拟机demo的磁盘文件为ubuntu.raw。如图5所示。图5 拷贝磁盘文件(7) 这时,已经将源宿主机节点1上的demo虚拟机的磁盘文件与配置文件都复制到目标宿主机节点2上了,下面开始在目标宿主机节点2上进行虚拟机的配置和启动。(8) 接下来在目标宿主机节点2上操作,首先查看节点2环境。如图6所示,demo虚拟机的配置文件已经拷贝过来。图6 查看目标主机上demo虚拟机的配置文件(9) 查看虚拟机磁盘文件,如图7所示,ubuntu.raw磁盘文件也已经拷贝过来,目录结构与源宿主机一致。如图7所示。图7 查看目标主机上demo虚拟机的磁盘文件(10) 使用virsh的子命令define定义并注册demo虚拟机。如图8所示。图8 定义并注册demo虚拟机(11) 启动迁移后的demo虚拟机,通过“virsh console demo”登录到迁移后的虚拟机进行确认。如图9所示。图9 启动目标主机上的虚拟机2、虚拟机动态迁移(1) KVM虚拟机动态迁移无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的主机之间有相同的目录结构放置虚拟机磁盘文件(本例为“/home/kvm”目录),这里的动态迁移是基于共享存储动态迁移,通过NFS来实现,需要qemu-kvm-0.12.2以上版本支持。(2) 在NFS服务器上,下载安装NFS,kernel-server相当于server端,common是client端,使用命令“sudo apt-get install nfs-kernel-server nfs-common portmap”安装NFS。(3) 配置NFS服务器,IP为192.168.10.161,将NFS服务器上的“/mnt/vg”目录设为服务目录。首先使用命令“sudo mkdir /mnt/vg”创建该目录,然后使用命令“sudo chmod 777 /mnt/vg”修改该目录权限,接下来使用vim修改“/etc/exports”文件添加共享目录,在该文件中添加“/mnt/vg *(rw,sync)”即可。*(rw,s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚赔偿协议及财产分割及子女抚养权法律文书
- 离婚后共同财产管理及同居生活协议书范本分析
- 航天设备租赁合同转让与航天安全三方协议
- 智能社区监控系统采购、施工及维护服务合同
- 离婚协议书撰写模板与法律风险提示
- 智能物流:智能物流委托借款基础设施建设项目合同
- 班组长三级安全培训课件
- 大班奥运中国课件
- 辽沈战役课件
- 物料需求计划培训大纲
- 燃气锅炉事故应急专项预案
- 文明实践集市活动方案
- 吸入性肺炎的护理查房
- 2025年天津市中考物理试卷真题(含标准答案)
- 循环经济与绿色生产方式
- 2025装配式建筑部品部件标准化设计在装配式建筑装配式阳台抗震建筑中的应用报告
- 快递超市转让合同范本
- 劳务公司安全管理规章制度
- 蔚来主品牌视觉识别系统(完整版)
- 苍南3号海上风电项目陆域工程报告书
- 2024北森图形推理题
评论
0/150
提交评论