We are starting a project to migrate from a legacy non-SQL Server database to a SQL Server 2008 Enterprise Edition database. The legacy database has 2 terabytes of data and we expect the SQL Server DB also to have the same or slightly higher volume. My organization wants to host the SQL Server DB in a virtualized environment. Considering the size (2 TB) does anyone see a problem with putting such a large DB in a virtual environment? What factors should we take into consideration while deciding whether to virtualize or not to?
Well, that would really depend upon your environment, the current data usage (not the whole 2 TBs would be used), your hardware RAM/Disk Configuration/processors etc. and most importantly the parallel workload. If this is a critical database and requires ultimate performance then sharing resources may not be the best choice. You may need to have a benchmark testing with all the parallel workload to sort it out. You already have the legacy system to compare it with. You may also have to try different configurations to get the optimal output as this is much more complex than a dedicated server.
Have you considered virtualising the SQL Server but having the data on a SAN? This would mean that the VM will be smaller (and therefore easier to administer/recover etc etc). You need to also consider the need for your test/dev and DR facilities to be able to match the production configuration as close as possible.
You also need to find out from your virtualization team what the maximum resources are that can be allocated to a VM and ensure that those numbers are sufficient for your instance. Not all vendors are equal in all aspects. You also want to have conversations to make sure that the resources are not over-allocated on the hyper-visor as SQL Server uses what it thinks it has. Lastly you want to be sure that the VM environment can satisfy the IOPS that you require (dedicate SAN resources directly).