Sunday, September 06, 2009

Thoughts on servers and network services

This is a post that I sent to the Melbourne Wireless mail list. Thought it might be useful for others so I am reproducing it here;

Hi Victor,

Victor wrote:
> > Thanks everyone for the replies so far. At this stage will be sticking with a Intel Atom 330.

I run a dual core atom here, low on power, not particularly fast,but thats the balance you are after if you are going atom I suppose. Always spend as much as you can on RAM! 2GB+

> > When it comes to an OS for the server, I know a little bit (read NOT a
> > lot) about linux, enough to get me through things... Should I look at
> > setting up CentOS on this or is that possibly a bit too "much" for a
> > relative "youngin" into the world of Linux per se.

The only way to learn is to do. Don't let various folks opinions put you off =) There is plenty to learn and lots of different paths to take ;) If you're new to Linux/UNIX then maybe you can head along to your local LUG, Linux User Group. I'm assuming that you are in/around Melbourne so have alook at;

> > I read somewhere that CentOS isn't for the light-hearted?

Centos is geared to be a server OS. It has a few quirks and its configuration like RHEL, is a little different to other Linux distros. I have used RedHat RHEL3,4&5 a lot and Centos mirrors them in functionality, etc My only complaints revolve around; packages in the Perl and web areas are well behind the times and they still use RPM with broken meta package dependencies! If you stick to the default repositories you'll be fine, but the packages are limited. Have a look at EPEL if you need more packages/software...

Generally speaking RHEL is solid enough and stable enough to do most server tasks well. So if Centos lives up to its name of being RHEL with out the irritating license bits then its all good experience on the Resume too...

> > Other possible options is FreeBSD, Debian 4 or Ubuntu 8.x

I have run all the above at work and at home for various uses.

If you really don't have much UNIX/Linux experience then perhaps Ubuntu will give you the least troubles installing and getting around.

Ubuntu is primarily focused at the desktop. The server version has a number of buggy things that are tied to the design decisions around init/startup script and network interface management. Fine desktop. I would recommend it to anyone starting out in Linux. Then you can grow from there...

I run a number of Debian server at home. Solid, stable, but some packages are old. This may not matter in the beginning. Networking is rock solid, more packages that you can poke a stick at. Seriously lots.

FreeBSD I have not been keeping up to date with over the last four years... There was a lot of development in the desktop arena that wasn't interesting, as I primarily used it for servers. Its solid, networking was solid and fast. It was death by compile your own packages. Hopefully this has changed. They have been moving fast, hopefully the ports tree is uptodate. Was the main reason I dropped FreeBSD. Still have NetBSD boxes here for old school non-intel hardware, Alpha, Sun, VAX, etc.

Also, not on your list, but worth a mention is OpenSolaris. I installed it on my laptop. Was pretty happy with it, except no support for my WiFi.

Another thought, to get you going; virtualise! I know it was mentioned else where in this mail thread, though I'd add to it.

I have recommended to folks in our local LUG, put Ubuntu on your machine, install VirtualBox and install the other OSes in virtual machines. More doco;

Yes VirtualBox is targeted at Desktop installs with the guest OS in a window, but it gives you a feel for the guest OS with out much investment into building another real machine. You can shut it down and boot it up, tinker with it later. Some videos;

If you get real serious about virtualisation, perhaps the simplest remote managed VM server is the Oracle Xen based stack. I saw a demo of it at LCA2009 in Hobart. I was quite impressed. Managed through a web browser. Not through some heavily licensed Windows sever like VMWare =P You can play with all the iSCSI stuff and file system mirroring etc, lotsa fun =) Doco on Oravle VM;

VMs are only good if you *really* need separation of different server apps from each other, IMHO. There is a lot of overhead in running VMs, on machines that don't have the virtualisation instructions. I don't run VMs on servers at home any more. The only reason I would is if I have to tinker with different OSes for debugging. Another reason would be snapshot file system backups. I do have a few VMs on my laptop to demo, test code, or compile code...

I'd recommend figuring out what "network services" you want to run and run them on their own interface on the server. Have a look at the 'ip' command. You can run more than on IP address on each physical ethernet interface (NIC). Then you can make the application/service listen on that IP and then tighten up your firewall rules with 'iptables'.

Doco on iptables etc;
More info here;

Then once you've played with all that, theres the amazing arena of routing =)

Old school protocols;
- BGP;

New protocols;
- B.A.T.M.A.N.;

- quagga OSPF&BGP routing software;
- olsrd routing software;
- batman routing software;

Thought this talk might be interesting; David Rowe presented at Linux.Conf.AU in Hobart this year on the MeshPotato about the village telco model, using B.A.T.M.A.N. as the routing protocol;
talk notes;
talk slides;
talk video;

Anyhow, have fun with it =)


Melbwireless mailing list

No comments:

Post a Comment