I have a setup here where I can PXE boot many machines. They use httpfs_mount to grab a modified Slax-6.1.1.iso from a web server. I am currently running HTTP File Server on a Windows Box to distribute the iso. The thing is, when I boot many machines simultaneously, the server gets hammered and it takes a while for the machines to boot up. I want to switch servers, so I tried using Apache, but the mount failed. I found a thread where Tomas and others said that Apache is unreliable with httpfs. Has anyone had luck with some other servers? I want something that can handle at least 60 connections simultaneously.
I did some research, and according to http://httpfs.sourceforge.net/techinfo.htm, the web server must only support HTTP 1.1. Apparently this is the case with HTTP File Server, which explains why it works for me. Is it possible to configure Apache or something else (like lighttpd) so that it only uses the HTTP 1.1 protocol? Or if anyone knows any other servers that are HTTP 1.1 only, that would work for me as well. Any help would be much appreciated.
So far I have tried Apache, lighttpd, and thttpd with no luck. I can see Slax-6.1.1.iso in my browser, but httpfs will not mount it. I saw that some users in these forums are able to use httpfs with monkey, so I tried that also, but it didn't work either. Can anyone help?
You should be able to look at the setup that comes with the Slax cd/usb to tell what needs to be done with monkey httpd for the booting.
( boot/pxelinux.cfg/ )
Thanks for the reply. I replaced the monkey.conf on my server with the one in boot/pxelinux.cfg/web/conf and restarted monkey, but it still doesn't work. Do I need to change anything else?
I see no reasons why httpfs doesn't work with apache, as stated on one of the links you provided 'Therefore httpfs can be used with (nearly) arbitrary web servers.' Anyway, have you tried nginx? I've heard good things about it. Also, I would like to know if you can provide a link, or a guide to setup a similar environment to yours, I need to start at least 20 workstations, but I'm still stuck heh, thanks!
@munozferna
I am fairly sure that Tomas M stated that apache could not be used due to the 'chunking of file directory information' or something similar.
The issue was that httpfs needed for this piece of information to come in one chunk and apache had a tendency to break it up into multiple chunks. (If I remember correctly)
EDIT: found quote: Tomas M wrote: jeff_sadowski wrote:
the pxe boot version seems to have a non standard implementation of httpfs
Still working on this ... I'm implementing directory browsing for httpfs. It works currently for monkeyd webserver, but won't work with most apache websites (if transfer encoding is chunked, it reads only the first chunk, which is usually just the header when using apache).
From: http://www.slax.org/forum.php?action=view&parentID=24563
munozferna wrote:
I see no reasons why httpfs doesn't work with apache, as stated on one of the links you provided 'Therefore httpfs can be used with (nearly) arbitrary web servers.' Anyway, have you tried nginx? I've heard good things about it. Also, I would like to know if you can provide a link, or a guide to setup a similar environment to yours, I need to start at least 20 workstations, but I'm still stuck heh, thanks!
Nginx is actually one of the webservers I had considered trying, but after lighttpd, httpd, and monkey failed for me, I decided to stick with HTTP File Server for the time being. But since you mentioned it, I will probably give it a try next week.
As for my setup, I have a CentOS 5.3 machine that is running tftp-server, apache and has a pxelinux.0 file. All my machines are registered by MAC address, hostname, and IP address in a DHCP server that points to the pxelinux.0 file located in /tftpboot on my CentOS machine. When I run a script, it sends a wake on lan signal to all my machines, which have been set to network boot first in the BIOS. When they turn on, the DHCP server assigns them their proper IP address and they download vmlinuz and a modified version of initrd.gz. initrd then uses httpfs_mount to mount my Slax-6.1.1.iso from my HTTP File Server and the machine boots up to Slax. You probably have a lot of questions, you can read this thread for a lot of answers, it helped me a lot.
So I revisited Monkey server a couple days ago and I got everything working. For the last two days I have been booting Slax using httpfs from a Monkey webserver, and it works great. I am using copy2ram and it takes about 2-3 seconds to copy the entire ISO.
What I want to do now is make it scalable. I need to PXE boot at least 30 machines at a time. The problem is that when I do this, several machines break because they are unable to copy the ISO in its entirety. I figured that because httpfs breaks the ISO into many little chunks and downloads them, I would need to increase the number of max connections in monkey.conf. I increased it by a factor of 100 and yet it didn't make any difference. Does anyone know the solution?
Thanks
P.S. I don't think it is a hardware issue, I have used the same hardware with HFS server, and while it is slower, all the machines do eventually boot up to Slax.
Nevermind, I found another solution. It turns out that Monkey is great at serving small files to many clients, but it breaks when serving large files to more than one client at a time. I downloaded the ISO from Monkey using wget across 5 machines simultaneously, and everytime, only 1 machine would get the entire ISO, while the others would only get a fragment. I finally decided to give nginx a try out of desperation, and forunately it worked. I just PXE booted 12 machines simultaneously, and they were all successful. Tomorrow I will try 30 at a time.
I recommend you to take a look at this http file server. You can set up your own file server for managing and sharing files through web browser. It's like DropBox but self-hosted so that you can keep all your confidential files on your own server. The web based UI looks and feels like Windows 7 Explorer. It offers features that are not possible with a FTP server such as zipping files, downloading multiple files and folders in single download etc. It's also easier to set up and administrate than a FTP server.
http file server http://www.gleamtech.com/products/filevista/web-file-manager