Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

블록 스토리지 인터페이스 (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.14 21:24

블록 스토리지 인터페이스

이름

블록 스토리지 인터페이스

분류

데이터 스토리지

유형

인터페이스

주요 용도

블록 스토리지 장치 접근 및 관리

표준 예시

SCSI, SATA, NVMe

접근 방식

블록 단위 입출력

기술 상세

정의

운영 체제나 애플리케이션이 블록 스토리지 장치와 통신하기 위한 프로토콜 또는 API 규격

특징

고정 크기의 블록 단위로 데이터를 읽고 쓰며, 저수준 접근을 제공

장점

직접적인 디스크 제어, 높은 성능, 파일 시스템과 독립적 운영

단점

파일 수준 관리 부재, 복잡성, 호환성 문제 가능성

하드웨어 인터페이스

SATA, SAS, PCIe

프로토콜 인터페이스

SCSI, ATA, NVMe

가상화 환경

가상 머신에 가상 디스크 제공 (예: VMDK, VHD)

클라우드 서비스

아마존 EBS, 구글 퍼시스턴트 디스크, 애저 디스크

관련 기술

직접 연결 스토리지(DAS), 스토리지 영역 네트워크(SAN), 하이퍼컨버지드 인프라(HCI)

발전 방향

NVMe-oF, 컴퓨테이셔널 스토리지

1. 개요

블록 스토리장치와 호스트 시스템 간의 데이터 전송을 위한 명령어 집합과 통신 규약을 정의한다. 저장장치를 섹터 또는 블록이라는 고정 크기의 단위로 접근하고 관리할 수 있게 해주는 저수준 인터페이스이다.

주요 운영체제와 스토리지 시스템의 핵심 구성 요소로 작동하며, 디스크 드라이브, 솔리드 스테이트 드라이브와 같은 물리적 저장 매체를 효율적으로 제어하는 기반을 제공한다. SCSI, SATA, NVMe 등 다양한 프로토콜이 이 범주에 속한다.

이 인터페이스는 파일 시스템이나 데이터베이스 관리 시스템과 같은 상위 계층 소프트웨어에 저장 공간을 원시 장치 형태로 노출시킨다. 이를 통해 응용 프로그램은 파일이나 객체 단위가 아닌, 특정 블록 주소를 직접 읽고 쓸 수 있다.

2. 기본 개념과 특징

블록 스토리지 인터페이스는 저장 장치와 호스트 시스템 간에 데이터를 블록 단위로 읽고 쓰기 위한 통신 규약 및 방법론을 의미한다. 이 인터페이스는 저장 장치의 물리적 특성을 추상화하여 운영체제나 응용 프로그램이 논리적 블록 주소를 통해 데이터에 접근할 수 있게 한다. 주로 디스크 드라이브나 솔리드 스테이트 드라이브와 같은 직접 연결 저장 장치를 제어하는 데 사용된다.

가장 핵심적인 특징은 블록 단위 저장 방식이다. 데이터는 고정된 크기의 블록(예: 512바이트, 4KB)으로 나뉘어 저장 장치에 기록되며, 각 블록은 고유한 주소(LBA)로 식별된다. 이 방식은 저장 장치의 내부 구조(예: 섹터, 트랙)를 신경 쓰지 않고도 효율적인 임의 접근이 가능하게 한다. 또한, 저수준 인터페이스로서 파일 시스템이나 데이터베이스 관리 시스템과 같은 상위 계층 소프트웨어에 원시 저장 공간을 제공하는 역할을 한다.

주요 성능 지표는 다음과 같다.

지표

설명

IOPS

초당 처리 가능한 입출력 작업 수로, 무작위 읽기/쓰기 성능을 평가한다.

처리량

초당 전송 가능한 데이터 양(MB/s, GB/s)으로, 순차 읽기/쓰기 성능을 평가한다.

지연 시간

입출력 요청이 시작되어 완료될 때까지 걸리는 시간이다.

이러한 성능은 사용되는 인터페이스 프로토콜(SCSI, SATA, NVMe 등)과 저장 매체의 물리적 특성에 크게 의존한다. 블록 스토리지 인터페이스는 높은 성능과 낮은 지연 시간을 요구하는 온라인 트랜잭션 처리나 실시간 분석과 같은 작업에 적합한 기반을 제공한다.

2.1. 블록 단위 저장 방식

블록 스토리지 인터페이스는 데이터를 고정된 크기의 연속적인 블록 단위로 저장하고 관리하는 방식을 기반으로 한다. 각 블록은 일반적으로 512바이트 또는 4KB와 같은 일정한 크기를 가지며, 논리적 블록 주소를 통해 고유하게 식별된다. 이 방식은 저장 장치가 데이터의 내용이나 구조를 해석하지 않고, 단순히 지정된 주소의 블록을 읽거나 쓰는 작업만을 수행하게 한다. 따라서 운영체제나 응용 프로그램이 파일 시스템이나 데이터베이스 관리 시스템과 같은 상위 계층을 통해 데이터의 논리적 구조와 메타데이터를 직접 관리해야 한다.

이 저장 방식의 핵심은 데이터에 대한 임의 접근이 가능하다는 점이다. 저장 장치는 특정 블록의 주소를 받으면 디스크의 물리적 위치로 직접 접근하여 해당 블록의 데이터를 읽거나 쓸 수 있다. 이는 테이프와 같은 순차 접근 저장 매체와 구분되는 특징이다. 블록 단위 작업은 일반적으로 저수준의 입출력 명령으로 수행되며, 이러한 명령 집합을 정의하는 것이 SCSI, SATA, NVMe와 같은 블록 스토리지 인터페이스 프로토콜이다.

특징

설명

저장 단위

고정 크기의 블록 (예: 512B, 4KB)

주소 지정 방식

논리적 블록 주소 (LBA)

접근 방식

임의 접근 (Random Access)

데이터 관리 주체

운영체제의 파일 시스템 또는 응용 프로그램

프로토콜 예시

SCSI, SATA, SAS, NVMe

이 방식은 저장 장치의 내부 구조를 추상화하여, 다양한 물리적 저장 매체(하드 디스크 드라이브, 솔리드 스테이트 드라이브)가 동일한 인터페이스로 접근될 수 있게 한다. 결과적으로 블록 스토리지는 높은 성능과 낮은 지연 시간을 요구하는 작업, 예를 들어 데이터베이스 트랜잭션 처리나 가상 머신의 가상 디스크 운영에 적합한 기반을 제공한다.

2.2. 저수준 인터페이스

블록 스토리장치 인터페이스는 운영 체제나 응용 프로그램이 저장 장치의 물리적 특성을 직접 인식하고 제어할 수 있는 저수준 접근 방식을 제공한다. 이는 파일 시스템과 같은 상위 계층의 추상화 없이, 저장 매체를 고정 크기의 연속된 블록들의 집합으로 간주한다. 각 블록은 고유한 논리적 블록 주소를 가지며, 호스트 시스템은 이 주소를 지정하여 특정 블록의 데이터를 읽거나 쓸 수 있다.

이러한 저수준 접근은 하드 디스크 드라이브나 솔리드 스테이트 드라이브와 같은 물리적 저장 장치의 내부 구조와 매우 밀접하게 연관되어 있다. 인터페이스는 섹터, 트랙, 실린더 등의 물리적 개념 대신 논리적 블록 주소 체계를 사용하지만, 여전히 장치의 원시(raw) 저장 공간에 대한 직접적인 명령을 전달한다. 주요 명령어는 블록 읽기, 블록 쓰기, 장치 식별 및 상태 확인 등으로 구성된다.

저수준 인터페이스의 직접적인 제어는 성능 최적화에 유리하다. 응용 프로그램은 파일 시스템의 오버헤드 없이 필요한 정확한 블록 위치에 접근할 수 있으며, 입출력 작업의 순서와 타이밍을 세밀하게 조정할 수 있다. 이는 데이터베이스 관리 시스템이나 가상 머신 모니터와 같이 매우 낮은 지연 시간과 높은 입출력 작업 속도가 요구되는 환경에서 결정적인 장점이 된다.

그러나 이러한 저수준성은 복잡성과 관리 부담을 동반한다. 개발자는 파일이나 디렉터리와 같은 편리한 추상화를 사용할 수 없으며, 데이터 무결성, 캐싱, 동시 접근 제어, 장치 드라이버 호환성 등 많은 책임을 직접 처리해야 한다. 따라서 블록 스토리지 인터페이스는 일반적으로 운영 체제의 커널 모듈이나 특수 목적의 고성능 소프트웨어에 의해 활용된다.

2.3. 주요 성능 지표

블록 스토리지 인터페이스의 성능은 일반적으로 처리량, 지연 시간, IOPS라는 세 가지 핵심 지표로 평가된다. 이 지표들은 저장 장치가 데이터 읽기 및 쓰기 요청을 얼마나 빠르고 효율적으로 처리하는지를 나타낸다.

처리량은 단위 시간당 전송할 수 있는 데이터의 양을 의미하며, 주로 초당 메가바이트(MB/s) 또는 기가바이트(GB/s)로 측정된다. 이는 대용량의 순차적 데이터를 읽거나 쓸 때 중요한 지표이다. 지연 시간은 호스트가 입출력 요청을 보내고 그에 대한 응답을 받을 때까지 걸리는 시간을 말하며, 마이크로초(µs) 또는 밀리초(ms) 단위로 측정된다. 낮은 지연 시간은 데이터베이스 트랜잭션 처리나 실시간 애플리케이션에서 매우 중요하다. IOPS는 초당 처리할 수 있는 입출력 작업의 수를 나타낸다. 이는 작은 크기의 무작위 읽기/쓰기 작업이 빈번한 워크로드의 성능을 평가하는 데 핵심적인 지표이다.

성능 지표 간에는 일반적으로 트레이드오프 관계가 존재한다. 예를 들어, 높은 IOPS를 달성하는 경우 각 작업의 지연 시간이 증가할 수 있으며, 대용량의 순차 전송을 위한 높은 처리량을 목표로 할 때 무작위 액세스 성능이 저하될 수 있다. 실제 성능은 논리적 블록 주소 접근 패턴(순차적 또는 무작위), 읽기/쓰기 비율, 블록 크기, 호스트 버스 어댑터 및 디바이스 드라이버의 효율성, 그리고 NVMe와 같은 최신 인터페이스 프로토콜의 채택 여부 등 다양한 요소의 영향을 받는다.

3. 주요 인터페이스 프로토콜

블록 스토리지 인터페이스를 구현하는 주요 프로토콜은 물리적 연결 방식과 명령어 세트, 성능 특성에 따라 구분된다. 역사적으로 SCSI가 기업용 환경의 표준으로 자리 잡았으며, 이를 기반으로 SATA, SAS, NVMe 등이 발전하여 다양한 요구 사항을 충족시켜 왔다.

프로토콜

주요 특징

일반적인 사용처

SCSI (Small Computer System Interface)

병렬 전송 방식, 복잡한 명령어 세트, 외부 장치 연결 지원

서버, 워크스테이션, 고성능 스토리지 어레이

SATA (Serial ATA)

직렬 전송 방식, 단순한 명령어 세트, 높은 호환성, 비용 효율적

데스크톱 PC, 노트북, 엔트리 레벨 서버

SAS (Serial Attached SCSI)

직렬 전송 방식, SCSI 명령어 세트 상속, 듀얼 포트 지원, 높은 신뢰성

엔터프라이즈 서버, 고성능 스토리지 시스템

NVMe (Non-Volatile Memory Express)

PCIe 버스를 통한 직접 연결, 낮은 지연 시간, 높은 병렬 처리, 대규모 명령 큐

고성능 SSD, 실시간 데이터 처리, AI/머신러닝 워크로드

SATA는 ATA의 직렬 버전으로, 기존 PATA의 병렬 방식을 대체하며 널리 보급되었다. 단순한 구조와 낮은 비용 덕분에 대용량 HDD 및 SSD에 주로 사용된다. 반면 SAS는 SCSI의 직렬 진화형으로, 엔터프라이즈 환경의 신뢰성과 성능 요구사항을 충족한다. SAS는 SATA 드라이브와의 호환성을 제공하기도 한다[1].

NVMe는 플래시 메모리 기반 저장 장치의 잠재력을 최대한 끌어내기 위해 설계된 현대적인 프로토콜이다. 기존 AHCI 프로토콜이 HDD를 위해 설계된 반면, NVMe는 PCI Express 버스의 높은 대역폭과 낮은 지연 시간을 활용하여 수만 개의 병렬 명령 큐를 처리할 수 있다. 이로 인해 최고 수준의 IOPS와 처리량을 제공하며, 고성능 컴퓨팅 및 데이터센터의 핵심 스토리지 인터페이스로 빠르게 자리 잡고 있다.

3.1. SCSI (Small Computer System Interface)

SCSI는 컴퓨터와 주변 장치 간의 데이터 전송을 위한 표준 인터페이스이다. 초기에는 병렬 인터페이스 방식으로 개발되어 주로 하드 디스크, 광학 드라이브, 스캐너 등에 사용되었다. SCSI는 호스트 어댑터 하나에 최대 8개 또는 16개의 장치를 데이지 체인 방식으로 연결할 수 있어 확장성이 뛰어났다. 이 프로토콜은 명령어 집합이 풍부하여 단순한 데이터 읽기/쓰기 외에도 장치 검색, 상태 확인, 제어 등 다양한 고급 명령을 지원한다.

SCSI는 진화 과정에서 여러 표준을 거쳤다. 초기 SCSI-1을 시작으로, 더 빠른 전송 속도와 향상된 기능을 제공하는 SCSI-2, SCSI-3가 등장했다. 특히 울트라 SCSI나 울트라-320 SCSI와 같은 병렬 SCSI 표준은 당시 엔터프라이즈 서버와 워크스테이션의 주요 저장 장치 연결 방식으로 자리 잡았다. 그러나 병렬 배선 방식은 신호 간섭과 케이블 길이 제한 등의 물리적 한계에 부딪혔다.

이러한 한계를 극복하기 위해 개발된 것이 직렬 연결 SCSI이다. SAS는 병렬 방식의 단점을 해결하면서도 SCSI 명령 세트의 장점을 계승했다. SAS는 포인트 투 포인트 연결을 사용하여 각 장치가 전용 대역폭을 가지며, 이중 포트 기능을 통해 높은 가용성을 제공한다. 또한 SATA 하드 드라이브와의 호환성을 갖추고 있어 유연한 스토리지 구성을 가능하게 한다.

SCSI 기술의 주요 적용 분야는 다음과 같이 요약할 수 있다.

적용 분야

설명

엔터프라이즈 서버

고성능과 고신뢰성이 요구되는 서버의 내부 또는 외부(DAS) 스토리지 연결

고성능 워크스테이션

CAD, 비디오 편집 등 대용량 데이터 고속 처리가 필요한 환경

스토리지 어레이

디스크 어레이나 테이프 라이브러리와의 연결 인터페이스

전통적인 병렬 SCSI는 현재 신규 시스템에서는 거의 사용되지 않지만, 그 명령 체계와 아키텍처는 SAS와 같은 현대적 직렬 인터페이스의 기반이 되었다. 따라서 SCSI는 블록 스토리지 인터페이스의 역사에서 중요한 초석을 마련한 프로토콜로 평가받는다.

3.2. SATA (Serial ATA)

SATA는 병렬 ATA의 후속 규격으로, 2000년대 초반에 도입되었다. 기존의 병렬 전송 방식에서 직렬 전송 방식으로 전환하여 케이블 폭을 줄이고 데이터 전송 속도를 향상시켰다. 주로 하드 디스크 드라이브와 광학 디스크 드라이브 같은 대용량 저장 장치를 연결하는 데 사용된다.

SATA는 여러 세대에 걸쳐 발전해 왔으며, 각 세대별로 최대 이론적 전송 속도가 크게 증가했다. 주요 버전별 성능은 다음과 같다.

세대

공식 명칭

최대 전송 속도

SATA 1.0

SATA 1.5Gb/s

1.5 Gb/s (약 150 MB/s)

SATA 2.0

SATA 3Gb/s

3.0 Gb/s (약 300 MB/s)

SATA 3.0

SATA 6Gb/s

6.0 Gb/s (약 600 MB/s)

이 인터페이스는 호스트 버스 어댑터와 저장 장치 간에 블록 단위 저장 방식으로 데이터를 교환한다. 핫 플러깅(전원을 켠 상태에서 장치 연결/분리)을 지원하며, 기존 PATA보다 얇고 긴 케이블을 사용하여 컴퓨터 케이스 내 공기 흐름을 개선했다.

SATA는 데스크톱 PC와 엔트리 레벨 서버에서 가장 널리 채택된 블록 스토리지 인터페이스가 되었다. 그러나 최근에는 NVMe 기반의 M.2 폼팩터 SSD가 고성능 시장을 주도하면서, SATA는 주로 대용량이면서 비용 효율성이 중요한 저장 솔루션 영역에 머물고 있다.

3.3. SAS (Serial Attached SCSI)

SAS는 SCSI의 직렬 버전으로, 기존 병렬 SCSI의 한계를 극복하고자 개발된 고속 블록 스토리지 인터페이스이다. 주로 엔터프라이즈급 서버와 고성능 스토리지 어레이에 사용된다. SAS는 점대점 연결 방식을 채택하여 각 디바이스가 전용 채널을 가지므로, 병렬 방식의 공유 버스 구조에서 발생하는 신호 간섭과 대역폭 경쟁 문제를 해결했다.

SAS는 높은 성능과 확장성을 제공한다. 초기 SAS 1.0은 3Gbps의 전송 속도를 지원했으며, SAS 2.0(6Gbps), SAS 3.0(12Gbps), SAS 4.0(22.5Gbps)로 발전하며 속도가 지속적으로 향상되었다. 이중 포트 기능을 통해 장애 조치와 로드 밸런싱을 지원하며, 하나의 SAS 도메인에 최대 16,384개의 디바이스를 연결할 수 있어 뛰어난 확장성을 가진다.

SAS는 SATA 디바이스와의 하위 호환성을 중요한 특징으로 한다. SAS 백플레인이나 컨트롤러에 SATA 하드 디스크 드라이브를 직접 연결하여 사용할 수 있다. 그러나 반대로 SATA 인터페이스에 SAS 디바이스를 연결하는 것은 불가능하다. 이 호환성 덕분에 시스템 구축 시 비용과 성능 요구에 따라 SAS와 SATA 드라이브를 혼용할 수 있는 유연성을 제공한다.

주요 성능 지표와 특징은 다음과 같이 정리할 수 있다.

항목

내용

연결 방식

점대점 연결

프로토콜

SCSI 명령 세트 사용

최대 전송 속도

SAS 4.0 기준 22.5 Gbps

확장성

하나의 도메인 당 최대 16,384개 디바이스

호환성

SATA 디바이스 하위 호환 지원

주요 용도

엔터프라이즈 서버, 고성능 스토리지, 외장형 스토리지 장치

3.4. NVMe (Non-Volatile Memory Express)

NVMe는 플래시 메모리와 같은 비휘발성 메모리의 고속 특성을 활용하기 위해 설계된 최신 블록 스토리지 인터페이스 프로토콜이다. 기존의 SATA나 SAS 인터페이스가 하드 디스크 드라이브를 위해 개발된 AHCI 레거시를 기반으로 해 병목 현상이 발생했던 것과 달리, NVMe는 PCI 익스프레스 버스를 통해 CPU와 직접 통신하도록 처음부터 새롭게 설계되었다. 이로 인해 대기열 깊이, 명령어 처리 효율성, 입출력 지연 시간 측면에서 획기적인 성능 향상을 가져왔다.

NVMe의 핵심 설계 특징은 병렬 처리와 효율성에 있다. 최대 64K개의 대기열을 지원하며, 각 대기열은 최대 64K개의 명령을 동시에 처리할 수 있다. 이는 AHCI 기반 인터페이스가 단일 대기열에 32개 명령만을 지원하던 것과 대비된다. 또한, 명령어 세트가 단순화되어 처리 오버헤드가 줄었고, MSI-X와 인터럽트 병합 기능을 통해 CPU 효율성을 높였다. 이러한 구조는 솔리드 스테이트 드라이브의 다중 채널 구조와 높은 IOPS 성능을 최대한 끌어낼 수 있도록 한다.

주요 성능 지표와 버전별 진화는 다음과 같다.

버전

발표 연도

주요 특징

NVMe 1.0

2011년

최초 표준화, PCIe SSD를 위한 기본 명령어 세트 정의

NVMe 1.1

2012년

다중 경로 I/O, 호스트 메모리 버퍼 기능 추가

NVMe 1.2

2014년

플래시 장치의 수명 모니터링, 보안 강화 기능 도입

NVMe 1.3

2017년

자가 테스트, 온도 임계값, 명령어 스트림 기능 추가

NVMe 1.4

2019년

지속적/비지속적 쓰기 캐시, I/O 결정론성 향상

NVMe 2.0

2021년

모듈형 명령어 세트, ZNS, KV 명령어 등 지원[2]

NVMe는 엔터프라이즈 서버, 고성능 컴퓨팅, 그리고 고사양 클라이언트 시스템에서 빠르게 표준 인터페이스로 자리 잡았다. 최근에는 U.2, M.2 같은 폼팩터를 넘어, 이더넷이나 인피니밴드 네트워크를 통해 NVMe-oF로 확장되어 데이터센터 전반의 스토리지 풀을 고속으로 연결하는 데 사용된다.

4. 구조와 구성 요소

블록 스토리지 인터페이스의 구조는 호스트 시스템이 저장 장치와 통신하여 데이터를 읽고 쓰기 위한 핵심 구성 요소들로 이루어져 있다. 이 구조는 물리적 연결, 제어 소프트웨어, 그리고 데이터 주소 체계라는 세 가지 주요 층위로 구분할 수 있다.

물리적 계층에서는 호스트 버스 어댑터(HBA)가 중심 역할을 한다. 호스트 버스 어댑터는 서버나 컴퓨터의 메인보드에 장착되어, SCSI, SAS, NVMe 등의 프로토콜을 사용하여 스토리지 어레이나 SSD와 같은 실제 저장 장치에 대한 물리적 연결을 제공한다. 이 어댑터는 호스트 시스템의 CPU 부하를 줄이면서 고속의 데이터 전송을 관리하는 전문 하드웨어이다. 소프트웨어 계층에서는 디바이스 드라이버가 운영체제와 저장 장치 사이의 번역기 역할을 한다. 드라이버는 운영체제가 내리는 고수준의 파일 또는 볼륨 명령을, 연결된 호스트 버스 어댑터와 저장 장치가 이해할 수 있는 저수준의 블록 명령어(예: READ, WRITE)로 변환한다.

데이터를 정확한 위치에 저장하고 접근하기 위해 논리적 블록 주소(LBA) 체계가 사용된다. 이는 저장 장치의 모든 섹터에 순차적으로 부여된 고유한 주소로, 파일 시스템이나 응용 프로그램이 복잡한 물리적 구조(실린더, 헤드, 섹터)를 알 필요 없이 선형적인 주소 공간을 통해 데이터 블록을 지정할 수 있게 한다. 예를 들어, 운영체제가 LBA 1024부터 2047까지의 블록을 읽으라고 명령하면, 드라이버와 호스트 버스 어댑터는 이 논리적 주소를 저장 장치의 물리적 위치로 매핑하여 데이터를 가져온다.

구성 요소

주요 역할

예시

호스트 버스 어댑터(HBA)

호스트와 저장 장치 간의 물리적 연결 및 프로토콜 변환 관리

SAS HBA, NVMe 호환 M.2 슬롯

디바이스 드라이버

운영체제 명령을 저장 장치의 블록 명령어로 변환

Linux의 sd(SCSI 디스크) 드라이버, Windows NVMe 드라이버

논리적 블록 주소(LBA)

저장 장치 내 데이터 블록의 위치를 지정하는 선형 주소 체계

블록 크기가 512바이트일 때, LBA 0은 첫 512바이트 섹터를 가리킴

이 세 요소는 계층적으로 작동하여, 응용 프로그램의 데이터 요청이 최종적으로 저장 매체의 특정 물리적 위치에 도달하고 결과가 반환되는 일련의 과정을 가능하게 한다.

4.1. 호스트 버스 어댑터

호스트 버스 어댑터는 호스트 시스템과 블록 스토리지 장치 간의 물리적 연결과 데이터 전송을 관리하는 하드웨어 구성 요소이다. 이 어댑터는 마더보드의 확장 슬롯에 장착되거나 서버 메인보드에 내장된 형태로 존재하며, SCSI, SAS, FC 등의 특정 블록 스토리지 인터페이스 프로토콜을 구현한다. 주요 역할은 호스트의 CPU와 메모리로부터의 입출력 요청을 해당 프로토콜에 맞는 전기 신호와 명령어로 변환하여 스토리지 장치에 전달하고, 그 응답을 다시 호스트 시스템으로 돌려주는 것이다.

호스트 버스 어댑터의 성능과 기능은 지원하는 프로토콜, 데이터 전송 속도, 연결 가능한 포트 수, 내장 캐시 메모리 유무 등에 따라 크게 달라진다. 예를 들어, 고성능 컴퓨팅이나 엔터프라이즈 스토리지 환경에서는 다수의 포트와 높은 IOPS를 지원하는 SAS 또는 FC 호스트 버스 어댑터가 사용된다. 반면, 일반적인 개인용 컴퓨터에서는 SATA 인터페이스가 메인보드에 직접 내장되어 별도의 어댑터 카드가 필요하지 않은 경우가 많다.

주요 유형

설명

일반적인 사용 환경

SAS HBA

SAS 프로토콜을 구현. SATA 장치와의 호환성을 가지는 경우가 많음.

엔터프라이즈 서버, 스토리지 어레이

FC HBA

파이버 채널 프로토콜을 구현. SAN 환경에서 사용됨.

대규모 데이터센터, 고가용성 스토리지 네트워크

SCSI HBA

전통적인 병렬 SCSI 프로토콜을 구현. 현대 시스템에서는 점차 사용 감소.

레거시 시스템, 특정 산업 장비

NVMe HBA 또는 확장 카드

PCIe 버스를 통해 NVMe 프로토콜을 지원. 고속 SSD 연결에 특화됨.

고성능 워크스테이션, AI/ML 서버

호스트 버스 어댑터는 해당 장치를 운영체제가 인식하고 제어할 수 있게 하는 디바이스 드라이버와 함께 동작한다. 이 드라이버는 호스트 버스 어댑터의 펌웨어와 협력하여 명령어 큐 관리, 오류 수정, 인터럽트 처리 등의 저수준 작업을 수행하며, 최종적으로는 논리적 블록 주소 기반의 읽기/쓰기 요청을 물리적 저장 매체에 대한 액세스로 변환한다.

4.2. 디바이스 드라이버

디바이스 드라이버는 운영 체제와 블록 스토리지 장치 사이의 통신을 중개하는 소프트웨어 구성 요소이다. 이 드라이버는 호스트 버스 어댑터나 스토리지 컨트롤러가 제공하는 하드웨어 인터페이스를 운영 체제가 이해할 수 있는 표준화된 소프트웨어 인터페이스로 변환하는 역할을 한다. 운영 체제는 디바이스 드라이버를 통해 논리적 블록 주소에 대한 읽기 및 쓰기 명령을 내리고, 드라이버는 이를 해당 스토리지 프로토콜(예: SCSI, NVMe)에 맞는 저수준 명령어로 변환하여 물리적 장치에 전달한다.

주요 기능으로는 명령 변환과 전송, DMA(직접 메모리 접근) 설정, 인터럽트 처리, 오류 감지 및 복구, 성능 최적화 등이 포함된다. 예를 들어, NVMe 드라이버는 PCI 익스프레스 버스를 통해 NAND 플래시 메모리에 직접 접근하기 위한 최적화된 명령 큐를 관리한다. 드라이버는 또한 장치의 특정 기능(예: 고급 포맷 섹터 지원, 암호화, 씬 프로비저닝)을 운영 체제에 노출시키고 제어한다.

디바이스 드라이버의 종류는 크게 두 가지로 구분된다. 하나는 운영 체제 커널에 통합된 표준 드라이버(예: Linux의 sd 드라이버, Windows의 Storport 드라이버)이고, 다른 하나는 스토리지 벤더가 자사 하드웨어의 고유 기능을 지원하기 위해 제공하는 벤더별 드라이버이다. 벤더별 드라이버는 종종 성능, 안정성, 관리 기능 측면에서 향상된 기능을 제공한다.

효율적인 디바이스 드라이버는 블록 스토리지 인터페이스의 전체 성능과 안정성에 결정적인 영향을 미친다. 드라이버는 IOPS와 지연 시간을 최적화하기 위해 명령 큐 관리, 인터럽트 결합, 효율적인 메모리 매핑 등의 기법을 사용한다. 또한, 다중 경로 IO 환경에서는 여러 물리적 경로를 통해 장치에 접근할 수 있도록 지원하여 가용성과 부하 분산을 구현한다.

4.3. 논리적 블록 주소

논리적 블록 주소는 블록 스토리지 장치 내부의 데이터 블록에 접근하기 위해 사용되는 선형 주소 체계이다. 물리적 섹터나 트랙, 실린더와 같은 저장 매체의 물리적 위치를 직접 지정하는 대신, 0부터 시작하는 일련번호로 각 블록을 식별한다. 운영체제나 파일 시스템은 이 LBA 값을 사용하여 저장 장치에 읽기 또는 쓰기 명령을 전달한다.

LBA 체계는 저장 장치의 내부 물리적 구조와 상관없이 일관된 인터페이스를 제공한다. 예를 들어, 하드 디스크 드라이브의 경우 컨트롤러가 LBA를 물리적 위치(실린더-헤드-섹터)로 변환하고, 솔리드 스테이트 드라이브의 경우 플래시 메모리 컨트롤러가 LBA를 실제 플래시 셀의 주소로 매핑한다. 이 추상화 덕분에 호스트 시스템은 복잡한 물리적 주소 지정 방식을 알 필요 없이 단순한 블록 번호로 데이터에 접근할 수 있다.

LBA의 크기는 일반적으로 512바이트 또는 4,096바이트(4K)의 블록 크기를 기준으로 한다. 최근의 고용량 저장 장치에서는 48비트 또는 64비트 LBA를 사용하여 매우 큰 저장 공간을 주소 지정할 수 있다. LBA 체계는 SCSI, SATA, NVMe를 포함한 대부분의 현대 블록 스토리지 인터페이스의 기본 주소 지정 방식으로 채택되었다.

5. 응용 분야

블록 스토리지 인터페이스는 저수준 인터페이스로서 직접적인 물리적 주소 또는 논리적 블록 주소를 통해 데이터에 접근하는 방식을 제공한다. 이러한 특성은 임의 접근이 빈번하고 지연 시간이 중요한 응용 분야에서 필수적으로 사용된다. 특히 데이터베이스 시스템의 트랜잭션 로그나 인덱스 파일, 가상 머신의 디스크 이미지 파일 저장과 같이 성능과 정밀한 제어가 요구되는 환경에서 핵심적인 역할을 한다.

데이터베이스 관리 시스템은 블록 스토리지의 대표적인 응용 분야이다. 관계형 데이터베이스나 NoSQL 데이터베이스는 데이터 무결성과 ACID 트랜잭션을 보장하기 위해 디스크 I/O를 세밀하게 제어해야 한다. 블록 스토리지는 파일 시스템의 오버헤드를 거치지 않고 직접 저장 장치의 특정 섹터에 데이터를 읽고 쓸 수 있어, 데이터베이스 엔진이 캐시 관리, 로그 순차 기록, 체크포인트 같은 작업을 최적화하는 데 유리하다. Oracle Database, MySQL, PostgreSQL 등의 주요 DBMS는 대부분 블록 장치를 기반 스토리지로 사용한다.

가상화 및 클라우드 컴퓨팅 환경에서도 블록 스토리지는 근간을 이룬다. 하이퍼바이저는 각 가상 머신에 할당되는 가상 디스크 파일을 호스트 서버의 블록 저장 장치에 저장한다. 아마존 웹 서비스의 EBS, 마이크로소프트 애저의 Managed Disks, 구글 클라우드의 Persistent Disks와 같은 클라우드 블록 스토리지 서비스는 이러한 가상 디스크를 네트워크를 통해 제공하며, 사용자가 운영 체제 수준에서 포맷하고 마운트하여 사용할 수 있게 한다. 이는 인스턴스 스토어에 비해 데이터의 영구성을 보장하는 핵심 메커니즘이다.

응용 분야

주요 사용 예시

블록 스토리지의 역할

데이터베이스 시스템

트랜잭션 로그, 테이블스페이스, 인덱스 저장

저지연 임의 접근을 통한 성능 최적화 및 직접 I/O 제어

가상화/클라우드

가상 머신 디스크 이미지, 클라우드 블록 스토리지 볼륨

가상 디스크의 백엔드 저장소 제공 및 영구적 데이터 보관

고성능 컴퓨팅

대규모 과학 계산 데이터셋, 시뮬레이션 결과 파일

높은 순차 읽기/쓰기 대역폭을 활용한 대용량 데이터 처리

또한, 고성능 컴퓨팅 및 빅데이터 분석 분야에서 대용량 데이터셋을 처리할 때 블록 스토리지가 활용된다. 병렬 파일 시스템은 종종 여러 서버에 연결된 블록 저장 장치들을 RAID나 분산 방식으로 묶어 하나의 거대한 논리적 볼륨을 구성한다. 이를 통해 과학 계산, 기상 모델링, 유전체 분석 등에서 생성되는 테라바이트 이상의 대용량 파일에 대한 높은 집계 대역폭과 처리량을 달성한다.

5.1. 데이터베이스 시스템

데이터베이스 시스템은 블록 스토리지 인터페이스의 대표적인 응용 분야이다. 데이터베이스의 핵심 엔진은 데이터 파일과 트랜잭션 로그를 블록 장치에 직접 읽고 쓰는 방식으로 동작한다. 이는 데이터베이스가 파일 시스템 계층을 거치지 않고 스토리지 장치를 직접 제어함으로써 성능을 극대화하고, 트랜잭션의 ACID 속성을 보장하기 위한 필수적인 설계 방식이다. 데이터베이스는 데이터 페이지나 익스텐트와 같은 고정 크기의 논리적 단위로 데이터를 관리하며, 이는 물리적 블록 저장 방식과 자연스럽게 대응된다.

주요 관계형 데이터베이스 관리 시스템들은 블록 스토리지의 저수준 접근을 통해 최적의 성능을 구현한다. 예를 들어, 랜덤 액세스가 빈번한 인덱스 탐색이나 조인 연산 시, 데이터베이스 관리 시스템은 필요한 정확한 블록 주소를 계산하여 디스크 헤드의 이동을 최소화한다. 또한, 쓰기 지연이나 버퍼링 정책을 세밀하게 제어하여 데이터 무결성과 성능 사이의 균형을 맞춘다. 트랜잭션 로그의 순차적 쓰기는 높은 IOPS와 낮은 지연 시간을 제공하는 블록 스토리지에서 큰 이점을 얻는다.

다양한 데이터베이스 워크로드에 따라 적합한 블록 스토리지 인터페이스가 선택된다.

워크로드 유형

권장 인터페이스

주요 고려 사항

OLTP (온라인 트랜잭션 처리)

NVMe, SAS

높은 IOPS와 매우 낮은 지연 시간이 중요함

OLAP (온라인 분석 처리)

SATA, SAS

대용량 순차 읽기 처리량이 중요함

혼합 워크로드

SAS, NVMe

읽기/쓰기 밸런스와 예측 가능한 지연 시간이 중요함

이러한 선택은 데이터베이스의 가용성, 확장성, 그리고 전체 총소유비용에 직접적인 영향을 미친다. 현대의 클라우드 데이터베이스 및 분산 데이터베이스도 내부적으로는 블록 스토리지 볼륨을 기반으로 구성되는 경우가 많다.

5.2. 가상화 및 클라우드 스토리지

가상화 환경에서 블록 스토리지 인터페이스는 가상 머신에 독립적인 저장 공간을 제공하는 핵심 구성 요소이다. 하이퍼바이저는 물리적인 스토리지 장치를 가상 디스크 형태로 추상화하여 각 가상 머신에 할당한다. 각 가상 머신은 이 가상 디스크를 자신의 로컬 하드 디스크 드라이브처럼 인식하고 SCSI나 NVMe 같은 표준 블록 인터페이스를 통해 접근한다. 이를 통해 가상 머신의 이식성과 유연성이 크게 향상되며, 스토리지 자원의 효율적인 통합 관리가 가능해진다.

클라우드 컴퓨팅에서는 블록 스토리지가 탄력적 블록 스토리지 서비스의 기반이 된다. 사용자는 클라우드 플랫폼을 통해 필요에 따라 저장 용량을 프로비저닝하고, 이를 클라우드 인스턴스에 연결하여 사용한다. 이 서비스는 일반적으로 고성능의 SSD 기반 스토리지와 표준 하드 디스크 드라이브 기반 스토리지 옵션을 제공한다. 블록 스토리지 볼륨은 인스턴스에서 분리되어 독립적으로 존재할 수 있으므로, 인스턴스 종료 후에도 데이터를 보존하거나 다른 인스턴스에 재연결하는 것이 가능하다[3].

가상화 및 클라우드 환경에서 블록 스토리지의 성능과 관리 효율성을 높이기 위해 여러 기술이 적용된다. 쓰로틀링을 통한 입출력 제어, 스냅샷 기능을 이용한 데이터 백업 및 복제, 그리고 다수의 물리적 디스크를 하나의 논리적 단위로 묶는 스토리지 가상화 기술이 대표적이다. 또한, NVMe over Fabrics 같은 프로토콜은 네트워크를 통해 원격 NVMe 스토리지에 저지연으로 접근할 수 있게 하여, 클라우드 데이터센터의 스토리지 구성과 성능을 혁신적으로 개선하였다.

5.3. 고성능 컴퓨팅

고성능 컴퓨팅은 복잡한 과학적, 공학적 문제를 해결하기 위해 초고속 연산 능력을 필요로 하는 분야이다. 이러한 시스템은 대규모 병렬 처리를 통해 페타플롭스 이상의 연산 성능을 달성하며, 이 과정에서 발생하는 방대한 양의 데이터를 신속하게 읽고 쓰는 것이 필수적이다. 블록 스토리지 인터페이스는 NVMe와 같은 저지연, 고대역폭 프로토콜을 통해 고성능 컴퓨팅 클러스터의 계산 노드에 고속 데이터 접근을 제공하는 핵심 인프라 역할을 한다. 계산 작업과 데이터 입출력 사이의 병목 현상을 최소화하여 전체 시스템 효율을 극대화한다.

주요 응용 시나리오는 대규모 시뮬레이션, 기상 예측, 유전체 분석, 물리적 모델링 등이다. 예를 들어, 기후 모델링 시뮬레이션은 수백 테라바이트에서 페타바이트 규모의 초기 조건 데이터와 중간 결과물을 처리해야 한다. 각 계산 노드는 논리적 블록 주소를 통해 스토리지 배열의 특정 블록에 직접 접근하여 필요한 데이터 세그먼트를 병렬로 로드한다. 이는 파일 스토리지 계층의 오버헤드를 제거하고, 계산 작업과 저장 장치 사이의 직접적인 고속 데이터 경로를 확보한다.

성능 최적화를 위해 고성능 컴퓨팅 환경에서는 종종 병렬 파일 시스템과 블록 스토리지를 결합한 하이브리드 아키텍처를 사용한다. 이때 블록 스토리지는 로컬 스크래치 공간이나 고속 캐시 계층으로 활용된다. 시스템 구성 요소 간의 데이터 전송 속도는 전체 작업 완료 시간에 직접적인 영향을 미치므로, RDMA over NVMe와 같은 기술을 적용해 네트워크를 통한 블록 접근 지연을 추가로 줄이기도 한다.

응용 분야

주요 데이터 특성

블록 스토리지의 역할

과학적 시뮬레이션

대용량 초기/결과 데이터 세트

계산 노드의 고속 데이터 로딩 및 체크포인트 저장

유전체 시퀀싱 분석

많은 수의 작은 파일 읽기 집약 작업

저지연 랜덤 액세스를 통한 빠른 데이터 샘플링

AI/머신러닝 훈련

대규모 모델 파라미터 및 데이터셋

훈련 에포크 간의 모델 체크포인트 고속 저장 및 복구

따라서 블록 스토리지 인터페이스는 고성능 컴퓨팅의 성능 목표를 실현하기 위한 기반이 되며, 지속적인 프로토콜 발전은 더 빠른 과학적 발견을 가능하게 하는 동력이 된다.

6. 장단점

블록 스토리지 인터페이스는 저수준 인터페이스로서 직접적인 논리적 블록 주소 접근을 통해 높은 성능과 효율성을 제공하지만, 그 특성상 몇 가지 단점도 동반한다.

장점

가장 큰 장점은 높은 성능과 낮은 지연 시간이다. 호스트 시스템이 저장 장치의 물리적 구조를 직접 제어할 수 있어, 파일 시스템 계층을 거치지 않고 데이터에 접근할 수 있다. 이는 데이터베이스 시스템이나 고성능 컴퓨팅과 같이 무작위 읽기/쓰기 성능과 IOPS가 중요한 환경에서 결정적인 이점이 된다. 또한, 블록 단위의 세밀한 제어가 가능하여 스토리지 가상화나 쓰기 시 복사와 같은 고급 기능을 구현하는 데 유리하다. 표준화된 인터페이스 프로토콜(SCSI, NVMe 등)을 사용하기 때문에 다양한 하드 디스크 드라이브와 솔리드 스테이트 드라이브를 호환성 있게 연결할 수 있다.

단점

주요 단점은 관리의 복잡성과 확장성의 한계에 있다. 블록 단위 저장 방식은 파일이나 디렉터리와 같은 고수준의 추상화를 제공하지 않으므로, 사용하기 전에 반드시 파일 시스템을 포맷해야 한다. 이는 스토리지를 직접 관리해야 하는 부담을 증가시킨다. 또한, 단일 블록 장치는 일반적으로 하나의 서버에만 연결되어 사용되므로, 여러 호스트가 동시에 공유하기 어렵다. 이러한 공유 제한은 확장성을 저해하는 요인으로 작용한다. 네트워크를 통한 원격 접근 시(SAN), 파이버 채널이나 iSCSI와 같은 별도의 프로토콜 변환 계층이 필요하여 복잡도와 비용이 추가될 수 있다.

구분

장점

단점

성능

높은 IOPS와 낮은 지연 시간, 직접적인 블록 접근

제어

세밀한 블록 단위 제어 가능, 고급 기능 구현 용이

관리

표준 프로토콜을 통한 호환성

파일 시스템 포맷 필요, 관리 복잡

확장성

다중 호스트 동시 공유 어려움, 확장성 제한

네트워크

원격 접근 시 추가 프로토콜 및 인프라 필요

6.1. 장점

블록 스토리지 인터페이스의 가장 큰 장점은 저수준 인터페이스로서 제공하는 높은 성능과 효율성이다. 데이터를 블록이라는 고정 크기 단위로 직접 접근하기 때문에, 파일 스토리지 인터페이스처럼 파일 시스템의 메타데이터 오버헤드가 발생하지 않는다. 이는 데이터베이스 트랜잭션 처리나 가상 머신 디스크 이미지 접근과 같이 무작위 읽기/쓰기 성능이 중요한 작업에서 결정적인 이점을 제공한다. 또한, 호스트 시스템이 스토리지 장치의 물리적 배치를 직접 제어할 수 있어, 성능 최적화와 데이터 배치 전략을 세밀하게 구현할 수 있다.

또 다른 주요 장점은 광범위한 호환성과 표준화이다. SCSI와 SATA 같은 핵심 프로토콜은 수십 년 동안 발전해 왔으며, 이로 인해 다양한 운영 체제, 하드웨어 플랫폼, 그리고 스토리지 장치 간에 높은 수준의 상호 운용성이 보장된다. 이 표준화는 시스템 통합을 용이하게 하고, 벤더 종속성을 줄여준다. 특히 엔터프라이즈 환경에서는 서로 다른 제조사의 서버와 스토리지 어레이를 유연하게 결합하여 인프라를 구축할 수 있다.

제어의 유연성과 예측 가능성도 중요한 장점으로 꼽힌다. 애플리케이션이나 가상화 플랫폼은 논리적 블록 주소를 통해 스토리지 공간을 직접 관리할 수 있어, 특정 워크로드에 맞는 맞춤형 성능 튜닝이 가능하다. 예를 들어, 데이터베이스 시스템은 자체 로그와 인덱스를 서로 다른 블록 장치에 배치하거나, 핫 데이터를 고성능 SSD에 할당하는 등의 전략을 구현할 수 있다. 이러한 세밀한 제어는 성능과 지연 시간을 예측 가능하게 만든다.

장점

설명

고성능

파일 시스템 오버헤드가 없어 낮은 지연 시간과 높은 IOPS를 제공한다.

직접 접근

논리적 블록 주소를 통해 스토리지 장치를 직접 제어하고 최적화할 수 있다.

광범위한 호환성

SCSI, SATA 등 표준화된 프로토콜로 다양한 시스템과 호환된다.

예측 가능한 성능

블록 단위 작업으로 인해 성능 프로파일링과 용량 계획이 상대적으로 용이하다.

6.2. 단점

블록 스토리지 인터페이스는 높은 성능과 제어력을 제공하지만, 몇 가지 명확한 단점을 가지고 있다.

가장 큰 단점은 관리의 복잡성이다. 블록 스토리지는 파일 시스템과 같은 상위 계층의 논리적 구조를 제공하지 않는다. 사용자는 직접 파티셔닝, 포맷, 마운트 작업을 수행하여 저장 공간을 구성하고 관리해야 한다. 이는 스토리지 용량이 증가하거나 다수의 디스크를 관리할 때 상당한 운영 부담으로 작용한다. 또한, 블록 단위로 데이터를 다루기 때문에 파일 수준의 메타데이터(예: 생성 날짜, 소유자 정보)를 기본적으로 지원하지 않아, 파일 관리 기능이 필요한 응용 프로그램에는 부적합할 수 있다.

확장성과 공유 측면에서도 한계가 있다. 전통적인 DAS 방식의 블록 스토리지는 물리적으로 연결된 서버에 종속되어 있어, 여러 호스트가 동일한 스토리지 볼륨을 동시에 공유하기 어렵다. 이를 극복하기 위한 SAN은 고가의 전용 네트워크(파이버 채널)와 스위치가 필요하여 초기 구축 비용과 유지보수 복잡도가 높다. 네트워크를 통한 블록 스토리지(iSCSI)는 비용은 낮출 수 있지만, 대역폭과 지연 시간 문제로 인해 로컬 디스크에 비해 성능이 저하될 수 있다.

다음 표는 주요 단점을 요약한 것이다.

단점

설명

관리 복잡성

파일 시스템 계층이 없어 사용자가 직접 스토리지를 구성하고 관리해야 함.

메타데이터 부재

파일 수준의 속성 정보를 기본적으로 포함하지 않음.

공유의 어려움

기본 구성으로는 다중 호스트 동시 접근이 제한적임.

확장 비용

대규모 SAN 환경 구축에는 높은 초기 투자와 전문 지식이 필요함.

네트워크 오버헤드

네트워크 기반 블록 스토리지(iSCSI)는 지연 시간 증가로 성능에 영향을 줄 수 있음.

7. 관련 기술 및 비교

블록 스토리지 인터페이스는 주로 저수준의 블록 단위 접근을 제공하는 반면, 데이터를 구성하고 접근하는 다른 주요 인터페이스로는 파일 스토리지 인터페이스와 객체 스토리지 인터페이스가 있다. 이들은 각각 다른 추상화 수준과 사용 사례를 가지고 있다.

특성

블록 스토리지

파일 스토리스

객체 스토리지

데이터 구성 단위

고정 크기의 블록

파일과 디렉터리 계층

메타데이터가 첨부된 객체

접근 방식

논리적 블록 주소 (LBA)

파일 경로 (예: /home/data/file.txt)

고유한 객체 ID 또는 키

주요 프로토콜

SCSI, SATA, NVMe

NFS, SMB/CIFS, AFS

S3, Swift

주요 사용 사례

데이터베이스, 가상 머신 디스크, OS 부팅

공유 문서, 사용자 홈 디렉터리, 일반 애플리케이션

웹 콘텐츠, 백업/아카이브, 빅데이터 분석

파일 스토리지 인터페이스는 사용자와 애플리케이션에게 친숙한 파일과 폴더 계층 구조를 통해 데이터를 관리한다. NFS나 SMB 같은 프로토콜을 사용하여 네트워크를 통해 파일 수준의 접근을 제공한다. 이는 블록 스토리지보다 높은 수준의 추상화를 제공하며, 파일 생성, 삭제, 권한 관리 등의 작업을 쉽게 수행할 수 있게 한다. 주로 기업 내 파일 공유나 일반적인 애플리케이션 데이터 저장에 사용된다.

객체 스토리지 인터페이스는 데이터를 평평한 네임스페이스 내의 객체로 관리한다. 각 객체는 데이터 자체, 확장 가능한 메타데이터, 그리고 고유한 식별자로 구성된다. RESTful API를 주로 사용하며, S3가 사실상의 표준으로 자리 잡았다. 수십억 개의 객체를 확장 가능하게 저장할 수 있고, 강력한 메타데이터 검색 기능을 제공하는 것이 특징이다. 웹 스케일 애플리케이션, 클라우드 네이티브 서비스, 대규모 비정형 데이터 보관에 적합하다.

7.1. 파일 스토리지 인터페이스

파일 스토리지 인터페이스는 데이터를 파일과 디렉토리 계층 구조로 관리하는 방식을 제공하는 스토리지 접근 방법이다. 사용자나 응용 프로그램은 파일 이름과 디렉토리 경로를 통해 데이터에 접근하며, 운영 체제의 파일 시스템이 블록 스토리지와 같은 하위 물리적 저장 장치를 관리하는 역할을 담당한다. 이 인터페이스는 네트워크 파일 시스템이나 서버 메시지 블록과 같은 네트워크 프로토콜을 통해 원격으로도 제공될 수 있다.

파일 스토리지의 주요 구성 요소는 다음과 같다.

구성 요소

설명

파일 시스템

파일의 생성, 삭제, 읽기, 쓰기 및 메타데이터 관리를 담당하는 소프트웨어 계층이다.

메타데이터

파일 이름, 크기, 생성 시간, 접근 권한 등 파일 자체에 대한 정보이다.

디렉토리 계층 구조

파일을 조직화하는 트리 구조로, 사용자가 데이터를 직관적으로 찾고 관리할 수 있게 한다.

이 방식은 블록 스토리지 인터페이스와 근본적으로 다르다. 블록 인터페이스가 디스크의 특정 섹터나 논리적 블록 주소를 직접 제어하는 저수준 방식이라면, 파일 인터페이스는 파일이라는 논리적 단위와 친숙한 경로를 통해 접근하는 고수준 추상화를 제공한다. 따라서 사용자는 데이터가 물리적으로 어디에 저장되는지 알 필요가 없으며, 파일 시스템이 블록 할당, 캐싱, 무결성 유지 등의 복잡한 작업을 대신 처리한다[4].

파일 스토리지 인터페이스는 개인용 컴퓨터부터 기업용 네트워크 연결 스토리지에 이르기까지 가장 보편화된 스토리지 접근 방식이다. 공유 문서, 멀티미디어 파일, 응용 프로그램 코드 등 비정형 데이터를 저장하고 공유하는 데 적합하다. 그러나 파일 시스템 자체의 오버헤드와 메타데이터 관리의 복잡성으로 인해, 수백만 개의 매우 작은 파일을 처리하거나 극한의 낮은 지연 시간이 요구되는 시나리오에서는 성능상의 한계를 보일 수 있다.

7.2. 객체 스토리지 인터페이스

객체 스토리지 인터페이스는 파일 스토리지 인터페이스나 블록 스토리지 인터페이스와 구분되는 데이터 관리 패러다임이다. 데이터를 계층적인 디렉토리 구조가 아닌, 고유한 식별자를 가진 평면적인 객체로 취급한다. 각 객체는 데이터 자체, 메타데이터, 그리고 고유한 식별자로 구성된다. 이 인터페이스는 HTTP나 HTTPS와 같은 표준 웹 프로토콜을 통해 접근되며, RESTful API를 주된 통신 방식으로 사용한다.

주요 구성 요소는 버킷(객체를 담는 최상위 컨테이너), 객체(실제 데이터와 메타데이터), 그리고 객체의 고유 주소를 제공하는 글로벌 네임스페이스이다. 메타데이터는 사용자가 자유롭게 정의할 수 있어, 데이터에 대한 풍부한 정보를 첨부하는 것이 가능하다. 이 방식은 확장성과 지리적 분산에 매우 유리하여, 대규모 비정형 데이터 저장에 적합하다.

특성

객체 스토리지 인터페이스

블록 스토리지 인터페이스

데이터 구성 단위

객체 (데이터 + 메타데이터 + ID)

고정 크기의 블록

접근 방식

RESTful API (HTTP/HTTPS)

저수준 블록 명령 (SCSI, NVMe 등)

주요 프로토콜

S3 (Amazon S3 API), Swift (OpenStack Swift)

SCSI, SATA, NVMe

주요 사용 사례

비정형 데이터(이미지, 비디오, 백업), 웹 콘텐츠, 빅 데이터

데이터베이스, 가상 머신 디스크, 운영체제 부팅

확장성

수평 확장(스케일 아웃)에 매우 우수함

주로 수직 확장(스케일 업)에 의존함

메타데이터 관리

풍부하고 확장 가능한 사용자 정의 메타데이터 지원

매우 제한적 (주로 시스템 관리)

객체 스토리지는 클라우드 컴퓨팅 환경과 빅데이터 분석에서 핵심 인프라로 자리 잡았다. 대표적인 구현체로는 아마존 웹 서비스의 S3 API와 오픈스택의 Swift 프로젝트가 있다. 이 인터페이스는 데이터 무결성 보장, 강력한 일관성 모델(또는 최종 일관성 모델), 그리고 대용량 데이터에 대한 비용 효율적인 저장 솔루션을 제공한다.

8. 여담

블록 스토리지 인터페이스의 역사는 컴퓨터 저장 장치의 발전과 밀접하게 연결되어 있다. 초기 메인프레임 시스템에서는 DAS 형태의 전용 디스크 드라이브가 사용되었으며, SCSI와 같은 표준 인터페이스의 등장은 서버와 스토리지 장치 간의 호환성을 크게 높이는 계기가 되었다. 특히 2000년대 초반 SATA 인터페이스의 대중화는 개인용 컴퓨터의 저장 용량과 속도를 비약적으로 발전시켰다.

최근 NVMe의 등장은 플래시 메모리 기반 SSD의 잠재력을 최대로 끌어내기 위한 혁신으로 평가받는다. 기존 AHCI 프로토콜이 HDD를 위해 설계된 반면, NVMe는 낮은 지연 시간과 높은 병렬 처리를 위해 처음부터 NAND 플래시를 염두에 두고 개발되었다. 이로 인해 PCI 익스프레스 버스를 직접 활용하는 NVMe SSD는 기존 SATA SSD 대비 수 배 이상의 성능을 제공하게 되었다.

다양한 인터페이스 표준의 경쟁과 공존은 시장의 선택지를 넓혔다. 다음 표는 주요 블록 스토리지 인터페이스의 등장 시기와 주요 적용처를 보여준다.

인터페이스

주요 등장 시기

주요 적용처

SCSI

1980년대

엔터프라이즈 서버, 워크스테이션

SATA

2003년

데스크톱 PC, 엔트리 레벨 서버

SAS

2004년

엔터프라이즈 서버, 고성능 스토리지 어레이

NVMe

2013년

고성능 워크스테이션, 서버, 데이터센터

블록 스토리지의 미래는 컴퓨트 익스프레스 링크와 같은 새로운 고속 인터커넥트와의 결합, 그리고 키-값 저장소와 같은 새로운 접근 방식의 영향을 받을 것으로 예상된다. 또한, 퍼시스턴트 메모리의 상용화는 메모리와 저장 장치 간의 경계를 흐리게 하여 블록 인터페이스의 역할을 재정의할 가능성을 내포하고 있다.

9. 관련 문서

  • 위키백과 - 블록 장치

  • Amazon Web Services - Amazon EBS(Elastic Block Store)

  • Microsoft Learn - Azure Managed Disks 개요

  • IBM Documentation - 블록 스토리지란?

  • Red Hat - 블록 스토리지 이해하기

  • Google Cloud - 영구 디스크 정보

  • Oracle Help Center - 블록 볼륨 이해

  • SNIA(Solid State Storage Initiative) - 블록 스토리지

리비전 정보

버전r1
수정일2026.02.14 21:24
편집자unisquads
편집 요약AI 자동 생성
히스토리로 돌아가기