kubestr

개요

쿠버네티스 환경에서 스토리지 기능의 성능과 리스트를 탐색, 평가하는 툴이다.
image.png
크게는 세가지 작업을 할 수 있다.[1]

설치

wget https://github.com/kastenhq/kubestr/releases/download/v0.4.48/kubestr_0.4.48_Linux_amd64.tar.gz 
tar xvfz kubestr_0.4.48_Linux_amd64.tar.gz && mv kubestr /usr/local/bin/ && chmod +x /usr/local/bin/kubestr

툴 자체는 단순해서, 기능은 조작법에서 풀겠다.
단순하게 테스트용 도구이기 때문에 깊게 세팅 방법을 알 필요는 없다.

조작법

image.png
기본 설치를 하고 그냥 해당 명령어를 사용하면 현재 존재하는 스토리지 프로비저너를 확인할 수 있다.
세팅한 EKS에는 아무런 세팅 없이도 과거의 잔재인 인트리 ebs 프로비저너가 세팅은 돼있다.

kubestr blockmount -s <storage class>

해당 스토리지 클래스가 블록 마운팅을 지원하는지 테스트한다.

kubestr csicheck

볼륨 스냅샷, 복원 기능을 테스트하는 명령어이다(근데 왜 이름이 이따구야).
그래서 테스트하고자 하는 스토리지 클래스와 , 볼륨 스냅샷 클래스를 함께 명시해줘야 한다.

fio 작성법

kubestr fio -s <storage class>
kubestr fio -s <storage class> -v <volume snapshot class>

이건 총체적인 입출력(Flexible I/O) 성능을 측정한다.
이것은 fio라고 하는, 스토리지 테스터의 양식을 기반으로 하고 있다.[2]
-f 옵션을 통해 미리 정의된 테스트 설정 파일을 넘기는 게 가능하다.
대체로 이 기능을 가장 많이 활용하게 될 것이다.
image.png
내부적으로는 이렇게 fio 패키지를 가져와서 세팅을 하는 것이 보인다.[3]

[global]
randrepeat=0
verify=0
ioengine=libaio
direct=1
gtod_reduce=1

[job1]
name=read_iops
bs=4K
iodepth=64
size=2G
readwrite=randread
time_based
ramp_time=2s
runtime=15s

[job2]
name=write_iops
bs=4K
iodepth=64
size=2G
readwrite=randwrite
time_based
ramp_time=2s
runtime=15s

[job3]
name=read_bw
bs=128K
iodepth=64
size=2G
readwrite=randread
time_based
ramp_time=2s
runtime=15s

[job4]
name=write_bw
bs=128k
iodepth=64
size=2G
readwrite=randwrite
time_based
ramp_time=2s
runtime=15s

이게 기본으로 활용되는 fio 테스트 양식이다.[4]

관련 문서

이름 noteType created
3주차 - 스토리지 project 2025-02-16
3W - kubestr과 EBS CSI 드라이버 published 2025-02-21
3W - EFS 드라이버, 인스턴스 스토어 활용 published 2025-02-22

참고


  1. https://www.youtube.com/watch?v=U3Rt9vcuQdc ↩︎

  2. https://github.com/axboe/fio/tree/master ↩︎

  3. https://github.com/kastenhq/kubestr/blob/v0.4.48/pkg/fio/fio_types.go ↩︎

  4. https://github.com/kastenhq/kubestr/blob/v0.4.48/pkg/fio/fio_jobs.go ↩︎