• 블록스토리지와 파일스토리지는 OS에서 동작
  • 오브젝트 스토리지는 어플리케이션에서 동작


스토리지 유형에 따른 서로 다른 특징을 비교



파일스토리지

  • 폴더(Directory)와 파일(File)로 이루어지는 논리적 계층구조를 갖는 스토리지 → 가장 일반적인 저장소 유형
  • 각 파일(File)은 폴더(Directory)에 종속되며 폴더(Directory)도 다른 폴더(Directory)에 종속 가능
  • 파일스토리지에서 파일은 폴더(Directory)별로 저장되어, 언제든지 꺼내어 수정 및 변경 가능
  • 파일스토리지에서 파일을 찾으려면 어느 경로에 있는지 알고 있어야함
  • 파일스토리지의 규모가 작은 경우 파일을 인덱싱하는데 어렵지 않지만, 규모가 큰 경우 파일을 인덱싱하는데 많은 시간과 노력이 소모
  • NAS, DAS에서 사용 → 가장 오래되고 널리 사용되는 데이터 스토리지 시스템
  • 파일 스토리지를 케비넷으로 생각하면 이해하기 쉬움
    1. 각각의 파일철들이 케비넷별로 저장되어있고 언제든 꺼내어 수정하거나 변경 가능
    2. 파일철을 찾으려면 어느 케비넷이 있는지 알고 있어야함
    3. 케비넷에 파일철이 많지 않다면 분류하고 정리하는데 큰 문제가없지만, 파일철들이 계속해서 늘어나면 늘어날수록 점점 분류하고 정리하는 데 많은 노력이 필요
  • 파일 스토리지를 주차 타워로 표현하여도 이해하기 쉬움
    1. 주차 타워는 내 차를 타기 위해서는 주차타워가 한번 돌아가야함
    2. 주차가 많아지면 많아질수록 주차 타워가 깊어짐 → 차를 찾기가 힘듦
  • 파일스토리지의 문제
    1. 파일스토리지에 파일을 저장하면 생성 날짜, 수정 날짜 및 파일 크기 등 첨부되는 메타데이터가 제한적
    2. 파일스토리지의 조직 스키마는 데이터 양이 늘어나면서 문제 발생 가능
    3. 파일과 폴더를 계속 추적하기 위해 파일 시스템에 대한 자원 요구가 증가해 성능이 떨어짐
    4. 파일스토리지의 구조적 문제는 단순히 파일 시스템에서 사용할 수 있는 저장 공간을 늘리는 것으로 해결 불가능
    5. 파일스토리지는 규모의 측면에서 잠재적인 문제가 있음에도, 업무 현장 및 중대형 기업에서 사용하는 개인용 컴퓨터와 서버에서 잘 사용
    6. 파일 스토리지는 일반적으로 하드 드라이브 및 네트워크 연결 스토리지(NAS) 시스템에 사용


블록스토리지

  • 블록스토리지는 정해진 블록 안에 데이터를 저장
  • 블록 스토리지는 데이터를 고정된 크기의 '덩어리' 또는 '블록'을 시퀀스로 처리 → 각각의 파일이나 오브젝트를 여러 블록에 분산 가능(cf. 파일 스토리는 파일을 하나의 데이터 단위)
  • 블록스토리지는 블록들을 연속적으로 저장할 필요 X
    1. 사용자가 데이터를 요청할 때마다, 기본 스토리지 시스템에 데이터 블록을 병합하여 사용자의 요청을 처리
    2. 가장 편리한 곳에 블록을 저장 가능하기에 효율성이 매우 높음
    3. 데이터 블록은 고유 식별자를 부여
    4. 일부 데이터는 Linux 환경에 저장하고, 일부는 Windows 장치에 저장 가능
    5. 계층 구조가 필요하지 않아 블록은 서로 독립적으로 존재 가능
  • 블록 스토리지는 읽어야 할 데이터의 경로가 하나만 있는 것이 아니기 때문에 데이터를 매우 빠르게 검색 가능 → 같은 파일의 데이터를 여러 디스크에서 읽을 수 있는 디스크 배열과 유사
  • 블록 스토리지는 저장 영역 네트워크(SAN) 저장소에 사용
  • 블록 스토리지는 파일 스토리지 시스템이 구축되는 기반으로 사용
  • 대부분의 애플리케이션에서 오브젝트스토리 또는 파일스토리지에서 사용되고, 오브젝트스토리지와 파일스토리지를 구축하는 상위 계층으로 블록스토리지를 사용
  • SQL에서 테이블을 만들때 각 칼럼별로 저장할 데이터를 설정 → 데이터 삽입도 설정한 값 범위안에서 저장
  • 블록스토리지가 파일스토리지와 다른점은 파일스토리지는 1개의 경로만 갖는데 반하여 블록스토리지는 여러개의 경로를 가질 수 있음
  • 낮은 IO(Input/Output) latency로 RDB와 같은 데이터베이스에 사용하기 적합
  • BlockStorage를 주차장으로 표현하면 이해하기 쉬움
    1. 주차장이 꽉차면 더 이상 주차 불가능
    2. 더 이상 주차할 공간이 없으면 필요한만큼 주차장을 늘려놓아야합니다.
  • 블록스토리지의 동작 원리 예시
    1. 블록스토리지는 컴퓨터의 C드라이브, D드라이브와 유사 → 맨처음 파티션을 나누어주고 그 공간안에서 사용 가능
    2. C드라이브와 D드라이브를 네트워크를 통해서 공유하고 여러 사용자가 해당 드라이브를 참조하는것과 유사 → 공유는 할 수 있지만 OS와의 연결은 한번에 1개만 가능
    3. 블록 스토리지는 데이터를 사용자의 환경에서 분리해 이를 쉽게 활용 가능 → 다양한 환경 전반에 분산하도록 설정
    4. 데이터 요청되면 기본 스토리지 소프트웨어가 데이터 블록을 다시 조합해 사용자에게 제공
  • 블록 스토리지의 장점
    1. 단일 데이터 경로에 의존하지 않으므로 신속하게 검색 가능
    2. 각 블록은 독립적으로 존재하며 파티션으로 분할 가능 → 서로 다른 운영 체제에 액세스 가능
    3. 사용자는 자유롭게 데이터를 설정 가능 → 운영체제에 영향 X
    4. 데이터를 효율적이고 안정적으로 저장 가능 → 사용과 관리도 간편
    5. 대규모 트랜잭션을 수행하는 기업과 대용량 데이터베이스를 배포하는 기업에서도 원활하게 동작
    6. 더 많은 데이터를 저장해야 할수록 블록 스토리지를 사용하는 것이 더 유리
  • 블록스토리지의 한계
    1. 블록 스토리지는 비용이 많이 발생
    2. 메타데이터를 처리하는 기능이 제한적
    3. 애플리케이션 또는 데이터베이스 수준으로 메타데이터를 다루어야함 → 비효율적
    4. 개발자나 시스템 관리자의 업무 부담이 늘어남


오브젝트 스토리지

  • 오브젝트 스토리지는 '오브젝트(Object)'로 불리는 각각의 데이터 단위가 개별 단위로 저장되는 데이터 저장소 유형 → 오브젝트 스토리지 볼륨은 모듈 단위로 동작
  • 오브젝트 스토리지는 물리적 제약이 없기 때문에 원하는 만큼 공간을 확장 가능
  • 오브젝트 스토리지의 단일 리포지토리는 각각 독립적인 리포지토리로 아래 요소를 보유
    1. 데이터
      • 데이터는 오브젝트라 불리는 개별 단위로 나뉨
      • 서버의 블록이나 폴더에 파일을 보관하는 대신 단일 리포지토리에 보관
    2. 오브젝트가 분산 시스템에 존재하도록 허용하는 고유 식별자
      • 오브젝트 이름이 색인 테이블에서 '키' 역할 가능
      • 오브젝트 스토리지 시스템은 찾고 있는 오브젝트의 키(이름)만 알고 있으면 색인 테이블을 사용하여 빠르고 쉬운 검색이 가능
    3. 데이터를 설명하는 메타데이터를 보유
      • 메타데이터는 사용 기간, 개인 정보/보안 및 액세스 비상 대책 등 중요한 내용이 포함
      • 메타데이터 내용은 매우 상세 기록 가능 (영상 촬영 위치, 사용된 카메라 기종, 각 프레임에 출연한 배우 이름 등의 정보를 저장 가능)
  • 오브젝트 스토리지는 논리적인 스토리지
    1. 오브젝트 스토리지는 S3나 Cloud Sotrage에서 폴더(Directory)를 만들거나 다른 버킷(bucket)으로 파일을 옮긴다고 하여 물리적인 변화가 있는 것이 아님 → 사용자에게 옮긴 것처럼 보여줌
    2. 오브젝트 스토리지는 키 값(Key Value)과 데이터(Data)만 저장
    3. 오브젝트는 PDF, 비디오, 오디오, 텍스트, 웹사이트 데이터나 기타 다른 파일 유형 등 모든 데이터 유형을 사용 가능
    4. 파일 스토리지와 달리, 오브젝트는 폴더(Directory) 계층 구조 없이 단일한 평면(flat) 구조로 저장
  • 오브젝트 스토리지는 RESTFul Protocol(HTTP)를 이용 가능 → Get과 Post로 요청을 하면 원하는 파일을 받을 수 있음 (모든 언어로 HTTP API 사용 가능)
  • 파일에 대해 가지고 있는 정보가 적기 때문에 파일이 아무리 많아져도 블록스토리지나 파일스토리지에 비해서 빠르게 작동
  • Object Storage를 발렛으로 알아서 주차하는 것으로 표현하면 이해하기 쉬움
    1. 강남이나 판교에서 발렛 맡기면, 주차장의 공간을 효율적으로 사용하여 주차해줌
    2. 주차하는 기술도 일반적인 경우와 다르지만, 공간의 낭비가 하나도 없도록 주차를 해줌
  • 오브젝트 스토리지 예시
    1. 발렛을 맡길때 자동차(데이터) 세워 두고 번호표만 전달해 줌
    2. 어디에 주차되어있는지 알 필요 X
  • 오브젝트 스토리지 장점
    1. 평면 주소 지정 체계는 개별 오브젝트에 대한 접근이 빠르고 쉽다는 것을 의미
    2. 오브젝트는 정적 데이터에 적합한 스토리지 시스템 → 민첩성과 평면적 속성으로 인해 초대용량의 데이터로 확장 가능
    3. 비정형 데이터를 저장하기에도 좋음
    4. 오브젝트 스토리지는 클라우드 기반 저장소에서 일반적 → 확장하기도 쉬우므로 퍼블릭 클라우드 스토리지에 매우 적합
    5. 매우 높은 확장성과 신뢰성을 바탕으로 콘텐츠의 관리, 처리 및 배포에 사용
    6. 공간을 효율적으로 사용하기에 비용적으로 저렴함 → 사용만큼 비용을 지불하면 되므로 비용 효율적
    7. 사용만큼 비용을 지불하면 되므로 비용 효율적
  • 오브젝트 스토리지 단점
    1. 파일 수정이 불가능 → 한번에 오브젝트 작성을 완료해야함
    2. 오브젝트 스토리지는 전통적인 데이터베이스와 잘 연동 X
    3. 파일이 수정될때 트랜잭션을 통해 일관성을 유지하기가 힘들기 때문에 덮어쓰는 방법을 이용
    4. 이미지나 동영상같이 수정이 잘 일어나지 않는 정적인 데이터를 호스팅할때 사용
    5. 내구성이 블록스토리지에 비해 떨어지기때문에 내구성이 중요한 데이터는 처리하기 힘듦
    6. 오브젝트 작성에 노력이 필요함
    7. 오브젝트 스토리지 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

+ Recent posts