Skip to content

GEONheong/CLB-storage-service

Repository files navigation

CLB(Content LoadBalance)+StorageService

2021 Hallym Universty System Programming

Team Member : 박건형

Project Period : 2021/11/13 ~ 2021/11/30


1. Project Overview

Google Drive, DropBox, NAS 와 같이 사용자 계정에 따라 분리하여 원격지의 머신에 파일을 저장하고 파일의 종류(컨텐츠) 에 따라서 로드 발란싱하여 맞는 스토리지에 저장합니다.

1. 구현 서비스

  • 로그인
  • 계정 만들기
  • 파일 업로드
  • 파일 다운로드
  • 파일 삭제
  • 파일리스트 조회

2. 개발 활용

  • Linux
  • C Lang
  • Shell Script
  • scp (Secure Copy)
  • Docker
  • MariaDB & API
  • RasBerry Pi

3. 서비스 구조

CLB 와 Storage는 같은 네트워크를 사용하고 Client는 외부의 네트워크에서 접속 한다고 가정합니다.

Image

2. Project Diagram

2-1. Configure System Diagram

초기 시스템 구성/새로운 장비 설치시 대한 다이어그램입니다

1. 초기 CLB 부팅

시스템을 구성하기위해 처음 CLB 부팅 시 동작입니다.

Image

2. Storage 부팅(새로운 장비)

스토리지 장비로 사용될 장비가 부팅 시 동작입니다.

Image


2-2. Service Diagram

서비스 마다 동작 요청/응답 메세지와 동작 시퀀스에 대한 다이어그램입니다.

1. 로그인(Sign In)

이미 서비스에 가입된 사용자에 대한 로그인 동작입니다.

Image

2. 계정 만들기(Sign Up)

서비스에 새로 가입하는 사용자에 대한 동작입니다.

Image

3. 파일 업로드(File Upload)

사용자가 스토리지로 파일 업로드 요청 시 동작입니다.

Image

4. 파일 다운로드(File Download)

사용자가 스토리지로 부터 파일 다운로드 요청 시 동작입니다.

Image

5. 파일 삭제(File Remove)

스토리지에 업로드(저장)된 파일을 삭제 요청 시 동작입니다.

Image

6. 파일리스트 조회(Lookup File list)

사용자가 업로드한 파일의 리스트 요청 시 동작입니다.

Image

3. Project Running Screen

프로젝트 구동 화면 입니다

  • 화면 구성 Image

2-1. Configure System screen

1. CLB부팅

CLB 부팅 직후 화면입니다.

Image

2. Storage 부팅

종류별 Storage 부팅 직후 화면입니다.

Image


2-2. Service screen

1. Client 실행

사용자 프로그램 시작 직후 화면입니다.

Image

2. 계정 만들기(Sign Up)

서비스 가입시 화면입니다.

Image Image

3. 로그인(Sign In)

로그인시 화면입니다.

Image Image

4. 파일 업로드(File Upload)

파일 업로드시 화면입니다.

Image Image

업로드 이후 파일리스트 화면입니다.

Image

5. 파일 다운로드(File Download)

파일 다운로드시 화면입니다.

Image

downloadFile 디렉토리에 파일이 다운로드 되었습니다.

Image

6. 파일 삭제(File Remove)

파일 삭제시 화면입니다.

먼저 파일하나를 더 업로드 합니다.

Image Image

삭제를 요청 합니다.

Image Image

7. 서비스 종료

서비스 종료시 화면입니다.

Image

추가 여러 유저가 접속 하여 사용이 가능합니다.

Image

4. Project 활용방안과 필요성

  1. 일반적인 사용자도 서버용 하드웨어를 가지고만 있다면 프로젝트를 다운받아 사용이 가능합니다.
  2. 작은 on-Premise 환경을 가진 회사도 사용이 가능합니다. 직원들은 편리하게 어디서든 파일에 접근하고, 회사 입장에서도 파일을 통합 관리 할 수 있습니다.

5. How to use Project

  • 먼저 사전 작업을 수행한 뒤 아래 내용을 수행하세요.
  • 총 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 명령어 실행하여 서비스를 이용합니다!

About

컨텐츠 로드발란서 + 스토리지 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published