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 스토리지
- 트랜잭션 처리 시스템
간단 비교
구분 | NAS | SAN |
---|---|---|
접근 방식 | 파일 단위 | 블록 단위 |
관리하는 측 | NAS 장치에서 파일 시스템 관리 | 서버 측에서 파일 시스템 관리 |
프로토콜 | NFS, SMB | iSCSI, Fibre Channel |
사용 용도 | 파일 저장, 공유 | 고성능 DB, VM 디스크 등 |
파일 스토리지도 결국 블록 사용?
파일 스토리지도 결국 내부적으로는 블록 스토리지를 사용
1. 저장 장치의 본질은 항상 “블록 단위”
하드디스크든 SSD든 저장장치는 항상 블록 단위로 데이터를 읽고 씁니다.
예: 512바이트, 4KB 등의 고정 크기 블록
2. 파일 시스템이 그 위에 올라가서 “파일"이라는 개념을 만든 것
파일 시스템(ext4, NTFS, ZFS 등)은 블록 장치 위에 구축돼서,
블록들을 조합해서 사용자에게 파일 단위로 보여주는 역할
- 물리 저장은 블록 단위
- 사용자에게 보여지는 건 파일 단위
예시:
- 사용자가 NAS에
document.pdf
라는 파일을 저장 - NAS는 이 파일을 자체 파일시스템(ZFS, ext4 등)에 저장
- 이 파일시스템은 파일을 여러 개의 블록으로 나눠 디스크에 저장
- 사용자가
document.pdf
를 열면 NAS가 해당 블록들을 조합해서 파일로 다시 제공
비유:
- 블록은 레고 블록
- 파일시스템은 레고 조립 설명서
- 파일은 완성된 레고 작품
블록 스토리지 위에 파일시스템을 올리면?
- 로컬 파일시스템
- 예: ext4가 올려진
/dev/sdb1
→ 리눅스 내부에서 사용하는 파일시스템
그런데 그 파일시스템을 NAS 같은 장비가 올리고, 네트워크로 파일 단위 접근을 제공하면?
-> 파일 스토리지(NAS)
구성 예시
항목 | 설명 |
---|---|
블록 스토리지 | /dev/sdb , iSCSI 타겟, AWS EBS 볼륨 |
파일시스템 | ext4, xfs, ZFS 등 |
파일 스토리지 | 위 파일시스템을 NAS 장비가 관리해서 SMB , NFS 로 파일 접근 제공 |
- 파일 스토리지 = 블록 스토리지 + 파일시스템 + 파일 공유 프로토콜 (NFS/SMB 등)
- 그리고 이걸 NAS 장비나 전용 소프트웨어가 대신 운영해주는 구조
파일 스토리지는 블록 스토리지 위에 파일시스템을 얹고, 그걸 공유해주는 서비스