Small Business Server
In this series of articles we will present a way to configure a Linux server to work in a mixed Windows/UNIX environment in a way that will scale well.
What not to do: Don't try to configure a system in a fastest way possible, migrations between configurations (for example: from flat files to LDAP, for both UNIX and Windows authentication) are not easy to do, are disruptive and in the end result make those 5 minutes of work you don't do now, hours later on.
Note: I'm suggesting here how to pick out and configure a Linux server for a small company, with a server that is build from scratch or updated with a new install, not all suggestions apply for every possible workloads, though they should be a good starting point in most cases
This series of articles will show best practices to configure a Windows/UNIX mixed domain in a extensible way. What to do, how to do it and what not to do (and why).
Our server will support:
- Network firewall and NAT
- DNS and DHCP for hosts
- User authentication and management with LDAP
- File sharing with Samba, NAT and FTP
- Printing with CUPS (from UNIX) and Samba (from Windows)
- VPN service
You will need at at least 3 computers:
- An Archlinux domain controller (our Small Business Server)
- A Windows workstation or domain member server
- A Linux domain member workstation/server
While the workstations can be made up of an hardware that will make the OS work, server machines need a little more thought put into early on.
It's best to use a server worthy hardware, but Linux will work well on commodity hardware too. Things good to have:
- At least two disks for RAID (for a server that's the single most important thing)
- ECC RAM (ECC only RAM, not ECC Registered, is supported by most middle- and high-end main-boards, isn't much more expensive that normal RAM)
- hardware RAID isn't really necessary, Linux software RAID usually will give you better throughput (only very high IOPS are hard to achive, but then it's not commodity hardware any more), allow access to SMART data for HDDs, doesn't tie you to a controller, is much more flexible that even the most expensive hardware RAID controllers
- relatively fast processor
- lots of RAM (4GB as of 2010 is absolute minimum for a new build)
Some features (easy backups, migration and Windows Previous Versions on Samba shares) require LVM running on the server.
When installing a new server put it on at least bare LVM, even if you plan to use single partition for whole system, this way, later on, you'll be able to migrate to larger HDDs or RAID without even rebooting the system.
GRUB needs a physical partition (or a RAID1 volume) to install to, so the basic configuration needs to be something like this:
sda +--------+--------+ |/boot |LVM PV | +--------+--------+
and like this for a 2+ drive setup:
sda sdb +--------+------------+ +--------+------------+ |/boot |RAID volume | |/boot |RAID volume | +--------+------------+ +--------+------------+