I am new to MS Dynamics so please excuse the "possibly newbie questions".
We are in the process of implementing Microsoft Dynamics AX 2012R2 and I was wondering what the ideal mid-range setups would be. We would need some sort of high-availability
There will be approximately 100 users with predicted growth to around 150.
We are in the process of acquiring the hardware and my initial thoughts were to have some sort of 1GBit iSCSI backened (HP MSA P2000) with a bunch of 15k RPM disks in RAID 10 and clustered storage using Windows Server 2012R2 for all the virtual machines (virtualizing the entire setup).
Any sort of advice or experience would be great.
I have a setup of 75 users of DAX 2009 running on a HP MSA2324fc G2 via fiber channel with 24 drives + 6 inside the database sever for TempDB; all drives are 15krpm SAS drives. Right now the production environment is almost fully virtualized (3 x AOS, APP, terminal servers used by users) and it will be fully virtualized next week (running last performance tests on the new SQL server with SSD storage).
What can I tell you for sure is that you'll need a lot more iops than a bunch of disk in an MSA can provide. Also, 1Gb iSCSI might be a bit to less. Of coures it depends on your particular setup.
Looking trough my logs I've seen at most 4k iops per vDisk (I have 2 vDisks for data and 1 for Log) with at much at 200 ms latency (usually is about 15-30 ms). Because of this and the fact that my database is about 400GB (it isn't that big) i've gone on the all SSD array route. In my latest 8k random read tests I get almost 50k iops with 0 ms latency form a single 5 ssd's raid5 array ! This is from a server running Windows 2012 R2 inside an vCloud VM. Of course, I'm absolutely sure that we could squeeze a lot of performance from the system by tuning some queries or rewriting some parts that we customized over the years but It would probably cost more then these ssd's...
Anyway, it's a big topic and if you have any particular questions go ahead and ask and I'll answer if I can.
Thanks for your detailed response.
It seems I have been heavily underestimating the requirements.
I would have thought a 150 user base would be easily hosted on an HP MSA 2000 with 12 * 15k disks in RAID 10 and an 1GB iSCSI back end. The setup I was considering is attached (excuse the kiddy drawing). Two main physical servers using Clustered Shared Volumes with Windows Server 2012 R2 and the Hyper-V role running both the AOS and SQL server on the MSA. I ideally wanted 3 simple VHD's. One for the SQL server, one for the AOS server and one final one for the TS server? Would it be better to have a SAS connection to the MSA or even host it on the local disks of the server?
Sorry, I'm just incredibly new to the subject.
Hi! don't worry, I wished I had this info when I started with AX.
1. fiber channel is best for the MSA 2000 (in terms of latency witch is what your users notice first), after SAS and the last is 1GB iSCSI. SAS is cheaper then fiber channel but you will loose the flexibility provided by fiber channel.
2. In AX 2012 the Application folder (were the code is) "moved" into the database (I didn't had to much time to read about Ax 2012 so I might be wrong) so you don't need a dedicated vdisk on the MSA
3. The docs that I've read said that one AOS server can handle about 50 users without performance drops but it were fairly old docs and newer server are far more capable; multiple AOS servers can be dedicated for batch task, external system integration and so on, so consider buying at least 2 licenses.
4. In my setup, 6 15k rpm SAS drives (in SQL server, not in the MSA) weren't enough for TempDB (over 20 ms latency). I also have 2 vdisks of 10 15k rpm drives in raid10 for data (each assigned to a different controller) and 1 vdisks of 4 15k rpm drives in raid10 for logs (witch it is to less because I see periods of over 20 ms latency). The terminal servers were hosted on other storage so, the MSA is dedicated to the AX SQL server.
5. consider buying at least one HP D2700 disk enclosure to add more spindles for the SQL server or invest in array that supports SSD storage at some point in time; you'll know it after few months of running the system.
As I said, it depends on how many transaction you'll have in a certain period of time, if you run batches during business hours, how bad (or good) is the customization done by your partners and so on.
Hope it helps!
Hi and thanks again.
Yes, I thought of fibre channel but that will most certainly be out of our budget. Connecting the servers directly using fibre straight into the MSA may save a little cost but I think it will be outside the budget too.
I was thinking of going the SAS route as I'm a little worried with the performance of 1gb iSCSI.
If so, ill be buying as many disks as the budget can provide however I'm a little confused as to how to set them up.
Would you creat multiple arrays of RAID 10 and put each VHD on a single set or is there a better way?
The objective is to have all the servers (AOS, SQL, TS) on the MSA. We have a spare high performance G7 with 8 15k disks which we could use for the SQL databases or TS?
How would you set this up? My current shopping list is;
HP G8 server * 2
HP G7 server * 1 (spare)
MSA with 12-16 15k disks
SAS connection to the backend
I'd like to use clustering with Hyper V and I would be purchasing another AX license.
How would I use the above to host the entire AX setup in your opinion?
I can make minor changes here and there and possibly spend a 'little' more money if needed.
Sorry to trouble.
If budget is a concern, I guess SAS has the best performance/price.
AX uses TempDB heavily so I would use those 8 15k disks from G7 for it (in raid 10, inside the MSA; I have tempDB database on the disks inside the server but I have only one server).
I would also use at least 6 15k disks for the database log (raid 10 also). Keep in mind that the log can grow substantially when you have big transactions or, for example, add a new financial dimension (mine grew to 250GB and I only had 120GB vdisk for it...so I had a few problems because of this)
The remaining disk can be used for the actual database but, based on my setup, it might be too little to store the database on a raid10 array of 8 15k disks and use the remaining 2 disks in raid1 for the terminal server and AOS servers. Please note that you won't have any hot spare...
Another Idea is to use the G7 for the terminal and AOS servers and buy 4 10k disk (or 5 for hot spare). This will give you another 2 disks slots for the actual database.
Also, you could buy 2 SSDs an place them inside the SQL server (in raid1) and use them for tempDB (although I don't have experience with clusters I guess you'll need some kind of shared storage to be able to place TempDB on them). In this case, you could use those 8 15k disks for data files + terminal servers + AOS servers.
You will also have to take in account how big is your database and how much it will grow every year to make sure you have enough free space. I've started with a 7 GB database that grown to 400GB in about 5 years.
Bottom line: buy as many disk as you can! this is your number one problem concern regarding AX performance. This and bad code written by your partners.
Are you planning to install Hyper V on those 2 DL380 G8 and install SQL server in VM's?
My production setup for Ax2012 for 440 users (80 heavy users rest only logs in ones a week) is:
2 AOS for users
4 AOS for batch tasks (invoicing/master planning/Sending receiving XML)
2 Terminal servers
SQL is a 2 node active 1 node passive cluster (windows clustering) not virtual. On the SQL cluster we also installed SSRS and SSAS.
It all depends on what you are going to do with AX. master planning and sending/receiving XML through AIF are pretty consumming for example. 1 AOS for 150 users just looking at stuff will perform excellent. 1 AOS with 10 users all doing master planning over entire database will kill all the fun.
A few TIPs:
We choose SQL 2008 R2 Enterprise edition for several reasons, 1 reason was COMPRESSION.
The database of AX is unicode and you can PAGE compress almost every table. This will save you up to 60% from the Original size of the db. More records get into the same memory which will make things even faster, downside it will cost you up to 15% more CPU.
In comparison to AX 2009 AX 2012 is a whole lot more demanding. AX2009 I had 3 AOS total all AOS had 2 cores and 4GB RAM. AX 2012 I have 6 AOS all 4 cores and 16GB RAM.
If you have more questions, do ask...
The hardware sizing you can find at below link
for the topology part you can have a AOS clustering (I don't think you will need a dedicated load balancer). For the high availability make sure to have a Failover clustering of SQL.
Thank you all for your fantastic support. This forum really does help.
Yes, my initial plan was to virtualize everything including the SQL server. I was thinking of using HyperV clustering and getting all VHD's onto the MSA. It seems from most people's configurations that they don't really virtualize SQL and they are keeping them on physical machines. I think iSCSI would now be out of the equation as I'm not too sure it can keep up. SAS would be safer I believe. Unless we go 10gb.
I was also confused with SQL clustering or just clustering HyperV as that would be hosting the SQL installations as VM's? Is it necessary to cluster both SQL and hyper v?
So what I wanted was one SQL installation with 3 separate VHD's (tlogs, databases, os) each one stored on the MSA and a single AOS server installed on a VHD and again have that on the MSA. The terminal services I was hoping to have on the older G7.
This is so confusing! I wish there was a simple guide as to how and which configuration options one can do.
We are average users no major or large processes. . Can some users share their configurations of similar style or load? Just setups that match our budget and current hardware shopping list. Of course we can change the shopping list based on all your expert advice. I want to try and stay within 30 - 35k
I'm sorry to be such a pain. It's just I'm totally new to this!
I was confused with SQL clustering;
can I get away with creating 4 VHDs on the MSA P2000 (1 for the OS and attaching 3 VHDs as separate drives for the TLogs, databases, temdb) or create just one large VHD and split that into 3 partitions and then host that as a highly VM using Hyper V clustering? or is that a really bad setup and I should be using two physical servers for SQL clustering?
Finally (I promise).. Do I need to install terminal services on the same machine as the AOS server? Or do you just install the client on the terminal service server and that connects to the AOS server?
I'm really sorry to bother you all.
Thanks as always.
Hi Alex & Walters,
Is there any document covering on how to plan infrastructure and sizing for AX 2012 implementation? I am actually looking for sizing principles, methods and approach kind on information.
I was confused with SQL clustering;
I'm really sorry to bother you all.
About SQL set up depend on your business.
However, for 100-150 users where concurrent will be less, could be fine also Hyper V clustering.
Finally, each AX service ( AOS, Client, EP, etc.) have to run on a specific server.
So you have to install the client on a terminal service server. For my experience, one AX User needed about 500 MB ram. So, is better at least have two terminal server with 25 GB RAM.
Thanks & Regards
Senior Technical Architect
Thanks a million!