본문 바로가기

쿠버네티스

Storage 3대장 이해하기(1/4) - File System

Kubernetes에서 서비스를 제공할 때, 데이터의 특징에 따라 적절한 스토리지를 선택하는 것이 중요합니다.

 

 

 

 

스토리지(Storage)란 데이터를 저장하고 관리하는 데이터 저장소를 의미합니다. Kubernetes 뿐만 아니라 IT 인프라에서 공통적으로 사용하는 개념인 스토리지에 대해 자세히 살펴보겠습니다. 

 

Storage 1편, File System

 

스토리지는 데이터 저장 방식에 따라 블록 스토리지, 파일 스토리지, 오브젝트 스토리지로 구분합니다. 각 스토리지는 성능, 확장성, 사용 방식이 다르기 때문에 특징을 이해하여 용도에 맞게 사용하는 것이 중요합니다. 이번 글에선 스토리지를 위해하기 위한 필수 개념인 File System에 대해 소개합니다. 

 

목 차

 

 

 

스토리지 별 주요 특징 

스토리지 별 주요 특징을 요약하면 다음과 같습니다. 

  블록 스토리지 파일 스토리지 오브젝트 스토리지
특징 디스크처럼 사용 공유 폴더 형태로 사용 API기반 객체 저장
사용 사례 DB, VM Disk NFS, CIFS, NAS AWS S3
장점 빠른 성능, 파일 시스템 필요 편리한 접근성, 다중 사용자 가능 무한 확장 가능, 비용 절감
단점 관리 필요, 확장 어려움 대용량 확장 어려움 지연 시간, 실시간 처리 어려움

 

 

파일 시스템 (File System) 이란?

스토리지에 대해 이해하려면, 우선 파일 시스템(File System)에 대한 이해가 필요합니다. 

 

 

 

 

파일 시스템이란, 운영체제(OS)가 데이터를 저장하고 관리하는 방식을 정의하는 시스템입니다. 운영체제가 데이터를 저장하는 물리적인 저장 장치인 디스크(HDD, SSD)를 인식할 때 파일 시스템이 필요합니다. 파일 시스템이 운영체제가 데이터를 저장하는 방식을 결정하기 때문입니다. 

 

파일 시스템은 다음과 같은 역할을 수행합니다.

  • 데이터 저장 및 검색 : 데이터를 논리적인 파일과 디렉터리 구조로 변환하여 스토리지에 저장합니다.
  • 파일 관리 : 파일의 생성, 삭제, 수정 등 라이프사이클 관리와 권한 관리를 수행합니다.
  • 공간 관리 : 디스크 공간을 효율적으로 사용하도록 블록을 할당합니다.
  • 안정성 및 복구 : 데이터 무결성 유지를 위한 저널링 기능을 제공합니다. 

 

스토리지 별 파일 시스템

파일 시스템은 스토리지 종류에 따라 최적화된 방식이 다릅니다. 

 

로컬 스토리지는 HDD, SSD, NVMe 같은 물리적 디스크를 뜻하며 운영체제와 애플리케이션 직접 접근하여 사용합니다. 리눅스, 윈도, 맥 OS에서 사용하는 Storage입니다. 

 

네트워크 스토리지는 여러 서버가 데이터를 공유할 때 사용합니다. NAS, SAN 등이 대표적이며 스토리지 간 클러스터링과 네트워크 속도 최적화 기능을 제공합니다.

 

클라우드에서 제공하는 스토리지는 특정 파일 시스템을 사용하지 않고 스토리지 서비스가 자체적으로 데이터를 관리할 수 있는 파일 시스템 기능이 포함되어 있습니다. 대표적으로 AWS S3, Google Cloud Storage, 빅데이터 분산파일 시스템인 HDFS가 있습니다. 

 

구분 파일 시스템 특징 용도
Local Storage
(HDD/SSD)
ext4 일반적인 리눅스 파일 시스템 리눅스 서버, 개인 PC
XFS 고성능, 대용량 데이터용 DB, Big Data, 백업 서버
NTFS 윈도우 기본 파일 시스템 Windows OS, 외장 디스크
Network Storage (NAS) NFS 리눅스 기반 네트워크 파일 공유 서버 간 공유 디렉토리
SMB 윈도우 기반 네트워크 파일 공유 윈도우-리눅스 간 파일 공유
CephFS 분산 파일 시스템 대규모 클러스터, 클라우드

 

 

파일 시스템의 구조

파일 시스템은 일반적으로 다음과 같은 구조를 가집니다.

 

  • 디렉터리 (Directory): 파일을 그룹화하고 계층적으로 관리하는 컨테이너입니다. 폴더와 유사한 개념으로, 파일을 논리적으로 분류하고 구성합니다.
  • 파일 (File): 실제 데이터가 저장되는 단위입니다. 파일 이름, 크기, 생성일, 수정일 등의 속성을 가집니다.
  • 메타데이터 (Metadata): 파일이나 디렉터리에 대한 정보를 저장하는 데이터입니다. 파일의 속성, 접근 권한, 저장 위치 등을 포함합니다.
  • 디스크 블록 (Disk Block): 디스크의 저장 공간을 할당하는 최소 단위입니다. 파일의 데이터는 하나 이상의 디스크 블록에 저장됩니다.

 

요약정리

  • 파일 시스템은 OS가 데이터를 파일 단위로 관리하고 저장하는 체계입니다.
  • 파일 시스템은 스토리지의 데이터를 효율적으로 관리하고 검색할 수 있도록 구조화합니다.
  • 운영체제와 사용환경에 따라 다양한 파일 시스템이 존재합니다. 
    • NTFS - Windows에서 사용하는 파일 시스템
    • ext4- Linux에서 사용하는 파일 시스템 
    • NFS - Windows 기반 네트워크 파일 공유 파일 시스템