Search

레이블이 Project인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Project인 게시물을 표시합니다. 모든 게시물 표시

2017년 6월 20일 화요일

[Project 01] 4. Raspberry Pi 클러스터 꾸미기

#1. 들어가기

전 단계에서 완성한 Raspberry Pi 클러스터를 구동하려고 봤더니, 바닥을 너무 어지럽히는것 같다. 좋은 수가 없을까? 먼저, 개별적으로 굴러다니는 Raspberry Pi는 클러스터 케이스를 이용해 하나로 합치고, 복잡한 LAN선은 Wi-fi 연결을 통해 해결할 수 있을 것 같다.


#2. 클러스터 케이스



국내 온라인 쇼핑몰에서는 Raspberry Pi 클러스터용 케이스를 찾기 힘들어, 해외 직구를 통해 주문을 넣어 한 달동안 기다렸다. (구매 사이트와 상품의 정보가 필요하다면 댓글이나 메일을 통해 물어보세요.)




먼저, 위처럼 아크릴판에 붙은 보호용지를 떼어낸다.


 

아크릴판과 Raspberry Pi 사이가 흔들리지 않도록 작은 베어링(?)을 넣고, 볼트와 너트를 이용해 조여준다.




기다란 봉을 이용해 각 아크릴판을 연결해준다. 맨 아래의 경우, 작은 봉을 이용한다.




지저분하게 제각각 있던 클러스터보다 훨씬 더 미적으로 아름다워졌다.


#3. Wi-fi 연결

LAN선이 보기 싫어서 Wi-fi를 연결하고자 마음먹었다면, 우선 본인의 공유기를 체크해보길 바란다. 전 장에서 잠깐 다루었듯이, 각 제조사와 모델에 따라서 Raspberry Pi 3에 연결이 불가능한 모델도 더러 존재한다.

우선은 LAN선을 연결한 상태에서 각 노드의 Wi-fi 모듈을 아래의 명령어 두 줄을 통해 업데이트 해준다. 작업이 완료되면 재부팅을 해주자.

# wi-fi 모듈 업데이트
curl --location https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.bin > /usr/lib/firmware/brcm/brcmfmac43430-sdio.bin
curl --location https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.txt > /usr/lib/firmware/brcm/brcmfmac43430-sdio.txt

# 재부팅
shutdown -r now



업데이트와 재부팅이 끝나면 다시 접속해Raspberry Pi에서 wi-fi를 사용 할 준비가 됐는지 확인해준다.

# wi-fi 모듈이 사용 가능하면 wlan0 항목이 표시됨.
nmcli d



아래 명령어를 통해 주변에서 잡히는 와이파이 신호를 살펴보고, 본인이 접속할 wi-fi명과 패스워드를 넣어 연결해준다.

# 주변 wi-fi 탐색
nmcli d wifi

# wi-fi 연결
nmcli d wifi connect  password 

# 연결 확인
nmcli d



연결한 wi-fi의 세부정보를 확인하려면 아래와 같은 명령어를 사용한다.
# 접속한 wi-fi 세부정보 확인
nmcli d show wlan0




이것으로 본 Project 01에 대한 모든 내용을 정리해봤다.
아마 이 글을 읽는 독자분들이 지금까지 잘 따라왔다면, 분산병렬처리를 실험해볼 수 있는 클러스터를 하나씩 얻었을 것이라 생각된다.


----------------------
[Project 01] Raspberry Pi로 개인용 클러스터 구축하기
   #1: 클러스터 제작을 위한 준비물
   #2: Raspberry Pi에 CentOS 설치
   #3: Network 및 기초 설정
> #4: Raspberry Pi 클러스터 꾸미기



2017년 5월 11일 목요일

[Project 01] 3. Network 및 기초 설정

#1. 들어가기

전 단계에서 완성한 Raspberry Pi에 전원을 연결해 부팅 시켜보자. 운 좋게도 HDMI 선이 있다면 바로 연결시켜 컨트롤 할 수 있을것이다. 하지만, 없다고 해도 너무 우울해 하지 말자. 네트워크 공유기(AP)가 있다면 원격으로 접속하여 충분히 설정할 수 있다.



#2. 공유기 연결 및 설정

먼저, 준비한 공유기에 전원을 넣고 WAN과 연결해보자.
공유기에서 WAN을 연결하는 포트는 주로 색이나 무늬가 다르게 생겼다..
집에서 흔히 사용하던 인터넷 선을 여기에 연결시킨다.




공유기를 연결한 후, 해당 네트워크를 통해 접속하면(유선이나 무선 모두) 공유기를 설정할 수 있는 페이지에 접속할 수 있게 된다. ipTime 제품의 경우에는 초기 설정이 아래와 같을 것이다.

SSID : iptime
접근주소 : http://192.168.0.1
ID : admin
PW : admin



여기에서 각자의 취향에 맞게 이름, ID, PW 등을 변경해준다.



#3. Network 설정

아주 간단한 공유기 설정을 마쳤으면, 이제 본격적으로 Raspberry Pi들에게 네트워크를 할당해줄 차례이다.
먼저, 세 대 모두 LAN 케이블을 연결해준다. (나중에 Raspberry Pi를 Wifi로 연결하는 부분도 설명 할 예정임)




이렇게 연결하고 난 후, 다시 공유기 관리 사이트에 들어가보자. (Raspberry Pi의 어댑터에 파워를 넣으면 자동으로 부팅이 된다.)



내부 네트워크 설정 옵션에 들어가보면 공유기에 연결된 순서대로 IP번호를 부여받아 연결되어 있는 모습을 볼 수 있다. 각각의 라즈베리 파이에 고정IP를 부여하는 방법은 두가지가 있는데, 공유기에서 바로 MAC주소를 확인해 IP를 부여하는 방법과, OS에서 직접 IP를 static으로 할당하는 방법이 있다. 여기에서는 전자의 방법을 사용해보자.



ipTime 메뉴 기준으로 우측 아래 '수동 등록'을 통해 각각의 Raspberry Pi에 원하는 IP와 이름을 할당해준다. 필자는 관리를 편하게 하기 위해 뒷 자리를 11,12,13으로 맞췄다. (ex> 192.168.0.11)
단, 이렇게 수동 등록을 하고 나면, 공유기를 재부팅해야 정상적으로 동작한다는 사실을 알아두자.


#4. SSH 연결

ssh 연결을 위해 흔히 putty를 사용하는데, 필자는 Xshell이 더 다루기 편리해서 주로 이용중이다. 위 프로그램은 검색을 통해 쉽게 다운받을 수 있다.




조금 전 공유기에서 설정한 것 처럼, 각각의 IP를 입력하고 연결한다.
Raspberry Pi의 CentOS 7 버전을 기준으로 초기 ID와 PW는 다음과 같다.

ID : root
PW : centos

접속하고 나면 아래와 같은 화면이 뜰 것이다. 축하한다!



(단, 위 스크린샷은 고정IP를 할당하기 이전에 hostname을 변경하는 등, 캡쳐한 내용이 다소 다를 수 있다. 아무튼 이런 식으로 접속이 된다.)



#5. 기초 설정

접속에 성공한 후, 적어도 아래의 두 가지 사항은 바꿔줄 것을 권고한다. (그대로 두게 되면 보안상 취약하기도 하고, 세 대가 모두 같은 호스트네임을 쓰게 되어 문제가 생기기 때문에 꼭 바꿔주기를 권장한다.)

1. root password
# root password 변경
passwd


2. hostname
# hostname 변경
vi /etc/hostname

# hostname 적용
hostname -F /etc/hostname



추가로, 메모리카드에 4기가 이상을 넣었다면(아마 거의 대부분이..) 모든 메모리 용량을 사용하기 위해 아래와 같이 하나의 작업을 더 해줘야 한다. (root로 진행 필요)

# 디스크 용량 확인
hf -h

# 디스크 용량 확장
/usr/local/bin/rootfs-expand

# 작업이 완료될때까지 잠시 대기 후, 디스크 용량 재확인
hf -h






그럼, 3장에 대한 내용은 여기까지 마치고, 다음 장에서는 제작한 클러스터를 예쁘게(?) 꾸미는 방법을 알아보도록 하겠습니다.


----------------------
[Project 01] Raspberry Pi로 개인용 클러스터 구축하기
   #1: 클러스터 제작을 위한 준비물
   #2: Raspberry Pi에 CentOS 설치
> #3: Network 및 기초 설정
   #4: Raspberry Pi 클러스터 꾸미기

2017년 4월 27일 목요일

[Project 01] 2. Raspberry Pi에 CentOS 설치

#1. 들어가기

전 단계에서 모든 물품을 준비했다면, 이제 본격적으로 Raspberry Pi에 OS를 올려서 클러스터를 구성해보자. 본 글에서는 이미 안정화 된 CentOS 7 버전을 사용한다.



#2. 다운로드

1. centos img
아래 링크에서 최신 버전의 Raspberry Pi3용 이미지 파일을 다운로드한 후, 압축을 풀어준다.
http://mirror.centos.org/altarch/7/isos/armhfp/




2. rufus
아래 링크에서 최신 버전의 Rufus를 다운로드 한다.
https://rufus.akeo.ie/





#3. img write

1. sd card를 리더기에 넣고 usb 인식
2. rufus 실행
3. DD이미지 선택 후, 우측 단추를 눌러서 조금 전에 준비한 centOS 이미지를 선택하고 write 시작


4. 약 3~5분 후 완료되면 파일 확인


5. usb안전하게 제거



#4. sd카드 장착

리더기에서 micro sd카드를 제거 후, 하단의 이미지처럼 Raspberry Pi 3에 장착




그럼, 2장에 대한 내용은 여기까지 마치고, 다음 장에서는 Network 설정을 알아보고, 방금 전에 만든 Raspberry Pi에 접근하는 방법을 알아보도록 하겠습니다.



----------------------
[Project 01] Raspberry Pi로 개인용 클러스터 구축하기
   #1: 클러스터 제작을 위한 준비물
> #2: Raspberry Pi에 CentOS 설치
   #3: Network 및 기초 설정
   #4: Raspberry Pi 클러스터 꾸미기



2017년 4월 26일 수요일

[Project 01] 1. 클러스터 제작을 위한 준비물

#1. 들어가기.

지금부터 'Raspberry Pi로 개인용 클러스터 구축하기'라는 주제로 하나씩 글을 써내려가게 될텐데, 우선 그 첫 번째 단계인 구성품부터 먼저 알아보자.



#2. 클러스터 제작을 위한 구성품.




위에서부터 그리고 좌측에서부터 우측으로 순서대로 설명을 하면,

1. 개별 멀티탭(필수) - 넉넉하게 12~15A 이상 커버 가능한 제품 선택
2. microSD card 리더기(필수)
3. 라즈베리파이 방열판(옵션) - 라즈베리파이3는 발열이 높다고 함
4. 라즈베리파이3(필수) - 가급적이면 클러스터를 구성하는 라즈베리파이의 모델을 통일하며, 목적에 맞게 최소 3대 이상으로 구성
5. 전원어댑터(필수) - 주의! 라즈베리파이3 부터 최소 2.5A이상의 전원 필요. Wifi등 모듈 구동 시 넉넉하게 2.5~3A 제품으로 선택
6. microSD card(필수) - 기호에 맞게 선택. 단, 앞으로의 사용을 위해 넉넉한 용량과 10 class 이상의 등급을 추천
7. LAN케이블(필수) - Wifi로 연결해 사용 가능하나, 최초 이더넷 설정 시 필요함.
8. 유/무선 공유기(필수) - 주의! 라즈베리파이3의 Wifi를 지원하지 않는 모델 더러 존재. iptime제품을 살 경우에는 아래의 사이트를 참조하여 지원 가능한 모델 선택(필자가 선택한 모델의 경우 Wifi 사용이 불가했음... ㅜ)
공유기 wifi 지원 모델 참조 사이트 : http://forums.rasplay.org/topic/196/%EA%B3%B5%EC%A7%80-raspberrypi-model-3b-wifi-issue/2



#3. 구성품 표.

아래와 같이 표로 정리해봤다.
(혹이라도 현명한 소비에 민폐를 끼칠가봐 미리 제품명과 가격은 가려두었음.. 그래도 모델이나 구입 사이트가 필요하신분은 개인적으로 댓글이나 메일 주시면 가르쳐 드리겠습니다.)




그럼, 1장에 대한 내용은 여기까지 마치고, 다음 장에는 Raspberry Pi에 CentOS를 올리는 방법을 알아보도록 하겠습니다.


----------------------
[Project 01] Raspberry Pi로 개인용 클러스터 구축하기
> #1: 클러스터 제작을 위한 준비물
   #2: Raspberry Pi에 CentOS 설치
   #3: Network 및 기초 설정
   #4: Raspberry Pi 클러스터 꾸미기



2017년 4월 25일 화요일

[Bigdata] [Raspberry Pi] [Project 01] Raspberry Pi로 개인용 클러스터 구축하기

# 첫 번째 프로젝트를 시작하며..


  요즘 많은 사람들에게 '빅데이터'라는 단어는 아마 더 이상 어색한 단어가 아닐 것이다. 이렇게 빅데이터에 대한 관심이 날로 증대됨에 따라 '데이터 사이언티스트'에 대한 궁금증도 많이 늘어났을 것이다. 하지만, 데이터 사이언티스트라는 의미가 너무 크고 포괄적이어서 다시 그 의미를 크게 두 가지로 나누어 보겠다.
  먼저, 다양한 시스템 환경을 다룰 줄 알며, 각종 데이터의 생성, 관리, 처리에 관한 영역을 주로 전담는 '데이터 엔지니어'가 있다. 이러한 데이터 엔지니어들은 일반적으로 시스템 환경이나 구조, 아키텍처 등에 대해 깊은 이해가 있으며, 데이터 자체를 직접 핸들링하여 효율적으로 처리하는 기술을 갖추고 있다.
  다음으로, 각종 데이터에서 의미 있는 인사이트를 찾기 위해 주로 매쉬업이나 모델링과 같은 분석을 수행하는 '데이터 애널리스트'가 있다. 이러한 데이터 애널리스트들은 일반적으로 깊은 통계적 지식과 분석적 사고를 바탕으로 데이터를 바라보며, 비즈니스에 대한 로직을 적용시킬 수 있는 기술을 갖추고 있다.

  서론이 조금 길었는데, 필자는 많은 사람들이 꿈꾸는 '데이터 사이언티스트'에 한발짝 더 다가갈 수 있게, 그 환경을 구축하고 이용하는 방법에 대해 조금 더 설명하고자 몇 개의 프로젝트를 구상했다. 그 중 첫번째 프로젝트인 'Raspberry Pi로 개인용 클러스터 구축하기'는 아마 빅데이터 환경을 맛보고 실습하는데 필요한 개인용 서버를 부담되지 않는 비용으로 구축하는데 큰 도움이 될 것이다.




> [Project 01] Raspberry Pi로 개인용 클러스터 구축하기
   #1: 클러스터 제작을 위한 준비물
   #2: Raspberry Pi에 CentOS 설치
   #3: Network 및 기초 설정
   #4: Raspberry Pi 클러스터 꾸미기



# 이후 예정 프로젝트.


[Project 02] 분산병렬처리 및 실시간 처리를 위한 SW아키텍처 구축하기
[Project 03] IoT 장비를 이용한 실시간 센싱 데이터 처리하기