Posting

Machbase의 최신 소식을 지금 만나보세요

[MACHBASE 기초] Machbase Cluster의 노드 상태 모니터링 방법

Machbase Cluster Edition에는 Coordinator, Deployer, Broker, Warehouse 노드들이 존재하며 이들은 각각 서로 다른 역할을 수행하여 하나의 Cluster로 동작하게 된다.

  • 각 노드 별 역할노드 이름설명DeployerServer에 하나씩 상주하면서, Coordinator의 명령을 통한 Broker/Warehouse 설치/삭제 담당Coordinator모든 Server, Process를 관리하는 노드Warehouse실제 데이터를 저장하고 있는 노드, 전체 클러스터 데이터 중 일부 저장Broker실제 클라이언트 프로그램을 맞이하는 노드, 쿼리 계획 및 실행 준비

이 중 Coordinator 노드가 이들의 상태를 관리하고 있으며, 이 노드를 통해 각각의 노드 상태를 모니터링 할 수 있다.

이 글은 Coordinator를 통한 Cluster의 각 노드 상태 모니터링 방법을 설명한다.

  • 사전 조건
    • 환경 변수 설정을 통해 Coordinator가 설치되어 있는 경로를 등록한다.
    • MACHBASE_COORDINATOR_HOME=[Coordinator Directory]
      • Ex) $ export MACHBASE_COORDINATOR_HOME=~/coordinator1
  • Machbase Cluster 가 정상 구동되었고, 환경 변수가 정상적으로 설정 되었으면 machcoordinatoradmin 커멘드 명령을 사용해 Cluster 노드들의 상태 정보를 출력할 수 있다.
    • machcoordinatoradmin  커멘드 명령에 –cluster-status (또는 –cluster-status-full) 옵션을 주면 Cluster 상태 정보 확인이 가능하다.
    • 명령 : machcoordinatoradmin –cluster-status
    • 결과> $ machcoordinatoradmin --cluster-status +-------------+-----------------+-----------------+-----------------+--------------+ | Node Type | Node Name | Group Name | Group State | State | +-------------+-----------------+-----------------+-----------------+--------------+ | coordinator | localhost:29110 | Coordinator | normal | primary | | coordinator | localhost:29120 | Coordinator | normal | normal | | deployer | localhost:29210 | Deployer | normal | normal | | broker | localhost:29310 | Broker | normal | leader | | broker | localhost:29320 | Broker | normal | normal | | warehouse | localhost:29410 | group1 | normal | normal | | warehouse | localhost:29420 | group1 | normal | normal | | warehouse | localhost:29510 | group2 | normal | normal | | warehouse | localhost:29520 | group2 | normal | normal | +-------------+-----------------+-----------------+-----------------+--------------+
    • 명령 : machcoordinatoradmin –cluster-status-full : 더 자세한 정보 확인이 가능하다.
    • 결과> $ machcoordinatoradmin --cluster-status-full +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | Node Type | Node Name | Group Name | Group State | Desired & Actual State | RP State | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | coordinator | localhost:29110 | Coordinator | normal | primary | primary | ----------- | | coordinator | localhost:29120 | Coordinator | normal | normal | normal | ----------- | | deployer | localhost:29210 | Deployer | normal | normal | normal | ----------- | | broker | localhost:29310 | Broker | normal | leader | leader | ----------- | | broker | localhost:29320 | Broker | normal | normal | normal | ----------- | | warehouse | localhost:29410 | group1 | normal | normal | normal | ----------- | | warehouse | localhost:29420 | group1 | normal | normal | normal | ----------- | | warehouse | localhost:29510 | group2 | normal | normal | normal | ----------- | | warehouse | localhost:29520 | group2 | normal | normal | normal | ----------- | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+
    • 설명속성설명Node TypeNode가 Coordinator, Deployer, Broker, Warehouse 중 어떤 타입인지 표시한다Node NameNode 의 IP와 PORT 정보를 표시한다Group Name같은 Data를 가지고 있는 Warehouse 묶음을 나타내는 이름을 표시한다Group StateWarehouse Type에만 해당되며, 같은 Group의 Warehouse 를 총괄하는 상태를 표시한다Desired State변경될 Node 미래 상태 정보를 표시한다Actual State (State)Node 의 현재 상태 정보를 표시한다RP StateWarehouse 간 데이터 복사를 진행할 경우 복사 진행 상태를 표시한다 
    • Group State 설명
      • normal
        • 정상 상태.
        • Group 내 Warehouse에 데이터 입력, 삭제, 읽기 등 모든 명령 수행이 가능하다. +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | Node Type | Node Name | Group Name | Group State | Desired & Actual State | RP State | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | coordinator | localhost:29110 | Coordinator | normal | primary | primary | ----------- | | coordinator | localhost:29120 | Coordinator | normal | normal | normal | ----------- | | deployer | localhost:29210 | Deployer | normal | normal | normal | ----------- | | broker | localhost:29310 | Broker | normal | leader | leader | ----------- | | broker | localhost:29320 | Broker | normal | normal | normal | ----------- | | warehouse | localhost:29410 | group1 | normal | normal | normal | ----------- | | warehouse | localhost:29420 | group1 | normal | normal | normal | ----------- | | warehouse | localhost:29510 | group2 | normal | normal | normal | ----------- | | warehouse | localhost:29520 | group2 | normal | normal | normal | ----------- | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+
      • readonly
        • 읽기만 가능한 상태.
        • 보통 Group 내 특정 Warehouse 에 장애가 발생한 상태이다.
        • Group 내 Warehouse 중 정상인 Warehouse에 대해 데이터 읽기 명령만 수행이 가능하다.+-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | Node Type | Node Name | Group Name | Group State | Desired & Actual State | RP State | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | coordinator | localhost:29110 | Coordinator | normal | primary | primary | ----------- | | coordinator | localhost:29120 | Coordinator | normal | normal | normal | ----------- | | deployer | localhost:29210 | Deployer | normal | normal | normal | ----------- | | broker | localhost:29310 | Broker | normal | leader | leader | ----------- | | broker | localhost:29320 | Broker | normal | normal | normal | ----------- | | warehouse | localhost:29410 | group1 | readonly | normal | normal | ----------- | | warehouse | localhost:29420 | group1 | readonly | normal | normal | ----------- | | warehouse | localhost:29510 | group2 | normal | normal | normal | ----------- | | warehouse | localhost:29520 | group2 | normal | normal | normal | ----------- | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+
    • Actual State 예제
      • primary
        • Coordinator 에만 해당되는 상태이며, Primary, Normal 로 나뉜다.
        • Primary Coordinator가 주로 업무를 담당하며, Primary Coordinator에 장애가 발생하면 Normal Coordinator가 Primary Coordinator가 된다.
        • 해당 상황이 발생하면 MACHBASE_COORDINATOR_HOME 환경변수를 새로 설정된 Primary Coordinator에 맞도록 다시 설정해야한다.+-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | Node Type | Node Name | Group Name | Group State | Desired & Actual State | RP State | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | coordinator | localhost:29110 | Coordinator | normal | primary | primary | ----------- | | coordinator | localhost:29120 | Coordinator | normal | normal | normal | ----------- | | deployer | localhost:29210 | Deployer | normal | normal | normal | ----------- | | broker | localhost:29310 | Broker | normal | leader | leader | ----------- | | broker | localhost:29320 | Broker | normal | normal | normal | ----------- | | warehouse | localhost:29410 | group1 | readonly | normal | normal | ----------- | | warehouse | localhost:29420 | group1 | readonly | normal | normal | ----------- | | warehouse | localhost:29510 | group2 | normal | normal | normal | ----------- | | warehouse | localhost:29520 | group2 | normal | normal | normal | ----------- | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+
      • leader
        • Broker 에만 해당되는 상태이며 Leader, Normal로 나뉜다.
        • Leader Broker가 주로 업무를 담당하며, Leader Broker에 장애가 발생하면 Normal Broker가 Leader Broker가 된다.+-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | Node Type | Node Name | Group Name | Group State | Desired & Actual State | RP State | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | coordinator | localhost:29110 | Coordinator | normal | primary | primary | ----------- | | coordinator | localhost:29120 | Coordinator | normal | normal | normal | ----------- | | deployer | localhost:29210 | Deployer | normal | normal | normal | ----------- | | broker | localhost:29310 | Broker | normal | normal | **unknown** | ----------- | | broker | localhost:29320 | Broker | normal | leader | leader | ----------- | | warehouse | localhost:29410 | group1 | normal | normal | normal | ----------- | | warehouse | localhost:29420 | group1 | normal | normal | normal | ----------- | | warehouse | localhost:29510 | group2 | normal | normal | normal | ----------- | | warehouse | localhost:29520 | group2 | normal | normal | normal | ----------- | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+
      • **unknown**
        • Node Process가 장애 상태일 때 표시된다.+-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | Node Type | Node Name | Group Name | Group State | Desired & Actual State | RP State | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | coordinator | localhost:29110 | Coordinator | normal | primary | primary | ----------- | | coordinator | localhost:29120 | Coordinator | normal | normal | normal | ----------- | | deployer | localhost:29210 | Deployer | normal | normal | normal | ----------- | | broker | localhost:29310 | Broker | normal | leader | leader | ----------- | | broker | localhost:29320 | Broker | normal | normal | normal | ----------- | | warehouse | localhost:29410 | group1 | readonly | normal | **unknown** | ----------- | | warehouse | localhost:29420 | group1 | readonly | normal | **unknown** | ----------- | | warehouse | localhost:29510 | group2 | normal | normal | normal | ----------- | | warehouse | localhost:29520 | group2 | normal | normal | normal | ----------- | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+
      • scrapped
        • 데이터 입력 중 한쪽 Warehouse에 장애가 발생해 Group 내 다른 정상 Warehouse와 데이터 차이가 발생했다고 판단될 때 표시된다.+-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | Node Type | Node Name | Group Name | Group State | Desired & Actual State | RP State | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | coordinator | localhost:29110 | Coordinator | normal | primary | primary | ----------- | | coordinator | localhost:29120 | Coordinator | normal | normal | normal | ----------- | | deployer | localhost:29210 | Deployer | normal | normal | normal | ----------- | | broker | localhost:29310 | Broker | normal | leader | leader | ----------- | | broker | localhost:29320 | Broker | normal | normal | normal | ----------- | | warehouse | localhost:29410 | group1 | readonly | normal | normal | ----------- | | warehouse | localhost:29420 | group1 | readonly | scrapped | scrapped | ----------- | | warehouse | localhost:29510 | group2 | normal | normal | normal | ----------- | | warehouse | localhost:29520 | group2 | normal | normal | normal | ----------- | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+
      • sync-standby, sync-active
        • Warehouse 간 데이터가 동기화될 때 표시된다.
        • sync-active
          • 데이터 동기화 중 데이터의 Main Source가 되는 Warehouse를 나타낸다.
        • sync-standby
          • 데이터 동기화 중 Main Source의 데이터를 수신하는 Warehouse를 나타낸다.
            +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | Node Type | Node Name | Group Name | Group State | Desired & Actual State | RP State | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | coordinator | localhost:29110 | Coordinator | normal | primary | primary | ----------- | | coordinator | localhost:29120 | Coordinator | normal | normal | normal | ----------- | | deployer | localhost:29210 | Deployer | normal | normal | normal | ----------- | | broker | localhost:29310 | Broker | normal | leader | leader | ----------- | | broker | localhost:29320 | Broker | normal | normal | normal | ----------- | | warehouse | localhost:29410 | group1 | readonly | sync-active | sync-active | running | | warehouse | localhost:29420 | group1 | readonly | sync-standby | sync-standby | running | | warehouse | localhost:29510 | group2 | normal | normal | normal | ----------- | | warehouse | localhost:29520 | group2 | normal | normal | normal | ----------- | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+
  • 실시간으로 Cluster 상태 정보의 변화를 모니터링 하고 싶다면 아래의 방법을 사용할 수 있다. (Linux 환경)
    • watch 명령어를 통해 결과를 원하는 주기마다 리프레시 하여 보여줄 수 있다.
    • watch -n[sec] ‘machcoordinatoradmin –cluster-status-full’
    • 아래 명령을 입력하면 machcoordinatoradmin –cluster-status-full 명령이 1초마다 계속 실행된다.> $ watch -n1 'machcoordinatoradmin --cluster-status-full' Every 1.0s: machcoordinatoradmin --cluster-status-full +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | Node Type | Node Name | Group Name | Group State | Desired & Actual State | RP State | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+ | coordinator | localhost:29110 | Coordinator | normal | primary | primary | ----------- | | coordinator | localhost:29120 | Coordinator | normal | normal | normal | ----------- | | deployer | localhost:29210 | Deployer | normal | normal | normal | ----------- | | broker | localhost:29310 | Broker | normal | leader | leader | ----------- | | broker | localhost:29320 | Broker | normal | normal | normal | ----------- | | warehouse | localhost:29410 | group1 | normal | normal | normal | ----------- | | warehouse | localhost:29420 | group1 | normal | normal | normal | ----------- | | warehouse | localhost:29510 | group2 | normal | normal | normal | ----------- | | warehouse | localhost:29520 | group2 | normal | normal | normal | ----------- | +-------------+-----------------+-----------------+-----------------+-------------------------------+-------------+

결론

machcoodinatoradmin 도구를 이용하여 Cluster 모니터링을 수행하는 방법을 살펴보았으며, 각 노드의 상태가 어떤 의미인지를 확인하였다.

연관 포스트

C언어로 Binary data를 Machbase에 넣기

1.개요 Data를 다루다 보면 numeric, varchar 형 데이터뿐만 아니라 JPG, PNG, MP3와 같은 Binary data도 database에 저장해야 할 때가 존재한다. 그러나 일반 data들과는 달리 Binary

[MACHBASE 연동] Android studio에서 JDBC 연결하기

마크베이스 기술지원본부 이현민 1. 개요 수많은 데이터들이 많은 환경에서 생성되고 있는 오늘날, 우리 현대인들의 동반자인 스마트폰 또한 데이터생성의 주체로써 또는 전달자로서 알게 모르게 그 구실을

[MACHBASE 기초] Machbase에서 Sequence 컬럼 사용하기

개요 이번 포스트에서는 Machbase 6.5에 새로 추가될 예정인 Sequence(시퀀스) 기능에 대해서 알아보고자 한다. 시퀀스는 순차적으로 자동으로 증가하는 컬럼을 만들기 위해 사용된다.순자적으로 증가하여 중복된 값이 없으므로