Hey guys,
I am about to set up a mass storage server for various audio/video streaming offers including file downloads. Before this, I worked with a lot of smaller servers (DL-120 with 8 TB storage and XFS file system) and so I would like to know if anyone can offer some experience as to what I have to watch out for with a bigger server.
For the hardware I was thinking of:
I would also use one more 120 GB SSD in order to outsource the operating system (FreeBSD 9) to this drive. As a file system I was thinking about using ZFS. The 24 hard drives would be configured as a RAID-Z3 to offer some fail-safety as the 42 TB are quite a lot of data which should be available 99% percent of the time. According to some online sources the software RAID of the ZFS should work faster and better than most hardware RAID controllers. I would therefore not use a hardware RAID controller and let the system handle it.
As a web server I think about using the latest stable release of NGINX. In this case with 16 threads including async I/O and the MP4-streaming plugin and PHP5-FPM.
Now the following questions arise: how will all this work out in this configuration? On average the bandwidth in use will be 4-5 Gbit at peak times. There will be about 50 to 100 file requests per second. The serving of the files will be done completely over NGINX. My software is PHP based and will only refer via the HEADER to the right file including limits, etc. The most load average will therefore be produced by NGINX at the random-read of the data. How can this be optimized? What would I have to watch out for? Do I have the option of a cache for ZFS with a SSD in addition to the RAM? How much load would be taken off the system if this cache was in use?
Thanks in advance!
I am about to set up a mass storage server for various audio/video streaming offers including file downloads. Before this, I worked with a lot of smaller servers (DL-120 with 8 TB storage and XFS file system) and so I would like to know if anyone can offer some experience as to what I have to watch out for with a bigger server.
For the hardware I was thinking of:
- Supermicro 846TQ Model
- 2x Intel Quad-Core Xeon E5620
- 64 GB DDR3 RAM
- 24x 2TB SATA2
I would also use one more 120 GB SSD in order to outsource the operating system (FreeBSD 9) to this drive. As a file system I was thinking about using ZFS. The 24 hard drives would be configured as a RAID-Z3 to offer some fail-safety as the 42 TB are quite a lot of data which should be available 99% percent of the time. According to some online sources the software RAID of the ZFS should work faster and better than most hardware RAID controllers. I would therefore not use a hardware RAID controller and let the system handle it.
As a web server I think about using the latest stable release of NGINX. In this case with 16 threads including async I/O and the MP4-streaming plugin and PHP5-FPM.
Now the following questions arise: how will all this work out in this configuration? On average the bandwidth in use will be 4-5 Gbit at peak times. There will be about 50 to 100 file requests per second. The serving of the files will be done completely over NGINX. My software is PHP based and will only refer via the HEADER to the right file including limits, etc. The most load average will therefore be produced by NGINX at the random-read of the data. How can this be optimized? What would I have to watch out for? Do I have the option of a cache for ZFS with a SSD in addition to the RAM? How much load would be taken off the system if this cache was in use?
Thanks in advance!