Block Storage
블록 스토리지 (Block Storage)란?
블록 스토리지는 데이터를 작은 고정 크기 블록(block) 단위로 분할하여 저장하는 방식입니다. 각 블록은 개별적으로 주소를 가지고 있으며, 서버의 운영체제(OS)가 이를 직접 관리합니다.
파일 스토리지처럼 파일과 폴더 구조를 가지지 않고, 하드 디스크(HDD)나 SSD처럼 원시 블록(raw block) 으로 데이터를 저장합니다. 사용자는 블록 스토리지에 파일 시스템(예: NTFS, ext4, XFS 등)을 구성하여 데이터를 저장할 수 있습니다.
1. 블록 스토리지의 작동 방식
블록 스토리지는 데이터를 균일한 크기의 블록(block) 단위로 나누고, 각각의 블록은 별도의 주소를 가지며 개별적으로 관리됩니다.
💾 블록 저장 과정:
- 애플리케이션이 데이터를 저장 요청
- 데이터가 일정 크기(예: 512B, 4KB, 16KB 등)의 블록으로 나뉨
- 각각의 블록이 물리적 디스크나 스토리지 어레이(Storage Array)에 분산 저장됨
- 운영체제(OS)가 블록을 조합하여 파일 형태로 인식
🔹 예시:
- 파일을 저장하면 OS는 이를 여러 블록으로 나눔
- 블록들은 스토리지 디바이스(SAN, iSCSI 볼륨 등)에 분산 저장됨
- OS에서 파일 시스템이 블록을 조합하여 원래의 파일을 복원
2. 블록 스토리지의 주요 특징
✔ 고속 입출력(I/O) 성능 → 블록 단위 저장으로 읽기/쓰기 속도가 빠름
✔ 파일 시스템 자유도 → 사용자가 원하는 파일 시스템(FAT32, NTFS, ext4 등) 선택 가능
✔ 스토리지 가상화 가능 → 여러 개의 블록을 묶어 논리적 볼륨(Logical Volume) 생성 가능
✔ SAN(Storage Area Network) 및 iSCSI 기반 → 네트워크를 통해 원격에서도 사용 가능
✔ 트랜잭션 워크로드에 적합 → 데이터베이스, 가상 머신(VM), ERP 시스템에서 많이 사용
3. 블록 스토리지 vs. 파일/오브젝트 스토리지 비교
특징 | 블록 스토리지 | 파일 스토리지 | 오브젝트 스토리지 |
---|---|---|---|
저장 방식 | 블록 단위 | 파일 단위 | 오브젝트 (Key-Value) |
구성 구조 | 비구조적 (파일 시스템 필요) | 계층적 (디렉터리 구조) | 플랫 구조 (메타데이터 포함) |
속도 | 매우 빠름 (블록 직접 접근) | 중간 (파일 시스템 탐색 필요) | 느림 (HTTP API 기반) |
확장성 | 중간 (SAN/iSCSI 확장 가능) | 제한적 (서버당 제한) | 매우 뛰어남 (무한 확장 가능) |
데이터 검색 | 불가능 (메타데이터 없음) | 가능 (파일명, 디렉터리 검색) | 가능 (메타데이터 기반 검색) |
주요 사례 | 데이터베이스, VM 디스크, ERP | 파일 공유, 네트워크 드라이브 | 백업, 빅데이터, CDN |
4. 블록 스토리지의 장점
✅ 고속 읽기/쓰기 → 블록 단위 접근이 가능하여 랜덤 I/O 성능이 뛰어남
✅ 운영체제(OS)에서 직접 사용 가능 → 로컬 디스크처럼 마운트하여 사용 가능
✅ 다양한 파일 시스템 지원 → 사용자가 직접 NTFS, ext4, XFS 등을 설정 가능
✅ 가상 머신(VM) 및 컨테이너 환경에 최적화 → AWS EBS, OpenStack Cinder 등에서 주로 사용
✅ 트랜잭션 처리에 유리 → DBMS, 금융 서비스, ERP 시스템에서 많이 활용
5. 블록 스토리지의 단점
❌ 데이터 검색 기능 없음 → 블록 단위 저장 방식이므로 파일명 기반 검색 불가
❌ 파일 공유가 어렵다 → 특정 서버에 종속되며, 네트워크 공유하려면 추가 설정(iSCSI, NFS)이 필요
❌ 확장성 제한 → 클러스터링이 가능한 NAS나 오브젝트 스토리지보다 확장성이 떨어짐
❌ 비용이 높을 수 있음 → SAN(Storage Area Network) 구성 시 비용이 증가
6. 블록 스토리지의 주요 사용 사례
📌 1) 데이터베이스 (MySQL, PostgreSQL, Oracle DB)
- 트랜잭션 처리(OLTP)가 많고 빠른 응답 속도가 필요한 환경
- 데이터 무결성이 중요하며, 읽기/쓰기 성능이 중요한 경우
📌 2) 가상 머신(VM) 및 컨테이너 볼륨 저장
- AWS EC2 인스턴스의 EBS 볼륨 (Elastic Block Store)
- OpenStack Cinder 블록 스토리지
📌 3) 고성능 애플리케이션 (ERP, SAP, 금융 서비스)
- 대량의 데이터 처리를 빠르게 수행해야 하는 경우
- 기업용 미션 크리티컬(Mission-Critical) 애플리케이션에서 활용
📌 4) RAID 구성 및 고가용성(HA) 클러스터
- RAID 0, 1, 5, 10을 이용하여 데이터 중복 및 성능 향상 가능
- SAN을 이용한 다중 서버 스토리지 공유
7. 블록 스토리지 관련 기술 및 서비스
🔹 클라우드 블록 스토리지 서비스
클라우드 제공업체 | 서비스 |
---|---|
AWS | EBS (Elastic Block Store) |
Azure | Managed Disks |
Google Cloud | Persistent Disks |
OpenStack | Cinder |
VMware | vSAN |
🔹 블록 스토리지 프로토콜
프로토콜 | 설명 |
---|---|
iSCSI | 인터넷 기반 블록 스토리지 전송 프로토콜 |
Fibre Channel | SAN에서 사용하는 고속 블록 스토리지 프로토콜 |
NVMe-oF | NVMe 기반 고속 네트워크 블록 스토리지 |
8. 결론: 블록 스토리지를 언제 사용해야 할까?
✅ 블록 스토리지를 선택해야 하는 경우:
- 고성능 데이터베이스(DB) 및 트랜잭션 애플리케이션이 필요한 경우
- 가상 머신(VM), 컨테이너 볼륨 저장에 활용할 때
- RAID, SAN을 활용하여 고가용성을 구축하고 싶을 때
- 빠른 IOPS(입출력 성능)과 저지연이 중요한 애플리케이션에 적합
🚫 블록 스토리지를 사용하지 않는 것이 좋은 경우:
- 다수의 사용자가 공유하는 파일 서버(NAS)가 필요한 경우 → 파일 스토리지 추천
- 대용량 데이터를 저장하고 검색이 필요할 경우 → 오브젝트 스토리지 추천
- 클라우드 환경에서 저렴한 장기 보관 스토리지가 필요한 경우 → AWS S3, MinIO 같은 오브젝트 스토리지
📌 즉, 블록 스토리지는 “고성능, 저지연, 트랜잭션 처리"가 필요한 환경에서 가장 적합한 스토리지 솔루션입니다! 🚀