Google Drive, DropBox, NAS 와 같이 사용자 계정에 따라 분리하여 원격지의 머신에 파일을 저장하고 파일의 종류(컨텐츠) 에 따라서 로드 발란싱하여 맞는 스토리지에 저장합니다.
1. 구현 서비스
- 로그인
- 계정 만들기
- 파일 업로드
- 파일 다운로드
- 파일 삭제
- 파일리스트 조회
2. 개발 활용
- Linux
- C Lang
- Shell Script
- scp (Secure Copy)
- Docker
- MariaDB & API
- RasBerry Pi
3. 서비스 구조
CLB 와 Storage는 같은 네트워크를 사용하고 Client는 외부의 네트워크에서 접속 한다고 가정합니다.
초기 시스템 구성/새로운 장비 설치시 대한 다이어그램입니다
1. 초기 CLB 부팅
2. Storage 부팅(새로운 장비)
서비스 마다 동작 요청/응답 메세지와 동작 시퀀스에 대한 다이어그램입니다.
1. 로그인(Sign In)
2. 계정 만들기(Sign Up)
3. 파일 업로드(File Upload)
4. 파일 다운로드(File Download)
5. 파일 삭제(File Remove)
6. 파일리스트 조회(Lookup File list)
프로젝트 구동 화면 입니다
1. CLB부팅
2. Storage 부팅
1. Client 실행
2. 계정 만들기(Sign Up)
3. 로그인(Sign In)
4. 파일 업로드(File Upload)
5. 파일 다운로드(File Download)
6. 파일 삭제(File Remove)
7. 서비스 종료
- 일반적인 사용자도 서버용 하드웨어를 가지고만 있다면 프로젝트를 다운받아 사용이 가능합니다.
- 작은 on-Premise 환경을 가진 회사도 사용이 가능합니다. 직원들은 편리하게 어디서든 파일에 접근하고, 회사 입장에서도 파일을 통합 관리 할 수 있습니다.
- 먼저 사전 작업을 수행한 뒤 아래 내용을 수행하세요.
- 총 4대의 머신(라즈베리파이,컴퓨터)을 준비 합니다.
- CLB로 사용할 머신에
LB
폴더를 다운 받습니다.- Storage로 사용할 머신들에 각각
Storage_docs
,Storage_video
,Storage_audio
폴더를 다운 받습니다.
Storage_
뒤에 붙은 것은 저장할 파일의 종류이고, 만약 저장할 파일의 종류를 바꾸고 싶다면 여기를 클릭하세요.- 파일 사용자는
Client
폴더를 다운 받습니다.- CLB IP를 파악 한 다음.
Clinet/clientMoniter.d/currentStorageInfo.h
파일의 16번 라인LB/main.h
파일의 16번 라인Storage_<파일 종류>/storageMyInfo.h
파일의 2번 라인- 을 아래와 같이 수정 하세요
#define LB_IP "<CLB IP>" //수정 #define LB_IP "192.168.0.20" //예시
- 이후 모든 머신에서
make
명령어 수행 (컴파일이 수행 됩니다. 혹시 잘 안된다면make clean
명령어 입력후 다시make
를 시도하세요.)- CLB머신에서
LB/startCLB.exe
실행- Storage 각 머신에서
Storage_<파일 종류>/startStorage.exe
실행- 사용자는
Client/
에서sh ./Geon_StorageService.sh
명령어 실행하여 서비스를 이용합니다!