반응형
1️⃣ Pod YAML 예제
cephFS, NFS를 둘 다 마운트하는 pod 만들기
apiVersion: v1
kind: Pod
metadata:
name: storage-benchmark
namespace: default
spec:
restartPolicy: Never
containers:
- name: fio
image: ubuntu:24.04
command: ["sleep", "3600"]
volumeMounts:
# CephFS 마운트
- name: cephfs-volume
mountPath: /mnt/cephfs_test
# NFS 마운트
- name: nfs-volume
mountPath: /mnt/nfs_test
volumes:
# CephFS PVC
- name: cephfs-volume
persistentVolumeClaim:
claimName: test-pvc # 기존에 생성된 CephFS PVC(kubectl get pvc)
# NFS 서버
- name: nfs-volume
nfs:
server: 10.178.0.4 # haproxy VM IP
path: /srv/nfs_share
2️⃣ 실행 방법
kubectl apply -f fio-test-pod.yaml
# pod 접속
kubectl exec -it storage-benchmark -- bash
# pod에 fio 설치
apt update
apt install -y fio
3️⃣ 테스트 예제 (fio)
tekton을 이용한 빌드 속도 비교용
컨테이너 빌드 I/O 특징:
- 작은 파일 다수 읽기/쓰기 → Docker/Tekton 캐시 레이어 처리
- 중간 크기 파일 순차 쓰기 → 이미지 레이어 생성
- 동시 다중 작업 → 여러 build 단계 병렬 처리
1️⃣ 작은 파일 랜덤 읽기/쓰기 (캐시 레이어 I/O)
- bs=8k → Docker/Tekton 캐시 단위 파일과 유사
- numjobs=8 → 다중 빌드 단계 동시 처리 모사
- iodepth=16 → 병렬 I/O 큐 깊이
# CephFS
fio --name=tekton_randrw_cephfs \
--filename=/mnt/cephfs_test/tekton_testfile_cephfs \
--size=1G \
--rw=randrw \
--bs=8k \
--direct=1 \
--numjobs=8 \
--iodepth=16 \
--runtime=180 \
--group_reporting
# NFS
fio --name=tekton_randrw_nfs \
--filename=/mnt/nfs_test/tekton_testfile_nfs \
--size=1G \
--rw=randrw \
--bs=8k \
--direct=1 \
--numjobs=8 \
--iodepth=16 \
--runtime=180 \
--group_reporting
2️⃣ 중간/큰 파일 순차 쓰기 (이미지 레이어 생성)
- bs=512k → 이미지 레이어 평균 블록 크기와 비슷
- numjobs=2 → 한두 레이어 동시 빌드
# CephFS
fio --name=tekton_seqwrite_cephfs \
--filename=/mnt/cephfs_test/tekton_layer_cephfs \
--size=2G \
--rw=write \
--bs=512k \
--direct=1 \
--numjobs=2 \
--iodepth=4 \
--runtime=180 \
--group_reporting
# NFS
fio --name=tekton_seqwrite_nfs \
--filename=/mnt/nfs_test/tekton_layer_nfs \
--size=2G \
--rw=write \
--bs=512k \
--direct=1 \
--numjobs=2 \
--iodepth=4 \
--runtime=180 \
--group_reporting
3️⃣ 테스트 해석
- IOPS → 작은 파일 읽기/쓰기 성능 (캐시 레이어)
- Bandwidth(MB/s) → 레이어 쓰기 성능
- Latency → 각 I/O 작업 지연, Tekton 빌드 지연에 영향
# 테스트 후 파일 삭제
rm /mnt/cephfs_test/tekton_*
rm /mnt/nfs_test/tekton_*
항목 CephFS NFS 차이/해석( 1️⃣ 작은 파일 랜덤 읽기/쓰기 (캐시 레이어 I/O))
| READ BW | 2.35 MiB/s | 16.1 MiB/s | NFS가 약 7배 빠름 |
| WRITE BW | 2.36 MiB/s | 16.0 MiB/s | NFS가 약 6.8배 빠름 |
| READ IOPS | 293 | 2,056 | NFS가 약 7배 많음 |
| WRITE IOPS | 295 | 2,053 | NFS가 약 7배 많음 |
| READ latency | 1.17 ms | 0.395 ms | NFS 지연 낮음 |
| WRITE latency | 25.9 ms | 3.49 ms | NFS 지연 훨씬 낮음 |
| CPU 사용률 | 낮음 | 낮음 | 둘 다 I/O가 병목, CPU 영향 적음 |
반응형
'배운 내용 > Kubernetes' 카테고리의 다른 글
| (1)-2 도메인 구입 + Cloudflare DNS + istio ingress + Cert manager + NGINX (0) | 2025.09.29 |
|---|---|
| (5) Tekton 설치 + cephFS PVC 캐싱 (0) | 2025.09.29 |
| (3) HAProxy VM에 NFS 서버 구축 (0) | 2025.09.29 |
| [Kubernetes]Metrics Server 설치 (0) | 2025.09.26 |
| 실무과제5 tekton 설치 (0) | 2025.09.24 |
