설계편 https://www.x86.co.kr/imessage/1260458
조립편 https://www.x86.co.kr/index.php?mid=imessage&page=2&document_srl=1260553
이어지는 소프트웨어 편 입니다.
이 NAS를 처음 만들 당시의 기획은 ESXI 위에 NAS용 운영체제+가끔씩 돌리는 windows를 가상화 하는것 이였습니다.
도식화 하면 이런 형태 였죠. NAS 답게 항상 켜두는 컨셉이였으므로
셀러론 1840g + 8g ddr3 그리고 2.5 인치 hdd로 구성해서 전력 소비를 억제한 형태였습니다.
아이들 17W 수준이였습니다.
그런데 사람 욕심이 끝이 없다고 1840g의 성능이 애매하게 느껴졌고 국내에서 비교적 싸게 구할 수 있는
4670T 로 업그레이드 하게 되었습니다.
보통 T 붙은 CPU 즉 저전력 CPU들은 클럭제한이 붙어서 성능은 낮은 주재에 국내에 정식 수입도 않해서 적당한 조건에 구하기가 상당히 어려운 편인데.. 해당 재품은 벌크로 많이 들여 파는 사람들이 있어서 일반 제품 중고가로 2만원정도 저렴하게 구할 수 있엇습니다. 물론 성능 생각하면 싸다는 느낌은 아니였습니다만. 파워가 아슬아슬해서 일반 재품을 구입해도 거의 T 정도 성능에 근접하게 클럭재한을 해야 하는 저로서는 크게 나쁜 선택은 아니였엇죠..
다만 그렇게 업그래이드를 하고 나자 아이들 전력 소비는 30W에 근접하게 되었고 제기준에서 심리적으로 "항상 켜두어도 되는 기기의 전력 소비"를 벗어나게 되었습니다.
이렇게 되어서 절전 모드가 필요하게 되자 ESXI의 불편한 점이 터저나오게 되었는데요..
ESXI 라는게 일반 소비자에게 라이선스를 막 뿌리고 있어서 마이크로 서버나 가정용 홈서버에도 막 쓰이고는 있지만
본디 타겟이 되는 소비자 층이 육중한 서버를 그것도 대량으로 굴리는 상황에서 리소스를 잘게 쪼게거나 합치기를 원하는 소비자다 보니.. 엔트리급 하드웨어에 대한 지원은 없는것과 다름이 없습니다. 그래서
1. H81 보드 따위를 위한 모니터링 시스템이 전혀 없음 전력 소비는 물론이고 온도 팬속도 전혀 모니터링 불가
2. 절전모드 역시 불가 ESXI 역시 절전모드를 위한 시스템은 같추어저 있지만. 일반 PC에 대한 고려는 전혀 없고 특정 서버가 다수의 서버를 모니터링 하면서 활동량을 분석해 깨우거나 잠들게 만드는 시스템으로 최소한 컴퓨터 2대 이상 필요.
이러한 문제가 생겼습니다. 그리고 두번째로 나스용 운영체제로 사용하고 있던 XPEN 의 한계 점으로 인한 문제가 한가지 있엇는데..
SMB 3.0 멀티 체널 기능을 지원하지 않습니다.
해당 기능은 컴퓨터 옆에 두고 사용하는 nas에게있어서는 꽤나 의미 있는 기술이라 포기하기 쉽지 않은 기술이나.
smb의 오픈소스 카피인 SAMBA는 아직 재대로 지원을 하고 있지 않습니다.
해당 기술을 사용하려면 windows를 NAS용 운영체제로 사용하거나 아주아주 최신 SAMBA의 배타버전으로 꾸역꾸역 구현해야 하는데.. 후자는 XPEN에서는 불가능 합니다. 근본적으로 빌드인 어플리캐이션을 위한 포트가 선점되어 있고 무슨수를 써도 해당 포트를 다른 기능으로 돌릴 수 없기 떄문이죠.. 물론 모든 smb 클라이언트의 대상 포트를 변경해 주는 방법도 있습니다만. 윈도우즈 클라이언트에서 그 작업을 하는것은 매우 번거롭고 하고 나서도 편하게 사용하기 힘듭니다.
그래서 NAS의 운영체제는 windows 10 으로 이전하고 nas가 절전 모드에 들어가 있는 동안 꺼지면 곤란한 기능들을 분리해서 수행 시키기 위해서 ARM SBC 를 하나 구입했습니다.
https://www.hardkernel.com/main/products/prdt_info.php?g_code=G145457216438
odriod c2 라고 국내 기업이 생산하는 재품인데 5w 정도의 소비전력으로 성능은 라즈베리 파이3 보다 조금 좋은 정도 입니다..
내부에 이렇게 설치 해 주고 파워에서 나오는 5v 상시전원을 물려서 전원만 연결된 상태면 항상 켜저 있도록 만들었습니다.
이렇게 구성한 서버 NAS의 운영체제는 ubuntu의 ARM 버전입니다.
기능을 구성할때 참고할 자료가 많은것이 장점이죠. 관리는 SSH나 xRBP를 통해서 합니다.
그래서 결국 만들어진 새로운 시스템의 다이어 그램은 위와 같은데요.
ARM nas에서 성능은 거의 필요없고 항상 대기하고 있야 하는 기능을 수행하고
x86 nas에서 대기는 필요 없지만 성능이 필요한 기능을 수행하도록 만든 일종의 빅 리틀 시스템이랄까 뭐 그렇습니다.
원래 목적 했던 SMB 3.0 멀티 채널은 잘 작동합니다.. 뭐 10G 네트워크 카드가 싸게 풀려서 눈물 나는 상황이 되었지만요..
그리고 x86 NAS에 서 HYPER V 그러니까 또 VM을 돌리게 된건 타임머신 백업 때문입니다.
처음엔 그냥 찾아보면 윈도우즈용 AFP 서버도 구할수 있겠지 하고 생각했엇는데 아무리 찾아도 오픈소스 프로젝트는 없는것 같더군요. 뭐 카피당 70만원 수준의 상용 어플리캐이션은 있엇습니다만... 그걸 쓰느니 그냥 hyper-v 위에 우분투를 올려서 해결 했습니다.
예 여기서 부터 또하나의 고난이 찾아 옵니다. 뭐가 문제냐면..
대부분의 시간은 s3 절전 상태로 보네는 이 x86 NAS는 네트워크 엑세스를 감지해서 절정 상태가 해제 되게 됩니다.
구체적으로는 자신의 IP를 대상으로 들어오는 ARP와 SNY 패킷 을 네트워크 카드가 인식해서 컴퓨터를 절전에서 해제하게 되는데요. 문제는 윈도우즈에서는 이 설정이 모두 자동입니다.
예 자동입니다. 지가 알아서 다 합니다. 예 전부 자동입니다.
hyper-v의 게스트 운영체제의 IP로 들어오는 트래픽에도 반응하도록 알아서 설정해 줄 정도로 센스가 없는 주제에
구석구석 찾아도 해당 기능을 설정할 수가 없습니다. (linux 계열은 ethtool 명령어로 수동 설정 가능 합니다.)
예 결국은 방법을 찾는것을 포기하고 NDIS 필터 드라이버의 셈플을 수정해서 강제로 NDIS_WAKE_PATTERN을 삽입하는것으로
해결 했습니다. c 까막눈 + 영어 까막눈 이라 한참을 삽질했네요.
https://www.2cpu.co.kr/lec/2239?&sfl=wr_name%2C1&stx=isaiah&sop=and
길어지므로 경과는 다른 사이트에 기록한걸 대신 첨부합니다..
이걸 해결하고 나서 두번째 문제는 x86 nas가 잠이 들어 버리면 내부망 network 디스커버리에서 사라저 버린다는 겁니다.
디스커버리 기능이 도대체 뭐냐? 하시는 분들도 계실 텐데요.. 이겁니다.
내부망에 있는 서버들이 자동으로 클라이언트에서 뜨는것..
x86 nas가 꺼저 버리면 이게 사라진단 말이죠 안 사라졌으면 좋겠는데.
해당 기능은 내부망에서 브로드 캐스팅 되는 패킷으로 구형됩니다. osx에서는 bonjour로 불리는 기능으로 구형이 되어 있고
windows에서는 windows network browser 기능으로 구축이 되어 있습니다.
bonjour 쪽은 쉬웠습니다.
bonjour 기능의 오픈소스 구현체인 avahi 는 원래 해당 기능을 직접적으로 수행할 수 없는 장비를 위해서 대신 해당 장치의 IP를 bonjour 기능으로 알려주는 기능이 내장 되어 있습니다.
https://www.joinc.co.kr/w/man/12/avahi/tutorial
이 블로그를 참고해서 오드로이드 C2에 avahi를 설치하고
Hyper-v 내부에 설치된 ubuntu의 IP 192.168.1.31을 알려주도록 설정했습니다.
위의 이미지에 나오는 TimeMashine은 x86 nas가 꺼진 상태에서 오드로이드의 브로드 캐스트로 인식이 된 겁니다.
저 아이콘을 클릭하면 해당 IP로 ARP 패킷이 날아가고 x86 nas가 반응해서 잠에서 깨어나게 되는 거죠
windows 쪽은 그런식으로깔끔 하게 해결 할 수 는 없었습니다.
windows browse 기능을 대신해주는 linux 프로그램인 nmbd는 SAMBA에 포함되어 있는데 다른기기를 대신 광고해 준다는 계념 자채가 없었습니다.
다만 마스터 브라우저 기능이 있엇는데 이것은 자신이 내부망에 어떤 컴퓨터가 있는지를 리스트 해 가지고 있다가 다른 장비를 위해서 대표로 전파하는 기능입니다. 리스트의 갱신과 작성은 모두 자동이가 간섭할 수 없었습니다만..
해당 리스트 즉 /var/cachae/samba/browse.dat 가 그냥 TEST 형식인데다 메모리에 올려 두고 쓰는게 아니라 필요 할떄마나다 읽어 오는 구성이라 크론탭으로 1분 마다 확인하고 갱신하도록 스크립트를 실행 시켜서 해결 했습니다.
지금은 잘 자고 잘 일어 납니다.
스텍 익스체인지 같은 곳에 질문해도 별로 답해주는 사람이 없을 정도로 별로 관심있는 사람이 없는 부분이라..
대부분의 읽는 분들에게는 지겨울 거라 생각해서 구체적인 설명은 줄였습니다..
추가로 궁금한 부분 질문하시면 구채적인 설정도 토해 넵니다..
isaiah님의 새글 알림을 받으실려면 구독
제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|
Plex 1.32.0.6918 버전 업데이트 이후 SSL 인증서 오류 해결 방법 +6 | 잠퉁이 | 23.04.1404:18 | 3.9만 |
시놀로지 Plex에 HTTPS (SSL) 인증서 적용하기 +4 | 잠퉁이 | 23.01.2004:25 | 9.1만 |
시놀로지 NAS Audio Station 알송 가사 플러그인 설치하기 +12 | 잠퉁이 | 22.12.3104:34 | 7만 |
시놀로지 NAS 알림을 텔레그램으로 받아보자 +9 | 잠퉁이 | 22.12.1001:23 | 7.5만 |
헤놀로지에서 제어판의 팬속도모드 안먹는 팬 속도조절 하는법 +5 | 룽즈 | 22.04.2218:04 | 6.9만 |
무료 ddns와 무료ssl로 < https:// 영문주소 >를 통해 내 ... +9 | 룽즈 | 22.04.2202:51 | 6.7만 |
메인보드 바이오스 구버전으로 롤백이 안될 때 쓰는 방법. +5 | 퓨리온 | 22.02.1922:01 | 13만 |
USB Type C to C 케이블 총정리 +15 | 아이브경 | 20.06.2918:17 | 6.5만 |
USB 키보드를 블루투스 키보드로 바꿔서(?) 사용하자 +16 | Ohchang | 19.05.2206:22 | 10만 |
컴퓨터 조립 10단계 +7 | Mactopia | 16.02.2516:30 | 8.8만 |
hackillious | 24.09.1316:55 | 85 | |
래니 | 24.08.3118:19 | 191 | |
좌절금지 | 24.08.2017:37 | 243 | |
세유니 | 24.08.1303:23 | 191 | |
좌절금지 | 24.08.0419:23 | 222 | |
피아노맨 | 24.07.2915:51 | 130 | |
joy | 24.07.2915:32 | 184 | |
junsun | 23.11.1808:55 | 3250 | |
junsun | 24.01.2610:50 | 1만 | |
jcher | 24.07.1815:29 | 448 | |
달쇠 | 24.07.1522:35 | 1061 | |
좌절금지 | 24.07.1422:36 | 4472 | |
jcher | 24.07.1420:16 | 1361 | |
좌절금지 | 24.07.1409:17 | 1598 | |
제로섬 | 24.07.1313:26 | 1488 | |
좌절금지 | 24.07.1220:00 | 2468 | |
moongate | 24.07.1021:01 | 2395 | |
좌절금지 | 24.07.0918:59 | 2491 | |
좌절금지 | 24.07.0611:51 | 2251 | |
좌절금지 | 24.07.0611:50 | 2126 | |
슈퍼랩터 | 24.07.0419:05 | 1837 | |
Stultus | 24.06.3019:11 | 1566 | |
좌절금지 | 24.06.2813:29 | 5195 | |
jcher | 24.06.2312:03 | 1535 | |
jcher | 24.06.1613:51 | 1367 | |
잠퉁이 | 24.06.1314:19 | 1449 | |
잠퉁이 | 24.06.1105:04 | 1408 | |
오늘도부 | 24.06.1419:11 | 1368 | |
잠퉁이 | 24.05.2716:23 | 1569 | |
Bong9 | 24.05.2414:53 | 1397 | |
Bong9 | 24.05.2317:54 | 1348 | |
네오꿈 | 24.05.2019:32 | 1582 | |
믜늬의릐희 | 24.05.1921:47 | 1364 | |
좌절금지 | 24.05.1812:32 | 1472 | |
잠퉁이 | 24.05.1521:40 | 1236 | |
Stultus | 24.05.1719:36 | 1050 | |
잠퉁이 | 24.05.1500:39 | 1017 | |
네오꿈 | 24.05.0815:19 | 1048 | |
뚜찌z | 24.05.0722:43 | 804 | |
hattog | 24.05.0319:52 | 1795 | |
대영이 | 24.05.0307:44 | 1775 | |
뚜찌z | 24.05.0223:33 | 1431 | |
jcher | 24.05.0210:26 | 1650 | |
제로섬 | 24.05.0103:05 | 1801 | |
래니 | 24.04.3020:35 | 1809 | |
잠퉁이 | 24.04.2718:20 | 2782 | |
뚜찌z | 24.04.2422:41 | 3352 | |
jcher | 24.04.2213:16 | 1653 | |
junsun | 24.04.2011:55 | 3746 | |
뚜찌z | 24.04.1721:09 | 3976 | |
믜늬의릐희 | 24.04.1622:16 | 4084 | |
nowsoftkt | 24.04.1309:01 | 2377 | |
잠퉁이 | 24.04.1103:07 | 3794 | |
D다 | 24.04.0714:59 | 3585 | |
에드 | 24.04.0615:31 | 3450 | |
비트러브 | 24.04.0521:13 | 2639 | |
뚜찌z | 24.04.0520:34 | 7909 | |
Dokdo | 24.04.0420:46 | 3116 | |
잠퉁이 | 24.04.0305:21 | 2401 | |
래니 | 24.04.0112:24 | 9007 | |
바람 | 24.04.0120:12 | 3246 | |
Mactopia | 24.04.0114:43 | 3125 | |
믜늬의릐희 | 24.03.3119:32 | 3123 | |
메테오스 | 24.03.2914:39 | 2575 | |
bluesaza | 24.03.2810:43 | 2390 | |
한글로 | 24.03.2720:12 | 1885 | |
한글로 | 24.03.2621:21 | 2354 | |
래니 | 24.03.2311:43 | 3062 | |
드림칠 | 24.03.2111:10 | 4853 | |
드림칠 | 24.03.2111:06 | 3128 | |
김상상 | 24.03.1500:53 | 2867 | |
덕구SEE | 24.03.0823:37 | 2044 | |
래니 | 24.03.0722:54 | 4674 | |
잠퉁이 | 24.03.0703:32 | 5658 | |
래니 | 24.03.0608:21 | 4563 | |
jcher | 24.03.0322:27 | 3132 | |
네오꿈 | 24.02.2811:59 | 4216 | |
라임그리 | 24.02.2709:08 | 4126 | |
jcher | 24.02.2622:03 | 3643 | |
네오꿈 | 24.02.2617:18 | 4272 |
추천하려고 가입했습니다. ㅎㅎ
어마어마하네요.