The following are a few suggestions about hardware and software to use for an Intel - Linux - Netatalk setup. Note: These are suggestions only. Just about any hardware and software configuration can be made to run netatalk. This doccument assumes you are running Intel Linux. (Linux for other platforms does exist, such as MkLinux for the PowerPC, SparcLinux for the Sun Sparc etc. etc.)
Hardware
- Personally I like to stick to a nice name-brand machine such as a Dell or a Gateway. Support for one of my Gateway machines has been great, and my Dells just don't break. (this is not to say that Gateways are bad, just the one I had!)
- Don't waste your money on a power-house machine if you don't need one. I have netatalk running on a couple 486 machines serving a 25 seat mac lab. Generally Pentiums are nice and snappy. A 166Mhz pentium will compile a current kernel in less than 8 minutes, a 233Mhz in about 4, and a 400Mhz in a little over 2. Seeing as this is probably the most CPU intensive thing most people do with their Linux box, I say you're very good with a 166Mhz machine generally.
- You'll get more speed out of a server spending less on the CPU and more on I/O and RAM. You want to get your hands on the fastest hard disk you can as this is always the slowest link in the chain. There is no point in going whole hog on a quad 400Mhz Pentium II and then having an IDE hard drive to wait for. SCSI disks generally sustain faster throughput, so spend your money here.
- The other I/O consideration would be a good network card. I have had nothing but good luck with 3Com cards. Stay far away from Intel EtherExpress cards as some of their drivers don't support multicasting which is needed for Netatalk. There are other cards out there which are also suitable, but I like the 3Com products so much that I run a purly 3Com shop. If your machine has a PCI bus, get a PCI network card such as the <shameless promotion>3Com 590 Vortex card</shameless promotion>. ;)
- RAM is a very important consideration. Usually boxes out there are greatly understaffed in the RAM department. My 25 seat Mac lab is served via 32 megs of RAM. I find at peak periods, the majority of my users aren't doing much server I/O so I can get away with this number. (The box also houses a web server and two proxy servers.) Each connection you wish to make to your netatalk machine requires RAM. For file services, you will need atalkd (about 316K) and afpd (about 336K) running. Each connection you make will require an additional afpd process (about 584K) so for every two seats, you will need over 1 meg of RAM for Appletalk alone. Get more RAM than you think you need because growing room is always good.
Here's a typical process list from a server with 1 Mac client attached and several usefull services:
# name RAM discription ------------------------------------------------- 2 - afpd 936K Appletalk Filing Protocol daemon. 3 - agetty 760K 1 - smbd 440K (Samba, file and print services for Windows) 1 - in.telnetd 376K 1 - nmbd 368K (another Samba daemon) 1 - rpc.nfsd 324K 1 - papd 320K AppleTalk printing daemon. 1 - atalkd 316K The AppleTalk daemon. 1 - rpc.mountd 296K 1 - init 292K 1 - crond 288K 1 - inetd 272K 1 - lpd 268K 1 - klogd 264K 1 - rpc.portmap 248K 1 - update 196K 1 - kflushd 0KSoftware
- Obviously we want to run Linux. The choice lies in the distribution to run. I have run RedHat, Slackware, and Debian Linux and favor Slackware over all for several reasons which I will not go into. All of these packages are very solid and run netatalk very nicely. The slackware 3.1 distribution which is available from ftp.cdrom.com is what I used for the majority of my netatalk installations and should be fine for most people. (Please don't flame me telling me that another distribution is superior. I use many differient ones and am just stating a prefrence. In fact, I'm typing this on a RedHat distribution machine. It's actually a Sun SparcClassic, but that's another story.)
- There are several versions of Netatalk floating around these pages. The oldest is Netatalk-1.3.3b2 which is good for old kernels such as 1.2.13 which comes with old Slackware Linux distributions. Netatalk-1.3.3 is the latest non-beta package, and it works best with a 2.0.0 and up kernels. The Netatalk-1.4b2 code is the latest beta boasting much more optimized routines giving much faster performance with less CPU usage. This code also only runs on the latest kernels. The netatalk code hasn't been updated in quite a while, so to keep up with changing technologies such as AppleTalk IP, so there now exists netatalk-asun. If you want the latest of the latest, you want asun.
- Kernel version is also an important consideration. For my production machines, I stick with a 2.0.* kernel such as 2.0.33. Slackware doesn't come with the latest kernel which I suggest upgrading to 2.0.33 as a good production kernel. Kernels prior to 2.0.25 can be taken down with the "ping of death" attack. It's a bug that has existed in almost every operating system out there. Newer betas will most likely take advantage of newer kernel features only available in say the 2.1.* and up kernels, so if you plan on running a test server, you should look at newer kernels. The 2.0.* kernels are considered production while the 2.1.* kernels are considered testing kernels.