Fix: Load balancing failed to find a valid mailbox database

In questo articolo, andremo ad affrontare la “Distribuzione automatica delle mailbox” su Exchange On-premises, l’esigenza di conoscere meglio questo argomento nasce da frequenti problematiche che vedo in svariati clienti legati proprio alla gestione automatizzata di questo strumento da parte degli Exchange On-Premises.

Cosa significa “Distribuzione automatica delle mailbox”?

Quando si crea o si sposta una mailbox, o si abilita all’uso della posta un utente esistente, tale mailbox deve essere archiviata nel mailbox database. In Microsoft Exchange Server 2013/2016/2019 è possibile lasciare la scelta del database a Exchange utilizzando la distribuzione automatica delle mailbox.

Con la distribuzione automatica delle mailbox, Exchange esamina i mailbox database disponibili nell’organizzazione, esclude i database non adatti, tramite i criteri illustrati più avanti in questo articolo, e quindi sceglie casualmente il database in cui inserire la mailbox. Questo processo distribuisce le mailbox tra tutti i mailbox database appropriati dell’organizzazione.

Viene utilizzata la distribuzione automatica quando non si specifica il parametro database nei cmdlet New-Mailbox ed Enable-Mailbox o il parametro TargetDatabase nel cmdlet New-MoveRequest.

Quali sono i criteri della “Distribuzione automatica delle mailbox”?

Per trovare un mailbox database appropriato quando è necessario scegliere la posizione di una mailbox nuova o da spostare, viene utilizzato il processo seguente:

  1. Exchange recupera un elenco di tutti i mailbox database nell’organizzazione di Exchange.
  2. Tutti i mailbox database contrassegnati per l’esclusione dal processo di distribuzione vengono rimossi dall’elenco dei database disponibili. È possibile controllare i database esclusi tramite appositi cmdlet che andremo a vedere più avanti in questo articolo.
  3. Tutti i mailbox database che non rientrano negli ambiti di gestione dei database applicati all’amministratore che esegue l’operazione vengono rimossi dall’elenco dei database disponibili. Per ulteriori informazioni, vedere Ambiti di gestione dei database più avanti in questo argomento.
  4. Tutti i mailbox database che non si trovano nel sito di Active Directory locale in cui viene eseguita l’operazione vengono rimossi dall’elenco dei database disponibili.
  5. Exchange sceglie casualmente un database nell’elenco dei mailbox database rimanenti. Se il database è online e integro, verrà utilizzato da Exchange. Se è offline o non integro, verrà scelto casualmente un altro database. Se non è possibile trovare un database offline e integro, l’operazione non riesce e viene restituito un errore.

Il processo di selezione del mailbox database viene eseguito dall’agente di gestione delle risorse delle mailbox, Mailbox Resources Management Agent. È uno dei numerosi agenti di estensione cmdlet che estendono le funzionalità dei cmdlet in esecuzione. Per ulteriori informazioni sugli agenti di estensione cmdlet, vedere Agenti di estensione di cmdlet.

Se non si desidera che le cassette postali vengano distribuite automaticamente, è possibile disabilitare il Mailbox Resources Management Agent. Se si disabilita l’agente, la modifica viene applicata all’intera organizzazione di Exchange. Per ulteriori informazioni su come disabilitare gli agenti di estensione dei cmdlet, vedere Gestire gli agenti di estensione cmdlet.

Posso escludere i database dalla “Distribuzione automatica delle mailbox”?

Per impostazione predefinita, tutti i database delle mailbox montati e integri disponibili nei server di Exchange nel sito Active Directory On-Premises possono essere scelti dalla distribuzione automatica delle mailbox per l’archiviazione delle mailbox nuove o da spostare. Può essere tuttavia necessario escludere alcuni database dal processo di distribuzione per vari motivi. Ad esempio, un database delle mailbox può essere designato come database del journal, in cui è possibile inserire solo le mailbox specificate manualmente. Può essere anche necessario rimuovere temporaneamente un database dalla rotazione per eseguire la manutenzione pianificata. Exchange offre l’opzione di escludere definitivamente o temporaneamente i database dal processo di esclusione utilizzando il parametro IsExcludedFromProvisioning che è possibile impostare utilizzando il cmdlet Set-MailboxDatabase.

Il parametro IsExcludedFromProvisioning dispone $True di due valori validi e $False. Quando si imposta questa proprietà su $True, il mailbox database viene escluso dal processo di distribuzione automatica. Quando viene impostato su $False il mailbox database è incluso nel processo di distribuzione automatica. Il valore predefinito è $False.

Quando un mailbox database viene escluso dalla distribuzione automatica, è possibile creare o spostare una cassetta postale in tale database esclusivamente utilizzando il parametro Database con i cmdlet New-Mailbox ed Enable-Mailbox oppure il parametro TargetDatabase con il cmdlet New-MoveRequest.

Analisi e risoluzione dell’errore: “Load Balancing Failed to Find a mailbox database”

La gestione della “distribuzione automatica delle mailbox” può creare problemi ai nostri exchange nel momento in cui non stiamo attenti (non disponiamo probabilmente di uno strumento di monitoraggio) alle dimensioni dei volumi sui quali risiedono i nostri database. Quando questi volumi vanno ad avere meno del 10% di spazio libero il Mailbox Resources Management Agent va a impostare in automatico su $True il valore del paramentro IsExcludedFromProvisioning presente all’interno del cmdlet “Set-MailboxDatabase”.

Andremo ad accorgerci del valore di questo paramentro nel momento in cui andiamo a creare una nuova mailbox e riceviamo l’errore che vedete nello screenshot sottostante:

Per accertarci che l’errore è legato alla configurazione della distribuzione automatica delle mailbox nei database presenti nell’organizzazione di Exchange andiamo ad eseguire i seguenti comandi:

Get-mailboxdatabase | ft name,isexcludedfromprovisioning
Get-mailboxdatabase | ft name,issuspendedfromprovisioning

Il risultato dei cmdlet sarà quello descritto nello screenshot sottostante:

Come vedete il parametro “IsExcludedFromProvisioning” che di default è impostato su $False, ora è impostato su $True. Non è dunque più possibile creare una mailbox lasciando all’Exchange “l’onere” di decidere in quale database posizionare quest’ultima.

La prima operazione da fare per ripristinare il tutto sarà quella di liberare spazio nei nostri volumi, successivamente andremo a ripristinare manualmente la distribuzione automatica tramite il seguente cmdlet:

Set-MailboxDatabase “NomeDatabase” -IsExcludedFromProvisioning $false

Il risultato che andremo ad ottenere sarà il seguente:

Una volta fatto questo sarà nuovamente possibile creare le nostre mailbox e permettere all’exchange di gestire il provisioning a seconda delle sue metriche.

CONCLUSIONI

Microsoft Exchange Server è dall’ormai lontano 1996 uno tra i migliori prodotti che ci permette di gestire la nostra posta elettronica, dovete stare però attenti (magari con i dovuti strumenti di monitoraggio) a non perdere di vista la gestione delle risorse e fornire periodica manutenzione alle macchine che ospitano l’Exchange.

Stay Tuned on Technical365!!

Spread the love

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *