OpenEBS, Local Dynamic PV

Jerry(이정훈)
4 min readJan 17, 2021

--

WHY

Kube Cluster 구축하면서 비싸거나(EMC 등) 구축이 어려운(Ceph, Gluster) 솔류션 대신 Local Disk를 사용하는 솔류션을 검토하여 OpenEBS를 사용하게 되었다. ( OpenEBS 옵션 중 Local Persistent Volume 선택) 비용과 성능, 그리고 구축 난이도 측면에서 장점이 많아서 실 운영 환경에 적용 하였다.

OpenEBS Local Volume

Local disk를 사용하므로 네트워크 혹은 분산 storage에 비하여 성능 및 관리가 편리하다.

예상 문제점으로 데이터를 해당 노드에서만 사용 가능하여 노드 fail 시 data 유실의 문제가 있을 수 있다. 하지만 많은 App이 이미 application(MariaDB Galera Cluster, Elastic 등) 레벨에서 3벌 복제 등의 기능을 제공하므로 문제 없다. 그리고 공유 스토리지가 필요한 경우 외부 NFS 서버 혹은 저렴한 NAS를 사용해서 구성 가능하다.

WHAT

설치는 아주 쉽게 가능하다.

설치 참조

kubectl apply -f https://openebs.github.io/charts/openebs-operator-lite.yamlkubectl apply -f https://openebs.github.io/charts/openebs-lite-sc.yaml

(상세 내용 생략)

설치 후 로컬 VM을 확인해 보면 아래와 같이 /var/openebs/local 디렉토리에서 PV 이름으로 생성되는 directory를 확인 할 수 있다.

[spkr@node3 ~]$ cd /var/openebs/local/
[spkr@node3 local]$ ls
pvc-675613f0–3570–4ac6-bd64–3fcb9555b19b

물론 data를 생성하면 local 에서 바로 kube cluster data까지 확인 가능하다.

[spkr@node3 pvc-675613f0–3570–4ac6-bd64–3fcb9555b19b]$ ls
aaa bbb

PV를 삭제하면 Dynamic 하게 해당 PV Directory가 같이 삭제된다.

[spkr@erdia22 ~ (ksp01:default)]$ k delete pvc www-nginx-{0,1,2}
persistentvolumeclaim “www-nginx-0” deleted
persistentvolumeclaim “www-nginx-1” deleted
persistentvolumeclaim “www-nginx-2” deleted

삭제 전, 삭제 후 확인하면 아래와 같이 Directory 자체가 삭제됨을 확인 할 수 있다. 만약, PVC 없이 HostPath 옵션을 사용하였다면 일일이 삭제해야 한다.

[spkr@node3 local]$ cd pvc-675613f0–3570–4ac6-bd64–3fcb9555b19b/
[spkr@node3 pvc-675613f0–3570–4ac6-bd64–3fcb9555b19b]$ ls
aaa bbb

삭제 후

[spkr@node3 pvc-675613f0–3570–4ac6-bd64–3fcb9555b19b]$ cd .[spkr@node3 local]$ ls
[spkr@node3 local]$ ls

(성능 측정은 아직 진행하지 못하였다. 당연히 외장 스토리지에 비하여 나을 것이다. 다른 노드 측정 시 NVMe 환경에서 노드 당 1M IOPS까지 가능하였다.)

사용도 간단하고 Dynamic Provisioning 까지 가능하므로 현재 적용된 운영 환경에서 잘 돌아갈거라 생각한다.

--

--

Jerry(이정훈)
Jerry(이정훈)

Written by Jerry(이정훈)

DevOps/Automation Engineer 60살까지 콘솔 잡는 엔지니어를 목표로 느리게 생각하고 있습니다.

No responses yet