1. 라즈베리파이가잘돌아가고있나?SD CARD의상태를확인할수있나? 망가지지않게
라즈베리파이는 지금 정상적으로 잘 돌아가고 있습니다. 다만 SD 카드는 오래 버티도록 미리 대비해 두는 것이 좋겠습니다. 이번에는 상태만 읽어 봤고 설정은 하나도 바꾸지 않았습니다.
현재 상태 (Raspberry Pi 4 Model B)
- 서비스: ethweb, nginx, ethfw-seen, 방화벽 반영, nftables 모두 동작 중이고 실패한 서비스는 없습니다. 연결된 보드는 3대이고, 3일째 재시작 없이 돌고 있습니다.
- 온도는 50.6 ℃입니다. 전원 부족이나 과열로 속도가 떨어진 기록도 없습니다.
- 메모리는 3.7 GB 중 3.0 GB가 여유입니다.
- 디스크는 29 GB 중 7.1 GB(27%)를 쓰고 있습니다.
SD 카드 상태
- 지금까지 커널이 남긴 SD 오류나 입출력 오류는 없고, 파일시스템도 정상(clean)입니다.
- 카드 정보에는 이름이 “SDABC”로만 나옵니다. 상표 없는 저가형 카드로 보이며(2024년 11월 제조), 이런 카드는 갑자기 고장 날 위험이 상대적으로 큽니다.
- 쓰기량은 3일 동안 약 2.8 GB, 하루 약 1 GB입니다. 지금까지 누적은 약 12 GB입니다.
- 브라우저 키오스크(Chromium) 캐시가 이 중 상당 부분을 차지합니다.
- 보드 CSV 로그가 하루 약 22 MB씩 늘어나고, 지금 49 MB입니다.
- 그 외 대부분은 제가 배포하면서 실행한 작업이 쓴 것으로 보입니다.
- 마지막 부팅 때 “orphan cleanup” 기록이 있습니다. 전에 전원이 갑자기 끊긴 적이 있다는 뜻으로, SD가 망가지는 가장 흔한 원인입니다.
- 백업은 없습니다. 카드가 고장 나면 인증서, 방화벽 설정, 보드 ID 등록부, 비밀번호 파일을 모두 다시 만들어야 합니다.
망가지지 않게 할 수 있는 조치 (중요한 순서)
- 백업: 설정과 데이터(인증서, nginx·방화벽 설정, DDNS 설정, ethweb의 boards.json·secrets·fw·energy 파일)를 주기적으로 회사 PC에 복사합니다. 카드가 고장 나도 새 카드에 바로 되살릴 수 있습니다.
- 쓰기 줄이기
- 키오스크 브라우저 캐시를 SD 대신 메모리에 두도록 합니다.
- 오래된 CSV 로그는 압축하거나 일정 기간이 지나면 지웁니다(예: 30일).
- 시스템 로그(journald) 크기에 상한을 둡니다.
- 하드웨어(직접 하실 일)
- 카드를 고내구성(High Endurance) 제품으로 바꾸시거나, Pi 4는 USB SSD 부팅을 지원하므로 SSD로 옮기시면 가장 튼튼합니다.
- 전원이 갑자기 끊기지 않게 정격 전원 어댑터를 쓰시고, 가능하면 UPS를 두시는 것이 좋습니다.
1번과 2번은 Pi의 시스템 설정을 바꾸는 일이라, 어디까지 할지 정해 주시면 진행하겠습니다.
- A: 백업과 쓰기 줄이기를 함께 적용
- B: 백업만 먼저 적용
2. 한 28GB면 용량이 충분할까?
당분간은 충분합니다. 다만 보드 수가 늘어나면 CSV 로그 때문에 부족해질 수 있습니다.
지금 쓰는 양 (방금 확인한 값)
- SD 카드는 29 GB이고, 7.1 GB(OS와 프로그램)를 쓰고 있어 약 20 GB가 남아 있습니다.
- 가장 빨리 늘어나는 것은 전력 보드 CSV 로그입니다. 보드 1대가 1초에 1줄씩 보내면 하루 약 24 MB이고, 압축하면 약 8 MB가 됩니다.
- 로그 정리 설정을 넣었으므로 압축본은 90일만 남습니다. 그래서 로그는 계속 쌓이지 않고 일정한 크기에서 멈춥니다.
- 피부미용기기 시술 기록은 1건에 35바이트 정도라서, 수십만 건이 쌓여도 수십~수백 MB 수준입니다. 용량에는 거의 영향이 없습니다.
보드 수별로 90일 보관할 때의 로그 크기 (어림값)
| 2~3대 (지금) | 약 2 GB | 충분 |
| 10대 | 약 7 GB | 충분 |
| 20대 | 약 15 GB | 빠듯함 |
| 50대 (최대 접속 수) | 약 36 GB | 부족 |
보드가 많아질 때의 대책
- 보관 기간 줄이기: 90일을 30일로 줄이면 위 표의 값이 1/3로 줄어듭니다. 설정 한 줄만 바꾸면 됩니다.
- 기록 간격 늘리기: 지금은 받은 데이터를 모두 기록합니다. 10초나 1분마다 한 줄만 남기면 크기가 1/10 이하로 줄어듭니다. ethweb을 수정해야 합니다.
- 저장 장치 바꾸기: USB SSD로 부팅하면 용량과 내구성을 함께 해결할 수 있습니다. 예를 들어 256 GB면 보드 50대에 90일도 여유 있습니다.
- 장기 보관이 필요한 데이터는 백업 스크립트로 PC에 받아 두고, Pi에는 최근 데이터만 둡니다.
지금처럼 보드 몇 대로 시범 운영할 때는 29 GB로 몇 년은 충분합니다. 실제 보드가 10대를 넘게 붙기 시작하면 위 대책 중 하나를 적용하시면 됩니다. 사실 용량보다 먼저 걱정할 것은 카드의 수명(쓰기 내구성)이어서, 카드를 바꾸실 때 SSD를 함께 검토하시기를 권합니다.
3. Lexar NS100을 구매했어. 디스크를 초기화 해야하는데, PC에 연결했거든 어떤 조건으로 해야해? GPT GUID 파티션 테이블로 만들어야하나?
PC에서는 초기화하지 않으셔도 됩니다. 라즈베리파이의 SD Card Copier(piclone)가 복사할 때 SSD의 파티션 테이블을 새로 만들고, 파티션을 SD 카드와 같은 구성(부트 + 루트)으로 다시 나눕니다. 그래서 PC에서 무엇으로 초기화하든 그 내용은 덮어쓰입니다.
상황별로 하실 것
Windows가 「디스크 초기화」 창을 띄운 경우
- 취소를 누르시면 됩니다. 아무것도 하지 않은 상태가 가장 깔끔합니다.
- 굳이 초기화하신다면 MBR을 고르십시오. 지금 SD 카드도 MBR 방식이고, 복사본도 MBR로 만들어집니다.
- GPT를 고르셔도 piclone이 덮어쓰므로 결과는 같습니다.
하지 마실 것
- 「새 단순 볼륨」으로 파티션을 만들거나 NTFS로 포맷하지 마십시오. 해가 되지는 않지만, 복사할 때 어차피 지워지므로 필요 없는 작업입니다.
PC에서 확인해 두면 좋은 것 (선택)
디스크 관리에서 SSD가 약 238GB로 보이면 제품과 케이블이 정상입니다.
다음 순서
- SSD를 PC에서 분리합니다. 탐색기에서 「꺼내기」는 볼륨이 없으면 생략하셔도 됩니다.
- 라즈베리파이의 파란색 USB 3.0 포트에 SSD를 꽂습니다.
- 꽂으셨다고 알려 주시면, 제가 원격으로 SSD가 인식됐는지 확인합니다. 이어서 백업을 다시 받고 SD 카드 내용을 SSD로 복사합니다. 복사할 때는 새 PARTUUID를 쓰도록 합니다.
- 복사가 끝나면 Pi 전원을 끄고 SD 카드를 뺀 뒤 다시 켜시면 됩니다. 그러면 SSD로 부팅합니다.
4. 라즈베리파이에 SSD를 꽂았어
SSD를 뽑으니 Wi-Fi가 바로 돌아왔습니다. 원인은 USB 3.0이 2.4GHz Wi-Fi를 간섭하는 현상으로 확인됐습니다. 라즈베리파이 4에서 잘 알려진 문제입니다.
확인된 내용
- SSD는 정상입니다. Pi가 SuperSpeed(USB 3.0), UAS 모드로 제대로 인식했습니다.
- 전원도 정상입니다. 전압 부족 기록이 없습니다(throttled=0x0).
- Pi의 Wi-Fi가 2.4GHz를 쓰고 있습니다. 공유기의 2번 채널(2417MHz)에 붙어 있습니다. USB 3.0 신호가 내는 잡음이 정확히 2.4GHz 대역에 걸려서 연결이 끊긴 것입니다.
- 유선(eth0)은 외부 인터넷용이라서, 웹 서비스는 그동안에도 끊기지 않았습니다.
5GHz가 Pi에서도 잘 잡힙니다. 지금 연결을 끊지 않고 안전하게 바꿔 보겠습니다. 5G 연결이 실패하면 기존 2.4GHz로 자동 복구되도록 하겠습니다.
SD 카드 내용을 SSD로 다시 복사했고, 파일시스템 검사와 4GB 읽기 시험(315MB/s)을 오류 없이 마쳤습니다. 이 케이블은 UAS를 끄도록 SD와 SSD 양쪽 부팅 설정에 넣어 두었습니다. 아직 SSD로 부팅하지는 않았습니다.
Pi가 SSD로 부팅됐습니다. 루트와 부트 모두 SSD에서 올라왔고, 5GHz Wi-Fi와 웹, 보드 3대 접속, 방화벽이 모두 정상입니다. USB 오류는 없습니다. SD 카드는 되돌릴 때 쓸 수 있도록 보관해 두시면 됩니다. 이번 변경 내용은 README에 아직 적지 않았습니다.
5. USB 케이블이 중간에 비정상이 될 가능성
오늘 생겼던 문제의 원인은 해결했습니다. 아까 연결이 끊긴 것은 케이블 불량이 아니라, 이 케이블 칩이 UAS라는 고속 모드에서 많은 데이터를 읽을 때 응답을 멈추는 호환성 문제였습니다. UAS를 끈 뒤에는 4GB 연속 읽기와 재부팅 후 동작에서도 USB 오류가 0건입니다.
그래도 아래 경우에는 다시 생길 수 있습니다.
- 케이블이 헐겁게 꽂혀 있거나 건드려 흔들리는 경우: 가장 흔한 원인입니다. SSD와 케이블을 테이프나 케이블타이로 고정해 두시면 좋습니다.
- 전원이 순간적으로 부족한 경우: 지금은 전압 부족 기록이 없습니다(throttled=0x0). 반드시 정격 5V 3A 어댑터를 쓰십시오.
- 케이블 자체가 낡거나 불량인 경우: 드물지만 있을 수 있습니다.
실제로 끊기면 이렇게 됩니다.
- 운영체제가 들어 있는 디스크가 사라지므로 Pi가 멈춥니다. 웹 서비스와 보드 수신이 중단됩니다.
- 재부팅하면 부팅 때 파일시스템을 자동으로 검사하고 복구합니다(fsck.repair=yes). 그래서 대부분 끊기기 직전 몇 초 분량의 기록만 잃습니다.
- 문제는 누군가 전원을 다시 껐다 켜기 전까지 멈춘 상태로 있다는 점입니다.
대비책으로 추천하는 것: 하드웨어 watchdog 켜기
Pi 4에는 시스템이 멈추면 자동으로 재부팅하는 watchdog 회로가 들어 있습니다. systemd 설정 한 줄(RuntimeWatchdogSec=30s)이면 켜지고, 그러면 멈춰도 사람 손 없이 1분 안에 다시 살아납니다. 여기에 보관 중인 SD 카드와 PC 백업까지 있으면 최악의 경우에도 되돌릴 수 있습니다.
6. SSD로 바꾸고 난 뒤에 노이즈가 좀 강한것 같아. 20kHz 근방의 노이즈가 발생하는것 같아. 확인해 볼 방법이 없을까?
, 확인할 방법이 있습니다. 먼저 어떤 노이즈인지에 따라 확인 방법이 달라집니다.
- 귀에 들리는 소리인지: "삐-" 하는 고음
- 다른 장비에 섞여 들어가는 전기 노이즈인지: 스피커 잡음, LCD 화면 떨림, 근처 측정 장비의 신호 등
- 원인 범위 좁히기 (가장 간단)
같은 조건에서 하나씩만 바꿔 보시는 것이 가장 확실합니다.
| A | 지금 상태(SSD, 파란 포트) | 기준 |
| B | SSD를 검은색 USB 2.0 포트로 옮기기 | 노이즈가 줄면 USB 3.0 신호가 원인 |
| C | SSD를 빼고 SD 카드로 부팅 | 노이즈가 사라지면 SSD나 케이블 쪽이 원인 확정 |
| D | 다른 5V 3A 어댑터로 바꾸기 | 달라지면 전원 어댑터가 원인 |
B와 C는 제가 원격으로 바로 확인을 도와드릴 수 있습니다. C는 SD 카드를 다시 꽂고 SSD를 빼서 켜시면 됩니다. 그러면 SSD 복사 직전 상태로 부팅합니다.
- 측정 도구로 확인
귀에 들리는 소리라면: 휴대폰 스펙트럼 분석 앱
- Android는 「Spectroid」, iPhone은 「Spectrum Analyzer」 같은 무료 앱을 쓰시면 됩니다.
- 휴대폰 마이크를 Pi, SSD, 케이블, 어댑터에 차례로 가까이 대 보십시오. 20kHz 부근 막대가 가장 높게 뜨는 곳이 소리의 근원입니다.
- 휴대폰 마이크는 보통 20~22kHz까지 잡으므로 20kHz는 측정 범위 끝 쪽입니다.
전기 노이즈라면: 오실로스코프
- 측정할 곳: Pi의 5V 핀(GPIO 2번 또는 4번 핀과 GND 사이)과 USB 포트의 5V 선
- AC 커플링으로 놓고, 시간축은 20~50µs/div로 맞춥니다.
- SSD를 꽂았을 때와 뺐을 때를 비교해서 20kHz 성분(주기 약 50µs)이 생기는지 보시면 됩니다.
- 의심되는 원인
- 전원 어댑터의 동작 변화 (가능성 높음): SSD가 전력을 약 1~2W 더 쓰면서, 스위칭 어댑터의 동작 주파수가 귀에 들리는 대역(약 20kHz 근처)으로 내려왔을 수 있습니다. 어댑터 쪽에서 소리가 나면 이 경우입니다.
- SSD나 변환 케이블 안의 전원 회로: SSD 내부의 DC-DC 변환기가 부하에 따라 소리를 낼 수 있습니다. 코일 소음(coil whine)이라고 합니다.
- USB 3.0 신호와 케이블: 이 경우는 주로 GHz 대역 노이즈라서 20kHz와는 거리가 멉니다. 다만 케이블이 오디오선이나 센서선 가까이 지나가면 영향이 있을 수 있습니다.
대책 예시: 케이블에 페라이트 코어 달기, 오디오나 센서 선과 떨어뜨리기, 어댑터 교체, 전원이 따로 들어가는 USB 허브 쓰기
어떤 방식으로 노이즈를 느끼셨는지 알려 주시겠습니까? 소리가 들린 것인지, 아니면 어떤 장비나 신호에서 보인 것인지에 따라 다음 단계를 정해 드리겠습니다.
Pi가 SSD를 검은색 USB 2.0 포트에 꽂은 상태로 정상 부팅해서 동작하고 있습니다.
| 부팅 디스크 | SSD (/dev/sda2) |
| 연결 | USB 2.0 (480M), UAS 끈 일반 방식 |
| 읽기 속도 | 38MB/s. 하루 쓰기 1GB 정도인 지금 용도에는 충분합니다 |
| USB 오류 · 전원 | 0건 · 정상 (throttled=0x0) |
| Wi-Fi · 웹 · 보드 | 5GHz 연결 · 외부 접속 정상 · 3대 접속 |
| SSD 감시 서비스 | 동작 중 |
말씀하신 대로 USB 3.0은 신호가 빠른 만큼 노이즈도 많이 냅니다. 귀에 들리지 않는 20kHz 언저리 소리도 가까이 있으면 귀가 먹먹하거나 불편하게 느껴질 수 있습니다. USB 2.0 포트로 쓰셔도 SD 카드보다 수명과 안정성 면에서 훨씬 낫습니다.
'임베디드' 카테고리의 다른 글
| MP3 Play IC (0) | 2026.05.25 |
|---|---|
| MMBTA42LT1 (0) | 2025.10.21 |
| STM32CubeIDE Hex/Bin 파일명 변경 (0) | 2025.06.25 |
| MAX17201/MAX17205/MAX17211/MAX17215 - 1 (1) | 2025.05.16 |
| warning: (356) implicit conversion of float to integer (1) | 2025.04.19 |