Types of storages

DaBeen Yi
5 min readOct 5, 2021

--

Object vs File vs Block

AWS S3에 대해 알아보던 중 Storage에도 type이 존재한다는 것을 깨달아서 간단하게나마 찾아보았다.

Storage type은 Data를 표현하고, 구성하고, 저장하는 방식에 따라 크게 3가지로 나뉜다.

  • Object Storage
  • File Storage
  • Block Storage

Object storage

  • Object 단위로 데이터를 저장하고 해당 Object에 매칭되는 Key를 갖는다. (추후에 해당 데이터에 접근할 때 이 Key를 사용)
  • 모듈화된 Unit으로 동작함. 각 각의 Object는 self-contained repository, unique identifier, metadata로 구성됨
  • Object storage는 simple HTTP API가 필요함
  • 장점: 사용한 만큼만 요금을 지불할 수 있음 (Cost efficient), 확장성이 좋음 (따라서 Public Cloud 환경의 저장소로 사용하기 적합함.)
  • 단점: Object는 수정 불가능, 기존의 전통적인 데이터베이스와 호환이 어려움. (데이터 접근 시, PUT/GET 등의 Method를 통해서 가능하다. File/Block storage의 경우는 바로 직접적으로 접근 가능)

File Storage

https://www.datacore.com/event/the-differences-between-block-file-and-object-storage-and-why-it-matters/
  • 일상적으로 PC에서 파일에 접근할 때 쓰는 것이 바로 이 File Storage
  • Path로 데이터를 찾음
  • NAS (Network Access Storage) 환경에서 많이 사용됨
  • 장점: Hierarchy 구조, 다수의 사용자가 한꺼번에 작업할 경우 용이
  • 단점: storage 확장을 위해서 시스템 스펙 업그레이드(scale-up)가 아닌 시스템을 증설해야함 (scale-out)

Block Storage

  • 데이터는 Bytes (8 bits)단위의 Block으로 저장되고, 이런 Block은 각자의 주소를 갖는다.
  • Block 단위의 데이터들은 Unique identifier을 갖는다. (이 특성을 사용하여 데이터의 일부는 Linux에 다른 일부는 Windows에 저장 가능)
  • 데이터를 특정 환경에 종속하지 않고 다중 환경으로 분포하여 더 나은 서비스 제공을 하기 위해 사용함
  • 데이터가 분산된 상태에서 데이터를 요청받으면 underlying storage software가 뿔뿔이 흩어진 데이터를 모아서 사용자에게 전달함
  • SAN (Storage-area network) 환경에서 주로 쓰임
  • Path로 데이터에 접근하는것이 아니기 때문에 데이터를 빨리 가져올 수 있음
  • 데이터가 수정될 경우, 데이터 전부를 교체하는 것이 아니라 수정된 일부 Block만 업데이트하면 됨.
  • Enterprise 환경에서 대량의 transactions이 발생하는 경우 유용
  • 장점: 고가용성, Performance
  • 단점: 비쌈. Metadata 관리를 위한 application/database level의 조치가 필요함. (따라서 신경쓸게 하나 더 늘어남.)

기본적인 개념은 위와 같고, 서로 간의 차이점에 대해 잘 나와있는 도식이 있어서 첨부해본다.

https://storage.googleapis.com/gweb-cloudblog-publish/

Storage에 대해서 찾아보기 전에는 단순하게 File storage에서부터 Block storage를 거쳐 현재는 Object storage로 Storage가 발전해나간 것이라고 생각했다. 그래서 ‘File object는 legacy 한 것, 현재는 안쓰는 것 그리고 현재는 Object storage만 사용한다’ 라는 아주 위험한 일반화를 범했는데.. 위의 포스팅을 정리하면서 깨달은 사실은 ‘내가 어떤 데이터를 어떻게 저장할건지에 따라 storage 종류를 선택할 수 있다는 것’이다.

즉, 근래 들어 여러 기업에서 Object storage를 도입하는 것은 Object storage의 성능이 좋아서가 아니라 ‘정형화 된’ 그리고 ‘데이터베이스만으로도 처리가 가능한’ 데이터가 아닌 데이터들.. 흔히 우리가 말하는 빅 데이터들을 처리하기에 용이하기 때문이라고 말할 수 있다.

아무리 빅 데이터의 시대라지만 분명 기업마다, 개인마다 상황이 다를 것이니 용도를 정확하게 파악하고 그에 맞는 Storage를 선택하는 것이 핵심이겠다.

References

🍰

--

--

No responses yet