File Storage vs Block Storage

File Storage vs Block Storage

NAS(Network Attached Storage)는 파일 단위 저장

  • 파일 단위 접근(File-level access)
    사용자는 NAS에 저장된 파일을 마치 일반적인 폴더처럼 접근 (예: SMB, NFS 프로토콜을 사용하여 \\nas-server\shared-folder 같은 방식으로 접근)

  • 파일 시스템을 NAS 장치가 직접 관리
    NAS는 자체적으로 파일 시스템(예: ext4, ZFS 등)을 가지고 있고,
    사용자는 그 위에 올려진 파일들에 접근하는 구조

  • 주 용도

    • 문서 저장소
    • 미디어 서버
    • 백업용 파일 저장
    • 파일 공유 등

SAN(Storage Area Network)은 서버와 블록 저장장치를 연결하는 High-Speed Network

  • 블록 단위 접근(Block-level access)
    운영체제에서 SAN 디스크를 로컬 디스크처럼 인식 (예: iSCSI, Fibre Channel 등)

  • 파일 시스템은 사용자(서버) 측에서 관리
    SAN은 단순히 “저장 블록 공간"만 제공하고, 서버가 그 위에 파일 시스템을 생성

  • 서버에 iSCSI나 Fibre Channel로 Block Storage가 연결

  • 주 용도

    • 데이터베이스
    • 고성능 VM 스토리지
    • 트랜잭션 처리 시스템

간단 비교

구분NASSAN
접근 방식파일 단위블록 단위
관리하는 측NAS 장치에서 파일 시스템 관리서버 측에서 파일 시스템 관리
프로토콜NFS, SMBiSCSI, Fibre Channel
사용 용도파일 저장, 공유고성능 DB, VM 디스크 등

파일 스토리지도 결국 블록 사용?

파일 스토리지도 결국 내부적으로는 블록 스토리지를 사용

1. 저장 장치의 본질은 항상 “블록 단위”

하드디스크든 SSD든 저장장치는 항상 블록 단위로 데이터를 읽고 씁니다.
예: 512바이트, 4KB 등의 고정 크기 블록

2. 파일 시스템이 그 위에 올라가서 “파일"이라는 개념을 만든 것

파일 시스템(ext4, NTFS, ZFS 등)은 블록 장치 위에 구축돼서,
블록들을 조합해서 사용자에게 파일 단위로 보여주는 역할

  • 물리 저장은 블록 단위
  • 사용자에게 보여지는 건 파일 단위

예시:

  1. 사용자가 NAS에 document.pdf라는 파일을 저장
  2. NAS는 이 파일을 자체 파일시스템(ZFS, ext4 등)에 저장
  3. 이 파일시스템은 파일을 여러 개의 블록으로 나눠 디스크에 저장
  4. 사용자가 document.pdf를 열면 NAS가 해당 블록들을 조합해서 파일로 다시 제공

비유:

  • 블록은 레고 블록
  • 파일시스템은 레고 조립 설명서
  • 파일은 완성된 레고 작품

블록 스토리지 위에 파일시스템을 올리면?

  • 로컬 파일시스템
  • 예: ext4가 올려진 /dev/sdb1 → 리눅스 내부에서 사용하는 파일시스템

그런데 그 파일시스템을 NAS 같은 장비가 올리고, 네트워크로 파일 단위 접근을 제공하면?

-> 파일 스토리지(NAS)


구성 예시

항목설명
블록 스토리지/dev/sdb, iSCSI 타겟, AWS EBS 볼륨
파일시스템ext4, xfs, ZFS 등
파일 스토리지위 파일시스템을 NAS 장비가 관리해서 SMB, NFS로 파일 접근 제공
  • 파일 스토리지 = 블록 스토리지 + 파일시스템 + 파일 공유 프로토콜 (NFS/SMB 등)
  • 그리고 이걸 NAS 장비나 전용 소프트웨어가 대신 운영해주는 구조

파일 스토리지는 블록 스토리지 위에 파일시스템을 얹고, 그걸 공유해주는 서비스