Gisp Global Internet Service Provider Bilag 4 Systembeskrivelse. (Testsetup) Aalborg Universitet Master i IT - Systemadministration
1. Forord Dette dokument beskriver det setup som er brugt til test af den foreslåede arkitektur. Dette dokument er skrevet som et bilag til hoveddokumentet men er opsat således at det kan læses som et enkeltstående dokument. Dette medfører at der er enkelt gentagelser i forhold til hoveddokumentet. 2. Indholdsfortegnelse 1. Forord...2 2. Indholdsfortegnelse...2 3. Beskrivelse af testsystemet...3 3.1 Beskrivelse af forsøgsbetingelserne...3 3.2 Beskrivelse af arkitektur...4 3.3 Database design...4 3.3.1 MySQL master/slave opsætning....4 3.3.2 SMTP...4 3.3.3 POP3 og IMAP...4 3.3.4 Web-mail...4 4. Hostliste...5 5. Netværk...6 6. Konfiguration af FireWall...6 7. Testdata...7 8. Afprøvning af testopstilling...8 8.1 Forudsætninger....8 8.1.1 Forsøg 1...8 8.1.2 Forsøg 2...9 8.1.3 Forsøg 3...9 8.1.4 Forsøg 4...10 8.2 Konklusioner...10 GISP Systembeskrivelse Side 2 af 10
3. Beskrivelse af testsystemet I det følgende beskrives opbygningen af testsystemet, der er blevet stillet op i forbindelse med dette projekt. Derefter bliver det testet og resultaterne beskrives og der konkluderes på det. Formålet med at lave dette testsystem er at afklare hvor mange mail et system med denne opbygning kan håndtere. 3.1 Beskrivelse af forsøgsbetingelserne For at teste en opsæ tning af systemet blev der stillet et grupperum på Aalborg Universitet til vores rådighed. I dette grupperum blev der opsat det antal PC-servere der var nødvendige for at teste systemet. PC-serverne er udtjente maskiner fra Sol og Strand Feriehusudlejning A/S suppleret med de studerendes egne maskiner. Alle har tjent som servere eller arbejdsstationer i 4-5 år. Ingen af dem var ens, derfor har der væ ret en del problemer med komponenter der ikke virkede og en del hardware, der ikke var understøttet af softwaresystemerne, hvilket gør testbetingelserne lidt tvivlsomme, samtidig med at der ikke umiddelbart kan laves meget præ cise konklusioner på egenskaber og kapaciteter i forhold til moderne hardware. Forsøgene kan dog give en indikation om systemets samlede funktionalitet og kapacitet. GISP Systembeskrivelse Side 3 af 10
3.2 Beskrivelse af arkitektur Systemet blev oprettet med 2 IP-adresser mod AAUs KOM-net, der virker som systemets Internet. På de 2 IP-adresser monteres 2 GPL-licenserede FireWalls (SmoothWall 1.0). Bag disse firewalls er der henholdsvis et klientnet, der er dedikeret til arbejdsstationer m.m., der ikke er del af selve systemet, samt et servernet, hvor selve systemet er monteret. Der er adgang til begge net igennem begge FireWalls 3.3 Database design Databasen oprettes med 3 tabeller med følgende hovedindhold: - Brugerdata (tabel: mailbox) - Oplysninger om aliases (tabel: alias) - Oplysninger om hvilke domæ ner der betjenes (tabel: domain) 3.3.1 MySQL master/slave opsætning. Der oprettes et cluster med en masterserver til MySQL samt 2 slave servere. I dette eksempel bruges MySQL ver. 4.0.12. På masteren gives der tilladelse til at slaveservere laver replikering med nogle almindelige grantsæ tninger, der også fortæ ller hvilke tabeller det drejer sig om. Det er vigtigt at der IKKE sker opdateringerne på slaveservernes tabeller, da det gør at replikeringen stopper. Derfor laves der på de replikerede tabeller på slaverne grants, der kun tillader læ sning. For at denne opsæ tning giver en skalerbarhed er det vigtigt at alle læ sninger sker til slaverne således at masteren kun skal håndtere skrivninger og replikere data til slaverne. 3.3.2 SMTP Der opsæ ttes 2 SMTP-servere, der virker som indgående server for domæ nerne. Udgående server for kunderne og SMTP-relay implementeres ikke i testen. 3.3.3 POP3 og IMAP POP3 og IMAP installeres på samme server, da det er samme produkt, Courier-IMAP, der bruges til begge protokoller. IMAP er væ sentligt mere kræ vende end POP3, da brugeren har en forbindelse til serveren i den tid brugeren bruger til at behandle e-mails, da de bliver liggende på serveren. Ved et produktionssystem bør de skilles ad. Under testen afprøves disse hver for sig. 3.3.4 Web-mail Web-mail er ofte implementeret som en kombination af et IMAP-produkt og et produkt, der viser IMAP-billedet i en Web-browser. I testen bruges SQWebmail som er fra samme leverandør som Courier og derfor er baseret på samme kerne som denne. (SQWebmail kræ ver derfor ingen ekstern IMAP server.) SQWebmail oprettes på en separat maskine. GISP Systembeskrivelse Side 4 af 10
4. Hostliste Nedenstående skema er en oversigt over de maskiner der er benyttet i forsøget. Host Export FS CPU/RAM IP Bemærkninger Port Default gw Gisp2.kom.auc.dk (4) port forwardig 192.168.113.137/24 10.2.0.1/16 - Servernet 10.5.0.1/16 - Clientnet Firewall SmoothWall 1.0 DHCP: 10.5.1.1-254 DNS: 130.225.51.19 + 16 Wwwproxy.kom.auc.dk:3128 192.168.113.1 Gisp3.kom.auc.dk (26) port forwardig 192.168.113.138 10.2.0.254/16 servernet 10.5.0.254/16 - clientnet Firewall SmoothWall 1.0 DHCP: 10.5.2.1-254 DNS: 130.225.51.19 + 16 Wwwproxy.kom.auc.dk:3128 192.168.113.1 Sentinel (23) /data 10.2.0.2 Ssh + image (sun-box) 22 10.2.0.1 Install (15) /install 10.2.0.3 Ssh + image (Linux) Kompiler boks. 22 10.2.0.254 Kbt (8) 10.2.0.4 BigBrother / MRTG 10.2.0.1 Opti (10) P100/32 10.2.1.2 SMTP 25 10.2.0.1 Sirius (17) P166/64 10.2.1.3 SMTP 25 10.2.0.254 Ariane (24) 10.2.2.2 WEB 80 10.2.0.1 MiniMira (3) 10.2.2.3 WEB 80 10.2.0.254 Apollo (12) 10.2.3.2 POP3 IMAP Mira (14) 10.2.3.3 POP3 IMAP 110 143 110 143 10.2.0.1 10.2.0.254 Black (11) P133/128 10.2.5.2 disk, test Space (5) /data 10.2.5.3 disk Ceasar (9) 10.2.6.2 DB-server Master - MySQL ver 4.0.12 Asterix (6) 10.2.6.3 DB-server Slave - MySQL ver 4.0.12 Obelix (7) 10.2.6.4 DB-server Slave - MySQL ver 4.0.12 10.2.0.254 10.2.0.254 3Com switch 10.2.7.1 Snmp snmp-trap Tallet i parentes efter hostnavn angiver hvilken port på switchen serveren er forbundet til. 161 162 GISP Systembeskrivelse Side 5 af 10
5. Netværk Oversigt over netvæ rk. Netvæ rkene er oprettet således at det kan ses ud fra IP-adressen hvilken service serveren udbyder. Maintanance-net 10.2.0.1/24 SMTP-net 10.2.1.0/24 WEB-net 10.2.2.0/24 Pop-net 10.2.3.0/24 Imap-net 10.2.3.0/24 Pt samme net som POP3 Storage-net 10.2.5.0/24 DB-net 10.2.6.0/24 Clientnet 10.5.0.1/16 Net til administative arbejdsstationer 6. Konfiguration af FireWall Portforwarding opsæ tning for Firewalls Firewall Udvendig port Protokol Destinations IP Destinations port Gisp2.kom.auc.dk TCP/80 HTTP 10.2.2.2 80 TCP/110 POP3 10.2.3.2 110 TCP/25 SMTP 10.2.1.2 25 TCP/22 SSH 10.2.0.2 22 TCP/143 IMAP 10.2.3.2 143 Gisp3.kom.auc.dk TCP/80 HTTP 10.2.2.3 80 TCP/110 POP3 10.2.3.3 110 TCP/25 SMTP 10.2.1.3 25 TCP/22 SSH 10.2.0.3 22 TCP/143 IMAP 10.2.3.3 143 TCP/8000 Overvågning/HTTP 10.2.0.4 80 GISP Systembeskrivelse Side 6 af 10
7. Testdata Til generering af testdata anvendes flg scripts Oprettelse af bruger i databasen. For at oprette 1000 brugere i databasen skal denne loades med information om disse 1000 brugere. Til dette formål anvendes dette lille perl script. #!/usr/bin/perl while ($i<1000) {$i++;print "INSERT INTO mailbox (username,maildir) VALUES ( tester$i\@klaphat.biz, klaphat.biz/tester$i/ );\n"} Figur 7-1: Perlscript til generering af mailbrugere Output fra dette script er 1000 INSERT INTO linier hvor username er fra tester1 til tester1000 Dette output skrives til en fil (./generate.pl > import.sql) Hvorefter databasen loades med flg. kommando mysql postfix < import.sql På same vis generes vha. andet perl script et expect script som kan sende emails til systemet. Outputtet er et expect script som sender en email til hver af de 1000 brugere (Formatet for expect kommandoerne er fundet vha. autoexpect.) #!/usr/bin/perl print "#!/usr/bin/expect \n#\nset timeout -1 \n"; while ($i<1000) {$i++;print " spawn telnet gisp3.kom.auc.dk 25 expect \"220 sirius.klaphat.biz ESMTP Postfix\" send -- \"mail from:<tester\@letager.biz>\\r\" expect \"250 Ok\" send -- \"rcpt to:<tester$i\@klaphat.biz>\\r\" expect \"250 Ok\" send -- \"data\r\" expect \"354 End data with <CR><LF>.<CR><LF>\" send -- \"Subject: Test Email from Gisp3 to tester$i\\r\" send -- \"Data\\r\" send -- \".\\r\" expect \"250 Ok\" send -- \"quit \\r\" expect eof "} Figur 7-2: Perl/expectscript der sender 1000 e-mail til 1000 brugere ved hjælp af SMTP (floodx.exp) GISP Systembeskrivelse Side 7 af 10
På præ cis samme måde generes et script som popper og sletter en mail fra hver af brugerne. #!/usr/bin/perl print "#!/usr/bin/expect \n#\nset timeout -1 \n"; while ($i<1000) {$i++;print " spawn telnet pop01 110 expect \"+OK Hello there.\\r\" send -- \"user tester$i\@klaphat.biz\\r\" expect \"+OK\" send -- \"pass 12345\\r\" expect \"+OK\" send -- \"retr 1\r\" expect \"+OK\" send -- \"dele 1\\r\" expect \"+OK\" send -- \"quit \\r\" expect eof "} Figur 7-3: Perl/expectscript, der henter og sletter 1000 e-mails hos 1000 brugere ved hjælp af POP3 (popx.exp). 8. Afprøvning af testopstilling. Ved hjæ lp af scripts kørende på AAU-maskiner (kayak00 05) blev systemet afprøvet med henholdsvis SMTP, POP3 og IMAP. 8.1 Forudsætninger. Der er oprettet 1000 brugere på systemet i samme domæ ne Der sendes, læ ses og slettes en mail pr. bruger SMTP og POP3 scriptene er varianter af ovenstående scripts, der er tilpasset til at tilgå de maskiner, der ønskes belastet 8.1.1 Forsøg 1 Script Server antal mails tid bemæ rkninger 1000 4 min Sirius er en Pentium 166 MHz med Sirius 1000 5 min 64 Mb RAM SMTP 1000 10 min Opti er en Pentium 100 MHz med Opti 1000 10 min 32 Mb RAM Der startes 4 instanser af scriptet inden for de samme 10 sekunder. Alle mails gemmes på Space. Alle mails er ens og består kun af meget lidt tekst. Der kommer den samme fejlmeddelelse på begge SMTP-serverne: nfs: server space not responding, still trying Dette betyder at NFS-serveren har svæ rt ved at besvare alle forespørgslerne På begge maskiner var der ledig CPU, og ingen brug af swap dog var der et loadindex på 5-6 Tabel 8-1 Forsøg 1 GISP Systembeskrivelse Side 8 af 10
8.1.2 Forsøg 2 Script Server antal mails tid bemæ rkninger 1000 6 min Mira 1000 6 min POP3 1000 9 min Apollo 1000 8 min Der startes 4 instanser af scriptet inden for de samme 10 sekunder. Alle mails er gemt på Space. Alle mails er ens og består kun af meget lidt tekst. Der kommer den samme fejlmeddelelse på begge SMTP-serverne: nfs: server space not responding, still trying Dette betyder at NFS-serveren har svæ rt ved at besvare alle forespørgslerne Der var dog nogle af postkasserne der var tomme hvilket gav fejl på scriptet, da det forsøgte at slette en mail, der ikke var der. På begge maskiner var der ledig CPU, og ingen brug af swap dog var der et loadindex på 5-6 Tabel 8-2 Forsøg 2 8.1.3 Forsøg 3 Script Server antal mails tid bemæ rkninger SMTP Sirius 1000 3 min POP3 Mira 1000? min SMTP Opti 1000 5 min POP3 Apollo 1000? min Der startes 2 instanser af hvert script inden for de samme 10 sekunder. Alle mails er gemt på Space. Alle mails er ens og består kun af meget lidt tekst. Der kommer den samme fejlmeddelelse på begge SMTP-serverne: nfs: server space not responding, still trying Dette betyder at NFS-serveren har svæ rt ved at besvare alle forespørgslerne Der var dog nogle af postkasserne der var tomme hvilket gav fejl på POP3-scriptet, da det forsøgte at slette en mail, der ikke var der. På alle maskiner var der ledig CPU, og ingen brug af swap dog var der et loadindex på 5-6 Tabel 8-3 Forsøg 3 GISP Systembeskrivelse Side 9 af 10
May 2 14:15:24 mira kernel: nfs: server space OK May 2 14:15:58 mira kernel: nfs: server space not responding, still trying May 2 14:16:25 mira kernel: nfs: server space OK May 2 14:17:00 mira kernel: nfs: server space not responding, still trying May 2 14:17:27 mira kernel: nfs: server space OK May 2 14:18:01 mira kernel: nfs: server space not responding, still trying May 2 14:18:27 mira kernel: nfs: server space OK May 2 14:19:01 mira kernel: nfs: server space not responding, still trying May 2 14:19:27 mira kernel: nfs: server space OK May 2 14:20:03 mira kernel: nfs: server space not responding, still trying May 2 14:20:17 mira kernel: nfs: server space OK May 2 14:26:05 mira kernel: nfs: server space not responding, still trying May 2 14:26:11 mira kernel: nfs: server space OK May 2 14:27:36 mira kernel: nfs: server space not responding, still trying May 2 14:27:39 mira kernel: nfs: server space OK Figur 8-1: Konsolbeskeder vedrørende NFS-serveren 8.1.4 Forsøg 4 For at få et indtryk hvordan et system ville køre hvis alle funktioner blev samlet på en maskine, blev et mindre forsøg etableret. Dette forsøg viste en nogenlunde tilsvarende kapacitet, men her var selve maskinen væ sentligt mere belastet. Umiddelbart virkede det som om flaskehalsen lå i at maskinen brugte meget tid på at skifte processer 8.2 Konklusioner. Af dette kan det konkluderes at flaskehalsen er filsystemet NFS. Derfor kan det anbefales at bruge væ sentlige dele af ressourcerne på fil- og disksystemer. Et oplagt valg er benyttelse af SAN, der er konstrueret til at dele diske/filsystemer for flere maskiner. SAN er en hardwarebox med et disksytem, hvor der er fokuseret på driftssikkerhed, men hvor der ikke er forudbestemt hvilket Operativsystem, der benyttes. Dernæ st er det også anbefalelsesvæ rdigt at benytte maskiner med rigeligt RAM, da det kan forbedre peak-performance væ sentligt, dog med den fare at der mistes data ved nedbrud, da chachede mails derved tabes. Denne fare betragtes dog som minimal. CPU kraften er ikke væ sentlig. GISP Systembeskrivelse Side 10 af 10