백엔드 스토리지 제품 중, CEPH은 스토리지 확장이 필요한 시점이 도달했을 때 매우 우수한 기능을 제공하고 있습니다. 초기 설정 때의 풀(Poll) 구조와 복제 크기에 따라 백엔드 스토리지를 결정이 매우 중요한 요소가 되지만 CEPH은 추가적으로 확장에 매우 용이한 기능을 제공하고 있습니다. 새로운 하드웨어 스토리지 노드를 설치 및 설정, 구성이 되면 CEPH에 새 노드를 위한 클러스터에 추가하도록 명령만 내리면 됩니다. 이러한 동작을 통하여 자동적으로 데이터는 새로운 노드에 분산되어 동작하게 됩니다.
CEPH 클러스터의 하드웨어 성능의 경우, 서로 간에 유사성을 띄고 있어야 합니다. 클러스터의 속도는 클러스터 구성원 중 가장 느린 구성원을 기준으로 결정됨으로 하드웨어 추가 시, 원래 설정과 유사한 하드웨어를 사용하는 것이 좋습니다. 물론 현재 상태에서 시간이 흘러 확장을 할 경우, 새로운 하드웨어를 사용할 수 있지만 네트워크 속도와 구성이 동일하면서 노드의 RAM이 동일한 경우에는 큰문제가 되지 않습니다. 디스크 크기는 크게 문제가 되지 않으나 클러스터 용량 기준은 가장 작은 디스크 공간을 기준으로 결정됩니다. 더 큰 용량의 디스크를 작은 용량의 디스크가 있는 CEPH 클러스터에 추가하게 되면 이전에 사용하고 있는 디스크에만 영향을 줄 뿐 다른 시스템에는 아무런 영향이 주지 않습니다. 이러한 부분은 많은 투자를 통하여 디스크를 확장할 필요 없이 클러스터를 노드 별로 확장할 수 있는 장점이 될 수 있습니다.
또한 CEPH은 또한 OSD 디스크의 95%까지만 사용할 수 있습니다. OSD가 95%에 도달할 경우, 더 많은 데이터를 기록하지 못하고 OSD 디스크는 종료되며, 시스템은 OSD 디스크 사용량이 85% 이상 될 때부터 사용자에게 경고(ERROR STATUS)를 하기 시작합니다. 설정을 통하여 퍼센트를 변경 할 수 있지만 권장하지 않으며, 클러스터의 크기 및 정책에 따라 시스템 운영에 있어서 많은 부분이 달라 질 수 있습니다.
다음은 오류 발생시 여유 공간을 확보하는 것이 얼마나 중요한지를 보여주는 한편의 예시입니다.
CEPH 클러스터에서 각각 10개의 10TB 디스크가 있는 5개의 스토리지 노드가 있습니다. 따라서 하나의 노드는 최대 100TB, 전체 클러스터에 총 500TB을 저장할 수 있습니다.
하나의 가정으로 클러스터에서 250TB의 사용 가능한 스토리지로 2벌 복제를 하며, 클러스터 현재 사용 용량을 스토리지의 퍼센트는 75%로 사용하고 있다는 가정을 하겠습니다. 이 경우, 현재 사용 용량은 187.5TB를 의미하며, 187.5TB는 5개의 노드에 각각 37.5TB로 분산되어 전체 클러스터에서 62.5TB (250TB – 187.5TB)는 남은 가용 용량이 됩니다.
이러한 상황에서 1개의 노드가 중단되어 강제로 종료 되었다고 가정하였을 경우 37.5TB는 5개 대신 4개의 노드로 분산되어야 합니다. 사용 가능한 스토리지는 이제 200TB로 줄어들었지만 각 노드에서 사용되는 스토리지는 46.875TB (187.5TB / 4 Node)로 각 노드의 사용량이 증가하게 됩니다. 사용 가능한 스토리지는 이미 93.75%가 되며 클러스터는 계속적으로 동작하지만 90%가 넘은 클러스터는 시스템 상태가 ERROR로 변하게 됩니다.
모든 것이 계획대로 진행된다면 이러한 상황에서도 정상적으로 복구 할 수 있지만 다른 노드의 시스템 오류가 발생하는 동안 2개의 OSD 디스크가 더 손실되면 클러스터가 자체적으로 종료되어 더 많은 손상을 방지 할 것입니다. 이러한 상태는 인프라 및 서비스에 큰 영향을 미칠 뿐만 아니라 해당 상태에서 클러스터를 복구하는데 상당한 시간이 소모될 것으로 보이며 데이터 손실 또한 발생 할 수 있습니다.
Link: "Things to consider why and when to expand a CEPH-cluster" DATALOUNGES 16.05.2020 Kim Aaltonen
https://www.datalounges.com/things-to-consider-why-and-when-to-expand-a-ceph-cluster/
'Software Defined Storage' 카테고리의 다른 글
Gluster 볼륨을 통한 Samba 서비스 구성 (0) | 2020.10.12 |
---|---|
GlusterFS 설치 (0) | 2020.09.07 |
Ceph Use Case (0) | 2020.08.13 |
Ceph Overview (0) | 2020.08.13 |
Gluster Use Case (0) | 2020.08.12 |