이번에 오드로이드 HC2를 구매해서 설치를 진행하고 있습니다. 아마존 핫딜로 도시바 3TB가 $63.99로 싸게 풀리는 바람에 그간 생각만하던 오드로이드도 함께 구매하였습니다. 아내에게는 사진 저장도 하고, 그동안은 주로 PC를 켜놓고 있던 것에 비해 전기세를 아낄 수 있다며 설득했었는데, 지금에 와서는 3TB도 크지만 '오케이 사인 떨어졌을 때, 모른척하고 좀더 큰 하드 살껄...' 하는 아쉬움이 들더라구요. 역시 하드는 살때 용량 큰걸로 하는게 여러모로 좋을 것 같습니다.
오랜만에 며칠째 매일 밤마다 컴퓨터 앞에 앉아 있는 저를 보고 아내가 '그거 정말 작동하는 건 볼수 있는거야?' 라고 웃으며 물어볼 때마다 한참 삽질 중이다 보니 '쉽지않아.. 쉽지않아..'라고 말했었는데 이제야 조금 모습이 갖춰진 것 같아 잊기 전에 글을 써봅니다.
제 경우 기본 설치는 Odroid Wiki의 'Build an Ubuntu NAS'의 목록을 따라 진행 했습니다.
(Odroid 처음 접속 계정은 아이디: root, 비번: odroid 입니다.)
(1) Build an Ubuntu NAS
https://wiki.odroid.com/odroid-xu4/software/ubuntu_nas/ubuntu_nas
그런데 첫 삽질은 하드를 마운트 할 때 발생했습니다.
(2) Mount HDDs
https://wiki.odroid.com/odroid-xu4/software/ubuntu_nas/02_mount_hdds
1) Setup
첫줄에 'Before proceed, make sure that your HDD has formatted as an EXT4 file system' 말을 보고, 우선 하드를 EXT4로 포맷하기 위해 Wiki를 보니 아래와 같이 fdisk를 사용한 글을 보게 되었습니다. (지금 보면 오히려 구글링을 했으면 더 좋았 것 같다는 생각이 듭니다.)
2) Build a powerful Web Server
1. Re-partitioning your SSD
https://wiki.odroid.com/odroid-xu4/software/building_webserver
무식하면 용감하다고 제목은 SSD라도 HDD랑 큰 차이가 없을 거라고 생가하고, fdisk를 사용해서 해당 설명을 따라했습니다. 모든게 순조롭게 잘 되어 간다고 생각했었습니다. 그런데 포맷은 됐지만 3TB 용량이 전부 나타나지 않더라구요. '이상하다. 이상하다.' 라는 생각이 들어 '리눅스 3TB 사용'으로 구글링을 하게 되었고, 그제서야 3TB하드는 fdisk 대신 parted로 사용해야 한다는 것을 알게 되었습니다. 그래서 이전 파티션을 삭제하고 진행하였습니다.
* 참고: 3TB 이상의 HDD를 사용할 때는 parted 명령어를 사용하여 파티션을 생성합니다. 저는 이분의 글을 참고했습니다. http://plming.tistory.com/68
(3) Build a LEMP stack (Linux, NGINX, MariaDB, PHP)
해당 Wiki 내용을 따라 문제없이 설치하였습니다. 다만, 스퀴니님이 쓰신 '오드로이드 XU4 웹서버 설치기'에서 DB 성능 향상을 위해 mysql을 HDD로 옮겨 사용한다는 글이 보게 되어 mysql을 옮겨놓았습니다.
한가지 다른 점은 제 경우 MariaDB를 설치하였기에 mysql 과는 conf 파일이 이름이 조금 다른 것 같았습니다.
MariaDB의 경우 datadir 를 설정을
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 대신에
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf 에서 하였습니다.
만약 재실행시 혹시 아래와 같은 오류 메시지를 보게 되신다면 50-server.cnf의 datadir를 다시한번 살펴보시기 바랍니다.
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
제 경우 'datadir = /media/nas/hdd1/mysql/mysql' 경로에서 마지막 mysql이 빠져있어서 위와 같은 오류 메시지가 나타났엇습니다.
(4) NAS Service
https://wiki.odroid.com/odroid-xu4/software/ubuntu_nas/03_nas_services
저는 Samba, Transmission, NextCloud 를 설치하였고, 설명대로 따라하니 모두 정상 동작하는 것을 확인하였습니다.
Plex Media Server의 경우는 쉴드TV에 서버를 활성하고, 삼바로 읽어오려 하고 있는데, TV를 좋아하는 가족들이 모두 잠든 후에 작업해야하는데 함께 잠들어버려 아직 진행을 못하고 있습니다.
1) NextCloud
*추가:2020/05/21 https://www.linuxbabe.com/ubuntu/install-nextcloud-ubuntu-18-04-nginx-lemp 해당 사이트를 보고 따라하니 Ubuntu 18.04에서 잘 설치되고 작동되었습니다. 이 사이트의 글도 확인해보시면 좋을 것 같습니다.
만약 ddns 를 사용할 경우 외부 접속을 위해 trusted_domains 의 array에 ddns를 추가해주시면 됩니다.
$ sudo vi /var/ww w/nextcloud/config/config.php
(www 앞에 자동으로 http 가 붙어서 조금 이상하게 보입니다.)
$CONFIG = array (
...
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'your-odroid-ip:8002',
2 => 'your-ddns',
),
...
'memcache.local' => '\OC\Memcache\APCu',
);
* 추가사항
갑자기 NextCloud에 접속이 안되는 상황이 발생되었습니다. 브라우저에 HTTP 500 에러가 보이고 아무것도 할 수 없는 상태여서
로그를 보니 db 연결이 계속 실패나는 것으로 보였습니다.
------------------------------------------------------------------------------
FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] No such file or directory in /var/ww w/nextcloud/lib/private/DB/Connection.php:61
------------------------------------------------------------------------------
위 로그를 기반으로 검색을 하다가
https://mariadb.com/kb/en/library/missing-mysqldsock-file/
답변 중에 my.cnf 파일에서 다음의 설정을 적용해주면 해결된다는 글을 보고 적용해보았습니다.(제 경우 댓글에 있는 symlink 까지는 하지 않고, socket = /tmp/mysql.sock 만 추가했습니다.)
$ sudo vi /etc/mysql/my.cnf
에
socket = /tmp/mysql.sock
을 추가해주고
$ sudo service mysql restart
재시작 해주었더니 문제가 해결되고, 다시 사용할 수 있었습니다. 혹시 NextCloud에서 HTTP 500 에러가 나타나면 확인해보시기 바랍니다.
(5) SFTP
FTP 사용을 위해서 SFTP 사용을 권하고 있어서 vsftpd를 설치하였습니다.
* 참고: http://html5around.com/wordpress/tutorials/ubuntu-ftp-server-install-use/
(6) DDNS, 포트포워딩
* 참고: https://www.wsgvet.com/bbs/board.php?bo_table=web&wr_id=33
(7) hostname 바꾸기
기본적으로 로그인하게 되면 커맨드 창에 id@ordoid 라고 나타날텐데 여기서 odroid를 hostname이라고 합니다. 이를 자신이 원하는 것으로 바꾸고 싶다면 다음과 같이 하시면 됩니다.
$ sudo vi /etc/hostname
odroid라고 보이실텐데 원하시는 이름(ex> myhome)으로 바꿉니다.
$ sudo vi /etc/hosts
odroid를 앞서 바꾸길 원했던 이름(ex> myhome) 바꿉니다.
$ sudo reboot
하고 다시 로그인 하시면 바뀐 hostname을 보실 수 있습니다.
reboot 대신 처음엔 $ sudo service hostname start 라는 명령어를 했었는데 오류 메시지가 나타나서 reboot을 해서 확인했습니다.
제경우 ASUS-RT-N66R을 사용 중에 있는데, 오랜만에 관리자 페이지( http://192.168.1.1 ) 에 접속하니 도무지 접근할 수가 없었습니다. 아무리해도 안되어서 '아.. 때가 됐나보다. 나도 드디어 기가빗을 위해 요즘 얘기 많은 AC1900을 어쩔수 없이 사야하는 건가?' 하는 마음에 살짝 들떴었는데, 공유기를 껐다켜니 아쉽게도 바로 접속가능하게 되었었습니다.
이래저래 이번에 한번 설치를 하고 나니 HC2 를 하나 더 사서 멀티미디어랑 가족 사진들을 분리해서 저장하고 관리하면 어떨까? 하는 생각도 들었습니다. 제 기본 용도는 플렉스 미디어용(+Transmission)과 가족사진 관리인데, 다른 분들은 어떻게 사용들 하시는지 궁금합니다.
다음번에는 gdisk를 사용해서 파티션을 생성해봐야겠어요. (^_^)b