오드로이드 XU4 홈 서버 세팅
개발, 서버, 웹 | 2025/08/25 08:005년 넘도록 오라클 클라우드(OCI) 프리티어로 서버를 운영 해왔습니다. 지난 6월에 아무런 통보 없이 계정 내 모든 인스턴스를 재시작 불가하게 중단시키더니, 이번엔 중단에 그치지 않고 인스턴스 생성도 막아버렸네요. 저번에 포럼과 메일로 문의했으나 사유도 알려주지 않고, 복구도 불가능했던 터라 그냥 더 이상 안 쓰기로 했습니다. 데이터에 접근이 불가능한 상황에서 그나마 다행인 점은 저번 사건을 겪고 백업을 틈틈이 해둬서 서버 이전에 큰 문제는 없었습니다. 오라클 클라우드를 사용하시는 분들은 꼭 수시로 백업을 하시기 바랍니다.
무료 서비스라기엔 너무 좋아서 주변에 열심히 알린 덕분에, 오라클 코리아 측에서 사용자 인터뷰 기회도 주셨었는데 아쉬울 따름이네요.
ODROID XU4
‘라즈베리 파이‘라는 유명한 싱글 보드 컴퓨터가 있죠. 그와 비슷하게 국내 업체에서 생산/판매하는 ‘오드로이드‘라는 제품이 있습니다. ‘라즈베리 파이’와 비교해서 사양과 가성비가 더 좋은 편입니다.
과거 오드로이드 U3를 사용해서 서버를 운영했었습니다. 2년 정도 직접 운영하다가 Amazon Lightsail로 넘어간 이후로 대략 7년 동안 클라우드 인스턴스를 사용했네요. 한참 무료로 운영하다 보니 지금 와서 다시 돈 쓰기엔 뭔가 아까운 느낌이 들어서 직접 운영해보기로 했습니다. (이번에 Lightsail 5$ 인스턴스를 써보니까 생각보다 성능이 너무 안 나오기도 했고요)
이번엔 2017년 쯤에 사둔 오드로이드 XU4를 활용했습니다. 2014년에 출시하고 지금은 단종된, 32bit 기기지만 Ubuntu 24.04 LTS 이미지도 지원해주고 아직 현역으로 사용하기에 큰 무리가 없습니다.
세팅하면서 정리해둔 내용만 간단하게 공유하겠습니다.
Ubuntu 24.04 LTS
2025년 8월 24일 현재, 가장 최근에 배포된 OS 이미지는 ubuntu-24.04-6.6-minimal-odroid-xu4-20240911.img.xz
입니다.
ODROID Wiki에서 최신 이미지를 확인할 수 있습니다. 해당 파일만 한국 미러에서 제공하지 않아서 Official US West Coast에서 다운 받았습니다.
최초 부팅 후에 쌓인 업데이트 먼저 해줬습니다.
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo reboot
Blue LED 끄기
오드로이드 XU4에 장착된 파란 LED가 굉장히 강력합니다. 기본 설정이 heartbeat로 돼있어서 계속 번쩍이는데, 저는 필요없어서 그냥 꺼줬습니다.
led_control 문서에 적힌 대로 부팅 시에 바로 설정이 적용되도록 아래 명령어를 /etc/rc.local
파일에 추가해줍니다.
# /etc/rc.local 파일에 추가
echo none > /sys/class/leds/blue\:heartbeat/trigger
CPU 클럭 정책 변경
기본 CPU frequency governor는 performance
로 설정돼있습니다. 항상 최대 클럭으로 고정하는 설정인데, 발열과 전력 소모량을 줄이기 위해 schedutil
로 변경했습니다. 상황에 따라 클럭을 가변적으로 조절합니다.
오드로이드 XU4에서 사용하는 Exynos 5422는 빅 코어 4개, 리틀 코어 4개로 구성돼있고, 동일 타입의 코어끼리 설정을 공유합니다. 그래서 리틀 코어와 빅 코어에 각각 설정해줍니다.
cpufreq-set -g schedutil -c 0
cpufreq-set -g schedutil -c 4
cpufreq-info


설정을 바꿔준 이후에 확인해보니 80% 이상의 시간은 최저 클럭으로 동작하는 걸 확인할 수 있습니다. 필요 시에는 최대 클럭까지 조절되니 특별한 이유가 없다면 바꿔두시는 걸 추천합니다.
팬 속도 조절
발열을 줄였으니까 소음도 조금이라도 줄여보기 위해 설정했습니다. manually_control_the_fan 문서에 소개된 포럼 게시글을 참고해서 온도에 비례해서 팬 속도가 조절되도록 했습니다.
GitHub gamjaa/odroid-xu4-fan-control 레포지토리에서 코드를 받을 수 있고, 아래 스크립트로 서비스에 등록해 사용하시면 됩니다.
# 다운 받은 실제 경로로 수정해서 실행하세요 (홈 디렉토리 기준 예시)
# odroid-fan-controller, odroid-xu4-fan-control.sh 파일을 삭제하면 안 됩니다
sudo ln -s ~/odroid-xu4-fan-control/odroid-fan-controller /etc/init.d/odroid-fan-controller
sudo update-rc.d odroid-fan-controller defaults
가상 메모리 설정
작업 중에 메모리가 부족하면 SSH도 끊어지고 OS가 먹통이 된 것처럼 보이는 경우가 있습니다. 램이 부족한 클라우드 인스턴스를 사용할 때 겪은 문제인데 필요 시에 설정하시면 될 것 같습니다.
아래 스크립트는 가상 메모리 4GB를 추가하는 설정이고, 원하는 대로 크기를 조정하시면 됩니다.
# 현재 설정된 메모리/가상 메모리 확인
sudo swapon --show
free -h
# 가상 메모리 파일 생성 및 적용
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h
docker: no matching manifest for linux/arm/v7 in the manifest list entries
요즘은 웬만해선 64비트 기기라서 문제가 안 되겠지만, MariaDB와 MySQL 둘 다 공식 도커 이미지에서 ARM 32비트를 지원하지 않습니다.
저는 MariaDB를 사용하는데, yobasystems/alpine-mariadb 이미지에서 감사하게도 ARMv7 명령어셋도 지원해주고 있어서 이걸로 사용했습니다.
태그 : odroid, 리눅스, 서버
답글 남기기