<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wikimirror.piraten.tools/wiki/index.php?action=history&amp;feed=atom&amp;title=Archiv%3A2009%2FIT%2FKonzepte%2FServerstruktur%2FKonzept_2009</id>
	<title>Archiv:2009/IT/Konzepte/Serverstruktur/Konzept 2009 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wikimirror.piraten.tools/wiki/index.php?action=history&amp;feed=atom&amp;title=Archiv%3A2009%2FIT%2FKonzepte%2FServerstruktur%2FKonzept_2009"/>
	<link rel="alternate" type="text/html" href="https://wikimirror.piraten.tools/wiki/index.php?title=Archiv:2009/IT/Konzepte/Serverstruktur/Konzept_2009&amp;action=history"/>
	<updated>2026-05-05T09:42:06Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Piratenwiki Mirror</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wikimirror.piraten.tools/wiki/index.php?title=Archiv:2009/IT/Konzepte/Serverstruktur/Konzept_2009&amp;diff=55629972&amp;oldid=prev</id>
		<title>imported&gt;Infosocke: hat „IT/Konzepte/Serverstruktur/Konzept 2009“ nach „Archiv:2009/IT/Konzepte/Serverstruktur/Konzept 2009“ verschoben</title>
		<link rel="alternate" type="text/html" href="https://wikimirror.piraten.tools/wiki/index.php?title=Archiv:2009/IT/Konzepte/Serverstruktur/Konzept_2009&amp;diff=55629972&amp;oldid=prev"/>
		<updated>2012-05-18T18:20:40Z</updated>

		<summary type="html">&lt;p&gt;hat „&lt;a href=&quot;/IT/Konzepte/Serverstruktur/Konzept_2009&quot; class=&quot;mw-redirect&quot; title=&quot;IT/Konzepte/Serverstruktur/Konzept 2009&quot;&gt;IT/Konzepte/Serverstruktur/Konzept 2009&lt;/a&gt;“ nach „&lt;a href=&quot;/Archiv:2009/IT/Konzepte/Serverstruktur/Konzept_2009&quot; title=&quot;Archiv:2009/IT/Konzepte/Serverstruktur/Konzept 2009&quot;&gt;Archiv:2009/IT/Konzepte/Serverstruktur/Konzept 2009&lt;/a&gt;“ verschoben&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Bitte [[Diskussion:IT/Konzepte/Serverstruktur/Konzept_2009|Diskussions-Seite]] beachten.'''&lt;br /&gt;
&lt;br /&gt;
= Grundsätzliche Überlegungen=&lt;br /&gt;
&lt;br /&gt;
* Welche Zielverfügbarkeit will man erreichen? 99.5% kriegt man noch einigermaßen hin, jeder Fitzel darüber wird gleich '''richtig richtig richtig''' kostspielig.&lt;br /&gt;
* Will man HA-Cluster?&lt;br /&gt;
* Will man Loadbalancing?&lt;br /&gt;
** IP-Loadbalancer&lt;br /&gt;
** Application-Level-Loadbalancer&lt;br /&gt;
* Will man SSL? (Und wo soll es terminieren? Apache oder Loadbalancer?)&lt;br /&gt;
* Will man Hardwarewartungsverträge abschließen? (Spielt auch bei der möglichen Verfügbarkeit eine Rolle, ob ich das Ersatzteil in max. 4h kriege oder &amp;quot;irgendwann&amp;quot;.)&lt;br /&gt;
* Performance: Dauerbetrieb vs. Lastspitzen (Wahlabend etc.)&lt;br /&gt;
&lt;br /&gt;
= Physikalische Server =&lt;br /&gt;
* 2x OVH MG-09 BestOf&lt;br /&gt;
** 2x Intel Xeon (Core) Harpertown E5405&lt;br /&gt;
*** 4 Kerne&lt;br /&gt;
*** 2,00 GHz&lt;br /&gt;
*** FSB 1333&lt;br /&gt;
*** 80W TDP&lt;br /&gt;
*** 12MB L2 Cache&lt;br /&gt;
** 16 GB DDR2 (non-ECC)&lt;br /&gt;
*** 4x 2GB Kingston DDR2-667&lt;br /&gt;
*** 2x 4GB Kingston DDR2-667&lt;br /&gt;
** 2x 750 GB SATA HDD: Hitachi HDS72107 GK8O PQ&lt;br /&gt;
** Supermicro X7DCA-L&lt;br /&gt;
&lt;br /&gt;
Nachfragen: sind die Platten als HotSwap ausgelegt? Üblicherweise nicht, nur gegen Aufpreis. Dann bedeutet Ausfall einer Platte eine (allerding halbwegs planbare) Zwangspause.&lt;br /&gt;
&lt;br /&gt;
Merker:&lt;br /&gt;
Das SoftRAID muss entsprechend überwacht werden, damit der Ausfall einer Platte bemerkt wird und eine Wartungszeit eingeplant werden kann, bevor auch die zweite die Hufe reißt.&lt;br /&gt;
&lt;br /&gt;
= Virtuelle Server =&lt;br /&gt;
&lt;br /&gt;
* ProxMox (virtuozzo, kvm)&lt;br /&gt;
* (vserver)&lt;br /&gt;
* (Solaris (mit Zonen)) - solaris ist interessant, aber wieviele kennen sich damit RICHTIG gut aus?&lt;br /&gt;
&lt;br /&gt;
== Storage ==&lt;br /&gt;
&lt;br /&gt;
* 500-600 GB RAID1 pro Server, gesynct mit DRBD und Heartbeat&lt;br /&gt;
** Active-Passive-Variante: sicher, erprobt&lt;br /&gt;
** Active-Active-Variante: neu, evtl. performanter&lt;br /&gt;
* Darauf ein LVM, um den Platz dynamisch verteilen zu können.&lt;br /&gt;
* Stellt gemeinsam genutzte Dateien zur Verfügung&lt;br /&gt;
* Stellt Netboot-Images für Application-Server zur Verfügung&lt;br /&gt;
* Stellt Netboot-Images für Cache-Server zur Verfügung&lt;br /&gt;
* Stellt FAI-Install-Server zur Verfügung&lt;br /&gt;
* Stellt Konfigurations-Files im SVN zur Verfügung&lt;br /&gt;
* evtl. Home-Directories der Admins hier, sowie NIS bzw. LDAP zum Admin / User-Management für die Shells&lt;br /&gt;
&lt;br /&gt;
== Datenbank ==&lt;br /&gt;
&lt;br /&gt;
* 100-200 GB RAID1 pro Server&lt;br /&gt;
* Master-Slave-Replikation&lt;br /&gt;
* [http://marksitblog.blogspot.com/2007/07/mysql-5-high-availability-with-drbd-8.html MySQL-HA mit DRBD]&lt;br /&gt;
&lt;br /&gt;
== Application ==&lt;br /&gt;
&lt;br /&gt;
* Kleine Partition oder Netzwerk-Boot&lt;br /&gt;
* Holt sich die Daten via NFS vom Storage-Server&lt;br /&gt;
* Installtion / Update der Config via FAI&lt;br /&gt;
* Überlegung: Ein Application-Server für alle Services (Wiki, Forum, Web, Drupal, Wordpress, ...) oder getrennte Services&lt;br /&gt;
** gemeinsam: Bessere Ausnutzung der Systemressourcen&lt;br /&gt;
** gemeinsam: Beim Skalieren auf Physikalische Hardware kann man auf Virtualisierung verzichten&lt;br /&gt;
** getrennt: Bessere Trennung der administrativen Zuständigkeit&lt;br /&gt;
** getrennt: Bessere Abschirmung der Services voneinander&lt;br /&gt;
** getrennt: Umzug einzelner Dienste Zwecks Loadbalancing zwischen den BareMetals ist mit VMs einfacher&lt;br /&gt;
&lt;br /&gt;
== Caching ==&lt;br /&gt;
&lt;br /&gt;
* Kleine Partition oder Netzwerk-Boot&lt;br /&gt;
* Holt sich die Daten via NFS vom Storage-Server&lt;br /&gt;
* Installation / Update der Config via FAI&lt;br /&gt;
&lt;br /&gt;
== Mail ==&lt;br /&gt;
&lt;br /&gt;
* Postfix mit DB-Mail und die normale DB mitbenutzen&lt;br /&gt;
* Postfix mit DB-Mail und eine eigene DB verwenden&lt;br /&gt;
* Postfix mit Dovecot auf dem Storage-Server&lt;br /&gt;
* Postfix mit Dovecot auf eigenem Storage&lt;br /&gt;
&lt;br /&gt;
== Logging / Monitoring ==&lt;br /&gt;
&lt;br /&gt;
* sämtliche Log-Files von den Caching-Servern&lt;br /&gt;
* Error-Logs vom Apachen?&lt;br /&gt;
* Syslog von allen Kisten&lt;br /&gt;
* Monitoring von System-Kennzahlen (load, free space, mem, #prozesse)&lt;br /&gt;
* Monitoring von Dienst-Kennzahlen (requests, request-dauer)&lt;br /&gt;
* Für's Logging von System- und Dienst-Kennzahlen [http://en.wikipedia.org/wiki/Munin_%28network_monitoring_application%29 Munin] oder [http://en.wikipedia.org/wiki/Cacti_%28software%29 Cacti] oder [http://www.opennms.org OpenNMS] oder [http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems ...]&lt;br /&gt;
&lt;br /&gt;
= Datennetzverbindungen =&lt;br /&gt;
&lt;br /&gt;
* Öffentliche Interfaces für den Physikalischen Server&lt;br /&gt;
* Öffentliche Interfaces für die Squid-Server (Load-Balancing-IP)&lt;br /&gt;
* Open-VPN zwischen allen Maschinen als Private-Network zum Daten-Austausch&lt;br /&gt;
** Mirror der Platten (Storage Server)&lt;br /&gt;
** SQL-Server-Traffic (Replikation)&lt;br /&gt;
** NFS-Traffic (Storage Server &amp;lt;-&amp;gt; (App-Server, Cache-Server))&lt;br /&gt;
* /30er private Netze auf einem Server&lt;br /&gt;
** HTTP-Traffic (App-Server &amp;lt;-&amp;gt; Cache-Server)&lt;br /&gt;
** SQL-Traffic (DB-Server &amp;lt;-&amp;gt; App-Server)&lt;br /&gt;
&lt;br /&gt;
= Dienste =&lt;br /&gt;
&lt;br /&gt;
== DNS ==&lt;br /&gt;
* Primary oder Secondary Nameserver für alle Piratendomains&lt;br /&gt;
&lt;br /&gt;
== Datenbank ==&lt;br /&gt;
&lt;br /&gt;
* MySQL mit Master / Slave Replikation&lt;br /&gt;
* Ein MySQL-Server für alles&lt;br /&gt;
* Postgres ist zwar bessere Datenbank, aber wird von zu wenig Webanwendungen unterstützt&lt;br /&gt;
&lt;br /&gt;
== Mail ==&lt;br /&gt;
&lt;br /&gt;
* Mass Virtual Domain Mail Hosting&lt;br /&gt;
* POP, POPs, IMAP, IMAPs-Zugriff&lt;br /&gt;
* Webfrontend&lt;br /&gt;
* Spamassassin&lt;br /&gt;
* Sieve-Scripts&lt;br /&gt;
* Mailinglisten&lt;br /&gt;
** Mailman&lt;br /&gt;
** Sympa&lt;br /&gt;
&lt;br /&gt;
== Application ==&lt;br /&gt;
&lt;br /&gt;
Folgende Web-Apps wurden angefragt&lt;br /&gt;
* Drupal&lt;br /&gt;
* Wordpress&lt;br /&gt;
* phpBB&lt;br /&gt;
* MediaWiki&lt;br /&gt;
* Groupware&lt;br /&gt;
** openXchange (Skaliert sehr gut)&lt;br /&gt;
*** Wird in NRW eingesetzt, sehr gut integrierbar. [[Benutzer:mbraun|mbraun]] als Ansprechpartner. Die Firma hinter dem Projekt ist der PP sehr wohlgesonnen bzgl. Lizenzsponsoring.&lt;br /&gt;
** eGroupware (Haben einige im Einsatz, skaliert aber nicht gut)&lt;br /&gt;
*** Ralf Becker (Maintainer eGW) fährt bei [http://www.stylite.de Stylite] eine eGW-Instanz mit zeitweise ca. 1000 concurrent Usern. Er würde uns mit Rat und Tat zur Zeite stehen. Wir bekommen von ihm eine unbeschränkte EPL-Lizenz mit vollem Support. &lt;br /&gt;
* CiviCRM (Presse, Mitgliederverwaltung)&lt;br /&gt;
* OTRS (Ticket-System)&lt;br /&gt;
* (Bug-Tracker)? =&amp;gt; pirateforge.org&lt;br /&gt;
&lt;br /&gt;
Es müssten/sollten folgende Software paketiert werden:&lt;br /&gt;
* Drupal (Multi-Site)&lt;br /&gt;
* Wordpress (Multi-Site)&lt;br /&gt;
* MediaWiki (Multi-Site)&lt;br /&gt;
&lt;br /&gt;
=== Drupal für Master-Slave-Replikation patchen ===&lt;br /&gt;
&lt;br /&gt;
Siehe [http://coldfrontlabs.ca/blog/deploy-drupal-masterslave-mysql-databases]: Ändere Datei &amp;lt;code&amp;gt;includes/database.mysql-common.inc&amp;lt;/code&amp;gt;:&lt;br /&gt;
  function db_query($query) {&lt;br /&gt;
    $args = func_get_args();&lt;br /&gt;
    array_shift($args);&lt;br /&gt;
    $query = db_prefix_tables($query);&lt;br /&gt;
    if (isset($args[0]) and is_array($args[0])) { // 'All arguments in one array' syntax&lt;br /&gt;
      $args = $args[0];&lt;br /&gt;
    }&lt;br /&gt;
    _db_query_callback($args, TRUE);&lt;br /&gt;
    $query = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $query);&lt;br /&gt;
  &lt;br /&gt;
    // Added on 5/21/2009 by apersaud&lt;br /&gt;
    // Integrating multiple read/write databases&lt;br /&gt;
    if (stripos($query, &amp;quot;select&amp;quot;) === 0) {&lt;br /&gt;
      $commits = array('alter', 'insert', 'update', 'delete', 'flush', 'lock', 'create');&lt;br /&gt;
      $is_commit = false;&lt;br /&gt;
      foreach($commits as $type) {&lt;br /&gt;
        if (strpos(strtolower($query), $type)) {&lt;br /&gt;
          $is_commit = true;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      if ($is_commit) {&lt;br /&gt;
        db_set_active('default');&lt;br /&gt;
      } else {&lt;br /&gt;
        db_set_active('readonly');&lt;br /&gt;
      }&lt;br /&gt;
    } else {&lt;br /&gt;
      db_set_active('default');&lt;br /&gt;
    }&lt;br /&gt;
    return _db_query($query);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
=== Drupal für Squid optimieren ===&lt;br /&gt;
&lt;br /&gt;
Siehe [http://2bits.com/articles/increasing-drupals-speed-squid-caching-reverse-proxy.html]:&lt;br /&gt;
&lt;br /&gt;
Diverse settings anpassen. Nach Verifikation bitte dokumentieren.&lt;br /&gt;
&lt;br /&gt;
=== PHP-Optimieren ===&lt;br /&gt;
&lt;br /&gt;
* Memcache sollte mit drauf&lt;br /&gt;
* Vergleich verschiedener freier PHP-Optimizer:  [http://2bits.com/articles/benchmarking-drupal-with-php-op-code-caches-apc-eaccelerator-and-xcache-compared.html]&lt;br /&gt;
* Vergleich Zend-Optimizer mit freien PHP-Optimizern:  [http://2bits.com/articles/benchmarking-zend-server-community-edition-drupal.html]&lt;br /&gt;
&lt;br /&gt;
== Jabber ==&lt;br /&gt;
&lt;br /&gt;
* OpenFire&lt;br /&gt;
** (+) Bisherige Installation läuft damit&lt;br /&gt;
** (+) Connection Manager zum ConnectionOffloading&lt;br /&gt;
** (-) nicht Clusteringfähig (nur mit dem CommercialPlugin - mittlerweile abandoned)&lt;br /&gt;
** (-) Speicherfresser solange alle User in einer Gruppe sind&lt;br /&gt;
** (-) Probleme mit DNS-Caching von Dialup-IPs&lt;br /&gt;
* eJabberd&lt;br /&gt;
** (+) Clustering fähig&lt;br /&gt;
** (+) vhost-fähig&lt;br /&gt;
** (-) Erfahrung in Config und Betrieb nicht vorhanden&lt;br /&gt;
** (-) keine bekannten Installationen in unserem Umfang&lt;br /&gt;
* jabberd2&lt;br /&gt;
** (+) mehrere große Installationen existent&lt;br /&gt;
** (-) Erfahrung in Config und Betrieb nicht vorhanden&lt;br /&gt;
&lt;br /&gt;
== Authentifizierung ==&lt;br /&gt;
&lt;br /&gt;
* Piraten-ID für Single-Sign-On-Lösungen für E-Mail-Konten, Wiki, Forum, Groupware, openID-Anbindung, ...&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:IT-Infrastruktur]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Infosocke</name></author>
	</entry>
</feed>