파일 스토리지
파일 스토리지는 데이터가 폴더 안에 단일 정보로 저장됩니다. 해당 데이터에 액세스해야 하는 경우 컴퓨터는 그 데이터를 찾기 위해 경로를 알아야 합니다.
"파일 레벨 스토리지" 혹은 "파일 기반 스토리지"라고도 하는 파일 스토리지는 일반적으로 NAS(Network Attached Storage)와 밀접한 관련이 있습니다. 파일과 폴더의 계층 구조로 이루어진 방식으로 윈도우 탐색기와 같이 계층 구조를 가지고 있어 폴더 안에 하위 폴더를 만들고 파일을 저장하는 것과 유사합니다.
파일을 폴더와 하위 폴더의 계층 구조로 체계화하고, 폴더/파일 경로를 사용해 접근할 수 있습니다. 이는 로컬 하드 드라이브와 아주 유사하게 작동합니다. 그러나 NAS 또는 NOS(Network Operating System)에서는 액세스 권한, 파일 공유, 파일 잠금 및 기타 제어를 처리합니다.
파일을 찾으려면 경로를 알아야 합니다. 파일들은 이름, 위치, 생성일, 수정일, 크기 등의 제한적인 메타데이터를 가지고 있습니다. 파일이 늘어나면 데이터도 늘어나고 파일을 찾는 시간도 늘어납니다.
(데이터가 많아지면 파일과 폴더를 찾을 때 리소스가 많이 들기 때문에 성능이 저하된다)
파일 스토리지를 구성하기는 매우 쉽지만, 데이터에 대한 액세스가 데이터에 대한 단일 경로로 제한됨으로 인해 블록 스토리지나 오브젝트 스토리지에 비해 성능이 떨어질 수 있습니다. 또한 파일 스토리지는 Windows용 NTFS(New Technology File System) 또는 Linux용 NFS(Network File System) 등의 공통 파일 레벨 프로토콜에서만 작동됩니다. 이로 인해 서로 다른 시스템 간에 가용성이 제한될 수 있습니다.
블록 스토리지란?
종종 "블록 레벨 스토리지"라고도 하는 블록 스토리지는 SAN(Storage Area Network) 또는 클라우드 기반 스토리지 환경에 데이터 파일을 저장하는 데 사용되는 기술입니다. 개발자들은 빠르고 효율적이며 안정적인 데이터 전송이 요구되는 컴퓨팅 상황의 경우 블록 스토리지를 선호합니다.
블록 스토리지는 일단 데이터를 블록으로 분할한 후, 해당 블록을 각각 고유 ID를 지닌 개별 조각으로 저장합니다.
→ 즉, 데이터를 고정된 사이즈 블록으로 나누어 각각 고유한 식별자와 함께 저장하는 방식입니다.
SAN은 가장 효율적이라면 어디에든 데이터의 해당 블록을 배치합니다. 다시 말하면 SAN은 서로 다른 시스템에 해당 블록을 저장할 수 있으며, 각 블록은 서로 다른 운영체제에서 작동하도록 구성(또는 파티션)될 수 있습니다.
블록 스토리지는 또한 사용자 환경으로부터 데이터를 디커플링함으로써 해당 데이터가 다수의 환경에서 분산될 수 있도록 허용합니다. 이렇게 되면 데이터에 대한 다수의 경로가 만들어지며, 사용자는 이를 통해 데이터를 빠르게 검색할 수 있습니다. 사용자나 애플리케이션이 블록 스토리지 시스템의 데이터를 요청하는 경우, 데이터 블록을 다시 병합하여 요청을 처리합니다.
블록 스토리지에는 계층 구조가 필요하지 않습니다. 각 블록이 서로 다른 고유 주소를 가지며 독립적으로 존재하기 때문입니다. 경우에 따라 블록 스토리지는 읽어야 할 데이터의 경로가 반드시 하나만 있는 것은 아니기 때문에 데이터를 매우 빠르게 검색할 수 있습니다. (이해가 잘 가지 않는다면 RAID를 떠올려 보면 좋습니다. 같은 파일의 데이터를 여러 디스크에서 읽는 것을 생각하면 좋습니다.)
또한 블록 스토리지는 동일한 파일 또는 오브젝트를 나타내는 블록을 서로 인접하여 저장할 필요 없이, 가장 편리한 곳에 블록을 저장할 수 있기 때문에 효율성이 매우 높습니다.
그러나 블록 스토리지는 일반적으로 고가이며 메타데이터 처리 능력이 제한적이라 애플리케이션 수준에서 이를 처리해야 합니다. 블록 스토리지는 파일 스토리지 시스템이 구축되는 기반으로 생각할 수 있습니다.
대규모 트랜잭션을 수행하거나 대용량 데이터베이스를 배포하는 등 많은 데이터를 저장해야 할수록 블록 스토리지를 사용하는 것이 더 좋습니다. 물론 블록 스토리지는 비용이 많이 들 수 있으며 메타데이터를 처리하는 기능이 제한적이라는 점을 고려해야합니다.
오브젝트 스토리지
"오브젝트 기반 스토리지"라고도 하는 오브젝트 스토리지는 데이터 파일을 오브젝트라고 하는 조각들로 분할(chunk)합니다. 그리고 이는 단일 저장소에 해당 오브젝트를 저장하며, 이는 다수의 네트워킹 시스템 간에 분산될 수 있습니다.
파일 스토리지와는 다르게 계층구조 없이 평면(flat) 구조로 데이터를 저장하기 때문에 접근이 쉽고 빠르며 확장성이 높습니다.
버서의 블록이나 폴더에 파일을 보관하지 않고 단일 레포지토리에 보관됩니다.
각 오브젝트는 애플리케이션이 오브젝트 식별에 사용하는 고유 ID를 수신합니다. 그리고 각 오브젝트는 오브젝트에 저장된 파일에 대한 정보인 메타데이터를 저장합니다.
오브젝트 스토리지와 블록 스토리지 간의 중요한 한 가지 차이점은 각 스토리지가 메타데이터를 처리하는 방법에 있습니다. 오브젝트 스토리지에서는 오브젝트에 저장된 데이터 파일에 관한 추가적인 상세 정보를 포함하도록 메타데이터를 사용자 정의할 수 있습니다. 예를 들어, 동영상 파일이 첨부된 메타데이터를 사용자 정의함으로써 동영상의 촬영 위치, 촬영에 사용된 카메라의 종류, 그리고 심지어는 각 프레임에 무엇이 담겨 있는지에 대해 알려줄 수 있습니다. 블록 스토리지에서는 메타데이터가 기본 파일 속성으로 제한됩니다.
파일을 변경하면 새로운 오브젝트가 생성되므로(덮어쓰는 방법), 자주 변경되지 않는 정적 파일을 저장하기에 가장 적합합니다.
+) API를 사용하여 Object에 접근할 수 있습니다.
References
'IT 기본지식' 카테고리의 다른 글
IntelliJ와 Github 연동하기 (1) | 2023.02.05 |
---|---|
IDC, UPS, DR 아키텍처 (0) | 2022.10.29 |
DNS 동작 방식 | Resolver, Root, TLD, Nameserver (1) | 2022.08.27 |
컴파일 언어와 인터프리터 언어의 차이 | Java는 어떤 언어인가? (1) | 2022.08.27 |
NAS와 SAN Storage의 차이? (0) | 2022.08.25 |
댓글