분산파일시스템 사용 필요성 검토
다음과 같은 이유로 분산파일시스템의 필요성에 검토를 시작하였다.
- 자사 보안제품을 개발하는데 있어, 메일의 첨부파일 원본을 다 저장해야 해야 함
- 경쟁사의 경우 glusterfs라는 opensource S/W를 사용하고 있기에, 자사의 경우 어떤 파일시스템이 적합한지 검토
파일 시스템은 파일을 읽고 쓰고 지우고 복사하고 그런 것들을 정의해 놓은 시스템인데, 기본적으로 내가 사용하는 ubuntu의 경우 ext4를 사용하고 있다. 또는 Wiki기준 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제를 가리키는 말이다.
이러한 고민을 하게 된 계기는 다음과 같은 고려사항이 존재하기 때문이다.
- 한정된 저장공간에 많은 파일을 저장해야 한다. 간단히 생각하면 존재하는 모든 파일을 압축하면 더 좋다.
- 특정 사용자가 원본 파일을 다운로드 받을 수 있어야 한다.
- 파일 하나의 크기가 얼마나 클지 모른다. 대용량 첨부파일의 경우도 관리가 가능해야 한다.
사실 이 정도의 간단한 고민이었으나, 프로젝트가 진행되면서 여러가지 고민사항이 생겼다.
- 제품이 여러개 설치될 경우 파일시스템을 하나의 클러스터로 묶어 관리하는게 유리한지
- 파일의 손상이나 분실이 생기면 안된다. 그러나 금융권처럼 필수적인 요소는 아님
- 사실 1개의 장비에 제품이 팔릴 확률이 높은데, 과연 분산 파일 시스템이 필요한지는 의문. 솔직히 그냥 리눅스 파일시스템에 첨부파일을 저장하고, Path그대로 다운로드 받으면 되지 않을까 생각하기도 한다.
- 첨부파일의 복원, 백업, 복제의 필요성이 아주 조금 있음. (개인적으로 조금의 필요성으로 개발하는 것을 상당히 싫어함. 필요성이 1%라도 있어서 개발하면 고객은 안쓴다는 생각이 강함)
저장되는 자료의 특성은 다음과 같다.
- 메일, 카페, 블로그등에 저장된 첨부파일 이므로, 파일의 수는 많고, 용량은 적음
- 평균 용량은 적으나, 가끔 큰 용량의 파일이 있음
- 불변(immutable) 파일의 저장을 목표로 함. 한번 저장되면 내용은 변경되지 않음
이러한 고려사항과 특징들이 있는 가운데, 여러가지 파일 시스템에 대하여 고민을 해보려고 한다.
1. 로컬 파일시스템 VS 분산파일 시스템
로컬파일시스템의 경우 컴퓨터에 존재하는 파일시스템이다. 솔직히 가장 속편하고 이용하기 편리한 시스템이다.
대부분의 인터넷에 존재하는 글은, 로컬파일시스템의 단점은 이렇고, 이를 보완할 수 있는 분산파일시스템의 장점은 이렇다 식의 글이다. 머리에서 이해는 되는데, 과연 우리제품에도 해당하는 내용인가? 라는 질문에는 답하기 어렵다. 대부분의 인터넷 사이트 처럼 로컬파일시스템의 단점과 분산파일시스템의 장점을 나열해 본다.
단점1 : 용량이 가득 찰 경우 원본을 지우거나 옴겨야 한다.
단점2 : 손실 대비를 위해 다른 저장 장치에 백업을 해야 한다.
장점1 : 네트워크 분산파일시스템 이므로 사용자 간의 정보 공유가 쉽다. 특정한 파일을 함께 사용가능하다.
장점2 : 장소에 구애를 받지 않는다. 어디서나 자신의 파일을 사용할 수 있다.
장점3 : 저장 공간을 효율적으로 사용 가능하다. 여러대의 컴퓨터의 저장 공간을 함께 사용함으로써 효율적인 저장 공간의 활용이 가능하다.
장점4 : 로컬 파일시스템의 필요가 줄어든다. 파일의 사용은 전문적인 서버가 처리 가능하게 된다.
장점5 : 서로 다른 사용자끼리 같은 파일 시스템 구조를 사용하게 되어 효율적이다.
분산파일시스템의 고려사항은 다음과 같다.
- Concurrency Control: 서로 다른 컴퓨터에서 파일 작업이 이루어 지므로, 작업간의 순서 관리
- Failure recovery and availability: 파일 복제 및 복원
- Scalability: 노드의 확장에 따른 성능 저하, 확장성
- Naming and Location Independecny: 파일이라는 물리적인 데이터와 문자로 된 이름간 연결
- Security and Access Control: 보안과 접근 제어 방식의 중요성이 필요
결국 위와 같은 상황에서 다음과 같은 고민이 생긴다. 우리 시스템은 위의 분산파일시스템의 장점이 필요 없는데?
2. 분산파일시스템과 우리의 제품 (분산파일시스템의 장점은 우리의 제품과 어울리는가?)
사실 우리의 제품은 네이버 메일과 유사한 성격을 가진다. 많은 첨부파일을 가지지만, 그 첨부파일 자체가 변경될 가능성은 없다. 그저 다운로드만 잘 되면 되고, 파일이 잘 보관만 되면 된다. 네이버 메일과 다른점은 첨부파일을 여러명이 다운로드를 받을 일이 거의 없다. 실질적으로 많아봐야 2명? 가장 중요한것은, 전체 HDD가 8테라 정도 될것이니, 그 용량을 가장 효율적으로 쓰는게 중요하다.
어쨋든 위에서 언급된 분선파일시스템의 10가지 장점 및 고려사항이 우리의 제품에 필요한 것인지 확인해 본다.
순서 | 항목 | 관련성
--- | ---
1 | 정보 공유 | 관련성0. 로컬 파일 시스템이더라도 네트워크에 연결되어 있기 때문에, 공유 가능
참고 1. https://d2.naver.com/helloworld/258077
참고 2. http://csl.skku.edu/papers/kiise09.pdf
참고 3. http://dpnm.postech.ac.kr/posco-project/dfs-intro.html
✅ @yimjunhyeok, congratulations on making your first post! I gave you an upvote!
Please give me a follow and take a moment to read this post regarding commenting and spam.
(tl;dr - if you spam, you will be flagged!)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit