PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Storage Systeme



Dellerium
08-09-2008, 08:25
Hallo zusammen,

wir sind gerade dabei, unsere neue Hardware zu planen und ich dachte mir, das ihr dazu vllt. ein paar Ideen/Anregungen habt :)

Das System soll unseren bisherigen Application/Datenbank Cluster ersetzen, der mitlerweile doch am Limit läuft. Das aktuelle Systeme läuft mit 2x DL380G4 und einer MSA500 (voll bestückt um möglichst viele Spindeln zur Verfügung zu haben) als ServiceGuard Cluster, der auf dem einen Node eine Java Anwendung und auf dem anderen Node eine PostgreSQL DB verwaltet.
Problem ist hauptsächlich, das wir einen relativ hohen WaitIO Anteil haben, da für die DB sichergestellt sein muss, das die Daten auf dem Storage weggeschrieben wurden und die DB daher wartet, bis sie dazu auch die Rückmeldung erhält (PostgreSQL DB mit fsync=on). Gepaart mit recht vielen Update Statements und ~200 Usern ist das der Performance nicht unbedingt dienlich.

Konkret planen wir im Augenblick folgendes:

2x DL580G5 als Datenbank und Applikation Server (ServiceGuard)
dazu 2x StorageWorks SAN Switches
und eine MSA 2012fc als zentrales Storage. (evtl. weitere Enclosements bei Bedarf.)

Mein Augenmerk gilt im Moment ausschliesslich der SAN Hardware und dort vornehmlich der waitIO Problematik. Welche Lösungen wendet ihr an, um den waitIO zu verringern, also die Performance zu erhöhen? Eine Möglichkeit die Leistung zu erhöhen dürften weitere Enclosments sein...
Eine andere Möglichkeit wäre ein RamSan (ich weiss, das die Dinger verteufelt viel kosten).
Mir sind auch bereits Vorschläge in Richtung EVA gemacht worden...
Kann mir einer von euch mit Erfahrungen aus der Praixs helfen?

Setzt ihr Umgebungen ein, in denen zwei Storages zur Anwendung kommen und die Daten von einem Storage auf ein anderes gespielt werden, also eine synchronisation erfolgt? Stichwort Ausfallsicherheit...

Gruß Dellerium

bla!zilla
14-09-2008, 11:21
Hallo zusammen,

Hi,



wir sind gerade dabei, unsere neue Hardware zu planen und ich dachte mir, das ihr dazu vllt. ein paar Ideen/Anregungen habt :)


Gerne doch. :)



Das System soll unseren bisherigen Application/Datenbank Cluster ersetzen, der mitlerweile doch am Limit läuft. Das aktuelle Systeme läuft mit 2x DL380G4 und einer MSA500 (voll bestückt um möglichst viele Spindeln zur Verfügung zu haben) als ServiceGuard Cluster, der auf dem einen Node eine Java Anwendung und auf dem anderen Node eine PostgreSQL DB verwaltet.
Problem ist hauptsächlich, das wir einen relativ hohen WaitIO Anteil haben, da für die DB sichergestellt sein muss, das die Daten auf dem Storage weggeschrieben wurden und die DB daher wartet, bis sie dazu auch die Rückmeldung erhält (PostgreSQL DB mit fsync=on). Gepaart mit recht vielen Update Statements und ~200 Usern ist das der Performance nicht unbedingt dienlich.


Ein hoher IOwait deutet darauf hin, dass eine Komponente in dem Konstrukt, ich tippe auf die DB, die Daten nicht schnell genug wegbekommt. IOwait ist ein indiz dafür, dass auf die Platte nicht schnell genug sind. Du könntest mittels sar -d nachschauen, welche Disk für den hohen IOwait verantwortlich ist.



Konkret planen wir im Augenblick folgendes:

2x DL580G5 als Datenbank und Applikation Server (ServiceGuard)
dazu 2x StorageWorks SAN Switches
und eine MSA 2012fc als zentrales Storage. (evtl. weitere Enclosements bei Bedarf.)


Not bad... Sollen die DL580 auch als Quad CPU Maschine ausgelegt werden? Alternativ lieber zwei DL380 mit zwei Quadcores, sofern nicht geplant ist irgendwann mal auf vier CPUs aufzurüsten. Ich schlage auf jeden Fall vor, ein zweites MSA2012 Diskshelfs dazuzunehmen, um die Last über die Shelfs zu verteilen. Möglich wäre eine Config mit 6x 15k im ersten, und 6x 15k im zweiten Shelf. Ich schätze, dass das System so 2500 bis 2600 IOPS in einem RAID 1+0 bringen sollte. Ich würde auch vorschlagen, sofern mehrere Vdisks (Array bei der MSA500) und (Volumes Logisches Laufwerk bei der MSA500) zum Einsatz kommen sollen, die Disks über die Controller zu verteilen. Heißt konkret: Disk für die DB über Controller A, Disk für die JAVA Applikation über Controller B. Wichtig: Je mehr Spindeln, desto besser. Vielleicht also doch 24x 15k. ;) Leider gibt es keine kleineren Platten für die MSA



Mein Augenmerk gilt im Moment ausschliesslich der SAN Hardware und dort vornehmlich der waitIO Problematik. Welche Lösungen wendet ihr an, um den waitIO zu verringern, also die Performance zu erhöhen? Eine Möglichkeit die Leistung zu erhöhen dürften weitere Enclosments sein...

Mehr Platten ist immer gut, aber selten die Lösung wenn man ein konkretes Problem mit dem Kernel oder einer Applikation hat.



Eine andere Möglichkeit wäre ein RamSan (ich weiss, das die Dinger verteufelt viel kosten).


Lasst das lieber... sehr geile Dinger (ein Kunde hat sowas im Einsatz), aber so unglaublich teuer, dass man das Geld lieber anderweitig investieren sollte.



Mir sind auch bereits Vorschläge in Richtung EVA gemacht worden...
Kann mir einer von euch mit Erfahrungen aus der Praixs helfen?


Ich habe viele EVAs bei Kunden stehen in sehr unterschiedlichen Größen (EVA3000 mit 2C1D bis EVA8100 mit 2C12D). Geile Systeme, sehr schnell, schneller als MSAs in jedem Fall. Die Virtualisierung ist immer noch marktführend. Haben aber auch ihren Preis. Kosten ca. 30% mehr, als eine vergleichbare MSA2000 Lösung.



Setzt ihr Umgebungen ein, in denen zwei Storages zur Anwendung kommen und die Daten von einem Storage auf ein anderes gespielt werden, also eine synchronisation erfolgt? Stichwort Ausfallsicherheit...


Ja, aber in unterschiedlicher Form. Die MSA2000 kann keinen controllerseitigen Mirror. Die EVAs sehr wohl. In Kombination mit ServiceGuard und der ClusterExtension ist auch ein vollautomatischer Failover möglich. Ansonsten sind Failoverszenarien bei Storagesystemen immer mit etwas Handarbeit verbunden. Ist aber auch verständlich: Hier geht es um den K-Fall, da gelten andere Wiederherstellungszeiten. ;) Wir reden hier natürlich nicht über Tage, aber je nach Ausfall dürfen es schon mal 30 Minuten sein. Je nachdem wie gut man sowas vorbereitet hat. Es gibt natürlich auch die Möglichkeit einen Mirror über SAN Virtualisierungssysteme, wie z.B. den IBM SAN Volume Controller, oder Softwaresysteme wie DataCore SANmelody oder SANsymphony zu bauen. Damit wird der gesamte Speicher noch mal virtualisiert. Die Applikationsserver, die Speicher aus dem SAN allokieren wollen, sprechen in dem Fall mit den Virtualisierungsplattformen, und diese mit dem Backend-Storage. Bei einem Ausfall, bekommen das die Applikationsserver natürlich nicht mit.

Alles eine Frage des Geldes, und was man erreichen will.

Dellerium
15-09-2008, 12:59
Hi bla!zilla,

ich hab gehofft, das du mir antwortest :)



Not bad... Sollen die DL580 auch als Quad CPU Maschine ausgelegt werden? Alternativ lieber zwei DL380 mit zwei Quadcores, sofern nicht geplant ist irgendwann mal auf vier CPUs aufzurüsten.


Die DL580 sollen als Quad Maschinen mit je 64GB Ram ausgelegt werden (da habe ich mich soweit eigentlich auch schon festgelegt. Vorerst will ich 2 Quad Core CPU's nutzen. Den 580 habe ich ausgewählt, weil ich die Option haben will, in der Zukunft noch aufrüsten zu können.
Wir erwägen im Augenblick noch, ob wir evtl. eine Datenbank Middleware einsetzen (Sequoia). Das würde uns auch einen zusätzlichen Cache und mehr Ausfallsicherheit bescheren. Falls es dazu kommen sollte, würde ich evtl. doch auf die 380er gehen und die dann nur mit 32GB bestücken - dafür dann aber die Anzahl der Maschinen verdoppeln.



Ich schlage auf jeden Fall vor, ein zweites MSA2012 Diskshelfs dazuzunehmen, um die Last über die Shelfs zu verteilen. Möglich wäre eine Config mit 6x 15k im ersten, und 6x 15k im zweiten Shelf. Ich schätze, dass das System so 2500 bis 2600 IOPS in einem RAID 1+0 bringen sollte. Ich würde auch vorschlagen, sofern mehrere Vdisks (Array bei der MSA500) und (Volumes Logisches Laufwerk bei der MSA500) zum Einsatz kommen sollen, die Disks über die Controller zu verteilen. Heißt konkret: Disk für die DB über Controller A, Disk für die JAVA Applikation über Controller B. Wichtig: Je mehr Spindeln, desto besser. Vielleicht also doch 24x 15k. ;) Leider gibt es keine kleineren Platten für die MSA


Mit dem Gedanken haben wir auch schon gespielt - allerdings hatten wir überlegt, ein DiskShelf mit 36 Platten zu bestücken (mit zwei zusätzlichen Enclosures) und dann halt mehrere Volumes anzulegen auf die dann getrennt zugegriffen werden kann. (würden dann ja jeweils auf seperaten Plattengruppen liegen)
Falls schon mehrere Shelfs zum Einsatz kommen, würde ich eher noch die Datenbank auf mehrere shelfs verteilen - bei PostgreSQL ist das afaik möglich. Dann könnte die DB zeitgleich auf verschiedene Tabellen schreiben.
Schlägst du zwei seperate Shelfs vor, um zusätzliche I/O Kanäle zu haben und so zeitgleich mehr I/O request bedienen zu können oder hat das auch noch andere Gründe?
Sorgen macht uns ausschlieslich die DB. Die Java Applikation wird einmal gestartet und arbeitet dann nicht mehr auf den Platten. Das die auf dem Storage liegt, hat damit zu tun, das wir die zentral ablegen wollten (Service Guard).
Das die kleinsten Platten bereits 146GB haben ist ärgerlich - aber soviel kosten die ja auch nicht... bei der EVA ist das angesichts der Preise viel schlimmer.
Waren die 2500 angedachten IOps für Random gedacht?



Lasst das lieber... sehr geile Dinger (ein Kunde hat sowas im Einsatz), aber so unglaublich teuer, dass man das Geld lieber anderweitig investieren sollte.


Wir haben das Ende letzter Woche nochmal durchgerechnet... Unser Problem, bezogen auf das RamSan, wäre die Größe der DB gewesen. Wir erwarten für die kommenden 4 Jahre (wir haben jetzt Berechnungen anhand des Datenzuwachses seit Janur angestellt und dann hochgerechnet + dicke Reserve für künftige Änderungen die bereits angedacht sind) ein Volumen von ca. 30-50GB. Genauer geht es halt nicht. Leider fallen wir damit aus dem 32GB Bereich raus, in dem ein RamSan noch erschwinglich gewesen wäre. So läge es bei (deutlich) mehr als 50k € und das wird dann einfach zu teuer... Zumal es eigentlich ohnehin oversized ist. Die Dinger haben verteufelt viel Leistung und das lässt sich TMS halt auch gut bezahlen...



Ich habe viele EVAs bei Kunden stehen in sehr unterschiedlichen Größen (EVA3000 mit 2C1D bis EVA8100 mit 2C12D). Geile Systeme, sehr schnell, schneller als MSAs in jedem Fall. Die Virtualisierung ist immer noch marktführend. Haben aber auch ihren Preis. Kosten ca. 30% mehr, als eine vergleichbare MSA2000 Lösung.


2C1D = 2 Controller 1 Diskshelf?

Wir haben uns auch bereits EVA Systeme (4400) angesehen bzw. mit unserem Lieferanten darüber diskutiert. Das Problem ist halt, das wir damit bisher noch keine Erfahrung gemacht haben und nicht wissen, wie schnell die Dinger wirklich sind.(trifft aber auch die MSA2000 ebenso zu) Ich habe zwar von 23k Random I/O's gelesen, aber wenn ich mich nicht irre, dann galt der Wert einer EVA mit 96 Platten. Nachdem ich jetzt gesehen habe, was eine einzelne Platte für eine Eva kostet - hey, so teuer ist ein RamSan garnicht ;)

Mein Hauptproblem ist halt, das ich keine Vergleichmöglichkeiten zwischen einer EVA4400 und einer MSA2000 habe.
Ich werde mal bei HP anfragen, ob die solche Zahlen auch für die MSA haben. Hast du ne Idee wo man sowas bekommen könnte?
Die 30% halt ich im Augenblick aber für ein Gerücht :) Alleine die EVA 4400 sollte das dreifache(!) der MSA2000 kosten. Von den zusätzlichen Komponenten mal abgesehen...
Allerdings waren in der einen Konfiguration auch QLogic, in der anderen Konfiguration Brocade SAN Switches drin - ich gehe mal davon aus, das du Erfahrung mit beiden Serien hast, oder?



Ja, aber in unterschiedlicher Form. Die MSA2000 kann keinen controllerseitigen Mirror. Die EVAs sehr wohl. In Kombination mit ServiceGuard und der ClusterExtension ist auch ein vollautomatischer Failover möglich. Ansonsten sind Failoverszenarien bei Storagesystemen immer mit etwas Handarbeit verbunden. Ist aber auch verständlich: Hier geht es um den K-Fall, da gelten andere Wiederherstellungszeiten. ;) Wir reden hier natürlich nicht über Tage, aber je nach Ausfall dürfen es schon mal 30 Minuten sein. Je nachdem wie gut man sowas vorbereitet hat. Es gibt natürlich auch die Möglichkeit einen Mirror über SAN Virtualisierungssysteme, wie z.B. den IBM SAN Volume Controller, oder Softwaresysteme wie DataCore SANmelody oder SANsymphony zu bauen. Damit wird der gesamte Speicher noch mal virtualisiert. Die Applikationsserver, die Speicher aus dem SAN allokieren wollen, sprechen in dem Fall mit den Virtualisierungsplattformen, und diese mit dem Backend-Storage. Bei einem Ausfall, bekommen das die Applikationsserver natürlich nicht mit.


Das die MSA keine Controller basierte Replizierung unterstützt hatte ich bereits gesehen - ist schade aber verständlich, das HP sich sowas für "bessere" System aufhebt.
Hast du Erfahrung mit den von dir angesprochenen SAN Virtualisierungssystemen? Wo würde sich sowas preislich ca. bewegen?

Ich hatte nämlich auch schon mit dem Gedanken gespielt, die gleiche Konfiguration x2 zu nehmen und dann die Replizierung Serverseitig zu fahren. Wenn möglich würde ich gerne ein zweites Storage einsetzen um einen SPoF zu vermeiden. Die Replizierung müsste dann halt entweder über die Server passieren oder über eine entsprechende Software die das virtualisiert.
Allerdings sind das eher noch Überlegung - ob ich das durchbekomme muss ich noch sehen ;)

Gruß Dellerium

bla!zilla
15-09-2008, 17:51
Die DL580 sollen als Quad Maschinen mit je 64GB Ram ausgelegt werden (da habe ich mich soweit eigentlich auch schon festgelegt. Vorerst will ich 2 Quad Core CPU's nutzen. Den 580 habe ich ausgewählt, weil ich die Option haben will, in der Zukunft noch aufrüsten zu können. Wir erwägen im Augenblick noch, ob wir evtl. eine Datenbank Middleware einsetzen (Sequoia). Das würde uns auch einen zusätzlichen Cache und mehr Ausfallsicherheit bescheren. Falls es dazu kommen sollte, würde ich evtl. doch auf die 380er gehen und die dann nur mit 32GB bestücken - dafür dann aber die Anzahl der Maschinen verdoppeln.


Ah okay. Hatte mir sowas schon gedacht. Ich weiß leider nicht wie eure Applikation auf ein scale out reagiert. Aber überlegt euch, wenn ihr auf mehr Maschinen setzt, den Einsatz von Blades. Gerade das C3000 wird derzeit sehr aggressiv bepreist.



Mit dem Gedanken haben wir auch schon gespielt - allerdings hatten wir überlegt, ein DiskShelf mit 36 Platten zu bestücken (mit zwei zusätzlichen Enclosures) und dann halt mehrere Volumes anzulegen auf die dann getrennt zugegriffen werden kann. (würden dann ja jeweils auf seperaten Plattengruppen liegen) Falls schon mehrere Shelfs zum Einsatz kommen, würde ich eher noch die Datenbank auf mehrere shelfs verteilen - bei PostgreSQL ist das afaik möglich. Dann könnte die DB zeitgleich auf verschiedene Tabellen schreiben.Schlägst du zwei seperate Shelfs vor, um zusätzliche I/O Kanäle zu haben und so zeitgleich mehr I/O request bedienen zu können oder hat das auch noch andere Gründe?Sorgen macht uns ausschlieslich die DB. Die Java Applikation wird einmal gestartet und arbeitet dann nicht mehr auf den Platten. Das die auf dem Storage liegt, hat damit zu tun, das wir die zentral ablegen wollten (Service Guard). Das die kleinsten Platten bereits 146GB haben ist ärgerlich - aber soviel kosten die ja auch nicht... bei der EVA ist das angesichts der Preise viel schlimmer.
Waren die 2500 angedachten IOps für Random gedacht?


36 Platten würde drei Shelfs entsprechen. Ich würde halt zusehen, dass ich eine Vdisk anlege, damit ich die maximale Anzahl von Platten für meine Volumes habe. Eine Aufschlüsselung der Begrifflichkeiten zur MSA2000 findest du über die Suche in meinem Blog. Die MSA würde sich dann um die Verteilung über die Shelfs kümmern. Trotzdem kann eine Verteilung der DB über mehrere Partitionen Sinn machen. Das müsste man mal performancetechnisch erfassen. Die 2500 IOPS waren nur mal so hochgeworfen. Ich habe heute Morgen auf eine EVA4400 mit 48x 300 GB 15k das IOmeter losgelassen: ca. 9500 IOPS, knapp 300 MB die Sekunde bei 32 KB sequential Write IO (RAID 1). Theoretisch könnte man hier etwas herunterechnen, aber das wird schwer.



Wir haben das Ende letzter Woche nochmal durchgerechnet... Unser Problem, bezogen auf das RamSan, wäre die Größe der DB gewesen. Wir erwarten für die kommenden 4 Jahre (wir haben jetzt Berechnungen anhand des Datenzuwachses seit Janur angestellt und dann hochgerechnet + dicke Reserve für künftige Änderungen die bereits angedacht sind) ein Volumen von ca. 30-50GB. Genauer geht es halt nicht. Leider fallen wir damit aus dem 32GB Bereich raus, in dem ein RamSan noch erschwinglich gewesen wäre. So läge es bei (deutlich) mehr als 50k € und das wird dann einfach zu teuer... Zumal es eigentlich ohnehin oversized ist. Die Dinger haben verteufelt viel Leistung und das lässt sich TMS halt auch gut bezahlen...


Das tun sie in der Tat.



2C1D = 2 Controller 1 Diskshelf?

Wir haben uns auch bereits EVA Systeme (4400) angesehen bzw. mit unserem Lieferanten darüber diskutiert. Das Problem ist halt, das wir damit bisher noch keine Erfahrung gemacht haben und nicht wissen, wie schnell die Dinger wirklich sind.(trifft aber auch die MSA2000 ebenso zu) Ich habe zwar von 23k Random I/O's gelesen, aber wenn ich mich nicht irre, dann galt der Wert einer EVA mit 96 Platten. Nachdem ich jetzt gesehen habe, was eine einzelne Platte für eine Eva kostet - hey, so teuer ist ein RamSan garnicht ;)


Die 23k IOPS sind möglicherweise Cacheleistung, da wäre ich vorsichtig mit solchen Werten. Aber eine EVA ist gar nicht so teuer. Vielleicht werden die euch nur so teuer angeboten. :)



Mein Hauptproblem ist halt, das ich keine Vergleichmöglichkeiten zwischen einer EVA4400 und einer MSA2000 habe.
Ich werde mal bei HP anfragen, ob die solche Zahlen auch für die MSA haben. Hast du ne Idee wo man sowas bekommen könnte?
Die 30% halt ich im Augenblick aber für ein Gerücht :) Alleine die EVA 4400 sollte das dreifache(!) der MSA2000 kosten. Von den zusätzlichen Komponenten mal abgesehen...
Allerdings waren in der einen Konfiguration auch QLogic, in der anderen Konfiguration Brocade SAN Switches drin - ich gehe mal davon aus, das du Erfahrung mit beiden Serien hast, oder?


Also gerade die Starterkits werden gut bepreist. Wenn du wirklich mal den Vergleich haben willst, hast du nur zwei Möglichkeiten:

- Partner der die Hardware beschaffen kann
- Benchmarkcenter von HP für 1200,- $ am Tag



Das die MSA keine Controller basierte Replizierung unterstützt hatte ich bereits gesehen - ist schade aber verständlich, das HP sich sowas für "bessere" System aufhebt.
Hast du Erfahrung mit den von dir angesprochenen SAN Virtualisierungssystemen? Wo würde sich sowas preislich ca. bewegen?


Eigentlich nur mit DataCore. Den IBM SVC kenne ich halt auch etwas, aber nicht im Detail. DataCore ist ganz brauchbar, bringt auch durch das Caching noch etwas Performance. Hat aber auch Nachteile, wie z.B. den Support. Da muss man höllisch aufpassen, dass man sich keine Kombinationen baut, die am Ende des Tages keiner mehr supported.



Ich hatte nämlich auch schon mit dem Gedanken gespielt, die gleiche Konfiguration x2 zu nehmen und dann die Replizierung Serverseitig zu fahren. Wenn möglich würde ich gerne ein zweites Storage einsetzen um einen SPoF zu vermeiden. Die Replizierung müsste dann halt entweder über die Server passieren oder über eine entsprechende Software die das virtualisiert.
Allerdings sind das eher noch Überlegung - ob ich das durchbekomme muss ich noch sehen ;)


Ein Software-RAID wäre eine Möglichkeit, aber das in Kombination mit Cluster ist schon wieder problematisch und anfällig.

Ich weiß leider nicht wo dein Brötchengeber sitzt, aber wenn du Interesse an einem geschäftlichen Kontakt hast, dann kannst du mir mal eine PN schicken.