SlideShare una empresa de Scribd logo
1 de 145
Sonoma State’s
    Email
  SSU CS Colloquium, October 8, 2009
             Eric Eisenhart

      <eric.eisenhart@sonoma.edu>
http://eric.eisenhart.name/presentations/
Disclaimers
Disclaimers
•
My opinions
Disclaimers
•My opinions

•No Credit
Disclaimers
•My opinions

•No Credit

•Network == Air
Disclaimers
•My opinions

•No Credit

•Network == Air

•Life
Too Simple
Too Simple
    A




Mail Server
    #1
Too Simple
    A             B




Mail Server   Mail Server
    #1            #2
Big Picture
       Alice                                                             Bob




                                                                   Load Balancer #1


                               ns            authns                      mail                                  ldaps                  webmail




           ns cluster                                                            mail cluster                                                                          authns cluster

                                    moltar          zorak                                                                                blinky   snorky
ns-a           ns-b     ns-c                                chalmers    clancy        cletus      krusty        milhouse                                    authns-a     authns-b       authns-c




                                                                                                           NetApp Cluster
                                             mojo
ns3.csu.net                                                                                                                                       flanders
                                                                                                    heckle             jeckle




                                                                                                heckle-
                                                                                                                            jeckle-
                                                                                                shelf-1
                                                                                                                            shelf-1




                                                                                                heckle-                     jeckle-
                                                                                                shelf-2                     shelf-2
Big Picture                                                                                                         Chuck




                                                                                                                                           Red Condor #1     Red Condor #2


       Alice                                                             Bob                                                                                  Red Condor Offsite



                                                                   Load Balancer #1


                               ns            authns                      mail                                  ldaps                  webmail




           ns cluster                                                            mail cluster                                                                            authns cluster

                                    moltar          zorak                                                                                blinky   snorky
ns-a           ns-b     ns-c                                chalmers    clancy        cletus      krusty        milhouse                                      authns-a     authns-b       authns-c




                                                                                                           NetApp Cluster
                                             mojo
ns3.csu.net                                                                                                                                        flanders
                                                                                                    heckle             jeckle




                                                                                                heckle-
                                                                                                                            jeckle-
                                                                                                shelf-1
                                                                                                                            shelf-1




                                                                                                heckle-                     jeckle-
                                                                                                shelf-2                     shelf-2
Simpler Picture?
How Email
  Works
An Email
Return-path: <root@eisenhae>
Envelope-to: eisenhae@sonoma.edu
Delivery-date: Wed, 30 Sep 2009 09:57:52 -0700
Received: from exim by nelson with spam-scanned (Exim 4.63)

   (envelope-from <root@eisenhae>)

   id 1Mt2Ut-0007cJ-M2

   for eisenhae@sonoma.edu; Wed, 30 Sep 2009 09:57:52 -0700
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on nelson
X-Spam-Level: *
X-Spam-Status: No, score=1.6 required=5.0
  tests=MISSING_DATE,MISSING_HEADERS,

   MISSING_MID autolearn=no version=3.2.5
Received: from eisenhae ([1.2.3.4] helo=eisenhae)

   by nelson with esmtp (Exim 4.63)

   (envelope-from <root@eisenhae>)

   id 1Mt2Uf-0007cC-FN

   for eric.eisenhart@sonoma.edu; Wed, 30 Sep 2009 09:57:47 -0700
Subject: test message
Message-Id: <E1Mt2Ut-0007cJ-M2@nelson>
From: root@eisenhae
Date: Wed, 30 Sep 2009 09:57:52 -0700

just a test.
SMTP + MSP
(Simple Mail Transport Protocol +
    Mail Submission Protocol)
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
MAIL FROM:root@eisenhae.sonoma.edu
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
MAIL FROM:root@eisenhae.sonoma.edu
250 OK
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
MAIL FROM:root@eisenhae.sonoma.edu
250 OK
RCPT TO:eric.eisenhart@sonoma.edu
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
MAIL FROM:root@eisenhae.sonoma.edu
250 OK
RCPT TO:eric.eisenhart@sonoma.edu
250 Accepted
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
MAIL FROM:root@eisenhae.sonoma.edu
250 OK
RCPT TO:eric.eisenhart@sonoma.edu
250 Accepted
DATA
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
MAIL FROM:root@eisenhae.sonoma.edu
250 OK
RCPT TO:eric.eisenhart@sonoma.edu
250 Accepted
DATA
354 Enter message, ending with "." on a line by itself
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
MAIL FROM:root@eisenhae.sonoma.edu
250 OK
RCPT TO:eric.eisenhart@sonoma.edu
250 Accepted
DATA
354 Enter message, ending with "." on a line by itself
Subject: test message

just a test.
.
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
MAIL FROM:root@eisenhae.sonoma.edu
250 OK
RCPT TO:eric.eisenhart@sonoma.edu
250 Accepted
DATA
354 Enter message, ending with "." on a line by itself
Subject: test message

just a test.
.
250 OK id=1Mt2Uf-0007cC-FN
SMTP + MSP
               (Simple Mail Transport Protocol +
                   Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
MAIL FROM:root@eisenhae.sonoma.edu
250 OK
RCPT TO:eric.eisenhart@sonoma.edu
250 Accepted
DATA
354 Enter message, ending with "." on a line by itself
Subject: test message

just a test.
.
250 OK id=1Mt2Uf-0007cC-FN
QUIT
SMTP + MSP
                (Simple Mail Transport Protocol +
                    Mail Submission Protocol)
220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
EHLO eisenhae
250-nelson Hello eisenhae [1.2.3.4]
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
MAIL FROM:root@eisenhae.sonoma.edu
250 OK
RCPT TO:eric.eisenhart@sonoma.edu
250 Accepted
DATA
354 Enter message, ending with "." on a line by itself
Subject: test message

just a test.
.
250 OK id=1Mt2Uf-0007cC-FN
QUIT
221 nelson.sonoma.edu closing connection
POP3
(Post Office Protocol)
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
2 200
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
2 200
.
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
2 200
.
RETR 1
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
2 200
.
RETR 1
+OK 120 octets
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
2 200
.
RETR 1
+OK 120 octets
<the POP3 server sends message 1>
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
2 200
.
RETR 1
+OK 120 octets
<the POP3 server sends message 1>
.
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
2 200
.
RETR 1
+OK 120 octets
<the POP3 server sends message 1>
.
DELE 1
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
2 200
.
RETR 1
+OK 120 octets
<the POP3 server sends message 1>
.
DELE 1
+OK message 1 deleted
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
2 200
.
RETR 1
+OK 120 octets
<the POP3 server sends message 1>
.
DELE 1
+OK message 1 deleted
QUIT
POP3
                  (Post Office Protocol)
+OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
USER mrose
+OK User accepted
PASS mrosepass
+OK Pass accepted
STAT
+OK 2 320
LIST
+OK 2 messages (320 octets)
1 120
2 200
.
RETR 1
+OK 120 octets
<the POP3 server sends message 1>
.
DELE 1
+OK message 1 deleted
QUIT
+OK dewey POP3 server signing off (maildrop empty)
IMAP
(Internet Message Access Protocol)
IMAP
       (Internet Message Access Protocol)
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright
1998-2008 Double Precision, Inc. See COPYING for distribution information.
IMAP
       (Internet Message Access Protocol)
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright
1998-2008 Double Precision, Inc. See COPYING for distribution information.
1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop=
IMAP
       (Internet Message Access Protocol)
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright
1998-2008 Double Precision, Inc. See COPYING for distribution information.
1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop=
1 OK LOGIN Ok.
IMAP
       (Internet Message Access Protocol)
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright
1998-2008 Double Precision, Inc. See COPYING for distribution information.
1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop=
1 OK LOGIN Ok.
2 SELECT INBOX
IMAP
       (Internet Message Access Protocol)
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright
1998-2008 Double Precision, Inc. See COPYING for distribution information.
1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop=
1 OK LOGIN Ok.
2 SELECT INBOX
* FLAGS (Draft Answered Flagged Deleted Seen Recent)
* OK [PERMANENTFLAGS (Draft Answered Flagged Deleted Seen)] Limited
* 751 EXISTS
* 1 RECENT
* OK [UIDVALIDITY 1201564895] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
2 OK [READ-WRITE] Ok
IMAP
       (Internet Message Access Protocol)
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright
1998-2008 Double Precision, Inc. See COPYING for distribution information.
1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop=
1 OK LOGIN Ok.
2 SELECT INBOX
* FLAGS (Draft Answered Flagged Deleted Seen Recent)
* OK [PERMANENTFLAGS (Draft Answered Flagged Deleted Seen)] Limited
* 751 EXISTS
* 1 RECENT
* OK [UIDVALIDITY 1201564895] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
2 OK [READ-WRITE] Ok
3 FETCH 1 BODY[]
IMAP
       (Internet Message Access Protocol)
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright
1998-2008 Double Precision, Inc. See COPYING for distribution information.
1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop=
1 OK LOGIN Ok.
2 SELECT INBOX
* FLAGS (Draft Answered Flagged Deleted Seen Recent)
* OK [PERMANENTFLAGS (Draft Answered Flagged Deleted Seen)] Limited
* 751 EXISTS
* 1 RECENT
* OK [UIDVALIDITY 1201564895] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
2 OK [READ-WRITE] Ok
3 FETCH 1 BODY[]
* 1 FETCH (BODY[] {2390}
<server sends full message with headers>
3 OK FETCH completed.
IMAP
       (Internet Message Access Protocol)
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright
1998-2008 Double Precision, Inc. See COPYING for distribution information.
1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop=
1 OK LOGIN Ok.
2 SELECT INBOX
* FLAGS (Draft Answered Flagged Deleted Seen Recent)
* OK [PERMANENTFLAGS (Draft Answered Flagged Deleted Seen)] Limited
* 751 EXISTS
* 1 RECENT
* OK [UIDVALIDITY 1201564895] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
2 OK [READ-WRITE] Ok
3 FETCH 1 BODY[]
* 1 FETCH (BODY[] {2390}
<server sends full message with headers>
3 OK FETCH completed.
4 LOGOUT
IMAP
       (Internet Message Access Protocol)
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright
1998-2008 Double Precision, Inc. See COPYING for distribution information.
1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop=
1 OK LOGIN Ok.
2 SELECT INBOX
* FLAGS (Draft Answered Flagged Deleted Seen Recent)
* OK [PERMANENTFLAGS (Draft Answered Flagged Deleted Seen)] Limited
* 751 EXISTS
* 1 RECENT
* OK [UIDVALIDITY 1201564895] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
2 OK [READ-WRITE] Ok
3 FETCH 1 BODY[]
* 1 FETCH (BODY[] {2390}
<server sends full message with headers>
3 OK FETCH completed.
4 LOGOUT
* BYE Courier-IMAP server shutting down
4 OK LOGOUT completed
LDAP
    (Lightweight Directory Access Protocol)
dn: uid=eisenhae,ou=people,o=sonoma,o=edu

uid: eisenhae

ssuMailHomeDirectory: /nfs/jeckle/maildirs/92/eisenhae

ssuMailLocalAddress: eisenhae@sonoma.edu
ssuMailLocalAddress: eric.eisenhart@sonoma.edu

ssuMailRoutingAddress: eisenhae@smtp-vip.sonoma.edu

ssuMailSpamAssassinPrefs: required_hits 5
ssuMailSpamAssassinPrefs: whitelist_from *@example.com

ssuMailDiskQuota: 1024M
Maildir (++)
    /nfs/jeckle/maildirs/92/eisenhae/
courierimapsubscribed
courierimapuiddb
tmp/
new/
new/1254971281.H995082P22240.cletus.sonoma.edu,S=3593
cur/
cur/1251296264.H25153P29370.krusty.sonoma.edu,S=3045:2,RS
.GrayMai/cur/
.GrayMail/new/
.GrayMail/tmp/
.Lists/
.Lists.puppet/
The
aka: requirements
Email ==
 “Sonoma State University
  will employ these email
   accounts for official
         University
   communications to
     students effective
        immediately.”
http://www.sonoma.edu/it/get_connected/
          provost_letter.shtml
Reliance
Reliance
Assumed
Reliance
Assumed
Addicted
Growth
Population
1500



     1125
GB




      750



      375



       0
       2004     2005   2006   2007   2008   2009
       ~300G                  700G          1.35T




               Storage Usage
SPA
SPA
Traffic
 2006-08 to now-
Peak Traffic
    2006-08 to now-
Moore’s Law:
Friend or Foe?
The
aka: what we did
Limits
Limits


•
Money
Limits


•Money

•Time / Staff
Goals
Goals
•
Reliable
Goals
•Reliable

•Minimal Update Costs
Goals
•Reliable

•Minimal Update Costs

•Concurrency
Goals
•Reliable

•Minimal Update Costs

•Concurrency

•Asynchronous
What We Run
What we Run
 Hardware
What we Run
          Hardware
• MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD
What we Run
          Hardware
• MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD
• LDAP: 2 + master + standby. 2GB, 2 Intel
  3GHz
What we Run
          Hardware
• MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD
• LDAP: 2 + master + standby. 2GB, 2 Intel
  3GHz

• webmail: 2 VMs. 2GB
What we Run
          Hardware
• MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD
• LDAP: 2 + master + standby. 2GB, 2 Intel
  3GHz

• webmail: 2 VMs. 2GB
• lists: 1 VM. 1GB
What we Run
          Hardware
• MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD
• LDAP: 2 + master + standby. 2GB, 2 Intel
  3GHz

• webmail: 2 VMs. 2GB
• lists: 1 VM. 1GB
• MySQL: 1 VM. 1GB.
What we Run
          Hardware
• MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD
• LDAP: 2 + master + standby. 2GB, 2 Intel
  3GHz

• webmail: 2 VMs. 2GB
• lists: 1 VM. 1GB
• MySQL: 1 VM. 1GB.
• storage: NetApp FAS 3070c cluster; 30*136GB
  15k
Virtual Machines?
What we Run
  “MAIL”
What we Run
     “MAIL”
•exim
What we Run
      “MAIL”
•exim
•clamav
What we Run
      “MAIL”
•exim
•clamav
•SpamAssassin
What we Run
      “MAIL”
•exim
•clamav
•SpamAssassin
•courier-auth
What we Run
      “MAIL”
•exim
•clamav
•SpamAssassin
•courier-auth
•courier-imap
What we Run
  Storage
What we Run
      Storage
•2 * NetApp FAS 3070s in
 active-active cluster
What we Run
      Storage
•2 * NetApp FAS 3070s in
 active-active cluster

 •10 shelves of 15 disks
What we Run
      Storage
•2 * NetApp FAS 3070s in
 active-active cluster

 •10 shelves of 15 disks
•EMC NAS (going, going, gone)
What we Run
 “webmail”
What we Run
     “webmail”
•apache httpd
What we Run
     “webmail”
•apache httpd
•php
What we Run
     “webmail”
•apache httpd
•php
•squirrelmail + plugins
What we Run
     “webmail”
•apache httpd
•php
•squirrelmail + plugins
•up-imapproxy
What we Run
  “ldaps”
What we Run
      “ldaps”

•apache httpd
What we Run
      “ldaps”

•apache httpd
•OpenLDAP (slapd)
What we Run
      “ldaps”

•apache httpd
•OpenLDAP (slapd)
•Lots of custom code
What we Run
 “flanders”
What we Run
    “flanders”


•mysqld
What we Run
  “lists”
What we Run
      “lists”


•apache httpd
What we Run
      “lists”


•apache httpd
•mailman
What we Run
Secret Sauces
What we Run
   Secret Sauces

•Tsunami
What we Run
   Secret Sauces

•Tsunami
•puppet
What we Run
   Secret Sauces

•Tsunami
•puppet
•Registry
SPAM
SPAM


•
SpamAssassin
SPAM


•SpamAssassin

•Red Condor
Changes (so far)
• storage backend (wiggum; otto;
  bruno; heckle+jeckle)

• Directory layout (f/foo -> ac/foo)
• Red Condor
• IMAP + SMTP + SPAM + clamav
  (same servers now)

• SPAM prefs from MySQL to LDAP
• Virtualization
The Past
The Past

• My First: one box
The Past

• My First: one box
• VAX; cluster
The Past

• My First: one box
• VAX; cluster
• 2003: VAX + student server
The Past

• My First: one box
• VAX; cluster
• 2003: VAX + student server
• Later 2003: wiggum -> otto
The Past

• My First: one box
• VAX; cluster
• 2003: VAX + student server
• Later 2003: wiggum -> otto
• Summer 2005: performance?
Failures
aka: what went wrong
Spring 2006
Fall 2007-Spring
      2008
Problems
Problems
•
Cache
Problems
•Cache

•SPAM accuracy
Problems
•Cache

•SPAM accuracy

•Local SPAM
Problems
•Cache

•SPAM accuracy

•Local SPAM

•Quotas
Alternatives /
         Future
• Smarter Load Balancers
• IMAP server with local caching
• Shared block storage (mini
  clusters?)

• Exchange
• Outsourced (Google)
Building your own?


• Plan for Growth
• Understand how to scale everything
  O(1) > O(log(n)) > O(n)
Questions!

Más contenido relacionado

Último

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Último (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Destacado

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Destacado (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

SSU Email Infrastructure

  • 1. Sonoma State’s Email SSU CS Colloquium, October 8, 2009 Eric Eisenhart <eric.eisenhart@sonoma.edu> http://eric.eisenhart.name/presentations/
  • 8. Too Simple A Mail Server #1
  • 9. Too Simple A B Mail Server Mail Server #1 #2
  • 10. Big Picture Alice Bob Load Balancer #1 ns authns mail ldaps webmail ns cluster mail cluster authns cluster moltar zorak blinky snorky ns-a ns-b ns-c chalmers clancy cletus krusty milhouse authns-a authns-b authns-c NetApp Cluster mojo ns3.csu.net flanders heckle jeckle heckle- jeckle- shelf-1 shelf-1 heckle- jeckle- shelf-2 shelf-2
  • 11. Big Picture Chuck Red Condor #1 Red Condor #2 Alice Bob Red Condor Offsite Load Balancer #1 ns authns mail ldaps webmail ns cluster mail cluster authns cluster moltar zorak blinky snorky ns-a ns-b ns-c chalmers clancy cletus krusty milhouse authns-a authns-b authns-c NetApp Cluster mojo ns3.csu.net flanders heckle jeckle heckle- jeckle- shelf-1 shelf-1 heckle- jeckle- shelf-2 shelf-2
  • 13. How Email Works
  • 14. An Email Return-path: <root@eisenhae> Envelope-to: eisenhae@sonoma.edu Delivery-date: Wed, 30 Sep 2009 09:57:52 -0700 Received: from exim by nelson with spam-scanned (Exim 4.63) (envelope-from <root@eisenhae>) id 1Mt2Ut-0007cJ-M2 for eisenhae@sonoma.edu; Wed, 30 Sep 2009 09:57:52 -0700 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on nelson X-Spam-Level: * X-Spam-Status: No, score=1.6 required=5.0 tests=MISSING_DATE,MISSING_HEADERS, MISSING_MID autolearn=no version=3.2.5 Received: from eisenhae ([1.2.3.4] helo=eisenhae) by nelson with esmtp (Exim 4.63) (envelope-from <root@eisenhae>) id 1Mt2Uf-0007cC-FN for eric.eisenhart@sonoma.edu; Wed, 30 Sep 2009 09:57:47 -0700 Subject: test message Message-Id: <E1Mt2Ut-0007cJ-M2@nelson> From: root@eisenhae Date: Wed, 30 Sep 2009 09:57:52 -0700 just a test.
  • 15. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol)
  • 16. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700
  • 17. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae
  • 18. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP
  • 19. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP MAIL FROM:root@eisenhae.sonoma.edu
  • 20. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP MAIL FROM:root@eisenhae.sonoma.edu 250 OK
  • 21. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP MAIL FROM:root@eisenhae.sonoma.edu 250 OK RCPT TO:eric.eisenhart@sonoma.edu
  • 22. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP MAIL FROM:root@eisenhae.sonoma.edu 250 OK RCPT TO:eric.eisenhart@sonoma.edu 250 Accepted
  • 23. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP MAIL FROM:root@eisenhae.sonoma.edu 250 OK RCPT TO:eric.eisenhart@sonoma.edu 250 Accepted DATA
  • 24. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP MAIL FROM:root@eisenhae.sonoma.edu 250 OK RCPT TO:eric.eisenhart@sonoma.edu 250 Accepted DATA 354 Enter message, ending with "." on a line by itself
  • 25. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP MAIL FROM:root@eisenhae.sonoma.edu 250 OK RCPT TO:eric.eisenhart@sonoma.edu 250 Accepted DATA 354 Enter message, ending with "." on a line by itself Subject: test message just a test. .
  • 26. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP MAIL FROM:root@eisenhae.sonoma.edu 250 OK RCPT TO:eric.eisenhart@sonoma.edu 250 Accepted DATA 354 Enter message, ending with "." on a line by itself Subject: test message just a test. . 250 OK id=1Mt2Uf-0007cC-FN
  • 27. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP MAIL FROM:root@eisenhae.sonoma.edu 250 OK RCPT TO:eric.eisenhart@sonoma.edu 250 Accepted DATA 354 Enter message, ending with "." on a line by itself Subject: test message just a test. . 250 OK id=1Mt2Uf-0007cC-FN QUIT
  • 28. SMTP + MSP (Simple Mail Transport Protocol + Mail Submission Protocol) 220 nelson ESMTP Exim Wed, 30 Sep 2009 09:55:40 -0700 EHLO eisenhae 250-nelson Hello eisenhae [1.2.3.4] 250-SIZE 20971520 250-PIPELINING 250-STARTTLS 250 HELP MAIL FROM:root@eisenhae.sonoma.edu 250 OK RCPT TO:eric.eisenhart@sonoma.edu 250 Accepted DATA 354 Enter message, ending with "." on a line by itself Subject: test message just a test. . 250 OK id=1Mt2Uf-0007cC-FN QUIT 221 nelson.sonoma.edu closing connection
  • 30. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
  • 31. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose
  • 32. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted
  • 33. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass
  • 34. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted
  • 35. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT
  • 36. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320
  • 37. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST
  • 38. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets)
  • 39. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120
  • 40. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200
  • 41. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 .
  • 42. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 . RETR 1
  • 43. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 . RETR 1 +OK 120 octets
  • 44. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 . RETR 1 +OK 120 octets <the POP3 server sends message 1>
  • 45. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 . RETR 1 +OK 120 octets <the POP3 server sends message 1> .
  • 46. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 . RETR 1 +OK 120 octets <the POP3 server sends message 1> . DELE 1
  • 47. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 . RETR 1 +OK 120 octets <the POP3 server sends message 1> . DELE 1 +OK message 1 deleted
  • 48. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 . RETR 1 +OK 120 octets <the POP3 server sends message 1> . DELE 1 +OK message 1 deleted QUIT
  • 49. POP3 (Post Office Protocol) +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> USER mrose +OK User accepted PASS mrosepass +OK Pass accepted STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 . RETR 1 +OK 120 octets <the POP3 server sends message 1> . DELE 1 +OK message 1 deleted QUIT +OK dewey POP3 server signing off (maildrop empty)
  • 51. IMAP (Internet Message Access Protocol) * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information.
  • 52. IMAP (Internet Message Access Protocol) * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. 1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop=
  • 53. IMAP (Internet Message Access Protocol) * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. 1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop= 1 OK LOGIN Ok.
  • 54. IMAP (Internet Message Access Protocol) * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. 1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop= 1 OK LOGIN Ok. 2 SELECT INBOX
  • 55. IMAP (Internet Message Access Protocol) * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. 1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop= 1 OK LOGIN Ok. 2 SELECT INBOX * FLAGS (Draft Answered Flagged Deleted Seen Recent) * OK [PERMANENTFLAGS (Draft Answered Flagged Deleted Seen)] Limited * 751 EXISTS * 1 RECENT * OK [UIDVALIDITY 1201564895] Ok * OK [MYRIGHTS "acdilrsw"] ACL 2 OK [READ-WRITE] Ok
  • 56. IMAP (Internet Message Access Protocol) * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. 1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop= 1 OK LOGIN Ok. 2 SELECT INBOX * FLAGS (Draft Answered Flagged Deleted Seen Recent) * OK [PERMANENTFLAGS (Draft Answered Flagged Deleted Seen)] Limited * 751 EXISTS * 1 RECENT * OK [UIDVALIDITY 1201564895] Ok * OK [MYRIGHTS "acdilrsw"] ACL 2 OK [READ-WRITE] Ok 3 FETCH 1 BODY[]
  • 57. IMAP (Internet Message Access Protocol) * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. 1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop= 1 OK LOGIN Ok. 2 SELECT INBOX * FLAGS (Draft Answered Flagged Deleted Seen Recent) * OK [PERMANENTFLAGS (Draft Answered Flagged Deleted Seen)] Limited * 751 EXISTS * 1 RECENT * OK [UIDVALIDITY 1201564895] Ok * OK [MYRIGHTS "acdilrsw"] ACL 2 OK [READ-WRITE] Ok 3 FETCH 1 BODY[] * 1 FETCH (BODY[] {2390} <server sends full message with headers> 3 OK FETCH completed.
  • 58. IMAP (Internet Message Access Protocol) * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. 1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop= 1 OK LOGIN Ok. 2 SELECT INBOX * FLAGS (Draft Answered Flagged Deleted Seen Recent) * OK [PERMANENTFLAGS (Draft Answered Flagged Deleted Seen)] Limited * 751 EXISTS * 1 RECENT * OK [UIDVALIDITY 1201564895] Ok * OK [MYRIGHTS "acdilrsw"] ACL 2 OK [READ-WRITE] Ok 3 FETCH 1 BODY[] * 1 FETCH (BODY[] {2390} <server sends full message with headers> 3 OK FETCH completed. 4 LOGOUT
  • 59. IMAP (Internet Message Access Protocol) * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information. 1 AUTHENTICATE PLAIN abcdefghiBASE64jklmnop= 1 OK LOGIN Ok. 2 SELECT INBOX * FLAGS (Draft Answered Flagged Deleted Seen Recent) * OK [PERMANENTFLAGS (Draft Answered Flagged Deleted Seen)] Limited * 751 EXISTS * 1 RECENT * OK [UIDVALIDITY 1201564895] Ok * OK [MYRIGHTS "acdilrsw"] ACL 2 OK [READ-WRITE] Ok 3 FETCH 1 BODY[] * 1 FETCH (BODY[] {2390} <server sends full message with headers> 3 OK FETCH completed. 4 LOGOUT * BYE Courier-IMAP server shutting down 4 OK LOGOUT completed
  • 60. LDAP (Lightweight Directory Access Protocol) dn: uid=eisenhae,ou=people,o=sonoma,o=edu uid: eisenhae ssuMailHomeDirectory: /nfs/jeckle/maildirs/92/eisenhae ssuMailLocalAddress: eisenhae@sonoma.edu ssuMailLocalAddress: eric.eisenhart@sonoma.edu ssuMailRoutingAddress: eisenhae@smtp-vip.sonoma.edu ssuMailSpamAssassinPrefs: required_hits 5 ssuMailSpamAssassinPrefs: whitelist_from *@example.com ssuMailDiskQuota: 1024M
  • 61. Maildir (++) /nfs/jeckle/maildirs/92/eisenhae/ courierimapsubscribed courierimapuiddb tmp/ new/ new/1254971281.H995082P22240.cletus.sonoma.edu,S=3593 cur/ cur/1251296264.H25153P29370.krusty.sonoma.edu,S=3045:2,RS .GrayMai/cur/ .GrayMail/new/ .GrayMail/tmp/ .Lists/ .Lists.puppet/
  • 63. Email == “Sonoma State University will employ these email accounts for official University communications to students effective immediately.” http://www.sonoma.edu/it/get_connected/ provost_letter.shtml
  • 69. 1500 1125 GB 750 375 0 2004 2005 2006 2007 2008 2009 ~300G 700G 1.35T Storage Usage
  • 70. SPA
  • 71. SPA
  • 73. Peak Traffic 2006-08 to now-
  • 75.
  • 76.
  • 77.
  • 78.
  • 83. Goals
  • 89. What we Run Hardware
  • 90. What we Run Hardware • MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD
  • 91. What we Run Hardware • MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD • LDAP: 2 + master + standby. 2GB, 2 Intel 3GHz
  • 92. What we Run Hardware • MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD • LDAP: 2 + master + standby. 2GB, 2 Intel 3GHz • webmail: 2 VMs. 2GB
  • 93. What we Run Hardware • MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD • LDAP: 2 + master + standby. 2GB, 2 Intel 3GHz • webmail: 2 VMs. 2GB • lists: 1 VM. 1GB
  • 94. What we Run Hardware • MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD • LDAP: 2 + master + standby. 2GB, 2 Intel 3GHz • webmail: 2 VMs. 2GB • lists: 1 VM. 1GB • MySQL: 1 VM. 1GB.
  • 95. What we Run Hardware • MAIL: 5 + test. 8GB, 2 dual-core 2.4GHz AMD • LDAP: 2 + master + standby. 2GB, 2 Intel 3GHz • webmail: 2 VMs. 2GB • lists: 1 VM. 1GB • MySQL: 1 VM. 1GB. • storage: NetApp FAS 3070c cluster; 30*136GB 15k
  • 97. What we Run “MAIL”
  • 98. What we Run “MAIL” •exim
  • 99. What we Run “MAIL” •exim •clamav
  • 100. What we Run “MAIL” •exim •clamav •SpamAssassin
  • 101. What we Run “MAIL” •exim •clamav •SpamAssassin •courier-auth
  • 102. What we Run “MAIL” •exim •clamav •SpamAssassin •courier-auth •courier-imap
  • 103. What we Run Storage
  • 104. What we Run Storage •2 * NetApp FAS 3070s in active-active cluster
  • 105. What we Run Storage •2 * NetApp FAS 3070s in active-active cluster •10 shelves of 15 disks
  • 106. What we Run Storage •2 * NetApp FAS 3070s in active-active cluster •10 shelves of 15 disks •EMC NAS (going, going, gone)
  • 107. What we Run “webmail”
  • 108. What we Run “webmail” •apache httpd
  • 109. What we Run “webmail” •apache httpd •php
  • 110. What we Run “webmail” •apache httpd •php •squirrelmail + plugins
  • 111. What we Run “webmail” •apache httpd •php •squirrelmail + plugins •up-imapproxy
  • 112. What we Run “ldaps”
  • 113. What we Run “ldaps” •apache httpd
  • 114. What we Run “ldaps” •apache httpd •OpenLDAP (slapd)
  • 115. What we Run “ldaps” •apache httpd •OpenLDAP (slapd) •Lots of custom code
  • 116. What we Run “flanders”
  • 117. What we Run “flanders” •mysqld
  • 118. What we Run “lists”
  • 119. What we Run “lists” •apache httpd
  • 120. What we Run “lists” •apache httpd •mailman
  • 122. What we Run Secret Sauces •Tsunami
  • 123. What we Run Secret Sauces •Tsunami •puppet
  • 124. What we Run Secret Sauces •Tsunami •puppet •Registry
  • 125. SPAM
  • 128. Changes (so far) • storage backend (wiggum; otto; bruno; heckle+jeckle) • Directory layout (f/foo -> ac/foo) • Red Condor • IMAP + SMTP + SPAM + clamav (same servers now) • SPAM prefs from MySQL to LDAP • Virtualization
  • 130. The Past • My First: one box
  • 131. The Past • My First: one box • VAX; cluster
  • 132. The Past • My First: one box • VAX; cluster • 2003: VAX + student server
  • 133. The Past • My First: one box • VAX; cluster • 2003: VAX + student server • Later 2003: wiggum -> otto
  • 134. The Past • My First: one box • VAX; cluster • 2003: VAX + student server • Later 2003: wiggum -> otto • Summer 2005: performance?
  • 143. Alternatives / Future • Smarter Load Balancers • IMAP server with local caching • Shared block storage (mini clusters?) • Exchange • Outsourced (Google)
  • 144. Building your own? • Plan for Growth • Understand how to scale everything O(1) > O(log(n)) > O(n)

Notas del editor

  1. First a couple disclaimers: * It&amp;#x2019;s all my own opinions. Definitely nothing here represents an official university statement of any kind * Many people have been involved with the design and operation of this system, which has evolved over time. I&amp;#x2019;m making no attempt to give credit; assume any bad ideas were mine and any good ideas were somebody else&amp;#x2019;s. * I&amp;#x2019;m a Linux Server guy. The network is essential, but I&amp;#x2019;m ignoring it. * I have a life. And furloughs. I originally signed up for this a year ago, and in the meantime, life got complicated.
  2. First a couple disclaimers: * It&amp;#x2019;s all my own opinions. Definitely nothing here represents an official university statement of any kind * Many people have been involved with the design and operation of this system, which has evolved over time. I&amp;#x2019;m making no attempt to give credit; assume any bad ideas were mine and any good ideas were somebody else&amp;#x2019;s. * I&amp;#x2019;m a Linux Server guy. The network is essential, but I&amp;#x2019;m ignoring it. * I have a life. And furloughs. I originally signed up for this a year ago, and in the meantime, life got complicated.
  3. First a couple disclaimers: * It&amp;#x2019;s all my own opinions. Definitely nothing here represents an official university statement of any kind * Many people have been involved with the design and operation of this system, which has evolved over time. I&amp;#x2019;m making no attempt to give credit; assume any bad ideas were mine and any good ideas were somebody else&amp;#x2019;s. * I&amp;#x2019;m a Linux Server guy. The network is essential, but I&amp;#x2019;m ignoring it. * I have a life. And furloughs. I originally signed up for this a year ago, and in the meantime, life got complicated.
  4. First a couple disclaimers: * It&amp;#x2019;s all my own opinions. Definitely nothing here represents an official university statement of any kind * Many people have been involved with the design and operation of this system, which has evolved over time. I&amp;#x2019;m making no attempt to give credit; assume any bad ideas were mine and any good ideas were somebody else&amp;#x2019;s. * I&amp;#x2019;m a Linux Server guy. The network is essential, but I&amp;#x2019;m ignoring it. * I have a life. And furloughs. I originally signed up for this a year ago, and in the meantime, life got complicated.
  5. It&amp;#x2019;s Magic!
  6. It&amp;#x2019;s Magic!
  7. It&amp;#x2019;s Magic!
  8. Too complicated
  9. Still too complicated, and still missing some details
  10. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  11. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  12. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  13. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  14. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  15. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  16. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  17. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  18. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  19. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  20. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  21. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  22. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  23. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  24. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  25. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  26. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  27. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  28. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  29. RFC 821; SMTP; August 1982 (port 25) RFC 1869; ESMTP; November 1995; revised RFC 1870; ESMTP SIZE; November 1995 RFC 2476; MSP (mail submission); December 1998 (port 587) RFC 2920; ESMTP PIPELINING; September 2000 RFC 3207; ESMTP STARTTLS; February 2002 RFC 5321; SMTP rewritten; October 2008 (consolidates; updates; clarifies; doesn&amp;#x2019;t change)
  30. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  31. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  32. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  33. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  34. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  35. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  36. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  37. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  38. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  39. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  40. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  41. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  42. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  43. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  44. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  45. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  46. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  47. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  48. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  49. Example blatantly stolen from http://en.wikipedia.org/wiki/Post_Office_Protocol
  50. How email works *here* Note ssuMailHomeDirectory
  51. No Locking time.pseudorandom.hostname,flags psuedorandom(P=pid, H=microseconds)
  52. Sent January 21, 2004 Guaranteed Delivery
  53. 2003/11 (approx): 300G 2007/05: 700G 2009/01: 1.05T
  54. What&amp;#x2019;s our current peak? Back in 2007 I said &amp;#x201C;12 per second&amp;#x201D;. What is it now? https://groundwork.sonoma.edu/cacti/graph_image.php?local_graph_id=271&amp;rra_id=0&amp;view_type=tree&amp;graph_start=1154415600&amp;graph_nolegend=true&amp;graph_height=300&amp;graph_width=900 https://groundwork.sonoma.edu/cacti/graph_image.php?local_graph_id=4407&amp;rra_id=0&amp;view_type=tree&amp;graph_start=1154415600&amp;graph_nolegend=true&amp;graph_height=300&amp;graph_width=1200
  55. What&amp;#x2019;s our current peak? Back in 2007 I said &amp;#x201C;12 per second&amp;#x201D;. What is it now? https://groundwork.sonoma.edu/cacti/graph_image.php?local_graph_id=271&amp;rra_id=0&amp;view_type=tree&amp;graph_start=1154415600&amp;graph_nolegend=true&amp;graph_height=300&amp;graph_width=900 https://groundwork.sonoma.edu/cacti/graph_image.php?local_graph_id=4407&amp;rra_id=0&amp;view_type=tree&amp;graph_start=1154415600&amp;graph_nolegend=true&amp;graph_height=300&amp;graph_width=1200
  56. Note logarithmic scale Moore&amp;#x2019;s Law: chip density doubles every 18 months related: chip speed, memory sizes, transfer speeds
  57. Kryder&amp;#x2019;s Law: magnetic disk areal storage density doubles annually
  58. Diagram drive now Disk access/seek time: time to move head + time to rotate drive rotational speed is key Big jump soon with SSD? Still too expensive.
  59. History
  60. &amp;#x201C;No Layoff&amp;#x201D; unofficial policy at SSU relates to things/stuff being easier to buy than people. (stuff is up front; people are long term commitment) The amount of money isn&amp;#x2019;t the only limit, but the nature of how it flows in relation to the project. Large (capital) amounts are always special request. Email == cost center (not money maker)
  61. &amp;#x201C;No Layoff&amp;#x201D; unofficial policy at SSU relates to things/stuff being easier to buy than people. (stuff is up front; people are long term commitment) The amount of money isn&amp;#x2019;t the only limit, but the nature of how it flows in relation to the project. Large (capital) amounts are always special request. Email == cost center (not money maker)
  62. * Reliable - Highly Available, Fault Tolerant, Redundant components (just enough), no staff available outside 6:30am-6pm * Cost: prefer to spend money once, not every year * Concurrent: lots of users all at once. Locks = Evil
  63. * Reliable - Highly Available, Fault Tolerant, Redundant components (just enough), no staff available outside 6:30am-6pm * Cost: prefer to spend money once, not every year * Concurrent: lots of users all at once. Locks = Evil
  64. * Reliable - Highly Available, Fault Tolerant, Redundant components (just enough), no staff available outside 6:30am-6pm * Cost: prefer to spend money once, not every year * Concurrent: lots of users all at once. Locks = Evil
  65. * Reliable - Highly Available, Fault Tolerant, Redundant components (just enough), no staff available outside 6:30am-6pm * Cost: prefer to spend money once, not every year * Concurrent: lots of users all at once. Locks = Evil
  66. Diagram VM infrastructure 5 hosts; NetApp + EMC storage VMotion
  67. beginnings: wiggum, dir1-&gt;dir2, 2*IMAP, 2*exim, 2*spam
  68. beginnings: wiggum, dir1-&gt;dir2, 2*IMAP, 2*exim, 2*spam
  69. beginnings: wiggum, dir1-&gt;dir2, 2*IMAP, 2*exim, 2*spam
  70. beginnings: wiggum, dir1-&gt;dir2, 2*IMAP, 2*exim, 2*spam
  71. beginnings: wiggum, dir1-&gt;dir2, 2*IMAP, 2*exim, 2*spam
  72. Summer 2005; draw pegged graph Major error: didn&amp;#x2019;t get metrics going
  73. Fall 2007; talk about EMC
  74. diagram multiple shared block storage configs
  75. Growth: not just &amp;#x201C;infinite&amp;#x201D;, but have any idea how much, how fast, etc...