- 3-0-0. 스토리지 이해2024년 03월 17일
- yeongki0944
- 작성자
- 2024.03.17.:14
- 컨테이너 OverlayFS에 대한 이해
- 리눅스 파일 시스템 > UnionFS > OverlayFS(컨테이너 이미지)
- AWS Storage에 대한 이해
- InstanceStorage, EBS, EFS, S3
- Kubernetes Storage에 대한 이해
- kubernetes Volume Tyep
- Volume, emptyDir, hostPath, Persistent Storage
- kubernetes Volume 추상화
- Persistent Volume, Persistent Volume Claim
- kubernetes Volume Tyep
1. 리눅스
1-1. i-node의 동작흐름에 대한 애니메이션
[Youtube_Cd chen] Filesystem - inode & block
- ls dir /
- ls -l dir/file1
- cat dir/file1
1-2. Linux Disk Layout (Super block, Inode block, Data block)
[tistory] 37. 파일 시스템 - inode 방식과 가상 파일시스템
- Linux 파일 시스템 - Disk layout (Simple File System)
- 3개의 Block으로 구성
- Super Block
- Inode Block
- Data Block
- 3개의 Block으로 구성
블록 종류설명
블록 종류 설명 Super Block - 파일 시스템의 메타데이터를 저장하는 블록 (파일 시스템의 전반적인 정보를 포함)
- Super Block이 저장하는 정보
* 파일 시스템의 크기, 사용 가능한 공간, 사용 중인 Inode 및 데이터 블록의 수 등Inode Block - 각 파일 및 디렉터리에 대한 메타데이터를 저장하는 블록 Data Block - 실제 파일 데이터가 저장되는 블록 [University of Notre Dame] Project 06: Simple File System
[O'REILLY] Mastering Linux Kernel Development by Raghu Bharadwaj-Superblock
1-3. VFS
The VFS (Virtual File System) in Linux Kernel V2.4
[DATA ON-AIR 칼럼] Linux VFS(Virtual File System Switch) 해부
1-4. UnionFS
[WIKIPEDIA] UnionFS
1-5. OverlayFS
[alice Blog] 168. [Linux] 투명 셀로판지 이론을 통한 Overlay FS 사용 방법과 유니온 마운트 (Union Mount) 이해하기
2. Container Layer
[taikun] How to Handle Container Storage
3. Kubernetes Storage
- Kubernetes Storage 요구사항
- 컨테이너간 데이터 공유
- emptyDir
- emptyDir + git (gitRepo)
- 워커노드 파일시스템 접근
- hostPath (시스템 레벨의 Pod - 노드의 파일시스템 접근이 필요함)
- NAS 기반 스토리지(네트워크로 접근가능한 외부 스토리지)
- gcpPersistentDisk
- awsElasticBlockStore
- nfs
- 컨테이너간 데이터 공유
- Persistent Volume, Persistent Volume Claim
- 기반 스토리지 기술과 Pod 분리
- EBS, GCP Disk, NFS등의 디스크를 필요할때마다 생성하고 (Infra 관리자) Pod에 적절한 디스크 용량을 정해서 할당(개발자)한다.
- 아래 두가지 기능을
- 스토리지 인프라 관리
- 스토리지 사용
- Pod가 죽고 다른 노드에 생성될 경우
- NAS형식으로 스토리지 접근이 가능해야한다.
3-2. kubernetes volume Type
볼륨 종류 설명 awsElasticBlockStore AWS Elastic Block Store로 데이터를 저장하는 볼륨 (제거됨) azureDisk Azure 디스크를 사용하여 데이터를 저장하는 볼륨 (제거됨) azureFile Azure 파일을 사용하여 데이터를 저장하는 볼륨 (사용 중단됨) cephfs Ceph 파일 시스템을 사용하여 데이터를 저장하는 볼륨 cinder OpenStack Cinder 볼륨을 사용하여 데이터를 저장하는 볼륨 (제거됨) configMap 쿠버네티스 ConfigMap을 볼륨으로 사용하여 애플리케이션 설정을 제공 downwardAPI Pod의 환경 변수 또는 볼륨으로 Pod 및 컨테이너의 정보를 제공 emptyDir 일시적인 저장 공간으로 Pod의 생명주기 동안 지속되는 볼륨 fc Fibre Channel 스토리지를 사용하여 데이터를 저장하는 볼륨 gcePersistentDisk Google Compute Engine Persistent Disk를 사용하여 데이터를 저장하는 볼륨 (제거됨) gitRepo Git 리포지토리를 볼륨으로 사용하여 애플리케이션 코드를 가져옴 (사용 중단됨) glusterfs GlusterFS 파일 시스템을 사용하여 데이터를 저장하는 볼륨 (제거됨) hostPath 호스트 머신의 파일 시스템 경로를 Pod에 마운트하는 볼륨 iscsi iSCSI 프로토콜을 사용하여 데이터를 저장하는 볼륨 local 로컬 디스크 또는 임시 저장소를 사용하여 데이터를 저장하는 볼륨 nfs NFS(Network File System)를 사용하여 데이터를 저장하는 볼륨 persistentVolumeClaim 영구적인 스토리지 볼륨을 클레임하여 Pod에 할당하는 볼륨 portworxVolume Portworx 스토리지를 사용하여 데이터를 저장하는 볼륨 (사용 중단됨) projected 다양한 유형의 볼륨을 하나의 볼륨으로 결합하여 제공하는 볼륨 rbd Ceph 블록 디바이스를 사용하여 데이터를 저장하는 볼륨 secret 쿠버네티스 시크릿을 볼륨으로 사용하여 민감한 정보를 제공 vsphereVolume VMware vSphere 스토리지를 사용하여 데이터를 저장하는 볼륨 (사용 중단됨) [kubernetes Docs] Kubernetes Documentation / Concepts / Storage / Volumes
[LinkedIn] telecomhall on LinkedIn: Kubernetes Volume Types
3-3. emptyDir
- 위치 : Pod
- 삭제 : 파드 종료시
- 공유 : Pod 내부 컨테이너
[로스카츠의 AI 머신러닝 블로그] [Infra] 쿠버네티스(kubernetes)(5) 퍼시스턴트 볼륨 스토리지
3-4. hostPath
- 위치 : Node
- 삭제 : Node에서 해당 폴더 삭제시
- 공유 : 동일한 Node의 Pod (다른 노드의 Pod는 접근 불가)
[로스카츠의 AI 머신러닝 블로그] [Infra] 쿠버네티스(kubernetes)(5) 퍼시스턴트 볼륨 스토리지
[livebook] Kubernetes in Action
3-5. PersistentVolume (PV)
- 외부 스토리지
- 외부 스토리지 시스템을 볼륨으로 사용
- hostPath > 다른 노드의 Pod가 접근 못하는 단점 해결
3-6. PersistentVolumeClaim (PVC)
다음글이전글이전 글이 없습니다.댓글