Read-Only 이슈 Nexus 93180YC-EX 현장에서 직접 펌웨어 올린 이야기
💡 이 글은 실제 고객사 현장에서 진행한 Cisco Nexus 9300 시리즈 SSD 펌웨어 업그레이드 작업 경험담입니다.
부트플래시가 갑자기 읽기 전용(Read-Only)으로 잠겨버리는 황당한 상황, 어떻게 해결했는지 솔직하게 풀어봤습니다.
📋 목차
그날 아침, 심상치 않은 전화 한 통
수요일 오전, 평범하게 커피 한 잔 뽑아놓고 앉았는데 전화가 왔습니다.
"저희 쪽 백업 스위치가 좀 이상한 것 같아요. 로그에 뭔가 계속 찍히는데…"
모 기업 IDC에 납품된 Cisco Nexus 93180YC-EX 스위치 얘기였습니다. 백업 스위치라 당장 서비스에 영향은 없지만, 로그에 계속 이상한 메시지가 찍힌다는 거죠. 원격으로 로그를 받아서 확인해보니…
EXT4-fs (sda4): Remounting filesystem read-only - kernel
이 한 줄을 보는 순간 '아, 이거 SSD 문제다' 싶었습니다. 커피를 한 모금 마시고 장비 가방을 챙기기 시작했죠.
범인은 SSD — Read-Only가 뭔데요?
먼저 이 현상을 모르는 분들을 위해 쉽게 설명하면 이렇습니다.
💡 비유로 이해하기
스위치 안에 있는 SSD를 스위치의 일기장이라고 생각해보세요.
평소엔 설정도 쓰고, 로그도 기록하고, 필요한 파일도 저장하는데…
어느 날 갑자기 일기장이 "읽기만 가능, 쓰기 금지" 상태로 잠겨버린 겁니다.
새 설정을 저장하려 해도, 로그를 남기려 해도 — 전부 거절당하는 상황이죠.
원인은 SSD 펌웨어 버그. 특정 버전에서 이 증상이 발생하는 게 알려져 있었습니다.
Cisco에서도 이 이슈를 공식 인지하고 있었고, 93180YC-EX 모델에서 특정 SSD 펌웨어 버전을 사용할 경우 온도 센서 이상값(Temperature_Celsius = 128)이나 장시간 사용 시 파일시스템이 Read-Only로 전환되는 버그가 있었습니다. 해결책은 하나 — SSD 펌웨어 업그레이드.
작업 전 준비: 일단 현장 상태부터 확인
오전 10시, IDC 현장에 도착했습니다. 항상 느끼지만 IDC는 시원하고 시끄럽습니다. 수백 대 장비의 팬 소리가 한꺼번에 울려대는 그 특유의 소음. 귀마개 없이 오래 있으면 귀가 멍해지죠.
바로 장비 앞에 앉아 콘솔 케이블 연결하고 상태 확인부터 시작했습니다. 아무리 급해도 현재 상태 백업이 먼저입니다. 나중에 "작업 전이랑 달라졌어요" 같은 말 들으면 답이 없거든요.
switch# show run
switch# show vlan
switch# show port-channel summary
switch# show log
switch# dir bootflash:
설정 백업을 끝낸 뒤, 이번 작업의 핵심인 SSD 상태를 직접 확인했습니다. 넥서스 스위치에서 SSD를 들여다보려면 bash 모드로 진입해야 합니다. 일반 CLI에서는 SSD 내부까지 못 보거든요.
💡 bash 모드란?
Nexus 스위치는 내부적으로 Linux 위에서 돌아갑니다.
bash 모드는 그 Linux 내부로 직접 들어가는 문 같은 거예요.
평소엔 잠겨 있고, 필요할 때만 열어서 들어가는 방식입니다.
switch# feature bash
switch# run bash
sudo su
smartctl -a /dev/sda | egrep 'Model|Firmware|Hours'
smartctl -a /dev/sda | egrep 'Temperature_Celsius|ID#'
결과를 보는 순간 확인됐습니다. Temperature_Celsius 값이 128. 정상 범위를 완전히 벗어난 이상값이었죠. 이 값이 128로 찍히면 SSD 펌웨어 버그가 확실합니다. 스위치를 한 번 재부팅하고 나서 본격 업그레이드를 진행하기로 했습니다.
⚠️ Temperature_Celsius 128이 왜 이상한가요?
SSD의 실제 온도가 128도라는 게 아닙니다.
128은 펌웨어가 온도 센서를 읽지 못할 때 뱉어내는 오류 코드값이에요.
마치 체온계가 고장나서 "ERR"을 표시하는 것과 같은 상황입니다.
이 값이 나오면 업그레이드 전 재부팅을 먼저 해야 안전합니다.
본격 펌웨어 업그레이드 — 손에 땀이 났다
재부팅 후 스위치가 올라오는 것을 확인하고, 11시 35분부터 본격 업그레이드를 시작했습니다. 이 작업의 특징은 스위치가 살아있는 상태에서 SSD 펌웨어를 바꾼다는 점입니다. 마치 자동차가 달리는 중에 타이어를 교체하는 느낌이랄까요.
백업 스위치라 서비스 영향은 없었지만, 그래도 손이 덜렸습니다. 펌웨어 업그레이드 도중 전원이 나가거나 세션이 끊기면 최악의 경우 장비가 벽돌이 될 수도 있으니까요.
💡 펌웨어(Firmware)가 뭐예요?
장비 안에 내장된 아주 기초적인 운영 프로그램입니다.
스마트폰으로 치면 안드로이드/iOS보다 더 깊은 곳에 있는, 하드웨어를 직접 제어하는 코드예요.
SSD 펌웨어는 SSD가 데이터를 읽고 쓰는 방식 자체를 제어합니다.
버그가 있으면 아무리 위에서 멀쩡한 OS가 돌아도 SSD가 이상하게 동작하는 거죠.
업그레이드 파일은 USB에 담아 현장에 가져갔습니다. 스위치에 USB를 꽂고 bash 모드에서 파일을 확인하는 순간부터 본격 시작입니다.
① USB 마운트 확인 & 파일 복사
bash-4.3# ls /mnt/usbslot1
upgrade_m500_firmware.tar.gz
bash-4.3# cp /mnt/usbslot1/upgrade_m500_firmware.tar.gz /tmp/
bash-4.3# ls -l /tmp/upgrade_m500_firmware.tar.gz
USB에서 파일을 /tmp로 복사했습니다. 왜 /tmp냐고요? 펌웨어 업그레이드 스크립트를 실행할 때 현재 디렉토리 위치가 중요하거든요. 그리고 복사 확인은 필수 — 파일이 깨진 채로 복사됐다가 업그레이드 도중 오류 나면 그게 더 끔찍하니까요.
② /tmp 이동 후 압축 해제
bash-4.2# cd /tmp
bash-4.2# tar -xvzf upgrade_m500_firmware.tar.gz
💡 tar -xvzf 가 뭐예요?
압축 파일을 푸는 명령입니다. 비유하면 택배 박스를 뜯는 것과 같아요.
x = 풀기(extract), v = 풀면서 목록 보여주기(verbose), z = gzip 압축 형식, f = 파일 지정.
압축이 풀리면서 파일 목록이 주르르 올라오는데, 이게 정상적으로 보여야 다음 단계로 갑니다.
③ 업그레이드 스크립트 실행 — 여기서부터 진짜 긴장
bash-4.2# ./upgrade_m500_firmware
엔터를 치는 순간, 화면에 진행 메시지가 올라오기 시작했습니다. 이 명령 하나가 SSD 내부 펌웨어를 직접 덮어쓰는 작업을 합니다. 중간에 세션 끊기면? 전원 나가면? 생각하기도 싫은 시나리오죠.
IDC 특유의 팬 소음만 귀를 때리는 가운데, 화면만 뚫어지게 쳐다봤습니다. 옆에 앉은 고객사 담당자도 같이 화면을 응시하면서 아무 말도 없었어요. 말 걸기가 미안할 분위기였습니다.
④ 업그레이드 완료 후 최종 상태 확인
bash-4.2# smartctl -a /dev/sda
약 55분 후, 업그레이드 완료 메시지가 떴습니다. 그리고 바로 smartctl -a /dev/sda로 SSD 전체 상태를 확인했습니다. 펌웨어 버전이 바뀌었는지, 온도 센서가 정상값을 찍는지 — 이 두 가지가 확인되는 순간 "후—" 하고 숨을 내뱉었습니다. 옆의 담당자도 같이 안도의 한숨을. 우리 둘 다 55분 동안 제대로 숨을 못 쉬고 있었던 거였습니다.
작업 후 확인 및 마무리
업그레이드 후엔 꼭 세 가지를 확인합니다. 이건 제 나름의 루틴이에요.
| 확인 항목 | 확인 명령 | 기대값 |
|---|---|---|
| 펌웨어 버전 | smartctl -a /dev/sda | grep Firmware | 신규 버전 표시 |
| 온도 센서값 | smartctl -a /dev/sda | grep Temperature | 정상 수치 (128 아님) |
| 파일시스템 상태 | dir bootflash: / show log | Read-Only 로그 없음 |
세 가지 모두 정상. 온도 센서도 정상 수치를 찍고, 부트플래시도 Read-Only 없이 깨끗했습니다. 로그에 더 이상 EXT4-fs read-only 메시지가 올라오지 않는 걸 확인하고 나서야 짐을 쌌습니다.
고객사 담당자가 "수고하셨어요, 점심 드시고 가세요" 했지만 다음 일정이 있어서 정중히 사양했습니다. 나오면서 IDC 건물 앞에서 따뜻한 햇살을 맞으니 그제야 실감이 났습니다. '잘 됐다.'
이 작업을 통해 느낀 것들
이번 작업을 마치면서 다시 한번 느꼈습니다.
① 장비는 언제든 이상해질 수 있다.
93180YC-EX는 데이터센터급 고급 스위치입니다. 비싸고 안정적인 장비죠. 근데 그런 장비도 SSD 펌웨어 버그 하나에 조용히 망가지기 시작합니다. "좋은 장비니까 괜찮겠지"는 없어요.
② 로그를 읽는 습관이 중요하다.
이번 이슈는 로그에 흔적이 있었습니다. EXT4-fs read-only라는 메시지가 계속 찍히고 있었죠. 로그를 안 봤다면? 어느 날 갑자기 설정 저장이 안 된다며 뒤늦게 난리가 났을 겁니다.
③ 백업 스위치라고 방심하면 안 된다.
"어차피 백업이니까 나중에 봐도 되겠지" — 이 생각이 제일 위험합니다. 정작 액티브 스위치에 문제가 생겼을 때 백업 스위치까지 맛이 가 있으면 진짜 손쓸 방법이 없거든요.
💡 현장에서 배운 한 줄 요약
"장비를 믿지 말고, 로그를 믿어라. 그리고 백업 장비도 장비다."
자주 묻는 질문 (Q&A)
Q. Read-Only 상태가 되면 스위치가 완전히 멈추나요?
A. 트래픽 전달(포워딩) 자체는 계속 됩니다. 다만 설정 저장, 로그 기록, 파일 쓰기 등이 모두 안 되는 상태가 됩니다. 당장 서비스가 끊기진 않지만, 그대로 두면 점점 관리가 불가능한 상태로 가게 됩니다.
Q. 이 이슈가 발생하는 모델이 따로 있나요?
A. Cisco Nexus 9300 시리즈 일부 모델에서 보고된 바 있으며, 특히 93180YC-EX에서 확인된 사례가 있습니다. 사용 중인 SSD 모델과 펌웨어 버전에 따라 해당 여부가 다를 수 있으므로, Cisco TAC 또는 공식 Field Notice를 확인하는 것이 정확합니다.
Q. 이런 작업은 서비스 중단 없이 가능한가요?
A. 이번 케이스처럼 백업(스탠바이) 스위치라면 서비스 중단 없이 가능합니다. 액티브 장비라면 사전에 트래픽 절체(failover) 계획을 세우고 유지보수 윈도우 내에 진행해야 합니다.
Q. 일반 사용자도 이런 작업을 할 수 있나요?
A. 솔직히 말씀드리면 비추천합니다. bash 모드 진입과 smartctl 명령은 잘못 건드리면 장비가 부팅 불가 상태(벽돌)가 될 수 있어요. Cisco 공인 엔지니어 또는 전문 유지보수 업체에 의뢰하는 것이 안전합니다.
★같이보면 좋은글 (공부합시다!!!)★
ISSU란? Nexus 무중단 업그레이드 절차와 실패 원인 한눈에 보기
#시스코넥서스 #NexusSSD #펌웨어업그레이드 #ReadOnly #부트플래시 #네트워크엔지니어 #IDC작업 #N9K #93180YCEX #데이터센터 #네트워크장애 #현장경험담 #스위치관리 #EXT4 #smartctl
댓글
댓글 쓰기