파일, 블록 및 오브젝트는 다양한 방식으로 데이터를 보유하고 구성하며 표시하는 스토리지 형식으로, 각각 고유의 기능과 제한 사항이 있습니다. 파일 스토리지는 데이터를 폴더의 파일 계층 구조로 구성하고 표현합니다. 블록 스토리지는 데이터를 임의로 구성해 동일한 크기의 볼륨으로 나눕니다. 오브젝트 스토리지는 데이터를 관리하고 연결된 메타데이터와 이를 연결합니다.


파일 스토리지란 무엇일까요?

파일 스토리지는 파일 수준 또는 파일 기반 스토리지라고도 하며, 일반적으로 흔히 알고 있는 스토리지입니다. 서류철에 서류를 정리하듯, 데이터가 폴더 안에 단일 정보로 저장됩니다. 해당 데이터에 액세스해야 하는 경우, 컴퓨터는 그 데이터를 찾기 위해 경로를 알아야 합니다. (주의: 경로가 길고 찾기 어려울 수 있습니다.) 파일에 저장된 데이터는 제한된 양의 메타데이터(해당 파일 자체가 보관된 정확한 위치를 알려주는 데이터)를 사용해 구성 및 검색됩니다. 이는 데이터 파일의 도서관 카드 카탈로그와 같습니다.

서류 캐비닛으로 꽉 찬 벽장을 생각해보십시오. 캐비닛, 서랍, 폴더, 그리고 서류와 같은 순서로 모든 문서가 논리적 계층 구조로 정리되어 있습니다. 계층 구조 스토리지라는 말도 바로 여기에서 온 것으로, 이것이 파일 스토리지입니다. 이는 직접 연결 및 네트워크 연결 스토리지 시스템에 대해 가장 오래되고 널리 사용되는 데이터 스토리지 시스템이며, 수십 년 간 사용해왔던 스토리지도 대부분 바로 이런 유형일 것입니다. PC로 파일에 저장된 문서에 액세스 할 때마다 파일 스토리지를 사용하게 됩니다. 파일 스토리지는 기능이 다양하며 거의 모든 것을 저장할 수 있습니다. 다수의 복잡한 파일을 저장하기에 좋고 사용자가 신속히 탐색할 수 있습니다.

문제는 서류 캐비닛과 마찬가지로 가상의 서랍은 열기만 할 수 있다는 점입니다. 파일 기반 스토리지 시스템은 더 많은 용량을 추가해 확장하는 것이 아닌, 더 많은 시스템을 추가해 스케일 아웃해야 합니다.


블록 스토리지란 무엇일까요?

블록 스토리지는 데이터를 블록으로 쪼갭니다. 즉 데이터를 별도의 조각으로 분리해 저장하는 것입니다. 각 데이터 블록은 고유 식별자를 부여받는데, 이는 스토리지 시스템이 더 작은 데이터 조각을 원하는 곳에 배치할 수 있도록 해줍니다. 이는 일부 데이터는 Linux 환경에 저장하고 일부는 Windows 장치에 저장할 수 있다는 뜻입니다.

블록 스토리지는 데이터를 사용자의 환경에서 분리해 이를 쉽게 활용할 수 있도록 다양한 환경 전반에 분산하도록 설정되는 경우가 많습니다. 그런 후 데이터가 요청되면 기본 스토리지 소프트웨어가 이러한 환경의 데이터 블록을 다시 조합해 사용자에게 제공합니다. 이는 대체로 SAN(스토리지 영역 네트워크) 환경에 배포되며 가동되는 서버에 연결되어야 합니다.

블록 스토리지는 파일 스토리지와 같이 단일 데이터 경로에 의존하지 않으므로 신속하게 검색할 수 있습니다. 각 블록은 독립적으로 존재하며 파티션으로 분할될 수 있어, 서로 다른 운영 체제에 액세스할 수 있습니다. 이 때문에 사용자는 자유롭게 데이터를 설정할 수 있습니다. 이는 데이터를 효율적이고 안정적으로 저장하는 방법이며 사용과 관리도 간편합니다. 대규모 트랜잭션을 수행하는 기업과 대용량 데이터베이스를 배포하는 기업에서도 원활하게 동작합니다. 결국 더 많은 데이터를 저장해야 할수록 블록 스토리지를 사용하는 것이 더 유리합니다.

그러나 여기에도 한계는 있습니다. 블록 스토리지는 비용이 많이 들 수 있습니다. 메타데이터를 처리하는 기능이 제한적이므로, 애플리케이션 또는 데이터베이스 수준에서 취급해야 합니다. 그러면 개발자나 시스템 관리자의 업무 부담이 늘어나게 됩니다.


오브젝트 스토리지란 무엇일까요?

오브젝트 스토리지는 오브젝트 기반 스토리지로도 알려져 있으며, 파일들이 작게 나뉘어 여러 하드웨어에 분산되는 평면적(flat) 구조입니다. 오브젝트 스토리지에서 데이터는 오브젝트라 불리는 개별 단위로 나뉘며, 서버의 블록이나 폴더에 파일을 보관하는 대신 단일 리포지토리에 보관됩니다.

오브젝트 스토리지 볼륨은 모듈 단위로 동작합니다. 각각은 독립적인 리포지토리이며 데이터, 오브젝트가 분산 시스템에 존재하도록 허용하는 고유 식별자, 그리고 해당 데이터를 설명하는 메타데이터를 보유합니다. 메타데이터는 중요하며 사용 기간, 개인 정보/보안 및 액세스 비상 대책 등의 상세 사항이 포함됩니다. 오브젝트 스토리지 메타데이터 내용은 매우 상세할 수 있으며 영상 촬영 위치, 사용된 카메라 기종, 각 프레임에 출연한 배우 이름 등의 정보를 저장할 수 있습니다. 데이터를 검색하기 위해 스토리지 운영 체제는 메타데이터와 식별자를 사용하고, 로드를 보다 효율적으로 배포하여 관리자가 보다 강력한 검색 수행 정책을 적용하도록 해줍니다.

오브젝트 스토리지에는 단순한 HTTP API가 필요하며, 이는 대부분의 클라이언트에서 모든 언어로 사용됩니다. 오브젝트 스토리지는 사용한 만큼만 비용을 지불하면 되므로 비용 효율적입니다. 확장하기도 쉬우므로 퍼블릭 클라우드 스토리지에 매우 적합합니다. 정적 데이터에 적합한 스토리지 시스템이며, 민첩성과 평면적 속성으로 인해 초대용량의 데이터로 확장할 수도 있습니다. 오브젝트에는 충분한 양의 정보가 있어서 애플리케이션이 신속하게 데이터를 검색할 수 있으며, 비정형 데이터를 저장하기에도 좋습니다.

물론 여기에도 단점은 있습니다. 오브젝트는 수정이 불가능합니다. 따라서 한번에 오브젝트 작성을 완료해야 합니다. 오브젝트 스토리지는 또한 전통적인 데이터베이스와 잘 연동되지 않습니다. 오브젝트 작성이 느리게 진행되는 데다가, 오브젝트 스토리지 API를 사용하기 위해 애플리케이션을 작성하는 일이 파일 스토리지를 사용할 때만큼 간단하지 않기 때문입니다.

 

*. 출처 : https://www.redhat.com/ko/topics/data-storage/file-block-object-storage

+ Recent posts