2017-09-18 1 views
0

각 노드에 약 3 개의 Riak 클러스터가 있습니다. 1TB 디스크 사용. 갑자기 한 노드의 하드 디스크에 복구 할 수없는 오류가 발생했습니다. 실패한 노드 3) riak - 관리자 강제 교체에 실패 노드 새로운 노드 4) riak 아래Riak 복구 할 수없는 디스크 오류

1) riak-관리자 클러스터가 2 가입) : 그래서, 나는 다음과 같은 단계를 사용하여 새 노드를 추가 -admin 클러스터 계획 5) riak-admin 클러스터 커밋.

많은 데이터 전송 및 핸드 오프 이후 3 개의 노드가 모두 1TB 디스크 사용량을 갖는 것은 아니라는 점을 제외하면 거의 문제를 해결했습니다. 이중 2 개만 에 1TB 디스크 사용량이 있습니다. 다른 하나는 거의 비어 있습니다. 즉, 더 이상 디스크에 3 개의 복사본이 더 이상 존재하지 않습니다. 강제로 3 개의 복사본을 만들기 위해 읽기 - 복구 또는 안티 엔트로피를 기다리지 않고 디스크 전체에 3 개의 복제본이 있는지 확인하기 위해 어떤 명령을 실행해야합니까?

답변

0

답변 [email protected]에 같은 질문을 게시하여 가지고 :

(0) 세 개의 노드가 충분하지, 당신은해야 (1) 당신은 반복 수와의 모든 객체를 읽어 5 개 노드 클러스터 - 이것은 모든 객체에 대한 읽기 복구를 트리거합니다. (2) - Engel Sanchez 응답에서 2014 년 4 월 10 일 유사한 질문으로 복사) * AAE가 비활성화 된 경우 데이터를 삭제하기 위해 노드를 중지 할 필요가 없습니다 in anti_entropy 디렉토리 * AAE를 사용하는 경우 AAE 데이터를 롤 방식으로 삭제하면 이 나쁜 트리 및 노드가있는 노드간에 읽기 복구가 시작될 수 있습니다.좋은 나무가있는 경우 데이터가 다른 것처럼 보입니다.

노드가 이미 활성화되어 있고 AAE가 활성화되어 있고 이전의 잘못된 트리가있는 경우 이 더 좋은 방법입니다. 일부 콘솔 명령 로 동적으로 AAE를 비활성화 할 수 있습니다. 이 시점에서 노드를 중지하지 않고 클러스터에서 모든 AAE 데이터를 삭제할 수 있습니다. 편리한 시간에 AAE를 다시 사용하도록 설정합니다. 모든 트리가 다시 빌드되기 때문에 편리하다고 말하면 은 오버로드 된 클러스터에서 문제가 될 수 있습니다. 주말에 에이 작업을 수행하는 것이 클러스터에 추가로드를 허용하지 않는 한 좋은 생각입니다.

riak_core_util : rpc_every_member_ann (riak_kv_entropy_manager, 해제, [], 60000) 동적으로 Riak 콘솔에서 AAE를 사용하지 않도록 설정하는

, 당신은이 명령을 실행할 수 있습니다.

riak_core_util :

와 유사한과 활성화를

rpc_every_member_ann (riak_kv_entropy_manager가 활성화 [] 60000).

마지막 숫자는 RPC 작업의 제한 시간입니다. 이 가 클러스터에 약간의 부하를 줄 수 있기를 바랍니다. (3) 즉 될 것 : (3A) 목록 당신의 선택의 클라이언트를 사용하여 모든 키가 (3B) 각 개체

https://www.tiot.jp/riak-docs/riak/kv/2.2.3/developing/usage/reading-objects/

https://www.tiot.jp/riak-docs/riak/kv/2.2.3/developing/usage/secondary-indexes/

를 가져 오기
관련 문제