Fifth Generation
From Apis Networks Wiki
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.
| 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 Harithimplemented)
- 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.
