Fifth Generation

From Apis Networks Wiki

Jump to: navigation, search

Planning section for the fifth generation of servers. Every new server generation includes a set of goals aimed at improving client experience. The following are proposed changes for the next generation.

Contents

Hardware

Minimum 8 GB RAM
extensively leverage caching between the filesystem, Apache, PHP (APC), and MySQL
RAID5 - 4 x 146gb 2.5" SAS drives
smaller platter, higher areal density, improved performance over current 3.5" SAS drives. RAID10 provides better safety against parity errors during a rebuild, but total capacity is well below a nearline 500 GB SATA.
PERC 5i/6i BBU RAID controller
move from software to a battery backup hardware RAID controller. Enable write-back caching to offset decreased RAID5 write throughput.

Architectural

Changes on the hardware/OS level

LVM2 + ddsnap/zumastor filesystem snapshots
copy-on-write method that operates natively on the block layer; faster than external CDP program (R1Soft) and no dreaded vendor lock-in issues (R1Soft again). Need to address performance issues on blocks that change frequently such as MySQL files. Filesystem structure may need to be modified to restrict snapshots.
centralized filesystem skeleton
Maintaining consistency across all servers has always been a challenge. Developing a system of mirroring and package updates will ensure that everyone has access to the same software and that upgrades propagate properly to accounts.

Software Updates

Software updates and minimum target versions. Base platform will be based on RHEL 5.3, with packages selectively derived from FC111/RHEL6.

Core Package Addition/Upgrades

Package 4th Gen Version 5th Gen Version Notes Requested By
bash 3.0 4.0 Reported problems in $(...) syntax, but fixed in pl-1 msaladna
bazaar - 1.3 Requested wm
Mercurial - 1.2 Requested wm
MySQL 5.1 - >= 5.1.33 Not a guarantee. Earlier versions had problems with sporadic corruption on 5.0 -> 5.1 straight upgrades. Needs testing during server pre-runs in June msaladna
Perl 5.8.8 5.8.9 msaladna
Python 2.3.4 2.6.1 3 is not backwards-compatible. Control panel Python libraries will be localized to allow future Python upgrades. msaladna
Ruby 1.8.4 1.9 Version changes only apply to new Rails installations or upgrades. Ruby 1.8 interpreter will be copied from existing accounts. msaladna
libxml2 2.6.16 2.7

Please append additional software to the table.

Software Changes

Changes in current software availability.

  • Localize Python distribution to
  • PathConvert ln replacement (?)
SpamAssassin global configuration
Allow admin to set global SpamAssassin directives. Use base config /etc/spamassassin/global_prefs, then source local config file- ~/.spamassassin/user_prefs (requested by Harith implemented)
  • Add Mail/ prefix to Maildrop home. Recipes currently require Mail/ in destination.

Custom Changes

A listing of internal changes present with the fourth generation that must be carried to the fifth generation

  • SpamAssassin
    • fchdir() jail break
  • maildrop
    • remove getpwnam() fallback lookup
    • change MAILDROP_RC base directory to relative

Deferred Changes

These changes have been deferred or denied due to timeliness or architectural limitations.

Remove @domain from login - deferred
This is something that is possible, but requires significant time to emulate the proprietary Ensim PAM and NSS modules. Remember that '@' is interchangeable with '#'. scp authentication issues may be solved by switching to rsync.
Personal tools