클라우드 아카이브

[스토리지] 파일/블록/오브젝트 스토리지의 개념과 특징 본문

OS 및 스토리지/스토리지

[스토리지] 파일/블록/오브젝트 스토리지의 개념과 특징

Cloud Engineer 2021. 9. 15. 21:34
반응형

개요

시스템 엔지니어로 업무를 수행하다보면 데이터를 저장할 방식에 따라 DAS/NAS/SAN 스토리지 중 하나를 선택하여 구축합니다. 본 포스팅에서는 이러한 스토리지가 갖는 데이터 저장 방식과 개념에 대해 정리하는 시간을 갖겠습니다.

파일 스토리지 : 파일이 하나의 데이터 단위 + 비선형(계층) 구조

파일 스토리지의 매커니즘과 비유 (출처 : DELL EMC)

백화점을 가면 주차장에 A, B, C가 적힌 기둥을 볼 수 있습니다. 예를 들면 지하3층에 C가 적힌 기둥의 3번째 자리에 주차를 한다고 하면 3F-C-3이라는 고유값을 가지는데요. 이처럼 주차장이라는 공간을 여러 층과 기둥 등으로 계층화해서 관리하는 방식은 파일 스토리지의 메커니즘과 같습니다.
각각의 파일에 메타 데이터(수정일, 생성일, 파일크기, URI 등)을 두고, 해당 메타 데이터를 통해 대규모의 파일들을 관리하는데요. 예를 들면 windows의 C 드라이브에 데이터가 담긴 admin 파일을 저장한다고 가정하겠습니다. 해당 데이터는 C:\admin이라는 URI와 생성일, 파일 크기 등을 메타 데이터로 생성하고 헤당 위치에 데이터가 논리적으로 저장됩니다.

파일 스토리지의 특징

1. 파일을 폴더의 계층 구조로 체계화

파일은 폴더 내에 저장이되는데 해당 폴더를 기준으로 계층화하여 관리합니다. 트리 형식으로 계층화하여 파일을 저장하기 떄문에 파일/폴더량이 증가할수록 이를 추적하는데 필요한 컴퓨팅 자원 요구량도 같이 비례하여 증가합니다.

2. 파일 레벨의 파일시스템에서만 호환 가능

파일 수준으로 데이터를 관리하기 때문에, 서로 다른 시스템에서 가용성이 제한될 수 있습니다. 또한, 파일 수준의 프로토콜만 호환이 가능합니다. OS 별로 지원하는 프로토콜이 다른데 일반적으로 Linux 전용으로 NFS(Network File System), Windows 전용으로 CIFS(Common Interest File System)가 있습니다.

3. NAS(Network Attached Storage)에서 자주 사용

NAS를 이용한 파일 수준의 데이터 저장 방식

블록 스토리지 : 데이터를 특정 블록에 저장

블록 스토리지의 매커니즘과 비유 (출처 : DELL EMC)

하나의 공간에 하나의 파일을 저장하는게 아닌, 데이터를 고정된 크기를 가진 여러 개의 블록으로 나누어 분산하여 관리하는 방식입니다. 각 블록이 독립적으로 존재하기 때문에 계층 구조가 필요없습니다. 여러 개의 스토리지에 분산 저장이 가능하기 때문에 스토리지를 하나의 팜(Farm) 형태로 구성하여 운영하는 방식인 SAN에서 주로 사용됩니다.

블록 스토리지의 특징

1. 계층구조가 필요 없음

하나의 파일을 여러 개의 블록으로 분할하고 각 블록들에 고유값을 부여한 다음 팜에 구성된 스토리지들에 분산 저장합니다. 각 블록은 독립적으로 존재하며 파티션으로 분할될 수 있어, 서로 다른 운영 체제에 액세스할 수 있습니다.

2. 고속의 파일 입출력

블록을 기반으로 파일을 관리하기 때문에 파일 입출력 속도가 빠릅니다. 따라서 대규모의 트랜잭션이 발생하는 시스템에서 해당 스토리지를 사용하면 좋습니다.

3. 컨테이너 기반의 시스템에 유리

메타데이터를 처리하는 기능이 제한적이므로, 애플리케이션 또는 데이터베이스 수준에서 취급해야 합니다. 따라서 애플리케이션을 가상화하는 방식인 컨테이너 시스템을 구성할 때 해당 스토리지가 유리합니다. 또한, 다수의 스토리지를 하나의 팜으로 두고, 해당 팜을 특정 관리 S/W를 사용하여 중앙관리하기 때문에 효과적으로 스토리지를 관리할 수 있습니다.

오브젝트 스토리지 : 파일이 하나의 데이터 단위 + 선형 계층 구조

으보젝트 스토리지의 매커니즘과 비유 (출처 : DELL EMC)

고급 호텔에 차를 발렛파킹 맡기려고 합니다. 그래서 차와 키를 대리 주차 담당자에게 주고 객실로 올라갔습니다. 이 때, 우리는 발렛파킹을 맡길 때 차키와 자동차만 주면 되지 굳이 어디에 주차하는지에 대한 세부 정보를 알 필요가 없습니다. 오브젝트 스토리지는 이러한 메커니즘과 비슷하게 작동합니다.
파일에 오브젝트의 키(이름)를 부여하고, 해당 파일의 오브젝트 키를 Index 테이블로 관리하는 방식입니다. 파일 스토리지와 유사하지만, 오브젝트 스토리지는 파일을 평면(선형) 상에 저장한다는 부분에서 다릅니다.

오브젝트 스토리지의 특징

1. 스토리지에 key값과 데이터만 저장
데이터를 저장하기 위해서 메타 데이터를 따로 저장할 필요가 없습니다. 오직 해당 데이터와 key값만 저정합니다. 따라서 데이터 I/O 속도가 빠릅니다.

2. HTTP 방식의 데이터 I/O
파일/블록 스토리지에서는 데이터를 I/O할 때 OS 이하 수준의 프로토콜을 사용하는 반면에 오브젝트 스토리지는 애플리케이션 레벨인 HTTP 프로토콜을 사용합니다. 따라서 자원을 이름으로 구분하여 서버와 사용자 간의 연결 상태 및 관리의 용이성을 위해 설계된 REST API로 데이터 I/O를 수행합니다.

3. 파일 수정이 불가능
파일이 수정될 때 트랜잭션의 일관성을 유지하기가 힘듭니다. 따라서 파일 수정을 하기보다는 덮어쓰기 방식으로 데이터를 수정합니다.

정리

스토리지 저장 방식 설명
파일 스토리지 - 파일을 데이터 저장 단위로 하며, 이를 디렉토리로 계층구조화
- 대규모의 파일 처리에 적합하지 않음
- NAS에서 주로 사용
블록 스토리지 - 파일을 여러 개의 블록으로 쪼꺤 후, 다수의 스토리지로 구성된 팜에 분산 저장
- 대규모의 파일 처리에 적합
- SAN에서 주로 사용
오브젝트 스토리지 - 데이터와 해당 데이터에 부여된 key값만을 이용하여 스토리지에 데이터를 저장
- 대규모의 파일 처리에 적합

마무리

다음 포스팅에서는 해당 스토리지 데이터 저장 방식이 적용된 DAS/NAS/SAN에 대해 알아보는 시간을 갖겠습니다.

번외

포스팅 내용을 공부하고 정리하면서 SDS(Software Defined Storage)와 HCI에 대해 공부하고 정리한다면 이후 쿠버네티스 기반 컨테이너 시스템을 구축할 때 HCI로 구성된 vCenter 위에 쿠버네티스 클러스터를 구성할 수 있겠다는 아이디어가 떠올랐습니다.
따라서 SDS와 HCI를 이용한 vCenter에 대해 학습하고 향후에 관련 내용에 대한 포스팅을 진행하겠습니다. 또한, 실제 이를 이용한 구축 방법에 대해 익히고 쿠버네티스 클러스터 구축과 연계한 포스팅을 올리겠습니다.
[출처]
- https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=cafca23&logNo=221065385208
- https://medium.com/harrythegreat/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%EC%83%81-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-object-storage-%EB%9E%80-9d9c2da57649
- https://library.gabia.com/contents/infrahosting/9026/
- https://love-zzang.tistory.com/entry/nas
- https://www.redhat.com/ko/topics/data-storage/file-block-object-storage

Comments