에러시 대비 3 (DNS 캐시 기능)

3764 단어 romaKVSnosql루비dns

DNS 캐시 기능



개요



DNS 서버 정보를 캐시로 ROMA 인스턴스가 저장하는 기능
인스턴스가 IP 주소가 아닌 HostName 등으로 작성된 경우를 위한 기능
  • ( romaA_10001 같은)


  • 움직임



    어떤 이유로 DNS 서버와의 액세스가 불가능한 경우 IP 주소도 FQDN도 아닌 이름의 instance의 경우, ROMA가 다른 서버에 있는 instance에 액세스할 수 없게 된다

    이를 방지하기 위해, ROMA 기동시에 DNS의 정보를 캐쉬로서 각 instance에 유지해, 이 데이터에 근거해 통신을 실시한다

    부족한 사태로 DNS 서버가 다운해도 ROMA의 instance간의 통신은 담보된다!!

    사용법



    config에서 설정하는 방법



    DNS_CAHING의 값을 true로 설정

    config.rb
    .
    .
    # lookup hostname to the nameserver everytime or only first time.
    # if set true, the result of lookup will keep.
    DNS_CACHING = true
    .
    .
    

    동적 변경 명령



    ROMA 부팅 후 ROMA를 멈추지 않고 변경하려면 다음 명령을 실행
    > switch_dns_caching [on|off]
    

    Example



    조건


  • IP 주소도 FQDN도 아닌 이름으로 인스턴스 작성 (이번에는 다음과 같이 작성)
  • 인스턴스
  • vm1_20001
  • vm1_20002
  • vm2_20001
  • vm2_20002

  • 서버
  • vm1( 192.168.223.2 )
  • vm1( 192.168.223.3 )

  • /etc/hosts
    다음과 같이 추가
  • 192.168.223.2 vm1
    192.168.223.3 vm2
    

    확인



    DNS 캐시 기능 off의 경우



    vm1 서버에서
    # vi /etc/hosts
      ###以下の行を削除する
      192.168.223.3 vm2
    
    $ telnet vm1 20001
    > balse
      {"vm1_20002"=>"BYE", "vm2_20001"=>nil, "vm2_20002"=>nil, "vm1_20001"=>"BYE"}
    

    자체 서버의 vm1 서버는 balse (클러스터 종료 명령)를 받지만 vm2는 대상을 모르고 nil입니다.

    DNS 캐시 기능 on의 경우



    vm1 서버에서
    # vi /etc/hosts
      ###以下の行を削除する
      192.168.223.3 vm2
    
    $ telnet vm1 20001
    > balse
      {"vm1_20002"=>"BYE", "vm2_20001"=>nil, "vm2_20002"=>nil, "vm1_20001"=>"BYE"}
    

    /etc/hosts를 삭제했지만 instance 자체에 DNS 정보를 저장하고 있기 때문에 그 정보에 근거해 vm2에도 정상적으로 balse 명령을 보낼 수 있었다!!

    좋은 웹페이지 즐겨찾기