2016-12-20 2 views
1

Ich benutze Cassandra 3.9.Wie werden separate Volumes für das Commit-Protokoll und die Daten in der EBS-Umgebung verwendet?

Ich habe gelernt, dass ich separate EBS-Volumes für das Commit-Protokoll und die Daten erstellen sollte, wenn Sie Cassandra mit AWS verwenden.

Mein Problem ist wie?

Folgendes ist was ich getan habe und gescheitert ist.

  1. Erstellte Volumes für das Commit-Protokoll und Daten beim Starten von Instanzen.

enter image description here

  1. ich die EBS-Datenträger zur Verfügung gestellt durch folgende Befehle ausführen. (Sie können diese Befehle here finden.)

    sudo mkfs -t ext4 /dev/xvdk 
    sudo mkfs -t ext4 /dev/xvdf 
    sudo mkdir /commitlog 
    sudo mkdir /data 
    sudo mount /dev/xvdk /commitlog 
    sudo mount /dev/xvdf /data 
    
  2. änderte ich die Verzeichnisse für die Commit-Log und Daten in cassandra.yaml.

    commitlog_directory: /commitlog 
    data_file_directories: /data 
    

Nach all diesen Setups getan, lief ich Cassandra aber ich erhielt eine Fehlermeldung.

ERROR 20:49:22 Doesn't have write permissions for /data directory 
ERROR 20:49:22 Insufficient permissions on directory /data 

Also änderte ich den Besitz dieser beiden Verzeichnisse.

sudo chown ubuntu:ubuntu /commitlog 
    sudo chown ubuntu:ubuntu /data 

Ich lief wieder Cassandra. Ich habe einen anderen Fehler bekommen.

ERROR 20:52:44 Unable to verify sstable files on disk 

Was kann getan werden, um dieses Problem zu lösen?

Antwort

1

Es stellte sich heraus, dass jeder Prozess, den ich nahm, in Ordnung war. Das Problem war, dass ich t2.micro-Instanz wegen des Vorteils der freien Schicht verwendete.

Sobald ich jede Instanz von t2.micro zu C4.large hochskalierte, hat alles gut funktioniert.

Ich dachte darüber nach, diesen Beitrag zu löschen, aber ich beschloss, ihn zu behalten, weil jemand ihn hilfreich finden könnte.

Verwandte Themen