중복성이 낮을 때의 대응 (recover, auto_recover)

서버 에러 등으로 instance가 떨어지고 중복도가 저하되어 버렸을 때의 대처 방법입니다


조건



"localhost_10001", "localhost_10002", "localhost_10003"의 3 인스턴스로 클러스터를 짜고 있었을 때, "localhost_10001"이 떨어졌을 때를 예로 들어 설명합니다

중복 복귀 절차 (recover)



1. 상태 확인



먼저 telnet에서 살아있는 인스턴스에 액세스하고 현재 상태를 확인합니다.
$ telnet telnet 10002
> stat node
.
routing.nodes.length 2 #=> 3から2へ
routing.nodes ["localhost_10002", "localhost_10003"]  #=> localhost_10001が落ちている
.
routing.short_vnodes 133 # 冗長度の低下したvnodeの数
routing.lost_vnodes 0    # 冗長度が0になったvnodeの数
.
.
  • localhost_10001이 떨어졌기 때문에이 인스턴스가 담당하는 vnode 중복성이 떨어졌습니다.
  • 디폴트로 리던던시 2이므로 1instance 떨어지더라도 데이터의 읽고 쓰기는 문제 없게 할 수 있습니다
  • 그러나 해당 vnode는 중복성 1 상태


  • 2. 중복 회복



    명령


    > recover
    
  • 살아있는 인스턴스에서 중복 된 vnode를 재 할당하고 데이터를 복사하여 중복 복구를 수행합니다.
  • 하나의 인스턴스에서 실행하면 OK입니다

  • 실행


    > recover # recover実行
    
    > stat run_recover
      stats.run_recover true # recoverが実行中であることを示します
    
    > stat short
      routing.short_vnodes 127 # 段々減っていきます
    
  • 복구 프로세스가 진행됨에 따라 routing.short_vnodes의 수가 줄어 듭니다

  • 3. 종료 확인


    > stat run_recover
      stats.run_recover false # recoverが終了するとfalseに戻ります
    
    > stat short
      routing.short_vnodes 0 # 冗長度の低下したvnodeが0になっています
    
  • recover 프로세스에 소요되는 시간은 데이터 양과 서버 사양에 따라 다릅니다

  • AUTO RECOVER 기능



    위에서는 수동으로 recover를 실행하고 있었지만, 중복도가 떨어졌을 때 자동으로 recover를 실행하도록 설정하는 것도 가능합니다

    명령


    > set_auto_recover [ 'true' | 'false' ] <sec>
    
  • true로 시작, false로 중지
  • 은 중복 감소를 감지한 후 몇 초 후에 복구를 수행할지 여부를 지정합니다.
  • 유예 기간과 같고 복구가 아닌 다른 조치를 취하고 싶다면이 시간 내에 set_auto_recover false을 실행하여 복구 실행을 취소 할 수 있습니다.


  • 참조 URL



    ROMA Recovery redundancy: htp://로마-kvs. 오 rg / ぇ r rn / Reko ゔ ry _ Retendan cy. HTML
    ROMA Commands Page: h tp // 로마-kvs. 오 rg / こまんds. HTML

    좋은 웹페이지 즐겨찾기