지식창고

스토리지: 하드웨어부터 통신방식까지

ping핑이 2024. 11. 7. 22:23
반응형

컴퓨터 구조에서 배워던 기억이 어렴풋이 있는 스토리지 인데요 실제 서버 데이터 시트를 보면 SATA, SAS, Nvme 등 스토리지 관련된 용어를 많이 접할 수 있습니다.
스토리지는 IT 인프라에서 데이터를 보존하고 관리하는 핵심적인 역할을 담당합니다.
스토리지는 기업의 데이터베이스, 애플리케이션 로그, 가상 머신 이미지, 사용자 파일 등 다양한 형태의 데이터를 보관하는 데 사용됩니다.
이번 글에서는 스토리지의 하드웨어 구성 요소, 저장 방식, 그리고 데이터 전송을 위한 다양한 통신 방법을 차례로 살펴보겠습니다.

1. 스토리지 하드웨어와 인터페이스

HDD vs. SSD

  • HDD는 자기 디스크에 데이터를 저장하며, 물리적으로 회전하는 디스크와 헤드가 데이터를 읽고 씁니다. 가격이 저렴하고 대용량 저장에 적합하지만, 읽기/쓰기 속도가 상대적으로 느리며 기계적 동작(회전) 때문에 내구성에서 한계가 있습니다.
  • SSD는 반도체 메모리(주로 NAND 플래시)를 사용하여 데이터를 저장합니다. 이동 부품이 없기 때문에 데이터 접근 시간이 매우 짧습니다. 다만 가격이 상대적으로 높습니다.

2. 저장 방식: 블록 스토리지와 파일 스토리지

스토리지는 저장 방식에 따라 크게 블록 스토리지, 파일 스토리지, 그리고 오브젝트 스토리지로 구분됩니다.

블록 스토리지 (Block Storage)

블록 스토리지는 데이터를 작은 블록 단위로 나누어 저장합니다. 각 블록은 고유한 식별자를 가지고 있어, 블록 단위로 빠르게 접근하고 수정할 수 있는 장점이 있습니다. 일반적으로 SAN(Storage Area Network) 환경에서 사용되며, 높은 성능과 확장성을 제공합니다. 데이터베이스와 같이 빠르고 신뢰성 있는 데이터 접근이 필요한 경우 적합합니다.

파일 스토리지 (File Storage)

파일 스토리지는 데이터를 파일 단위로 관리하며, 트리 구조의 디렉토리를 통해 접근합니다. 일반적인 NAS(Network Attached Storage)에서 사용되며, 사용자가 친숙하게 접근할 수 있는 방식입니다. 파일 서버나 네트워크 공유 드라이브 등에 적합합니다.

오브젝트 스토리지 (Object Storage)

오브젝트 스토리지는 데이터를 객체 단위로 저장하며, 각 객체는 메타데이터와 고유한 식별자를 가지고 있습니다. 클라우드 환경에서 주로 사용되며, 대량의 비정형 데이터를 효율적으로 저장할 수 있습니다. 대표적인 예로 AWS S3가 있습니다.

3. 스토리지 통신 프로토콜

스토리지 하드웨어와 소프트웨어 간의 통신은 스토리지의 성능과 효율성을 좌우합니다. 이 섹션에서는 주로 사용되는 몇 가지 주요 통신 방법을 설명합니다.

SCSI (Small Computer System Interface)

  • SCSI는 컴퓨터와 스토리지 장치 간 데이터를 전송하는 표준 프로토콜입니다. 처음에는 내부 디스크와 연결하기 위한 기술이었으나, 발전하여 SAN 같은 외부 스토리지 네트워크에서도 사용됩니다. 블록 단위로 데이터를 처리하며, 안정적이고 신뢰성이 높은 프로토콜로 평가받습니다.

SCSI (Small Computer System Interface)

  • SCSI는 컴퓨터와 스토리지 장치 간 데이터를 전송하는 표준 프로토콜입니다. 처음에는 내부 디스크와 연결하기 위한 기술이었으나, 발전하여 SAN 같은 외부 스토리지 네트워크에서도 사용됩니다. 블록 단위로 데이터를 처리하며, 안정적이고 신뢰성이 높은 프로토콜로 평가받습니다.

SATA (Serial ATA)

  • SATA는 HDD와 SSD에서 일반적으로 사용되는 인터페이스입니다. 비교적 저렴하며 대중적인 방식이지만, 
  • 데이터 전송 속도는 최신 스토리지 요구사항에는 다소 한계가 있습니다. 최신 버전인 SATA III는 최대 6Gbps의 전송 속도를 지원합니다.

SAS (Serial Attached SCSI)

  • SAS는 SATA보다 더 높은 속도와 안정성을 제공하며, 주로 엔터프라이즈 환경에서 사용됩니다. 
  • 최대 24Gbps의 전송 속도를 지원하며, 높은 IOPS(초당 입출력 작업 수)를 요구하는 서버 환경에서 HDD나 SSD에 널리 사용됩니다.

NVMe (Non-Volatile Memory Express)

  • SSD가 성능을 극대화하기 위해 사용하는 인터페이스입니다. 
  • PCIe 버스를 사용하여 매우 높은 대역폭과 짧은 대기시간을 제공합니다. NVMe SSD는 서버나 고성능 컴퓨팅 환경에서 주로 사용됩니다.

FC (Fibre Channel)

  • Fibre Channel은 높은 대역폭과 안정성을 제공하는 스토리지 네트워크 프로토콜입니다. 주로 고성능 SAN 환경에서 사용되며, 빠른 데이터 전송이 중요한 대기업 환경에 적합합니다. Fibre Channel을 통해 고속으로 블록 데이터를 전송할 수 있지만, 별도의 전용 하드웨어가 필요해 비용이 비교적 높습니다.

4. 실습: iSCSI를 이용한 스토리지 구성

실습 부분에서는 iSCSI를 이용해 네트워크 기반 스토리지를 설정하는 예제를 다루겠습니다. 이를 통해 블록 스토리지를 직접 설정하고 연결하는 과정을 체험해 볼 수 있습니다.

  1. iSCSI Target 설치: 서버에서 iSCSI 타겟을 설정하고, 클라이언트가 이 스토리지를 사용할 수 있도록 구성합니다. 리눅스 환경에서는 targetcli 같은 도구를 사용해 쉽게 설정할 수 있습니다.
  2. iSCSI Initiator 설정: 클라이언트 측에서 iSCSI Initiator를 설정하여 서버에서 제공하는 스토리지를 마운트합니다.
  3. 데이터 접근 확인: 클라이언트에서 연결된 블록 스토리지에 파일 시스템을 생성하고, 데이터를 읽고 쓰는 작업을 수행해 실제 스토리지 연결을 확인합니다.

스토리지는 데이터의 안전성과 접근성을 보장하는 중요한 인프라 요소입니다.
이번 글을 통해 스토리지의 하드웨어부터 통신 방식까지 전반적으로 되돌아봤습니다.
스토리지에 대한 더 깊은 내용이나, 다른 실습 주제를 다루고 싶다면 댓글이나 추가 질문을 환영합니다

반응형

'지식창고' 카테고리의 다른 글

Lenovo SR650 - enp0s20f0u1u6 interface  (0) 2024.07.16