2013-07-03 8 views
6

Ich habe ein Cloud-Storage-System entwickelt, das die gleiche API-Struktur wie Amazon S3 verwendet. Jetzt möchte ich einige Leistungstests auf ausführen, die Objektdaten und Objektmetadaten erhalten. So kann ich mein System mit Amazon S3, OpenStack Storage und anderen Systemen vergleichen.Wie Benchmark Cloud-Storage-Systeme wie Amazon S3

Ich habe mir einige gebräuchliche Dateisystem-Benchmark-Tools angesehen, es gibt zu viel Arbeit, um sie für Cloud Storage-Systeme zu konvertieren.

Ich bin auf der Suche nach einigen Benchmark-Tools ähnlich SIEGE, die nicht nur http-Anforderungen, sondern auch einige Workload-Simulationsfunktionen haben können. Zum Beispiel kann eine Simulation eine gesamte statische HTML-Website im Cloud Storage speichern und dann einen Workload-Stresstest durchführen.

Kann jemand helfen und ein existierendes Framework oder Tools vorschlagen, die relativ leicht für solche Clouds geeignet sind Speichersystem-Benchmark-Szenario?

+0

Beachten Sie, dass S3 ein dynamisches System ist. Wenn Sie also einen "schnellen Benchmark" ausführen, erhalten Sie schreckliche Zahlen. Hier ist ein Artikel über einen ähnlichen Testlauf auf ELB: http://www.rightscale.com/blog/cloud-management-best-practices/benchmarking-load-balancers-cloud – BraveNewCurrency

Antwort

2

Als Sie sind der Anbieter des Cloud-Systems. Es gibt viele Aspekte, die Sie benchmarken sollten.

als Anbieter

  • availbility des Dienstes, Redundanz.
  • Bandbreite im Laufe der Zeit, io/s im Laufe der Zeit.
  • Fragmentierung Ihrer Speicherlösung.
  • Verantwortlichkeit/Wiederherstellung/Failover zu mechanischen Ausfällen.
  • Standard-Cache & Cache-Überlauf in 'massiv Random Access' oder 'seriellem Zugriff'

Für all thoses Dinge gibt es Besonderheiten Werkzeuge/api/Kontrollen. Manchmal ist es eng mit Ihrer Hardware verbunden, manchmal weniger. Aber die Verbindung zwischen Hardware und Software führt zu spezifischen Maß- und Integrationsproblemen. Definieren, was ist ein Benchmark oder Routing eine "Ende an Ende" Abfrage von der "Object Storage API" auf die Festplatten kann nur verrückt hart sein. Wenn Ihr Ziel darin besteht, einen Benchmark (auf einer höheren API-Ebene) zu erhalten, der Ihr System verbessern könnte, dann besteht die einzige Lösung darin, Ihr Cloud-System vollständig zu kontrollieren (und zu verstehen);

Nagios wie Werkzeuge, sind für diese Art von Tests nicht geeignet. Sie benötigen CMDB und einige Abruf-Tools für einen großen datenorientierten Speicher. Sie müssen verstehen, dass alle Benchmark-Lösungen primäre Daten sind, und da Cloud sehr komplex sein kann, gibt es viele Daten. Was Sie aus Ihren Daten lernen, sind nicht nur einige grafische Daten, sondern auch einige, wie Sie Ihre Fragen stellen können. Selbst wenn Sie die Rechtefragen bekommen, werden Sie gebeten, zu arbeiten.

Wie ich in meiner ersten kurzen Antwort gesagt habe, verwenden wir VMware VMmark, um diese Art von Test durchzuführen, aber das ist nur ein kleiner Teil. Es gibt eine so große Anzahl von Tools (juste, um einige Echtzeit-Überwachung zu tun - Benchmarking), dass eine Person sie nicht alle kennen kann. Eine Arbeit, ich mache einige KI-Programme (Bayes-Netzwerk für Fehlererkennung, evolutionäre Algorithmen für die Umverteilung ...), um eine bessere Verwaltung dieser Dinge zu ermöglichen.

Nur um Sie zu ärgern: Erwarten Sie, Benchmark durchzuführen, wenn Sie einen neuen Client installieren, den Speicher von zwei anderen tauschen und den Notfallplan eines letzten ausführen, alles gleichzeitig?

Ein korrekter Benchmark sollte so viele Fälle abdecken. Heute muss die Cloud die Komplexität der Welt bewältigen, jedes chaotische Ereignis; Nichts sollte den Service stören. Es ist ziemlich schwierig, zu sagen, was ein Benchmark ist.

(CMDB Fütterung ist eine Herausforderung für sich)

als Client

yep :-) ich auch Kunde von Cloud-Anbietern bin wie jeder Mensch in naher Zukunft tun wird. Nur ein kleiner Hintergrund. Openstack wurde ursprünglich von Organisationen mit sehr spezifischen Bedürfnissen veröffentlicht (nur um zu glauben, dass es im 'Compute' Teil der 'openstack' API nichts mit der Share/Cluster Verarbeitung zu tun hat, die aussieht wie lhc). Was ist eine normale Website? Youtube ? Amazon? Auch wenn es sich nur um ein Beispiel handelt, könnte eine "gesamte statische HTML-Website" kaum zum Vergleich der Cloud-Lösung verwendet werden.

Diese Woche habe ich auch an der Übersetzung von vCloud api in openstack gearbeitet (loose loose game), vCloud ist gut definiert, mit Brei mehr Objekte, die openstack, aber auch damit decken wir nur so wenig Bedürfnisse von Anwendungen Management.

So wie der Client zwei Cloud-Lösungen vergleichen könnte? In der Tat, bevor er seine eigene Lösung versucht, kann er nicht. Das, warum Kunden, besuchen uns besuchen, fragen, was wir verwenden und wie, unser Prozess ... Am Ende die Werbespots für den Job, meist wenige Monate kostenlos, nur um den Client zu installieren und finden, was wir tun sollten, um neu zu konfigurieren unsere Cloud zu seinen Anwendungen. Sehr wenige Clients wissen, wie viele cpu/ram/disk/iops sie verwenden; Einige von ihnen kaufen dedizierte Ressourcen (da sie dediziert sind, können wir nicht mit anderen Clients teilen), die sie niemals benutzen werden.

Dann sollte jedes Benchmark-Tool für normale Website die Arbeit machen. Wenn Sie spielen möchten, können Sie "innere" Werkzeuge wie swiftstack und tempest öffnen, um eine Art von Feedback zu erhalten, aber Sie müssen definieren, wie eine normale Verwendung einer Website aussehen sollte. Wenn Sie nach openstack-Produkten suchen, sollten Sie sich auch die wiki ansehen. Aber wenn Sie wollen, dass mehr als A ist schneller als B ist die Bedingung, die Sie festgelegt haben, wird es fast unmöglich als Client sein.

Ich glaube zu erklären, warum nicht irgendein 'Client' auf Ihre Frage bis jetzt geantwortet hat, während Ihre Frage in vielen kommerziellen/industriellen/ökologischen Aspekten entscheidend ist.

1

Sie können wahrscheinlich in COSBench suchen, die ein Tool zum Benchmark-Objektspeicher Cloud-Dienste ist.