intro to sme server

SME Server (formerly known as e-smith) is a Linux distribution based on CentOS offering an operating system for computers used as web, file, email and database servers. It employs a comprehensive UI for all management-related tasks and is extensible through templates.

The letters SME stand for Small to Medium Enterprise, as that is the target market of the software.

The primary routers/gateways here at Enetix are all SME Servers. It is built on CentOS using the publicly available open source Red Hat Enterprise Linux sources. I chose this distribution of Linux because it’s cheap (free), secure and it was made from ground up to be used for networking and communicating. Besides that, I have grown to love it at my previous job for its stability, extensibility and it will run on really cheap/old hardware which is a plus as well.

Why SME?

RAID

It can handle all common hardware RAID controllers, but the software RAID is its main selling point. It has a pretty nifty RAID solution where it will recognize all HDDs and put them into some kind of soft-RAID. What kind you ask? Well that depends on the number of drives you have. If you have only one it will still put it into RAID1 (stripe) but it will be waiting for a 2nd drive to stripe to. If you put in a 3th drive it will still use RAID1 but now it will add a HotSpare as well, but if you put in a 4th drive it will convert to RAID5 (meaning you don’t loose 1/2 of the drives combined capacity, only 1/3) and put that drive into the RAID array as well. It does that for up to 7+ drives (where it will do a RAID5 + HotSpare) and best of all: It does that automagically, meaning you don’t have to configure anything.

Template system

All Linux distributions use config files to configure the running applications and daemons (services on a windows system), they are usually stored in the /etc/ directory on the file system. SME Server is no different, but it does that in a unique way.

It has so called template fragments which add together to create the whole config file. Those template fragments can have (and usually have) a default value, but they can be set (overwritten) by specifying db values. So there is a database (analogous to the registry in windows) where all the values are stored and there is a template file that tells the database what values it can have.

Hardware requirements

This table shows the minimum requirements:

Category Specifications
Architecture PCI-based i686 compatible processor
Processor speed 1800 MHz
RAM 512 MB
Hard Drive SATA/PATA or SCSI – at least 10/20GB (or 2 TB disk)
SCSI adapter SCSI adapter must appear on the supported list (only necessary for SCSI systems)
Ethernet adapter(s) The ethernet adapters installed on your server must appear on the supported list.
Modem (for dialup only) Only modems that are Linux-compatible may be used. WinModems are not supported.
CD-ROM drive SATA, ATAPI or SCSI
Monitor any
Graphics card any

While this is the required hardware config:

Category Specifications
Architecture PCI-based i686 compatible processor
Processor speed dual Core 2GHz
RAM 1 GB (or more with Sme Server 8 64 bit)
Hard Drive One or more SATA/PATA or SCSI – at least 40 GB and more with the space needed by your data (or 2 TB disk)
SCSI adapter SCSI adapter must appear on the supported list (only necessary for SCSI systems)
Ethernet adapter(s) The ethernet adapters installed on your server must appear on the supported list.
Modem (for dialup only) Only modems that are Linux-compatible may be used. WinModems are not supported.
CD-ROM drive SATA,ATAPI or SCSI
Monitor any
Graphics card any

I mean, you can run it off a 200-300 lei computer and it will beat a router in that price range anytime.

Extendibility

Due to the fact that uses templates virtually anyone with a bit of knowledge can write an add-on (or a contrib) that extends its functionality. For example take OpenVPN. Sure you could install OpenVPN on any system, but what the OpenVPN contrib integrates properly into the existing system. If you have the PHPki contrib installed it can take the pub/private keys from there. If you have DHCP enabled than it will not conflict with your existing pool just add to it. Best of all: It integrates into the server-manager web interface so you don’t have to fiddle with commands over an ssh terminal, and the most common configs are just a click away, tho if you want more complex settings you are free to fiddle with it via ssh as well.

LAMPP

Enetix is working with web development all the time. Some of it is .NET based, but there are PHP based sites aplenty as well. At the M-Ciuc office at least, there is no Linux based web server, and lets face it most of the sites that won’t be deployed to your production server will run on some flavor of Linux. SME Server comes pre-configured with Apache, MySQL, PHP and Python. Creating and publishing a new website is easily done via the server-manager web interface. All hosting spaces are secure and can be isolated from each other and can be accessed via FTP or even SAMBA. It even sets up appropriate DNS records for www, ftp and more. Via the template engine each hosted site can be configured to use different settings (for example php.ini, .htaccess) or to use the global (and really constrained, secure ones).

Conclusion

SME Server is really versatile. It can be managed via command line, they even have a (pretty rudimentary) ncurses based ui accesible from ssh or via a the web interface. Although it cannot be fine tuned from the web interface, the underlying platform allows huge customization and even contrib development.

It has been around since 1999, it is the first out-of-the-box server that comes pre-configured for company use, and although major updates are a bit far apart, all the core packages are well maintained.

For this price tag (free) you cannot get a more easily customizeble yet secure and stable solution.

Leave a Reply

Your email address will not be published. Required fields are marked *