2017-09-18 8 views
0

J'ai un cluster Riak à 3 nœuds ayant chacun env. 1 To d'utilisation du disque. Tout à coup, le disque dur d'un nœud a échoué irrémédiablement. Donc, j'ai ajouté un nouveau nœud en procédant comme suit:Échec du disque irrécupérable Riak

1) groupe Riak-admin join 2) sur le nœud défaillant 3) force remplacer Riak-admin a échoué nœud nouveau nœud 4) Riak -admin cluster plan 5) validation du cluster riak-admin.

Cela presque résolu le problème, sauf que, après beaucoup de transferts de données et, maintenant pas handoffs les trois nœuds ont 1 utilisation du disque de la tuberculose. Seulement deux d'entre eux ont 1 To d'utilisation du disque. L'autre est presque vide. Cela signifie qu'il n'y a plus 3 copies sur le disque. Quelles commandes dois-je exécuter pour m'assurer avec force qu'il y a trois réplicas sur le disque global sans attendre la lecture-réparation ou l'anti-entropie pour faire trois copies?

Répondre

0

réponse a en postant même question [email protected]:

(0) Trois nœuds sont insuffisants, vous devriez avoir 5 noeuds (1) Vous pouvez itérer et lire tous les objets le cluster - cela aussi déclencher la réparation lire pour chaque objet (2) - copié de la réponse Engel Sanchez à une question similaire 10e Avril 2014) * Si AAE est désactivé, vous ne devez pas arrêter le nœud de supprimer les données dans les répertoires anti_entropy * Si est activé AAE, la suppression des données AAN d'une manière de roulement peut déclencher une avalanche de réparations de lecture entre les nœuds avec les mauvais arbres et des nœuds avec de bons arbres car les données semblent diverger.

Si vos noeuds sont déjà ouverts, avec AAE activé et avec les anciens arbres incorrects dans le mélange, il y a une meilleure façon. Vous pouvez désactiver dynamiquement AAE avec certaines commandes de la console. À ce stade, sans arrêter les nœuds, vous pouvez supprimer toutes les données AAE dans le cluster. Au moment opportun, réactivez AAE. Je dis pratique parce que tous les arbres vont commencer à reconstruire, et que peut être problématique dans un cluster surchargé. Faire cela au cours du week-end pourrait être une bonne idée, sauf si votre cluster peut prendre la charge supplémentaire.

Pour désactiver dynamiquement à partir de la console AAE Riak, vous pouvez exécuter cette commande:

riak_core_util: rpc_every_member_ann (riak_kv_entropy_manager, désactiver, [], 60000).

et permettre à l'similaire:

riak_core_util: rpc_every_member_ann (riak_kv_entropy_manager, permettre, [], 60000).

Ce dernier numéro est juste un délai d'attente pour l'opération RPC. J'espère que cette vous permet d'économiser de la charge supplémentaire sur vos clusters. (3) Cela va être: (3a) Liste toutes les clés à l'aide du client de votre choix (3b) Fetch chaque objet

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/