- 블록스토리지와 파일스토리지는 OS에서 동작
- 오브젝트 스토리지는 어플리케이션에서 동작
스토리지 유형에 따른 서로 다른 특징을 비교
파일스토리지
- 폴더(Directory)와 파일(File)로 이루어지는 논리적 계층구조를 갖는 스토리지 → 가장 일반적인 저장소 유형
- 각 파일(File)은 폴더(Directory)에 종속되며 폴더(Directory)도 다른 폴더(Directory)에 종속 가능
- 파일스토리지에서 파일은 폴더(Directory)별로 저장되어, 언제든지 꺼내어 수정 및 변경 가능
- 파일스토리지에서 파일을 찾으려면 어느 경로에 있는지 알고 있어야함
- 파일스토리지의 규모가 작은 경우 파일을 인덱싱하는데 어렵지 않지만, 규모가 큰 경우 파일을 인덱싱하는데 많은 시간과 노력이 소모
- NAS, DAS에서 사용 → 가장 오래되고 널리 사용되는 데이터 스토리지 시스템
- 파일 스토리지를 케비넷으로 생각하면 이해하기 쉬움
- 각각의 파일철들이 케비넷별로 저장되어있고 언제든 꺼내어 수정하거나 변경 가능
- 파일철을 찾으려면 어느 케비넷이 있는지 알고 있어야함
- 케비넷에 파일철이 많지 않다면 분류하고 정리하는데 큰 문제가없지만, 파일철들이 계속해서 늘어나면 늘어날수록 점점 분류하고 정리하는 데 많은 노력이 필요
- 파일 스토리지를 주차 타워로 표현하여도 이해하기 쉬움
- 주차 타워는 내 차를 타기 위해서는 주차타워가 한번 돌아가야함
- 주차가 많아지면 많아질수록 주차 타워가 깊어짐 → 차를 찾기가 힘듦
- 파일스토리지의 문제
- 파일스토리지에 파일을 저장하면 생성 날짜, 수정 날짜 및 파일 크기 등 첨부되는 메타데이터가 제한적
- 파일스토리지의 조직 스키마는 데이터 양이 늘어나면서 문제 발생 가능
- 파일과 폴더를 계속 추적하기 위해 파일 시스템에 대한 자원 요구가 증가해 성능이 떨어짐
- 파일스토리지의 구조적 문제는 단순히 파일 시스템에서 사용할 수 있는 저장 공간을 늘리는 것으로 해결 불가능
- 파일스토리지는 규모의 측면에서 잠재적인 문제가 있음에도, 업무 현장 및 중대형 기업에서 사용하는 개인용 컴퓨터와 서버에서 잘 사용
- 파일 스토리지는 일반적으로 하드 드라이브 및 네트워크 연결 스토리지(NAS) 시스템에 사용
블록스토리지
- 블록스토리지는 정해진 블록 안에 데이터를 저장
- 블록 스토리지는 데이터를 고정된 크기의 '덩어리' 또는 '블록'을 시퀀스로 처리 → 각각의 파일이나 오브젝트를 여러 블록에 분산 가능(cf. 파일 스토리는 파일을 하나의 데이터 단위)
- 블록스토리지는 블록들을 연속적으로 저장할 필요 X
- 사용자가 데이터를 요청할 때마다, 기본 스토리지 시스템에 데이터 블록을 병합하여 사용자의 요청을 처리
- 가장 편리한 곳에 블록을 저장 가능하기에 효율성이 매우 높음
- 데이터 블록은 고유 식별자를 부여
- 일부 데이터는 Linux 환경에 저장하고, 일부는 Windows 장치에 저장 가능
- 계층 구조가 필요하지 않아 블록은 서로 독립적으로 존재 가능
- 블록 스토리지는 읽어야 할 데이터의 경로가 하나만 있는 것이 아니기 때문에 데이터를 매우 빠르게 검색 가능 → 같은 파일의 데이터를 여러 디스크에서 읽을 수 있는 디스크 배열과 유사
- 블록 스토리지는 저장 영역 네트워크(SAN) 저장소에 사용
- 블록 스토리지는 파일 스토리지 시스템이 구축되는 기반으로 사용
- 대부분의 애플리케이션에서 오브젝트스토리 또는 파일스토리지에서 사용되고, 오브젝트스토리지와 파일스토리지를 구축하는 상위 계층으로 블록스토리지를 사용
- SQL에서 테이블을 만들때 각 칼럼별로 저장할 데이터를 설정 → 데이터 삽입도 설정한 값 범위안에서 저장
- 블록스토리지가 파일스토리지와 다른점은 파일스토리지는 1개의 경로만 갖는데 반하여 블록스토리지는 여러개의 경로를 가질 수 있음
- 낮은 IO(Input/Output) latency로 RDB와 같은 데이터베이스에 사용하기 적합
- BlockStorage를 주차장으로 표현하면 이해하기 쉬움
- 주차장이 꽉차면 더 이상 주차 불가능
- 더 이상 주차할 공간이 없으면 필요한만큼 주차장을 늘려놓아야합니다.
- 블록스토리지의 동작 원리 예시
- 블록스토리지는 컴퓨터의 C드라이브, D드라이브와 유사 → 맨처음 파티션을 나누어주고 그 공간안에서 사용 가능
- C드라이브와 D드라이브를 네트워크를 통해서 공유하고 여러 사용자가 해당 드라이브를 참조하는것과 유사 → 공유는 할 수 있지만 OS와의 연결은 한번에 1개만 가능
- 블록 스토리지는 데이터를 사용자의 환경에서 분리해 이를 쉽게 활용 가능 → 다양한 환경 전반에 분산하도록 설정
- 데이터 요청되면 기본 스토리지 소프트웨어가 데이터 블록을 다시 조합해 사용자에게 제공
- 블록 스토리지의 장점
- 단일 데이터 경로에 의존하지 않으므로 신속하게 검색 가능
- 각 블록은 독립적으로 존재하며 파티션으로 분할 가능 → 서로 다른 운영 체제에 액세스 가능
- 사용자는 자유롭게 데이터를 설정 가능 → 운영체제에 영향 X
- 데이터를 효율적이고 안정적으로 저장 가능 → 사용과 관리도 간편
- 대규모 트랜잭션을 수행하는 기업과 대용량 데이터베이스를 배포하는 기업에서도 원활하게 동작
- 더 많은 데이터를 저장해야 할수록 블록 스토리지를 사용하는 것이 더 유리
- 블록스토리지의 한계
- 블록 스토리지는 비용이 많이 발생
- 메타데이터를 처리하는 기능이 제한적
- 애플리케이션 또는 데이터베이스 수준으로 메타데이터를 다루어야함 → 비효율적
- 개발자나 시스템 관리자의 업무 부담이 늘어남
오브젝트 스토리지
- 오브젝트 스토리지는 '오브젝트(Object)'로 불리는 각각의 데이터 단위가 개별 단위로 저장되는 데이터 저장소 유형 → 오브젝트 스토리지 볼륨은 모듈 단위로 동작
- 오브젝트 스토리지는 물리적 제약이 없기 때문에 원하는 만큼 공간을 확장 가능
- 오브젝트 스토리지의 단일 리포지토리는 각각 독립적인 리포지토리로 아래 요소를 보유
- 데이터
- 데이터는 오브젝트라 불리는 개별 단위로 나뉨
- 서버의 블록이나 폴더에 파일을 보관하는 대신 단일 리포지토리에 보관
- 오브젝트가 분산 시스템에 존재하도록 허용하는 고유 식별자
- 오브젝트 이름이 색인 테이블에서 '키' 역할 가능
- 오브젝트 스토리지 시스템은 찾고 있는 오브젝트의 키(이름)만 알고 있으면 색인 테이블을 사용하여 빠르고 쉬운 검색이 가능
- 데이터를 설명하는 메타데이터를 보유
- 메타데이터는 사용 기간, 개인 정보/보안 및 액세스 비상 대책 등 중요한 내용이 포함
- 메타데이터 내용은 매우 상세 기록 가능 (영상 촬영 위치, 사용된 카메라 기종, 각 프레임에 출연한 배우 이름 등의 정보를 저장 가능)
- 데이터
- 오브젝트 스토리지는 논리적인 스토리지
- 오브젝트 스토리지는 S3나 Cloud Sotrage에서 폴더(Directory)를 만들거나 다른 버킷(bucket)으로 파일을 옮긴다고 하여 물리적인 변화가 있는 것이 아님 → 사용자에게 옮긴 것처럼 보여줌
- 오브젝트 스토리지는 키 값(Key Value)과 데이터(Data)만 저장
- 오브젝트는 PDF, 비디오, 오디오, 텍스트, 웹사이트 데이터나 기타 다른 파일 유형 등 모든 데이터 유형을 사용 가능
- 파일 스토리지와 달리, 오브젝트는 폴더(Directory) 계층 구조 없이 단일한 평면(flat) 구조로 저장
- 오브젝트 스토리지는 RESTFul Protocol(HTTP)를 이용 가능 → Get과 Post로 요청을 하면 원하는 파일을 받을 수 있음 (모든 언어로 HTTP API 사용 가능)
- 파일에 대해 가지고 있는 정보가 적기 때문에 파일이 아무리 많아져도 블록스토리지나 파일스토리지에 비해서 빠르게 작동
- Object Storage를 발렛으로 알아서 주차하는 것으로 표현하면 이해하기 쉬움
- 강남이나 판교에서 발렛 맡기면, 주차장의 공간을 효율적으로 사용하여 주차해줌
- 주차하는 기술도 일반적인 경우와 다르지만, 공간의 낭비가 하나도 없도록 주차를 해줌
- 오브젝트 스토리지 예시
- 발렛을 맡길때 자동차(데이터) 세워 두고 번호표만 전달해 줌
- 어디에 주차되어있는지 알 필요 X
- 오브젝트 스토리지 장점
- 평면 주소 지정 체계는 개별 오브젝트에 대한 접근이 빠르고 쉽다는 것을 의미
- 오브젝트는 정적 데이터에 적합한 스토리지 시스템 → 민첩성과 평면적 속성으로 인해 초대용량의 데이터로 확장 가능
- 비정형 데이터를 저장하기에도 좋음
- 오브젝트 스토리지는 클라우드 기반 저장소에서 일반적 → 확장하기도 쉬우므로 퍼블릭 클라우드 스토리지에 매우 적합
- 매우 높은 확장성과 신뢰성을 바탕으로 콘텐츠의 관리, 처리 및 배포에 사용
- 공간을 효율적으로 사용하기에 비용적으로 저렴함 → 사용만큼 비용을 지불하면 되므로 비용 효율적
- 사용만큼 비용을 지불하면 되므로 비용 효율적
- 오브젝트 스토리지 단점
- 파일 수정이 불가능 → 한번에 오브젝트 작성을 완료해야함
- 오브젝트 스토리지는 전통적인 데이터베이스와 잘 연동 X
- 파일이 수정될때 트랜잭션을 통해 일관성을 유지하기가 힘들기 때문에 덮어쓰는 방법을 이용
- 이미지나 동영상같이 수정이 잘 일어나지 않는 정적인 데이터를 호스팅할때 사용
- 내구성이 블록스토리지에 비해 떨어지기때문에 내구성이 중요한 데이터는 처리하기 힘듦
- 오브젝트 작성에 노력이 필요함
- 오브젝트 스토리지 API를 사용하여 애플리케이션 작성에 노력이 필요함
'IT 학습 용어' 카테고리의 다른 글
GitOps 설명 (0) | 2022.07.08 |
---|---|
CI/CD 설명 (0) | 2022.07.07 |
페이로드(payload) (0) | 2022.06.27 |
M3U8 파일 (0) | 2022.06.27 |
LRU (Least Recently Used) (0) | 2022.06.27 |