본문 바로가기
[Cloud]/Rancher2

rancher2 + longhorn 정리

by journes 2019. 3. 19.


rancher2 + longhorn 정리 





Longhorn 볼륨 관리자 컨테이너는 Longhorn 클러스터의 각 호스트에서 실행됩니다. Ronher 또는 Swarm 용어를 사용하여 Longhorn 볼륨 관리자는 글로벌 서비스입니다. Kubernetes를 사용하는 경우 Longhorn 볼륨 관리자는 DaemonSet으로 간주됩니다. Longhorn 볼륨 관리자는 UI 또는 Docker 및 Kubernetes 용 볼륨 플러그인에서 API 호출을 처리합니다 아래 그림은 Docker Swarm 및 Kubernetes의 맥락에서 Longhorn의 제어 경로를 보여줍니다.


[Service flow ]








Longhorn 관리자가 볼륨 생성을 요청 받으면 복제본이 배치 될 호스트는 물론 볼륨이 연결된 호스트에 컨트롤러 컨테이너를 생성합니다. 최대한의 가용성을 보장하기 위해 복제본을 별도의 호스트에 배치해야합니다. 아래 그림에는 Longhorn 볼륨이있는 3 개의 컨테이너가 있습니다. 각 Docker 볼륨에는 컨테이너로 실행되는 전용 컨트롤러가 있습니다. 각 컨트롤러에는 2 개의 복제본이 있고 각 복제본은 컨테이너입니다. 그림의 화살표는 Docker 볼륨, 컨트롤러 컨테이너, 복제 컨테이너 및 디스크 간의 읽기 / 쓰기 데이터 흐름을 나타냅니다. 하나의 컨트롤러가 고장 나면 각 볼륨에 대해 별도의 컨트롤러를 생성하여 다른 볼륨의 기능에 영향을 미치지 않습니다.



[service flow 2]





예를 들어 두 개의 복제본이있는 100,000 개의 Docker 볼륨이있는 대규모 배포에서는 10 만 개의 컨트롤러 컨테이너와 20 만 개의 복제 컨테이너가 있습니다. 이러한 모든 컨트롤러 및 복제본을 예약, 모니터링, 조정 및 복구하려면 스토리지 오케스트레이션 시스템이 필요합니다.








Longhorn 복제본은 씬 프로비저닝을 지원하는 Linux 스파 스 파일을 사용하여 작성됩니다. 현재 어떤 블록이 사용되는지를 나타내는 추가 메타 데이터를 유지하지 않습니다. 블록 크기는 4K입니다. 스냅 샷을 만들 때 차이점 보관 용 디스크를 만듭니다. 스냅 샷의 수가 증가하면 차이점 보관 용 디스크 체인이 상당히 길어질 수 있습니다. 따라서 읽기 성능을 향상시키기 위해 Longhorn은 차이점 보관 용 디스크가 각 4K 블록에 대해 유효한 데이터를 보유하고 있음을 기록하는 읽기 색인을 유지 관리합니다. 다음 그림에서 볼륨에는 8 개의 블록이 있습니다. 읽기 색인은 8 개의 항목을 가지며 읽기 조작이 발생할 때 느리게 채워집니다. 쓰기 작업은 읽기 색인을 다시 설정하여 실제 색인을 가리 킵니다. 



읽기 색인은 메모리에 보관되며 각 4K 블록에 대해 1 바이트를 사용합니다. 바이트 크기의 읽기 색인은 각 볼륨에 대해 최대 254 개의 스냅 샷을 찍을 수 있음을 의미합니다. 읽기 색인은 각 복제본에 대해 일정량의 메모리 내부 데이터 구조를 사용합니다. 예를 들어, 1TB 볼륨은 256MB의 인 메모리 읽기 색인을 소비합니다. 향후 메모리 맵 파일에 읽기 인덱스를 배치하는 것이 좋습니다.



- 위 내용은 https://rancher.com/microservices-block-storage/ 에서 발췌한  내용입니다.