1. 交换机存储管理到底要管什么交换机系统存储管理听起来像是后台运维才关心的事实际上它离故障现场最近。我前阵子在某园区网络改造项目里做设备例行巡检连续几台设备冒出来同样的问题启动配置文件明明保存过断电重启后却回到出厂状态日志文件把 Flash 剩余空间挤到 0连一条告警日志都写不进去。折腾到后来发现根子全在存储管理上。这篇文章就把我从排障经历里总结出来的东西完整写一遍讲讲存储结构、常用操作、升级注意事项和故障排查适合刚接触网络设备的同学也适合每天和设备打交道但很少深究存储细节的运维老手。不少人以为交换机存储就是看看 Flash 还剩多少空间其实没那么简单。交换机上的“存储”指设备自身的 Flash、外部 U 盘/TF 卡这类介质而系统软件、补丁、配置文件、License、日志全部都要落在这些存储介质上。任何一块空间分配不合理都可能引发连锁问题。1.1 一个典型故障画面先说我在项目上遇到的具体情况。设备巡检时发现一台设备保存配置一直报错提示写文件失败。我跑到现场执行dir一看Flash 剩余空间是 0。再一查发现/logfile目录下积压了好几个月的日志文件每个几十 MB把整个存储塞满了。当时第一反应是赶紧删日志但删完之后又发现启动配置文件也没了因为之前保存配置失败配置其实一直只存在于运行时内存里设备一重启就什么都没了。这就是典型的“存储管理没跟上”引发的连环故障。1.2 存储管理对象清单管理对象主要作用不管会怎样系统软件文件设备启动时加载的操作系统镜像镜像损坏或丢导致无法启动配置文件保存运行配置保证重启后配置仍在配置丢失重启恢复出厂License/特性文件控制功能授权和资源规格功能无法启用授权失效日志文件记录运行状态、告警和排障信息日志缺失故障无从查起补丁/热补丁文件修复已知问题不替换主版本版本缺陷无法及时规避临时/核心转储文件系统异常时生成的排障文件文件堆积占用大量空间所以存储管理不是“偶尔清理一下 Flash”这种事而是要形成一套日常纪律知道哪些文件存在哪里、占用多大、能不能删以及升级和恢复时该依赖哪个文件。2. 存储介质与文件系统结构不同型号的设备存储介质不太一样常见的是内置 Flash、外部 U 盘、TF 卡早期还有 CF 卡。接口形态虽然不同逻辑上基本一致设备把存储介质挂载成一个文件系统用/表示根目录用flash:、usb0:这类名称指代具体介质。我在命令里最常用的是flash:它通常对应设备内置存储也是系统软件和配置文件的默认存放位置。外部介质则像认识的新朋友第一次插上去可能需要确认格式和挂载点用dir就能看到它当前的内容。2.1 查看存储容量的正确姿势先把最常用的命令写出来dir这条命令看的是当前目录下的文件和子目录列表。如果要看某个具体介质可以这样dir flash:/ dir usb0:/输出里通常会包含文件权限、大小、日期和文件名还会给出总共多少空间、已用多少、剩余多少。比如下面这段Directory of flash:/ -rw-r--r-- 7868868 Apr 12 2025 10:23:22 system-version.cc -rw-r--r-- 1148 Apr 12 2025 10:25:36 private-data.txt drwxr-xr-x 4096 Apr 12 2025 10:30:01 logfile 128 MB total (26 MB free)第一列的d表示目录没有d的就是普通文件第二列之后的数字是文件大小单位字节最后是时间和文件名。后面那行空间统计才是关键如果剩余空间不足保存配置和升级都会出问题。2.2 文件命名与文件类型各厂商的设备对文件后缀的偏好不太一样但常见类型基本能归纳出来后缀/关键词用途.cc/.bin系统软件镜像.cfg/.dat配置文件.lic/.datLicense 授权文件.log日志文件.pat补丁文件我一般不给设备搞一堆自定义的奇怪文件尽量保持根目录干净。系统软件放根目录配置文件固定一个名字日志归到/logfile临时上传的文件用完之后马上转移或删除。存储管理做得好的设备根目录一眼看过去就知道每个文件是干嘛的。3. 日常存储操作的关键命令与实操要点真正在设备上做存储管理绕不开文件操作命令。这些命令不复杂但用错一个字母就可能把配置文件删了或者覆盖掉所以要养成先查看、再复制、最后删除的习惯。3.1 目录切换与文件查看pwd cd flash:/ mkdir backup dir backuppwd看当前目录cd切换目录mkdir创建子目录dir查看内容。我建议在 Flash 上至少建一个backup目录专门放手工备份的配置和临时文件避免和系统文件混在一起。上传文件到设备或者从设备下载文件常常也要先确认目标目录存在。目录路径不对拷贝会直接失败。3.2 复制、删除和重命名的陷阱复制文件是最常用的操作copy flash:/startup.cfg flash:/backup/startup-20250412.cfg复制完成后最好再用dir对比一下源文件和目标文件的大小确保文件完整。删除文件就要小心了。很多设备删除并不是真正把空间释放出来而是把文件放进回收站需要执行清空回收站的操作才能真正释放 Flash 空间。比如delete flash:/logfile/old-log_202503.log reset recycle-bin如果直接执行格式化那就不是删单个文件的问题了format flash:/这条命令会把整个 Flash 清掉系统软件、配置文件、日志全部消失。除非你确认手上有完整的备份而且已经做好了设备返厂或者重装的准备否则不要轻易执行。重命名文件用rename比如把备份配置改成更容易识别的名字。改完之后记得检查一下启动配置引用的是不是新文件名否则重启后可能加载不到配置。3.3 配置文件上传与备份实操配置备份是存储管理里最核心的一环。我常用 TFTP 把配置文件拉到外部服务器步骤大概是先执行save确保运行配置已经落盘。查看当前启动配置文件名称。用copy将配置文件复制到 TFTP 服务器。去服务器上确认文件大小不为 0内容可读。命令参考save copy flash:/startup.cfg tftp://192.0.2.10/backup/switch1-20250412.cfg这里192.0.2.10是文档中常用的测试地址实际使用要换成你自己管理网段的地址。用 TFTP 时要注意服务器需要允许写入而且 TFTP 是明文传输生产环境建议拉到内部的运维网络里操作。如果设备支持 FTP 或 SCP我更推荐用 SCP 这类带加密的协议。原因很简单配置文件里往往有密码哈希、SNMP 团体名、管理地址这类敏感信息裸奔传输不安全。4. 升级与启动中的存储关键点交换机系统软件升级是最考验存储管理水平的场景。很多人升级失败不是版本不兼容而是 Flash 空间不够、文件没传输完整、启动配置指向了错误文件。4.1 升级前空间计算先看一个真实的计算过程。设备输出显示 Flash 一共 128 MB已用 102 MB剩余 26 MB。我要上传一个新的系统软件文件大小 60 MB。这时候如果直接copy大概率会失败因为剩余空间不够。要顺利放下这个文件并保证后续运行有余量我至少需要 70 MB 空闲空间也就是还要清理 44 MB 左右。清理目标优先考虑这些文件过期的日志文件旧的备份配置核心转储文件已经废弃的补丁包上传了一半的临时文件清理完再执行一次dir确认剩余空间确实够用才开始上传新版本。这个“先算空间、再传文件”的顺序能避免至少一半的升级失败。4.2 启动配置文件管理设备重启后加载哪个配置文件是由启动配置指定的。用这条命令查看display startup输出会告诉你当前启动配置文件和下一次启动时的配置文件。如果显示NULL那就意味着设备重启后不会加载任何配置文件直接进入空配置状态。手动指定启动配置文件startup saved-configuration flash:/startup.cfg执行之后最好再display startup确认一次。我见过有人改了文件名但启动配置还指向旧名字结果设备重启后加载不到配置直接变成哑设备。还有一个容易踩的坑只修改运行配置而不save然后在设备断电前自信满满地离开现场。运行配置在内存里一断电就没了。每次变更结束写配置和查看启动配置应该是一对固定动作。5. 常见故障与排查实录这部分我把实际排查中见过的典型问题整理成速查表每个问题后面再补充一下我的处理过程。故障现象可能原因优先处理方向保存配置报错提示写文件失败Flash 剩余空间不足清理日志和临时文件再save重启后配置全部丢失启动配置文件不存在或被改名display startup重新指定配置文件设备无法正常启动系统软件文件损坏或不完整进入引导菜单重传系统文件日志文件异常增长日志文件无大小限制或未轮转配置日志文件上限关闭不必要的调试日志dir命令报文件系统错误文件系统异常或 Flash 损坏尝试修复必要时格式化后恢复5.1 Flash 空间不足排查这类问题我会先看空间统计再看哪个目录占得多。日志目录是首要嫌疑对象其次是/core或类似路径下的异常转储文件。处理顺序是先清空回收站再删旧的日志和 core 文件最后再试保存配置。不要在空间不足时反复保存每次失败都可能产生临时文件让情况更糟糕。5.2 配置文件丢失如果发现display startup里指向的配置文件不存在首先不要慌也不要在现场重新敲一遍全量配置。先检查有没有手工备份有备份就直接上传恢复。没有备份但系统软件还在设备至少能启动到命令行。这时候可以试着从其他同型号设备复制一份基线配置再按实际需求做增量修改。如果连系统软件都没了就走引导菜单从外部服务器把镜像和配置一起传回来。这类问题的根源通常是之前有人在清理 Flash 时把配置文件当临时文件删了或者改名后忘了更新启动配置。教训很简单清理文件前先看清楚它是不是当前启动配置文件。5.3 文件系统异常设备在异常断电后偶尔会出现文件系统错误表现是dir显示目录内容怪异或者文件大小变成乱码。这个时候不要反复重启反复重启可能导致文件系统进一步损坏。稳妥的做法是先尝试文件系统修复操作不同的设备命令不太一样但思路一致让系统重新扫描并修正目录项。修复不了就只能格式化 Flash然后从备份恢复全部文件。格式化是最后手段执行前必须确认手上有系统软件文件、配置文件、License 文件的完整备份。5.4 日志文件把存储塞满日志问题比想象中常见。设备默认的日志容量有限但如果开启了大量调试日志并且没有设置覆盖策略日志文件就会一直累积直到把 Flash 吃干净。我习惯的做法是把日志同时输出到远程日志服务器本地只保留必要部分。配置日志文件大小上限超出后覆盖最旧日志。业务正常运行时关闭 debug 级日志。定期检查/logfile目录结合空间使用情况决定是否清理。日志不是越多越好尤其在生产设备上保存日志的目的是排障而不是慢性吃掉系统空间。6. 我的存储管理操作习惯踩过几次坑之后我给自己定了几条存储管理的硬规矩现在基本不再因为存储问题半夜去机房。6.1 文件命名与备份纪律所有备份文件都按“设备名-日期-用途”的格式命名比如sw1-20250412-before-upgrade.cfg。每次变更前至少保留一份变更前配置变更稳定后再根据策略清理旧备份。备份不只放在设备本地还要定期拉到外部服务器。设备本地备份只防误删不防设备硬件故障。只有外部备份才真正兜底。6.2 升级和排障时的操作习惯任何涉及格式化、删除系统文件、覆盖配置的操作我都会先开会话记录或者至少保留操作前的dir输出。这样出了问题可以快速回溯。操作顺序也有讲究先备份再清理再传输再校验最后才切换启动配置。每一步都确认上一步成功再继续。升级后先保留旧版本软件文件等新版本稳定运行一段时间再清理给自己留一条退路。最后再分享一个小技巧。我每次在设备上做存储相关操作都会先把dir输出完整记录下来特别是系统软件文件和配置文件的字节数。遇到问题一对比就能很快判断文件是被篡改过、覆盖过还是直接丢了。这个习惯救过我很多次强烈建议你也试试。