I am going to start a migration from and Exchange 2003 cluster to a new Exchange 2010 SP2 with 14 mailbox databases of a supposed maximum size of about 400 GB each. Each database will be divided into 2 LUNS, data and transaction logs. LUN size takes into account to leave about 20% of free space to avoid monitoring alerts. As mailboxes will be distributed randomly during migration, how can I be sure that 400 GB database size limit will not be exceeded? And after migration, as mailboxes will grow time by time, how to make Exchange respect database size limits?
The only way to limit the size of a database is to add/change a registry key. However, this has the highly undesirable effect of dismounting the database when the size limit is reached. Manual distribution is the common and most elegant solution to the problem you pose.
If you have a hard limit (SAN limits, restore limits) of 400GB then I would just have more DB's and when DB's grow to over 300GB then create another DB and move some mailboxes. Setting a hard limit only ads risk IMO.
You can also limit the size of mailboxes via Exchange Management Console in Exchange 2007 and 2010 version and for Exchange 2013/2016 Version, you can go for Exchange Admin Center to revise the size limit of mailboxes.
For Exchange 2010, you have to open mailbox setting section and try to revise "Storage quota " of the mailbox, Similarly, In 2013/2016 version go for "Mailbox Usage Section". You can check out blog to know how to limit the size of mailboxes
The actual limit is 16TB. 2010 Standard has a default limit of 1 TB but that can be changed in the registry. You can check more information about Exchange size recommendations from here