라즈베리파이 3B 전압 부족과 SSD 끊김: 원인 분석과 전원 배선 직접 만들기

2026년 10월 21일날씨: 맑음

라즈베리파이 3B로 홈페이지 서버를 돌리던 중 홈페이지가 갑자기 열리지 않았다. 들여다보니 USB로 연결한 SSD가 통째로 끊겨 있었고, 그 바람에 DB가 비정상 종료되고 웹서버도 멈춰 있었다. 원인은 소프트웨어가 아니라 전원이었다.

증상

커널 기록(dmesg)에는 이런 순서로 찍혀 있었다.

hwmon hwmon1: Undervoltage detected!
sd 0:0:0:0: [sda] tag#0 timing out command, waited 180s
I/O error, dev sda, sector 134512816 op 0x0:(READ)
usb 1-1.3: USB disconnect, device number 5
Aborting journal on device sda1-8.
EXT4-fs (sda1): shut down requested (2)

전압 부족이 감지된 뒤 SSD가 명령에 응답하지 않았고, 커널이 180초를 기다리다 포기하자 USB 연결 자체가 끊겼다. 쓰고 있던 파일시스템은 저널을 중단했고, 데이터 폴더를 잃은 MariaDB는 비정상 종료(ABRT)됐다. 이런 일이 설치 작업 중에 한 번, 접속이 몰릴 때 한 번 일어났다.

다행히 SSD를 다시 꽂은 뒤 전체 디스크 검사(e2fsck -f)에서 오류는 0개였고, DB도 스스로 복구된 뒤 표 12개가 모두 검사를 통과했다. 하지만 원인을 없애지 않으면 언젠가 데이터가 망가질 것이 뻔했다.

전압 상태 읽기: vcgencmd get_throttled

라즈베리파이는 전압과 온도 상태를 비트로 알려 준다. 문제가 생기면 가장 먼저 볼 값이다.

$ vcgencmd get_throttled
throttled=0x50005
비트뜻 (지금)비트뜻 (부팅 뒤 한 번이라도)
0전압 부족16전압 부족이 있었음
1CPU 주파수 제한17주파수 제한이 있었음
2속도 제한(throttling)18속도 제한이 있었음
3온도 소프트 제한19온도 소프트 제한이 있었음

0x50005를 2진수로 풀면 비트 0, 2, 16, 18이 켜져 있다. “지금 전압이 부족해서 속도를 낮추고 있고, 부팅 뒤로 계속 그래 왔다”는 뜻이다. 실제로 CPU는 원래 속도인 1200MHz가 아니라 600MHz로 돌고 있었다. 부하가 거의 없는 상태(load average 0.5)에서도 약 20초마다 ‘부족 → 정상 → 부족’을 반복했다. 정상이면 0x0이 나와야 한다.

왜 SSD가 먼저 쓰러질까

장치기준
라즈베리파이 전압 부족 경고약 4.63V 아래
2.5인치 SATA SSD 허용 범위5V ±5% = 4.75 ~ 5.25V

2.5인치 SSD는 SATA 전원의 3.3V, 5V, 12V 중 5V만 쓴다. 허용 범위의 아래 끝이 4.75V라서, 라즈베리파이가 ‘전압 부족’을 외치기도 전인 4.63 ~ 4.75V 구간에서 이미 SSD는 규격 밖에 놓인다. 경고가 뜨는 순간이라면 SSD는 확실히 규격 밖이다.

게다가 SSD는 쓰기가 몰릴 때 순간 전류가 평균의 몇 배로 뛴다. Intel 520 시리즈의 평균 소비전력은 동작 0.85W, 대기 0.6W로 5V에서 0.12 ~ 0.17A 수준이지만, 문제는 평균이 아니라 순간값이다. 전류가 순간적으로 뛰면 그만큼 전압이 더 꺼진다. 라즈베리파이는 버티는데 SSD가 먼저 쓰러지는 구조다.

전압은 어디서 떨어지나: 케이블 저항

쓰던 어댑터는 ‘5V 3A’ 제품이었다. 정격은 충분한데 왜 모자랄까. 범인은 대부분 케이블이다. 전선에도 저항이 있어서, 전류가 흐르면 옴의 법칙(V = I × R)만큼 전압이 떨어진다. 전원은 + 선으로 갔다가 − 선으로 돌아오므로 케이블 길이의 두 배를 지나는 셈이다.

전선 굵기1m당 저항 (구리)1m 케이블 왕복 저항1.5A일 때 전압 강하
28 AWG (얇은 충전 케이블에 흔함)약 0.213Ω약 0.43Ω약 0.64V
24 AWG약 0.084Ω약 0.17Ω약 0.25V
20 AWG약 0.033Ω약 0.067Ω약 0.10V

얇은 1m 케이블이라면 어댑터가 정확히 5.0V를 내보내도 라즈베리파이 단자에는 4.4V 안팎밖에 남지 않는다. 여기에 커넥터 접촉 저항과 라즈베리파이 입력단의 보호 소자(폴리퓨즈)에서 조금 더 떨어진다. 같은 3A 어댑터라도 케이블 하나로 결과가 완전히 달라지는 이유다.

혹시 몰라 7인치 디스플레이의 전원을 따로 분리하고, 나중에는 디스플레이를 아예 떼어 보았다. 그래도 전압 부족은 그대로였다. 결국 전원 배선 자체를 바꿔야 했다.

해결: SSD 전원을 따로 빼기

SSD가 라즈베리파이의 USB 전원을 나눠 쓰는 한, 라즈베리파이 입력 케이블에는 두 장치의 전류가 함께 흐르고 SSD의 순간 전류까지 그대로 실린다. 그래서 SSD 전원을 라즈베리파이에서 떼어 내기로 했다.

쓰던 USB-SATA 컨버터의 USB 케이블 피복을 벗겨 전원선(VBUS)을 끊고, 컨버터 쪽 전원선에 외부 5V 전원을 납땜해 연결했다. 라즈베리파이와 컨버터 사이에는 USB 데이터선(D+, D−)과 GND만 이어지게 했다.

External 5V (+) ──────────────────► Converter VBUS
External 5V (−) ──┬───────────────► Converter GND ──► SSD
                  │
Pi USB GND ───────┘
Pi USB D+, D− ────────────────────► Converter D+, D−
Pi USB VBUS ──✕ (cut)

선마다 이렇게 처리한 이유가 있다.

  • VBUS를 끊는 이유: 라즈베리파이의 5V와 외부 5V가 맞물리면 두 전압이 조금만 달라도 높은 쪽에서 낮은 쪽으로 전류가 거꾸로 흘러 들어간다(역전류). 두 전원은 서로 만나지 않게 한다.
  • GND를 잇는 이유: USB 데이터 신호(D+, D−)는 GND를 기준으로 0과 1을 판단한다. 두 장치의 GND가 떨어져 있으면 기준이 어긋나 통신이 되지 않으므로, 전원은 나누되 GND는 공통으로 묶는다.
  • 효과: 라즈베리파이 입력 케이블에는 이제 라즈베리파이 자신이 쓰는 전류만 흐른다. 전류가 줄어든 만큼 케이블에서 떨어지는 전압(I × R)도 줄고, SSD의 순간 전류가 라즈베리파이 전압을 끌어내리는 일도 없어진다. SSD는 외부 전원에서 안정된 5V를 받는다.

외부 전원은 SSD와 컨버터를 합쳐 1A 이상 여유가 있는 5V면 충분하다. 연결하기 전에 멀티미터로 극성과 전압(SSD 허용 범위 4.75 ~ 5.25V 안)을 꼭 확인한다.

결과

항목바꾸기 전 (5V 3A 어댑터)바꾼 뒤 (SSD 전원 분리)
get_throttled0x500050x0
전압 부족 기록약 20초마다 반복0회 (최대 부하 시험 포함)
CPU 속도600MHz (제한됨)1200MHz
SSD 연결설치 중, 접속이 몰릴 때 두 번 끊김최대 부하 시험에서도 오류 없음
홈페이지가 열리는 시간2 ~ 7초약 1초

최대 부하 시험은 CPU 코어 4개를 100%로 돌리면서 동시에 SSD를 캐시 없이 계속 읽는 방식(dd iflag=direct)으로 1분 동안 했다. 전압 부족은 한 번도 기록되지 않았다. CPU가 제 속도를 찾으면서 홈페이지도 눈에 띄게 빨라졌다.

덤: 방열판 온도

CPU가 1200MHz로 돌기 시작했으니 열도 확인했다. 방열판을 단 상태로 CPU 코어 4개를 100%로 2분 30초 동안 돌리며 15초마다 온도를 읽었다.

상태온도CPU 속도
쉬는 상태40.8℃1200MHz
최대 부하 1분60.7℃1200MHz
최대 부하 2분 ~ 2분 30초64 ~ 65℃에서 더 오르지 않음1200MHz
부하를 끝내고 30초 뒤48.3℃–

라즈베리파이 3B는 80℃부터 스스로 속도를 낮춘다. 최악의 부하에서도 15℃ 이상 여유가 있었고, 시험 내내 throttled=0x0이었다. 실제 홈페이지는 방문자가 있을 때만 잠깐씩 일하므로 평소에는 40℃대에 머문다.

정리

‘5V 3A’라고 적힌 어댑터라도 케이블이 얇으면 소용없다. 라즈베리파이에 SSD를 붙인다면 SSD의 허용 하한(4.75V)이 라즈베리파이의 경고 기준(4.63V)보다 높다는 점을 기억하자. 가장 확실한 해결은 SSD 전원을 따로 빼고 GND만 공통으로 묶는 것이다. 그리고 이상하면 vcgencmd get_throttled부터 확인하자.

완성

다 만들고 외부에서 접속하니 이렇게 실행이 되었다.

외부에서 접속한 HC Elecs 홈페이지 첫 화면
인터넷(외부)에서 접속한 홈페이지 첫 화면. 왼쪽 아래에 방문자 수와 시계가 보인다.

댓글 남기기