简介:这份HCNA-Storage培训教材V4.0面向准备华为HCIA-Storage认证的存储初学者与运维工程师,系统讲解存储技术基础概念与主流架构。内容从广义与狭义存储定义切入,梳理存储系统的硬件架构、软件组件与解决方案三大部分,并重点对比DAS、NAS、SAN三种架构的适用场景,同时延伸至分布式存储、软件定义存储及低中端存储平台特性,帮助读者建立完整的存储知识框架。资源包为1个PDF文件,大小约39.06MB,内容结构清晰,便于按章节系统学习与查阅。目前已有1239人学习下载,适合需要夯实存储基础、理解存储选型与规划思路的工程师参考,也可作为认证备考的配套资料。
1. 从一份 HCNA-Storage 培训教材说起:存储入门到底该学什么
很多人第一次接触企业级存储,是从一份 HCNA-Storage 培训教材 V4.0 开始的。它不像服务器那样有直观的 CPU、内存参数,也不像网络设备那样能 ping 通就完事。存储这东西,玄学得很——同样一组盘,配 RAID5 还是 RAID10,跑数据库的性能能差出好几倍;同样一个 LUN,映射给主机时选错 Initiator,操作系统里死活认不到盘。这份教材的价值在于,它把存储的底层逻辑、协议栈、RAID 算法、SAN/NAS 架构、容灾方案串成了一条线,让你从“只会插盘”变成“知道为什么这么插”。它适合两类人:一是刚入行的 IT 运维,需要快速建立存储知识框架;二是传统网络或服务器工程师,想补齐存储这块短板。但教材是 PDF,不是视频,没人给你演示命令,所以你得自己把里面的概念翻译成可操作的实验步骤。
2. 拆解 HCNA-Storage 的知识骨架:从 RAID 到 SAN 的四个必懂模块
2.1 存储介质与 RAID 算法:为什么教材先讲机械盘和 SSD 的差异
HCNA-Storage 教材开篇不会直接讲华为或某厂商的阵列型号,而是先讲介质。机械硬盘的寻道时间、旋转延迟、顺序写和随机写的差距,直接决定了后面 RAID 选型。SSD 的磨损均衡、写放大、TRIM 机制,又决定了全闪阵列该配 RAID5 还是 RAID6。教材里会给出一个经典表格:RAID0 条带化无冗余,RAID1 镜像,RAID5 单校验,RAID6 双校验,RAID10 先镜像再条带。但光看表格没用,你得算 IOPS。比如 8 块 15K SAS 盘做 RAID5,理论随机写 IOPS 是多少?公式是(盘数-1)× 单盘 IOPS × 写惩罚系数。RAID5 写惩罚是 4,RAID10 是 2。所以 8 块盘 RAID5 的随机写 IOPS 只有 7×180/4≈315,而 RAID10 是 4×180/2=360。差距不大?但换成 4 块盘,RAID5 是 3×180/4=135,RAID10 是 2×180/2=180,差了 33%。这就是为什么数据库日志盘通常建议 RAID10。
提示:教材里的 IOPS 计算公式是理论值,实际还要考虑阵列控制器的缓存、写策略(Write Back 还是 Write Through)、条带深度。做实验时先用小文件随机写测,别拿理论值当验收标准。
2.2 SAN 与 NAS 的协议栈:iSCSI、FC、NFS、CIFS 到底怎么选
教材会把 SAN 和 NAS 分开讲。SAN 是块级访问,主机看到的是 LUN,文件系统在主机侧;NAS 是文件级访问,主机看到的是共享目录,文件系统在存储侧。协议上,FC 需要 HBA 卡和光纤交换机,成本高但延迟低、稳定性好;iSCSI 走以太网,成本低但依赖网络质量,容易受丢包和拥塞影响。NFS 和 CIFS 是 NAS 协议,NFS 适合 Linux/Unix,CIFS 适合 Windows。教材里会有一个对比表,但实际选型时,我一般会问三个问题:有没有 FC 交换机?主机侧能不能装多路径软件?对延迟的容忍度是多少?如果答案是“没有、能、50ms 以内”,那 iSCSI 加多路径就够了。如果答案是“有、能、5ms 以内”,那必须上 FC。
2.3 多路径与链路聚合:主机侧认不到盘的第一排查点
多路径是存储实验里最容易翻车的地方。教材会讲 MPIO、ALUA、Path Selection Policy,但不会告诉你:在 Linux 下,如果没装多路径软件,同一个 LUN 会被识别成两块盘,一块是 /dev/sdb,一块是 /dev/sdc,你往 sdb 写数据,sdc 可能还是旧的。更坑的是,有些阵列的 ALUA 配置不对,主控和备控的优先级反了,导致 IO 全走备控,性能直接腰斩。排查时先看multipath -ll的输出,确认每条路径的状态是 active 还是 ghost。如果是 ghost,说明该路径对应的控制器不是优选控制器,需要检查阵列的 ALUA 设置。
2.4 快照与克隆:教材里最容易被低估的容灾功能
快照不是备份,但教材会把它放在容灾章节。快照的原理是写时重定向(ROW)或写时复制(COW)。ROW 在写新数据时,把旧数据块保留,新数据写到新位置,所以快照创建后对性能影响小,但快照链长了会拖慢读性能。COW 在写数据前先复制旧块,对写性能影响大,但快照空间利用率高。教材里会讲快照的恢复流程,但不会讲:如果快照链超过 32 层,很多阵列会直接拒绝创建新快照。所以做实验时,别一直打快照不删,定期清理。
3. 用模拟器搭一套最小存储实验环境:从零到能跑 IO
3.1 选型:为什么用 Linux 加 LIO 而不是买硬件
HCNA-Storage 教材配套的实验通常是真机,但个人学习没必要。我一般用 Linux 的 LIO(Linux-IO Target)来模拟 iSCSI 阵列。LIO 是内核态的 SCSI 目标,支持 iSCSI、FC、FCoE,配置通过 targetcli 完成。优点是免费、轻量、能模拟多路径和 ALUA。缺点是性能不如硬件阵列,但做功能验证足够了。你需要一台 Linux 虚拟机(CentOS 7 或 Ubuntu 20.04 以上),加两块虚拟磁盘作为后端存储。网络模式选桥接或仅主机,确保主机能访问虚拟机的 3260 端口。
3.2 配置 LIO 目标:创建后端存储、LUN 和 ACL
先安装 targetcli:
# CentOS/RHEL yum install targetcli -y # Ubuntu/Debian apt install targetcli-fb -y然后进入 targetcli 交互界面:
targetcli在交互界面里依次执行:
# 创建后端存储,使用 /dev/sdb 和 /dev/sdc 两块盘 /backstores/block create disk1 /dev/sdb /backstores/block create disk2 /dev/sdc # 创建 iSCSI 目标,IQN 格式为 iqn.年份-月份.域名:自定义标识 /iscsi create iqn.2025-01.com.example:storage.demo # 创建 LUN,将后端存储映射到目标 /iscsi/iqn.2025-01.com.example:storage.demo/tpg1/luns create /backstores/block/disk1 /iscsi/iqn.2025-01.com.example:storage.demo/tpg1/luns create /backstores/block/disk2 # 创建 ACL,允许特定 Initiator 访问 /iscsi/iqn.2025-01.com.example:storage.demo/tpg1/acls create iqn.2025-01.com.example:client.demo # 设置端口 /iscsi/iqn.2025-01.com.example:storage.demo/tpg1/portals create 0.0.0.0 3260 # 保存配置并退出 saveconfig exit逻辑说明:/backstores/block是把物理块设备暴露给 LIO 的模块。/iscsi create创建目标,IQN 必须唯一。luns create把后端存储挂到目标下,每个 LUN 会自动分配一个 LUN ID。acls create是访问控制,只有匹配的 Initiator 才能登录。portals create指定监听地址和端口,0.0.0.0 表示所有网卡。参数上,/dev/sdb和/dev/sdc要换成你实际的盘符,别照抄。如果盘上有数据,先备份。
3.3 主机侧登录与多路径配置:iscsiadm 和 multipath 的配合
在主机侧安装 iSCSI Initiator 和多路径工具:
# CentOS/RHEL yum install iscsi-initiator-utils device-mapper-multipath -y # Ubuntu/Debian apt install open-iscsi multipath-tools -y修改 Initiator 名称,使其与 ACL 匹配:
# 编辑 /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2025-01.com.example:client.demo发现并登录目标:
# 发现目标 iscsiadm -m discovery -t st -p 192.168.1.100:3260 # 登录 iscsiadm -m node -T iqn.2025-01.com.example:storage.demo -p 192.168.1.100:3260 -l配置多路径:
# 启用 multipathd systemctl enable --now multipathd # 查看多路径设备 multipath -ll逻辑说明:iscsiadm -m discovery会向目标发送 SendTargets 请求,返回可用的 IQN。-l是登录。登录后,主机内核会识别到新的 SCSI 设备。如果没装多路径,你会看到 /dev/sdb 和 /dev/sdc 两块盘,但它们其实是同一个 LUN 的两条路径。multipath -ll会显示一个 mpath 设备,比如 mpatha,以及它下面的两条路径。参数上,-p后面是目标 IP 和端口,-T是目标 IQN。如果登录失败,先检查网络连通性和 ACL 配置。
3.4 用 fio 验证性能:顺序写、随机读和 IOPS 的实测
装 fio:
yum install fio -y # 或 apt install fio -y跑一个随机写测试:
fio --name=randwrite --ioengine=libaio --iodepth=32 --rw=randwrite --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting --filename=/dev/mapper/mpatha逻辑说明:--ioengine=libaio是异步 IO,--iodepth=32是队列深度,--rw=randwrite是随机写,--bs=4k是块大小,--direct=1绕过缓存,--numjobs=4是四个并发任务。输出里的 IOPS 和延迟就是实测值。参数上,--filename要换成你的多路径设备,别写 /dev/sdb。如果 IOPS 远低于理论值,先看multipath -ll的路径状态,再检查阵列的写策略。
4. 避坑指南:HCNA-Storage 实验里最容易翻车的五个点
4.1 现象:主机识别到多块盘,但只有一块能写
原因:没配多路径,或者多路径的 blacklist 把设备过滤了。Linux 默认会把所有 SCSI 设备纳入多路径管理,但有些发行版的/etc/multipath.conf里 blacklist 了sd*,导致多路径不生效。解决:编辑/etc/multipath.conf,注释掉 blacklist 里的devnode "sd*",然后systemctl restart multipathd,再multipath -r重新加载。
4.2 现象:iSCSI 登录成功,但看不到 LUN
原因:ACL 没配,或者 Initiator 名称不匹配。LIO 默认拒绝所有未授权的 Initiator。解决:在 targetcli 里用acls create添加正确的 IQN,然后saveconfig。主机侧用cat /etc/iscsi/initiatorname.iscsi确认名称一致。如果还不行,检查/var/log/messages里的 iscsid 日志。
4.3 现象:fio 跑出来的 IOPS 只有理论值的十分之一
原因:写策略是 Write Through,或者阵列缓存没启用。LIO 默认的写策略可能是 Write Through,每个写都要落盘才返回。解决:在 targetcli 里设置demo_mode_write_protect=0和emulate_write_cache=1,然后重新登录。如果是硬件阵列,检查是否开了 Write Back 和电池保护。
4.4 现象:快照创建后,主机 IO 延迟飙升
原因:快照链太长,或者快照空间不足。ROW 快照在写新数据时要查快照表,链长了查表时间线性增长。解决:定期删除旧快照,或者用克隆代替快照做长期保留。如果快照空间满了,阵列会挂起 IO,所以监控快照空间使用率,设 80% 告警。
4.5 现象:多路径显示路径是 ghost,但 IO 还能跑
原因:ALUA 配置不对,优选控制器和备选控制器反了。有些阵列的默认 ALUA 状态是 standby,但主机侧没识别,导致 IO 走备控。解决:在 targetcli 里设置alua_tpgs,或者在主机侧用multipath.conf的path_selector强制选 active。更彻底的办法是检查阵列的 ALUA 配置,确保主控的 TPG 是 active/optimized。
5. 从教材到实战:把 HCNA-Storage 的知识迁移到真实项目
教材里的实验是理想环境,真实项目里你会遇到更多边界情况。比如,某公司的一台数据库服务器,用 iSCSI 挂了一个 2TB 的 LUN,跑 MySQL。某天业务反馈写入变慢,查multipath -ll发现一条路径是 ghost,另一条是 active,但 active 路径的网卡是 1Gbps,ghost 路径是 10Gbps。原因是阵列的 ALUA 配置把 10Gbps 控制器设成了备控。解决方法是登录阵列管理界面,把 10Gbps 控制器的 ALUA 状态改成 active/optimized,然后主机侧multipath -r重新加载。这个案例说明,教材里的 ALUA 概念不是摆设,配错了就是性能腰斩。
另一个常见场景是快照恢复。教材里讲快照恢复是“回滚到某个时间点”,但没讲回滚时主机侧要做什么。真实操作是:先卸载文件系统,然后在阵列侧执行回滚,再重新挂载。如果文件系统是 ext4,回滚后可能需要fsck。如果是 XFS,回滚后直接挂载可能报错,因为 XFS 的 UUID 变了。所以回滚前一定要备份,回滚后先fsck再挂载。
我自己的习惯是:每次做存储实验,先画一张拓扑图,标清楚 Initiator、Target、LUN、路径、多路径设备。然后按顺序配:后端存储、LUN、ACL、端口、主机登录、多路径、文件系统。每步做完都验证,别跳步。最后用 fio 跑一遍基线,记下 IOPS 和延迟,以后出问题先对比基线。这个习惯帮我省了很多后悔药。希望帮到你。
本文还有配套的精品资源,点击获取