Is this too much file server?

We're a large bookstore. We are purchasing an inventory / POS system.  Our inventory will start off with at least 500,000 individual items and grow at a rate of about 50,000 items per year.  We will have at least 10 users 4 of which will be on the POS system 9 hours/day.  The POS part of the system will handle between 300 to 500 transactions per day.  We will will also be receiving, purchasing and returning inventory, another 300 to 500 transactions per day.  

My question is is the attached proposed configuration of the server adequate, inadequate or too much for what the software is going to be asked to do.

3 HDD in Raid 5; 2 HDD in Raid 1 - 2 quad core processors

SQL Database
Who is Participating?
awaggonerConnect With a Mentor Commented:
I believe there is enough information to give an informed opinion.  This will be a small deployment.  It is possible to overthink this.

You can look at Microsoft Great Plains system requirements as an example for the recommended system requirements.  I think we can all agree that Great Plains is a pretty resource intensive application.

Profile 2 in the example is for between 0-20 concurrent users and fewer than 1000 transactions per day.

Assuming a 64 bit processor, these are the MS recommendations:
Processor:  1 Dual Cor or 2 Single Core Processors
Disk Configuration:  RAID 1 for operating system and applications
        RAID 5 for SQL Database log and data files ( 4 disks )
Minimum Available RAM:  2 GB or more

It is when you get between 20-60 concurrent users and between 1000 to 4000 transactions per day that you need to build out your disk arrays.
If you anticipate growth to this level within 5-7 years, then follow recommendations from profile 3:
RAID 1 for operating system and applicaitons
RAID 1 for SQL database log files
RAID 5 ( 4 disk minimum ) or RAID 0+1 ( 8 disk minimum) for SQL data files
RAID 1 for TempDB (optional but recommended)
RAID 0 for SQL backups (full and log)
At a glance, the first problem I see is that you are using SATA rather than SAS, and the drives are only 7.2k drives.  Consider using SAS @ 15k rpm or 10k rpm and get better performance, but also at a higher price.

Out of curiosity, what brand server are we talking about, and who is reselling it - a big vendor like CDW or a local mom&pop or something in between?
The processors should be fine.
SAS is normally better than SATA, and 15k rpm better than 10k rpm.
I would assume the Raid 1 is for your OS and the Raid 5 will be for Data?  If so, then it would not hurt to add one or two more drives to the Raid 5.  The additional spindles will increase performance of your Raid array.

Regarding RAM, you would want to be sure the motherboard has additional slots to be able to add more RAM in the future.  12 GB will probably be enough for now, but you will want to be sure you can add more in case you do need it.
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

I agree with HomerTNachoCheese, use SAS drives and also consider using RAID10 and not RAID5 for the data, you will need 4 drives for a stripe of mirrors.
Read up on the wiki articles on RAID.  There are performance/cost trade-offs with whatever RAID level you implement.  If you want to stick with a RAID5 type of fault tolerance and want to add many more drives, consider the greater risk of double drive failure on the same array.  It is rare, but it actually happened to us a few months back.  

RAID6 allows double drive failure, but at a penalty in performance.  RAID5 with a hot spare would be equally effective as far as storage capacity goes, has slightly better performance, and you could "have double drive failure", in a sense, where one drive fails, and then you get your hot spare going and can sustain a second drive failure.
The problem with Raid 10, is that you lose half of your storage capacity because you are mirroring and striping the array.  With Raid 5, you only lose 1 drives worth of capacity for the redundancy.

This system will only be doing about 1000 transactions per day.  It does not need to be an extremely large/fast system.  It needs to be responsive to the end-users, but not overly complex to manage.
The odds of a double drive failure are very low.  It is possible, but I believe the money would be better spent on a good backup solution.  That would come in more handy.
RAID10 will have a much better performance on a server with a SQL database. They would be better sacrificing space for performance.
Also best practices for a high powered SQL Server would be to have 3 arrays
A boot mirror, a RAID10 data and an additional mirror for the log files.
The number of users and transactions per day, does not warrant the performance increase of a RAID 10.

I agree, that Raid 10 does provide very good performance, however the question is asking if the server is 'right sized for the tasks being asked of it'.  Raid 10 would be overkill.  An additional mirror for just the logs would be WAY overkill.

The specs listed for the tasks listed should be fine.  Just make sure there is room to grow if you need more RAM and more hard drive capacity would be nice.  SAS over SATA would give a nice performance increase for not a lot more money.

Don't forget the backup solution though.
Gerald ConnollyCommented:
Surely the RAID5/RAID6/RAID10 debate should be predicated on information that hasnt been supplied, ie what are the RTO/RPO requirements of this organisation! If their business model, dictates that they can survive without this system for 24 hours or so, then a RAID-5 solution might be adequate, but if their business model, says 10 minutes downtime max, then this config is very inadequate!

All things being equal, i agree that it needs more spindles, at least one additional 1TB drive as a Hotspare/RAID-6
Racim BOUDJAKDJIDatabase Architect - Dba - Data ScientistCommented:
Something is not clear in your question: do you want to use the database to actually handle files ?  If that is the case and you have frequent updates,you need to take into consideration the following for sizing:
> Make sure logs are separate from data storage and never stored on a RAID5 who is the slowest for writing.
> RAID 10 provides by far better fault tolerance and performance than RAID5.  RAID5 tolerates only a single disk failure while RAID10 tolerates half the array disk failures.  RAID10 rebuilds much faster than RAID5 and RAID6.
> If you are planning on using your database server to store links and paths to the server, I recommend using FILESTREAM option and store your files and a good NAS instead of the serve itself.
Racim BOUDJAKDJIDatabase Architect - Dba - Data ScientistCommented:
<<Raid 10 would be overkill.  An additional mirror for just the logs would be WAY overkill.>>
I believe it is hard to say:

> The OP has not mentioned if the system is subject to frequent updates.  In that case, RAID5 simply can become a big performance hog
> The OP has to mentioned either whether or not the files are large.  The larger the files, the higher is the overhead on bit parity calculation
> On also has to think about and fault tolerance and rebuilding.  Keep in mind that RAID5 only tolerates a *single* disk failure at the time while RAID10 allows half the disks to fail.  RAID10 rebuilds also faster.

Without having more precise needs from the original poster, I find it difficult to express an immediate opinion.
Racim BOUDJAKDJIDatabase Architect - Dba - Data ScientistCommented:
I would like to hear the OP on that.  I hope everybody has provided you with some good info as a a jump start.
I still think RAID10 for the data isn't overkill and the performance increase is worth considering. I agree for the purposes of this SQL deployment the additional Log array is not needed, but the OP should consider a boot mirror and RAID10 for performance, using all SAS drives.
If money is no object, then RAID 10 would be the way to go.

However, the question was if the configuration presented was overkill.  I think we can all agree that the configuration is not overkill, and we all agree the disk array needs to be beefed up.  Our difference of opinion is to the degree of beefiness which needs to be applied.

This is where the cost vs need comes into play.  I would suggest pricing for the various configurations need to be compared with the available money.  In my opinion, the order of preferrence would be:
minimum:  Raid 1 for OS and application, Raid 5 (min 4 disks) for data and logs
next level:  Same as one except replace drives with SAS instead of SATA
Next:  Add hot spare which can be added to either array
next:  Raid 1 for OS and application, Raid 10 for data and logs
next:  Raid 1 and Raid 10, plus hot spare
Best:  RAID 1 for operating system and applicaitons, RAID 1 for SQL database log files, RAID 5 ( 4 disk minimum ) or RAID 0+1 ( 8 disk minimum) for SQL data files, RAID 1 for TempDB (optional but recommended), RAID 0 for SQL backups (full and log)
paconnerAuthor Commented:
We went with what the software vendor recommended.  Raid 5 with three disks and Raid 1 with 2.  Our server has 2 processors and 12 GB of RAM
Go with a minimum of 4 disks for the RAID 5.

3 disks will cause a loss of 33% of the total storage capacity for the RAID information.  4 disks will loose 25%, 5 disks 20%, etc.  Basically, the usable storage capacity of one drive will be lost in a RAID 5 configuration.

Also, more drives mean more spindles, which increase performance.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.