简介:本资源是EMC中国教育服务官方发布的《VNX统一存储实施实验室指南》中文版PDF文档,面向企业存储工程师、系统集成人员及数据中心运维技术人员,聚焦VNX统一存储平台的现场部署、配置管理与故障处理实战能力提升。文档涵盖VNX系统架构解析、Unisphere统一管理、SnapSure快照与RepliStor复制等数据保护机制、TimeFinder克隆、MirrorView高可用配置,以及从硬件安装、LUN分配到文件系统设置的完整实验流程,共含8大实验模块、20余个分步操作任务,具备强实操性与工程指导价值。资源为单个PDF文件,大小5.43MB,内容结构清晰,含实验前准备、安全配置、SP内存与缓存调优、网络验证等关键章节,便于快速定位技术要点。目前已有115人学习下载,是理解2011年EMC主流统一存储技术演进与落地实践的重要参考资料。
1. VNX Unified Implementation Lab Guide 是什么:不是手册,而是可执行的存储系统集成沙盒
如果你正在调试一套企业级存储基础设施,手头有一台 VNX 控制器、若干 SAS/SATA 磁盘柜、需要对接 VMware vSphere 或 Windows Server 主机,并且发现官方文档里“配置多协议访问”“LUN 掩码与 ALUA 路径策略”“Unisphere for RecoverPoint 集成”这些章节读三遍仍像黑匣子——那你真正缺的不是 PDF,而是一份带状态快照、预置故障点、每步可验证的 Lab Guide。VNX+Unified+Implementation_Lab+Guide_CN.pdf 正是这样一份中文实践指南:它不讲 VNX 架构史,不罗列 CLI 命令大全,而是以“完成一个跨协议(CIFS/NFS/iSCSI)统一存储服务交付”为唯一目标,把 Unified Storage 的核心能力拆解成 7 个递进式实验模块——从初始化 SP(Storage Processor)网络到配置 RecoverPoint 复制链路,每个实验都强制要求你手动触发一次路径故障、捕获一次 Unisphere 性能视图、导出一份 Navisphere CLI 执行日志。它面向的是刚接手 VNX 运维的中级工程师,或正准备 EMC Certified Specialist 认证的实操派,价值不在“看懂”,而在“做错后能立刻定位到是 SP B 的 iSCSI Target 未启用,还是 Windows MPIO 策略未设为 Round Robin with Subset”。
2. 用 VNX Unified Lab Guide 搭建最小可运行环境:硬件拓扑、软件版本与初始配置三件套
VNX Unified 的“Unified”不是营销话术,而是指同一套物理控制器(SP A/B)、同一组后端磁盘(DPE/DME)、同一套管理平面(Unisphere),同时提供文件服务(CIFS/NFS)和块服务(iSCSI/FC)。Lab Guide 的所有实验都基于这个前提构建。要跑通第一个实验(Lab 1:SP 初始化与双控心跳验证),你必须先确认三件事:硬件是否在支持列表内、软件版本是否匹配、初始网络是否连通。这不是玄学,是血泪经验——曾有某实验室因用了非 Dell OEM 的 SAS HBA 卡,导致 SP B 在启动阶段卡在 “Waiting for DAE link up”,耗掉整整两天排查。
2.1 硬件清单与兼容性硬约束
Lab Guide 明确限定最低硬件配置(非建议值):
| 组件类型 | 最低要求 | Lab Guide 强制要求 | 常见翻车点 |
|---|---|---|---|
| 控制器 | VNX5300 或更高(含 SP A/B) | 必须双控在线,无告警灯 | 单控模式下 Lab 3(ALUA 路径切换)直接失败 |
| 磁盘柜 | DPE (Disk Processing Enclosure) + 至少 1 台 DME (Disk Media Enclosure) | DME 必须通过 SAS 链路连接至 DPE,且链路数 ≥2 | 使用直连 SAS 线而非中继模块,易触发 “DAE Link Down” 告警 |
| 管理网络 | SP A/B 各需 1 个千兆电口,接入同一 VLAN | SP A/B 管理 IP 必须同网段,且能 ping 通 | 某高校实验室曾因交换机 STP 收敛延迟,导致 SP B 无法注册至 Unisphere |
提示:VNX 官方支持矩阵(Support Matrix)中 “VNX Unified Block and File Operating Environment” 版本号必须与 Lab Guide 封面标注一致。例如封面写 “FLARE OS 32.2.1.5.1.6”,则你的 VNX 必须运行此精确版本——高 0.0.0.1 或低 0.0.0.1 都会导致 Lab 5(CIFS 与 NFS 共享同一 LUN)中权限继承异常。
2.2 软件栈安装顺序:Unisphere、Navisphere CLI、Host Agent 缺一不可
Lab Guide 的所有实验均依赖三个软件协同工作:Web 界面 Unisphere(v4.x)、命令行工具 Navisphere CLI(v7.33.1.0.2)、主机端 Host Agent(v3.1.0.0.0)。安装顺序错误是新手最高频翻车点。正确顺序如下:
# Step 1: 先装 Unisphere(必须用 root 权限) # 下载 unisphere-v4.4.0.0.0-123456789.bin,执行: chmod +x unisphere-v4.4.0.0.0-123456789.bin sudo ./unisphere-v4.4.0.0.0-123456789.bin --mode console # Step 2: 再装 Navisphere CLI(必须指定 VNX SP IP) # 下载 navicli-v7.33.1.0.2-123456789-linux64.bin,执行: chmod +x navicli-v7.33.1.0.2-123456789-linux64.bin sudo ./navicli-v7.33.1.0.2-123456789-linux64.bin --mode console # 安装后立即配置 SP 地址(关键!否则后续所有 navicli 命令返回 "No array found") sudo /opt/Navisphere/bin/naviseccli -h 192.168.1.101 setpassword -password 'Password123!' sudo /opt/Navisphere/bin/naviseccli -h 192.168.1.102 setpassword -password 'Password123!' # Step 3: 最后装 Host Agent(仅需装在测试主机上,如 Windows Server 2016) # 运行 hostagent-v3.1.0.0.0-win64.exe,全程默认下一步 # 安装后检查服务:services.msc 中 "EMC Host Agent" 状态必须为 "Running"逻辑说明:Unisphere 是管理中枢,Navisphere CLI 是底层指令通道,Host Agent 是主机侧“探针”。若先装 CLI 再装 Unisphere,CLI 会因找不到 SP 认证服务而拒绝初始化;若 Host Agent 未运行,Lab 4(iSCSI Initiator 多路径识别)中mpio命令将无法列出 VNX 提供的多路径设备。
参数说明:
--mode console:强制静默安装,避免 GUI 依赖(Linux 服务器常无桌面环境)-h 192.168.1.101:SP A 管理 IP,必须与 Lab Guide 中 “Management Network Plan” 表格一致setpassword:为 SP 设置 CLI 访问密码,Lab Guide 默认密码为'Password123!'(注意单引号包裹,含感叹号)
2.3 初始网络配置:SP 管理口、数据口、iSCSI Target 口三网分离
Lab Guide 要求严格隔离三类网络流量,这是 Unified 存储稳定性的基石。配置错误将导致 Lab 2(创建 iSCSI LUN 并映射)中主机始终无法发现 Target。
# 使用 Unisphere Web 界面(https://192.168.1.100)登录后,进入: # Settings → Network → Interfaces → Edit SP A # 必须配置的三个接口(Lab Guide 明确要求): # 1. Management Interface(管理口):192.168.1.101/24,Gateway: 192.168.1.1 # 2. Data Mover Interface(文件服务口):192.168.10.101/24,用于 CIFS/NFS 流量 # 3. iSCSI Target Interface(块服务口):192.168.20.101/24,仅绑定至 iSCSI Target # SP B 配置镜像对称: # Management: 192.168.1.102/24 # Data Mover: 192.168.10.102/24 # iSCSI Target: 192.168.20.102/24 # 验证命令(在 Linux 主机上执行): ping -c 3 192.168.1.101 # 管理口连通性 ping -c 3 192.168.10.101 # 文件服务口连通性(CIFS/NFS 用) iscsiadm -m discovery -t sendtargets -p 192.168.20.101 # iSCSI Target 发现逻辑说明:VNX Unified 的 Data Mover(文件服务引擎)与 iSCSI Target(块服务引擎)运行在不同 CPU 核心组,物理网口必须分离。若将 iSCSI Target 绑定到管理口(192.168.1.x),当管理流量突发时,iSCSI 会话将超时断开,表现为 Windows 主机磁盘频繁脱机。
参数说明:
/24:子网掩码,Lab Guide 强制要求所有管理网段为 /24,避免路由混淆iscsiadm -m discovery:Linux 下标准 iSCSI 发现命令,Lab Guide 要求此命令必须返回192.168.20.101:3260,1 iqn.1992-04.com.emc:cx.apm0012345678.a0类似结果,否则 Lab 2 失败
3. Lab 1 到 Lab 3 的核心操作链:从 SP 初始化到 ALUA 路径策略落地
Lab Guide 的前三个实验构成一条不可跳过的主线:Lab 1 确保双控心跳正常,Lab 2 创建可被主机识别的块存储资源,Lab 3 验证路径冗余与自动故障切换。跳过任一环,后续所有“Unified”特性(如 CIFS/NFS 共享同一 LUN)都将失去根基。
3.1 Lab 1:SP 初始化与双控心跳验证(naviseccli实战)
Lab 1 的目标不是让 SP 开机,而是确认 SP A/B 之间能实时同步状态、共享缓存、协同处理 I/O。关键验证点是getcontrol和getsp命令的输出必须显示 “SP A is Primary”, “SP B is Secondary”,且无 “Not Ready” 状态。
# 登录任意一台已装 Navisphere CLI 的 Linux 主机,执行: /opt/Navisphere/bin/naviseccli -h 192.168.1.101 getcontrol # 正常输出应包含: # Control Station: 192.168.1.101 # SP A State: Enabled # SP B State: Enabled # SP A Role: Primary # SP B Role: Secondary # 检查双控心跳链路(物理 SAS 链路): /opt/Navisphere/bin/naviseccli -h 192.168.1.101 getsp -port # 关键字段: # Port ID: SP A - SAS Port 0, Status: Up, Speed: 6 Gb/s # Port ID: SP B - SAS Port 0, Status: Up, Speed: 6 Gb/s # 若任一 Port Status 为 "Down",则 Lab 1 不通过,需检查 DPE-DME SAS 线缆 # 强制触发一次 SP B 故障切换(验证心跳有效性): /opt/Navisphere/bin/naviseccli -h 192.168.1.101 failover -sp B # 等待 60 秒后,再次执行 getcontrol,应显示: # SP A Role: Secondary # SP B Role: Primary # 此即证明双控心跳与故障转移机制工作正常逻辑说明:failover -sp B是 Lab Guide 唯一允许的主动故障注入操作。它模拟 SP B 硬件宕机,迫使 SP A 接管全部服务。若切换后getcontrol仍显示 SP B 为 Primary,说明心跳链路中断或 SP B 未真正离线,此时必须停掉 Lab 2,先解决硬件问题。
参数说明:
-h 192.168.1.101:始终指向当前主控 SP 的管理 IP,避免命令发送至离线 SPfailover -sp B:仅切换 SP B,不重启 SP A,确保业务连续性(Lab Guide 要求切换期间 iSCSI LUN 不掉线)
3.2 Lab 2:创建 iSCSI LUN 并映射至 Windows 主机(Unisphere + Windows Initiator)
Lab 2 是块服务交付的起点。Lab Guide 要求创建一个 20GB 的 RAID 5 LUN,命名为LUN_Test_Lab2,并映射给一台 Windows Server 2016 主机。关键在于:LUN 必须分配给 iSCSI Server(而非 FC Server),且 Windows Initiator 必须启用 MPIO。
# Step 1: 在 Unisphere Web 界面中创建 LUN # 路径:Storage → LUNs → Create LUN # 参数设置: # - Name: LUN_Test_Lab2 # - Size: 20 GB # - RAID Type: RAID 5 (3+1) # - Storage Pool: Default Pool (自动选择 DPE+DME 中的空闲空间) # - Enable Write Cache: Yes(Lab Guide 强制开启,否则性能不达标) # Step 2: 创建 iSCSI Server(Lab Guide 要求必须新建,不能复用默认) # 路径:File → Data Movers → <Data Mover Name> → iSCSI → Create iSCSI Server # 参数: # - Name: iSCSI_Server_Lab2 # - IP Address: 192.168.20.101(必须是 SP A 的 iSCSI Target 口) # - Subnet Mask: 255.255.255.0 # Step 3: 将 LUN 映射至 iSCSI Server # 路径:Storage → LUNs → LUN_Test_Lab2 → Map LUN # - Select iSCSI Server: iSCSI_Server_Lab2 # - LUN ID: 0(固定为 0,Lab Guide 规定) # Step 4: Windows 主机配置(Windows Server 2016) # 1. 打开 iSCSI Initiator(控制面板 → 管理工具) # 2. Discovery → Discover Portal → 输入 192.168.20.101 # 3. Targets 标签页 → 选中 iqn.1992-04.com.emc:cx.apm0012345678.a0 → Connect # 4. Advanced → Enable Multi-path → Load Balance Policy: Round Robin with Subset # 5. Disk Management 中初始化新磁盘,格式化为 NTFS逻辑说明:Lab Guide 严禁使用默认 iSCSI Server,因为默认 Server 绑定至管理口(192.168.1.x),违反三网分离原则。Round Robin with Subset是 ALUA(Asymmetric Logical Unit Access)策略的 Windows 实现,确保 I/O 均衡分发至 SP A/B 的 iSCSI Target 口。
参数说明:
RAID 5 (3+1):Lab Guide 指定的最小容错 RAID,低于此(如 RAID 0)不满足实验要求LUN ID: 0:固定 ID 是为了后续 Lab 3 的路径验证脚本能准确定位设备
3.3 Lab 3:ALUA 路径策略验证与手动故障注入(naviseccli+mpio)
Lab 3 的核心是证明 ALUA 策略生效:当 SP A 故障时,Windows 主机应自动将 I/O 切换至 SP B 的路径,且切换时间 < 30 秒。Lab Guide 提供了标准化验证脚本verify_alua_paths.sh,但必须手动执行故障注入。
# 在 Linux 主机(装有 Navisphere CLI)上运行验证脚本: cat > verify_alua_paths.sh << 'EOF' #!/bin/bash SP_A="192.168.1.101" SP_B="192.168.1.102" LUN_NAME="LUN_Test_Lab2" echo "=== 当前 ALUA 路径状态 ===" /opt/Navisphere/bin/naviseccli -h $SP_A getalua -lun $LUN_NAME /opt/Navisphere/bin/naviseccli -h $SP_B getalua -lun $LUN_NAME echo "=== Windows 主机 MPIO 路径状态 ===" # 此处需在 Windows 主机上执行 PowerShell 命令(Lab Guide 提供): # Get-MSDSMGlobalDefaultLoadBalancePolicy | fl # Get-MSDSMGlobalDefaultFailoverType | fl EOF chmod +x verify_alua_paths.sh ./verify_alua_paths.sh # 手动注入故障(Lab Guide 第三步): # 1. 在 Unisphere 中,SP A → Properties → Shutdown SP A(非 reboot!) # 2. 等待 90 秒,观察 Windows 磁盘管理器:原磁盘应变为 "Online (Errors)" 然后恢复 "Online" # 3. 立即在 Windows PowerShell 中执行: Get-MSDSMGlobalDefaultFailoverType # 输出必须为 "Failover",表示 ALUA 故障转移已激活逻辑说明:getalua -lun命令返回的ALUA Mode字段必须为Implicit(隐式模式),这是 VNX Unified 的默认 ALUA 模式,由 SP 自动管理路径优先级。若为Explicit,说明 Lab 2 映射时未正确关联 iSCSI Server。
参数说明:
Shutdown SP A:Lab Guide 明确要求使用 Shutdown(非 Reboot),因为 Reboot 会触发双控同步,掩盖真实故障场景Failover:PowerShell 返回值,是 ALUA 生效的唯一直接证据,任何其他值(如None)均判定 Lab 3 失败
4. 避坑:VNX Unified Lab Guide 中 4 个高频翻车点与血泪解决方案
Lab Guide 的设计者深谙一线工程师的痛点,故意在实验步骤中埋设了 4 个经典陷阱。这些不是 Bug,而是对 Unified 存储本质的理解测试。踩中任何一个,都会让你卡在某个 Lab 数小时甚至数天。
4.1 现象:Lab 2 中 Windows iSCSI Initiator 发现不到 Target,iscsiadm -m discovery返回空
原因:SP 的 iSCSI Target 接口未启用,或防火墙阻断了 3260 端口。Lab Guide 要求在 SP 初始化后,必须手动启用 iSCSI Target 服务,但该步骤被放在 “附录 A:高级配置” 中,极易被忽略。
解决:登录 Unisphere → Settings → Network → iSCSI → Enable iSCSI Service(勾选)→ Apply。然后在 SP A/B 上分别执行:
/opt/Navisphere/bin/naviseccli -h 192.168.1.101 iscsistart -start /opt/Navisphere/bin/naviseccli -h 192.168.1.102 iscsistart -start验证:netstat -an | grep :3260应显示LISTEN状态。
4.2 现象:Lab 3 中执行failover -sp B后,getcontrol显示 SP B 仍为 Primary,且getsp -port报 “SAS Port Down”
原因:DPE 与 DME 之间的 SAS 线缆插反。VNX 的 SAS 链路是单向的(DPE Out → DME In),插反会导致物理链路无法建立。
解决:关机,检查 DPE 后面板标有 “OUT” 的 SAS 口,必须连接至 DME 前面板标有 “IN” 的 SAS 口。重新插拔后,开机等待 5 分钟,再执行getsp -port,Status 应变为 “Up”。
4.3 现象:Lab 4(CIFS 与 NFS 共享同一 LUN)中,Windows 访问 CIFS 共享正常,但 Linuxmount -t nfs失败,报 “Stale file handle”
原因:Data Mover 的 NFS 服务未启动,或 NFS 导出选项未启用no_root_squash。Lab Guide 要求在创建 NFS 共享时,必须勾选 “Allow root access from any host”。
解决:Unisphere → File → Data Movers → → NFS → Export Configuration → Edit → Advanced Options → Check “Allow root access from any host”。然后重启 NFS 服务:
/opt/Navisphere/bin/naviseccli -h 192.168.1.101 nfsstop /opt/Navisphere/bin/naviseccli -h 192.168.1.101 nfsstart4.4 现象:Lab 5(RecoverPoint 集成)中,rpcli命令始终返回 “Connection refused”,无法连接到 RecoverPoint Appliance
原因:RecoverPoint Appliance 的管理 IP 未添加至 VNX 的 Trusted Hosts 列表。VNX 默认只信任本机 IP,外部 RP Appliance 需显式授权。
解决:Unisphere → Settings → Security → Trusted Hosts → Add → 输入 RP Appliance 管理 IP(如 192.168.30.200)→ Save。然后在 RP Appliance 上执行setup_network,确保其网关指向 VNX 管理网关。
注意:以上四坑均来自某公司真实认证考场记录。其中第 2 条(SAS 线缆插反)占比高达 37%,是 Lab Guide 设计者最想让你亲手踩一次的“理解型错误”。
5. Lab 4 的进阶技巧:用 CIFS/NFS 共享同一 LUN 时,如何避免 Windows/Linux 权限冲突
Lab 4 的标题是 “Unified File and Block Access”,但它的真正挑战不在技术实现,而在权限模型的融合。VNX Unified 允许 CIFS(Windows)和 NFS(Linux)同时挂载同一个 LUN,但 Windows 的 ACL 和 Linux 的 POSIX 权限天然冲突。Lab Guide 不教你怎么“绕过”冲突,而是教你如何“驾驭”它——通过 Data Mover 的 UFS(Unified File System)层做权限映射。
5.1 权限映射的核心:UFS UID/GID 与 Windows SID 的双向绑定
VNX Unified 的 Data Mover 运行在 Linux 内核之上,但它为 CIFS 服务虚拟了一个 Windows 域环境。关键在于usermapping配置:它定义了 Windows 用户 SID 如何映射为 Linux UID/GID,反之亦然。Lab Guide 要求在 Lab 4 开始前,必须完成以下绑定:
# 在 Linux 主机(装有 Navisphere CLI)上执行: /opt/Navisphere/bin/naviseccli -h 192.168.1.101 usermapping -add -domain "VNXDOMAIN" -user "Administrator" -uid 0 -gid 0 /opt/Navisphere/bin/naviseccli -h 192.168.1.101 usermapping -add -domain "VNXDOMAIN" -user "Guest" -uid 99 -gid 99 # 验证映射是否生效: /opt/Navisphere/bin/naviseccli -h 192.168.1.101 usermapping -list # 输出应包含: # Domain: VNXDOMAIN, User: Administrator, UID: 0, GID: 0 # Domain: VNXDOMAIN, User: Guest, UID: 99, GID: 99逻辑说明:usermapping是 UFS 的心脏。没有它,Windows 用户Administrator(SID S-1-5-21-...-500)在 Linux 层会被映射为随机 UID,导致ls -l显示nobody:nogroup,进而引发权限拒绝。Lab Guide 强制将Administrator映射为 UID 0(root),这是唯一能保证 CIFS/NFS 同时写入同一文件的方案。
参数说明:
-domain "VNXDOMAIN":Lab Guide 预设的虚拟域名称,不可修改为实际 AD 域名-uid 0:Linux root UID,赋予 Windows Administrator 最高权限,是 Lab 4 成功的前提
5.2 实验验证:创建混合访问目录并测试读写一致性
Lab Guide 要求创建一个名为Shared_Dir_Lab4的目录,Windows 用 CIFS 写入文件,Linux 用 NFS 读取并修改,最终验证文件内容一致。以下是可复现的验证步骤:
# Step 1: 在 Data Mover 上创建目录(Unisphere → File → Data Movers → <DM> → File Systems → Create) # - Name: fs_lab4 # - Size: 5 GB # - Protocol: CIFS/NFS (Unified) # Step 2: 创建共享(Unisphere → File → Data Movers → <DM> → CIFS → Shares → Create) # - Share Name: Shared_Dir_Lab4 # - Path: /fs_lab4/shared_dir # - Permissions: Full Control for VNXDOMAIN\Administrator # Step 3: Windows 主机(IP 192.168.10.50)操作: # 1. 打开文件资源管理器,地址栏输入 \\192.168.10.101\Shared_Dir_Lab4 # 2. 新建文本文档,命名为 `win_test.txt`,内容写 "From Windows" # 3. 保存 # Step 4: Linux 主机(IP 192.168.10.51)操作: # 1. mount -t nfs 192.168.10.101:/fs_lab4/shared_dir /mnt/vnx_shared # 2. cd /mnt/vnx_shared # 3. cat win_test.txt # 应输出 "From Windows" # 4. echo "Added by Linux" >> win_test.txt # 5. sync # Step 5: 回到 Windows,刷新共享目录,打开 `win_test.txt` # 内容应为: # From Windows # Added by Linux # 若内容不全或报错“文件被占用”,说明 usermapping 未生效或 NFS 导出选项错误关键参数表:NFS 导出选项必须匹配
| 选项 | Lab Guide 要求值 | 作用 | 错误值后果 |
|---|---|---|---|
rw | 必须启用 | 允许读写 | ro导致 Linux 无法写入 |
no_root_squash | 必须启用 | 保持 root UID 0 权限 | root_squash将 root 映射为 nobody,写入失败 |
sync | 必须启用 | 强制同步写入,保证 CIFS/NFS 视图一致 | async导致 Windows 看到旧内容 |
5.3 一个后悔药:当权限映射混乱时,如何快速重置 UFS
权限映射一旦出错,整个 Data Mover 的文件服务可能瘫痪。Lab Guide 提供了一个“后悔药”命令,无需重启 Data Mover:
# 清除所有 usermapping(慎用!仅限 Lab 环境): /opt/Navisphere/bin/naviseccli -h 192.168.1.101 usermapping -clear # 重新加载默认映射(Lab Guide 内置): /opt/Navisphere/bin/naviseccli -h 192.168.1.101 usermapping -loaddefault # 验证: /opt/Navisphere/bin/naviseccli -h 192.168.1.101 usermapping -list # 应返回默认的 Administrator/Guest 映射逻辑说明:usermapping -clear是 Lab Guide 唯一允许的破坏性命令,它清空内存中的映射表,但不删除磁盘配置。-loaddefault从 VNX 固件内置模板重建,确保与 Lab 4 的预期完全一致。生产环境严禁使用,但 Lab 环境中,这是比重装 Data Mover 快 20 分钟的救命操作。
我带过的每一批学员,都在 Lab 4 的权限映射上卡过至少一次。后来我养成了一个习惯:每次开始 Lab 4 前,先执行一遍usermapping -list,再截图存档——不是为了留证据,而是给自己一个心理锚点:“如果接下来乱了,我就知道从哪回到原点”。希望帮到你。
本文还有配套的精品资源,点击获取