3. How many public folder mailboxes are needed?
A single public folder mailbox serves a complete organization
only if the organization is small or makes limited use of public
folders. When an organization grows beyond a few servers, or public
folders are used extensively, thoughts turn to creating additional
public folder mailboxes. The reasons you might want to use extra public
folder mailboxes include:
Spreading
the client load across multiple mailboxes. If every public folder is
stored in a single mailbox, all client connections will be directed to
the database holding that mailbox. This is acceptable if you only need
to use a few public folders, but it would not be feasible to operate a
single public folder mailbox to hold 10,000 folders accessed by 100,000
users.
Keeping data close to
users. It makes sense to place public folders in mailboxes stored in
databases whose copies are hosted on servers that are close (in network
terms) to end users. For example, if you had a set of public folders
that members of the company located in Germany use, it would be better
to host those folders in databases on servers located in Germany rather
than in the United States.
Keeping
the public folder mailbox to a reasonable size. The total content of
all the public folders held in a public folder mailbox count toward its
overall size, which is constrained by the ProhibitSendReceiveQuota
setting on the mailbox. When the limit is met, Exchange won’t allow new
items to be posted to the folders in the mailbox. As you create new
public folder mailboxes, make sure the mailboxes are assigned an
appropriate quota. On an ongoing basis, you should monitor the size of
public folder mailboxes and arrange to move folders between mailboxes
(first creating a new mailbox if required) if the size of any mailbox
approaches the limit.
As part of the migration
process to move older public folders to the new format, you have to
determine how many public folder mailboxes should be used and how to
assign the public folders to those mailboxes. The same process should be
undertaken for new deployments. Remember that you can start with a
single public folder mailbox and introduce new mailboxes as required,
moving folders between mailboxes to rebalance load or concentrate
connections. Alternatively, you can start by creating a set of public
folder mailboxes and distribute folders as they are created across the
set of mailboxes. If any mailbox turns out to be hot because of the
load that user demand creates, you can then redistribute folders across
the other mailboxes.
Calculating public folder mailbox size
In terms of its current size, assigned quota, and maximum
size, Exchange treats a public folder mailbox like any other mailbox.
When a public folder mailbox is created, the default is to set the UseDatabaseQuotaDefaults
property to $True; then Exchange applies the default quota settings
used for the database in which the mailbox is created. Usually, these
settings allow a mailbox to grow to a much smaller size than 100 GB.
The default ProhibitSendReceiveQuota
setting used in Exchange 2013 is 2.3 GB, so this quota governs the size
of a public folder mailbox unless you set specific quotas for the
mailbox or define new defaults for the database. For instance, to set
new quotas for a public folder mailbox, you can run the Set-Mailbox
command as follows:
Set-Mailbox –PublicFolder –Identity PF-IT-Mbx –UseDatabaseQuotaDefaults $False –ProhibitSendReceiveQuota 50GB
In
this case, setting UseDatabaseQuotaDefaults to $False tells Exchange to
ignore the quota settings used for the database; setting
ProhibitSendReceiveQuota to 50 GB sets the new quota.
You can
determine the size of a public folder mailbox in exactly the same way
as any other mailbox by running the Get-MailboxStatistics cmdlet. For
example, to return the total number of items in the mailbox and their
size:
Get-MailboxStatistics –Identity PF-IT-Mbx | Select ItemCount, TotalItemSize
To
determine the number of items in an individual public folder and the
size of those items, run the Get-PublicFolderStatistics cmdlet and pass
the identifier for the folder. For instance:
Get-PublicFolderStatistics –Identity "\Departments\IT\Exchange 2013" | Select ItemCount, TotalItemSize
Alternatively,
to list all the public folders in a mailbox and report the size of the
folder, run the same command but pass the name of the mailbox as a
parameter:
Get-PublicFolderStatistics –Mailbox 'PF-IT-Mbx' | Format-Table Name, ItemCount, TotalItemSize -AutoSize
When
you run Get-PublicFolderStatistics against a mailbox, the command
returns a list of all folders in the mailbox and the number of items
contained in each folder. If a folder has recently been moved to
another mailbox, you will see that some items are reported for the
folder in the original mailbox. The Managed Folder Assistant removes
items from the original mailbox when the deleted items retention period
for the mailbox expires. (Note that the Managed Folder Assistant does
not apply retention policies to public folder mailboxes.) In addition,
if you run Get-PublicFolderStatistics against the mailbox that holds
the primary copy of the hierarchy, it returns a complete list of all
the folders in the hierarchy. If you run Get-PublicFolderStatistics
without passing the name of a public folder mailbox, Exchange extracts
information from all mailboxes and reports a complete picture of how
many items exist in public folders no matter in which mailbox the
folders are located.
If a public folder mailbox grows too large, you can split it with the Split-PublicFolderMailbox.ps1
script that is available in the \v15\Scripts directory. The script
takes the name of a public folder mailbox as the input and the name of
another mailbox as the output and then attempts to move sufficient
folders out of the mailbox to reduce the mailbox size to less than 60
percent of the assigned quota. The script is intelligent enough to move
child folders with their parents.