Exchange Queue & ALog delle transazioni, cmdlet, gestione remota e molto di più

KC Lemson and Nino Bilic

D Perché sono state diminuite le dimensioni del log delle transazioni a 1 MB in Microsoft® Exchange Server 2007?

R In Exchange 2007 esiste la cosiddetta distribuzione dei log, che è la tecnologia di supporto di un paio di nuove funzionalità chiamate Replica continua locale (LCR) e Replica continua cluster (CCR). Quando tale funzionalità è attivata a livello dei gruppi di archiviazione, i log delle transazioni dei gruppi di archiviazione sono copiati dai gruppi di archiviazione in esecuzione alla copia. I log sulla copia dei gruppi di archiviazione sono ripetuti nel database per tenerlo aggiornato. Questa è ovviamente una spiegazione semplificata di cosa accade, ma rende l'idea.

Il problema è che i log delle transazioni non possono essere inviati alla copia dei gruppi di archiviazione, a meno che il log non sia chiuso sui gruppi di archiviazione di produzione. In breve, il log e00 (il log corrente nel primo gruppo di archiviazione) non può essere inviato finché non è pieno, non è stato chiuso e rinominato. Inoltre, dal momento che occorre fare un compromesso tra disponibilità e prestazioni, è possibile effettuare alcune impostazioni per controllare quanti log possono essere impiegati in questo processo. Queste impostazioni sono disponibili eseguendo il cmdlet Set-MailboxServer in Exchange Management Shell. Nel file della guida sono forniti i dettagli dei parametri esatti necessari.

Riassumendo, abbiamo diminuito la dimensione del log delle transazioni per minimizzare il numero di dati che non possono essere in sincronia tra due copie del gruppo di archiviazione. Ciò accade quando il disco rigido del database di produzione subisce un arresto e si richiede l'adozione di misure particolari per avviare il gruppo di archiviazione dalla copia. I log delle transazioni più piccoli potrebbero far perdere meno dati.

Ciò non significa che è possibile garantire una perdita di dati di solo 1 MB. Questi log sono, tuttavia, log delle transazioni, quindi è possibile che la perdita del log file di 1 MB contenga, ad esempio, una transazione COMMIT di 5 MB di dati. In tal caso, si perderebbero 5 MB di dati sulla copia: anche se si fossero ricevuti cinque log con i dati, l'ultimo log contenente pochi dati e la transazione COMMIT è essenziale.

In definitiva, spetta all'utente valutare il rischio, considerando i bisogni dell'azienda. Una piccola perdita di dati con un tempo di ripristino di pochi minuti potrebbe essere perfettamente accettabile, se paragonata all'alternativa di molte ore per il ripristino. Tratteremo in modo più esauriente questo argomento in futuro!

D Adesso che i log delle transazioni sono più piccoli, si "esauriranno" più velocemente?

R Quando si parla di Exchange, l'esaurimento si riferisce ai nomi dei log delle transazioni. In Exchange Server 2003, i nomi dei log delle transazioni sono:

E nn fffff.log

nn è il prefisso che cambia da un gruppo di archiviazione all'altro. Poiché nn rimarrà invariato per tutta la durata del gruppo di archiviazione, il numero dei log delle transazioni con nome univoco che possono essere creati per il gruppo di archiviazione è essenzialmente il valore "fffff", che corrisponde approssimativamente a un milione di log (nota: fare tante grasse risate). Alcuni dei nostri clienti hanno riscontrato questo limite sui server di posta occupati.

A partire da Exchange Server 2000, abbiamo fornito un aggiornamento rapido per visualizzare un evento nel log delle applicazioni quando ci si avvicina a tale limite. Per ulteriori informazioni, vedere support.microsoft.com/kb/896001.

A parte questo, cosa succede in Exchange 2007? Abbiamo appena detto che i log delle transazioni sono stati ridotti da 5 MB (la dimensione nelle versioni precedenti di Exchange) a 1 MB (la dimensione in Exchange 2007). Viene da chiedersi se occorre solo un quinto dei dati per esaurire i nomi personalizzati dei log delle transazioni.

La risposta è no. In Exchange 2007, il nome del log delle transazioni è in questo formato:

E nn ffffffff.log

notare che è possibile lavorare su "ffffffff" log, invece che sui "fffff" delle versioni precedenti di Exchange. A causa dei calcoli interni di Extensible Storage Engine (ESE), Exchange 2007 non è in grado di creare tutti i log "ffffffff". Crea, invece, "7fffffec" log, che sono sempre un numero notevole (se non ci credi, prova a fare la conversione da esadecimale a decimale).

Che cosa significa in realtà? In realtà, con Exchange 2007 è possibile creare circa 2048 volte tanti log rispetto alle versioni precedenti di Exchange. Assumendo che i log siano un quinto della dimensione:

2048 / 5 = 409.6

come si vede, il nuovo schema per denominare i log è in grado di gestire 409 volte più dati rispetto a quello vecchio. Ciò vale per il gruppo di archiviazione, non per il server, perché ogni gruppo di archiviazione avrà un prefisso di file di registro diverso (come e00, e01, e così via). È inoltre possibile creare 50 gruppi di archiviazione per server sulla versione Enterprise di Exchange 2007. Non è tanto facile esaurire velocemente i log delle transazioni!

D Come è possibile gestire i server Exchange 2007 in modalità remota?

R Ci sono molte opzioni per gestire il server Exchange 2007 in modalità remota. Innazitutto, è possibile installare gli strumenti di gestione Exchange 2007 su un computer separato dal server Exchange, se in tale computer viene eseguita sia la versione a 32 bit che quella a 64 bit di Windows® Server 2003 Service Pack 1 (SP1) o versioni successive, Windows Server 2003 R2 o Windows XP SP2 o versioni successive. Notare che l'installazione di qualunque dei ruoli del server (accesso client, cassetta postale, edge e cosi via) su un hardware a 32 bit non è supportata negli ambienti di produzione, ma è supportata l'installazione degli strumenti di gestione su un computer a 32 bit. Notare inoltre che nella versione iniziale di Exchange Server 2007 gli strumenti di gestione non sono supportati da Windows Vista™.

In alcune organizzazioni, il reparto IT crea un singolo server come server di gestione, installando tutti gli strumenti di gestione necessari per vari prodotti su questo server. In seguito, gli amministratori che hanno bisogno di utilizzare quegli strumenti accedono al server di gestione via Terminal Server per eseguire l'amministrazione remota. Nelle altre impostazioni, gli utenti installano gli strumenti di gestione sul desktop.

Dalla console o dalla shell è possibile eseguire alcune operazioni sui server della propria organizzazione. Nella console, i server sono visibili, in modo che si possano eseguire operazioni su di essi in modalità remota. Nella shell, molte delle attività supportano un flag di filtro di tipo -server per indirizzare un'operazione a un singolo server. Ci sono poche eccezioni, comunque, per i comandi eseguibili localmente, come il comando Get-NetworkConnectionInfo.

D Nell'ultima rubrica, si parlava di quanta RAM è consigliata per un server Exchange 2007. E per quanto riguarda la dimensione del file di paging?

R Per evitare eventuali errori di esaurimento della memoria virtuale sui server Exchange 2007, si consigliano le linee guida seguenti per determinare la dimensione del file di paging di sistema.

Se il server dispone di meno di 8 GB di RAM, la dimensione minima del file di paging dovrebbe essere la somma della RAM più 10 MB. Cosí, se il server ha 4 GB di RAM, la dimensione minima è 4 GB più 10 MB. La dimensione consigliata del file di paging, comunque, è la RAM moltiplicata per 1,5. Quindi, per un server da 4 GB, la dimensione è 6 GB.

Inoltre, la dimensione minima per il file di paging per un server con più di 8 GB di RAM è calcolata allo stesso modo, ovvero la RAM più 10 MB. La dimensione consigliata è, tuttavia, determinata diversamente. In sostanza, su un server con più di 8 GB di RAM, è bene moltiplicare per 1,5 la somma della RAM, se riscontrano errori di esaurimento della memoria virtuale con i file di paging più piccoli.

Notare che gli errori menzionati in questo caso non hanno niente a che fare con la frammentazione della memoria virtuale (un problema dei server Exchange 2000 ed Exchange 2003). Questi ultimi sono errori di popup reali registrati dal sistema che avvertono che la dimensione del file di paging è aumentata o il file di paging è troppo piccolo.

D Vorrei imparare a utilizzare Exchange Management Shell ma non ho mai utilizzato una riga di comando per amministrare i miei sistemi prima d'ora. Da dove dovrei iniziare?

R Innanzitutto, iniziamo con alcune nozioni fondamentali. Ogni cmdlet nell'Exchange Management Shell è costituito da un solo verbo ed un solo sostantivo. Ci sono soltanto pochi verbi usati da Exchange Management Shell: "Get" è utilizzato per recuperare le proprietà degli oggetti, "Set" per modificare le proprietà di un oggetto, "New" per creare nuovi oggetti e così via. I sostantivi di Exchange Management Shell includono molti concetti con i quali tutti gli amministratori Exchange sono già familiari (per esempio, Mailbox, Contact, Queue e OWAVirtualDirectory). Ci sono anche dei concetti nuovi per Exchange Server 2007 (come TransportRule, StorageGroupCopy e UMAutoAttendant). In pratica quindi, un cmdlet di base assomiglierà a qualcosa come New-Mailbox (che creerà una cassetta postale) o Get-Mailbox (che recupererà un elenco di cassette postali nell'organizzazione).

La maggior parte dei cmdlet, comunque, avrà bisogno di più informazioni specifiche su ciò che si sta cercando di realizzare esattamente. Se, ad esempio, si vuole modificare una proprietà di una cassetta postale, occorrerà specificare quale cassetta postale e quale proprietà. È possibile farlo attraverso i parametri. Se New-Sandwich fosse un cmdlet, i parametri potrebbero essere -NumeroDiFetteDiPomodoro 4, -Grano di Pane, e una varietà di altre opzioni simili che specificano in maniera più dettagliata la forma che si vuole conferire al sandwich (-SofficeBenLievitato$true-ahhhh slurp).

Una volta capita la divisione verbo-sostantivo, è possibile utilizzare l'esposizione della riga di comando nella procedura guidata Exchange Management Console (EMC) per familiarizzare con i cmdlet con i quali eseguire le operazioni. In EMC, vedere la creazione guidata di un nuovo utente. Al termine della procedura guidata, completata l'operazione, si visualizzerà una copia del comando che la procedura guidata ha eseguito all'interno del sistema (vedere la Figura 1). Premere Ctrl+C per copiare il contenuto della finestra di dialogo, incollare il cmdlet nel Blocco note e realizzare semplici file batch.

Figura 1 Esposizione della riga di comando per creare un nuovo utente

Figura 1** Esposizione della riga di comando per creare un nuovo utente **(Fare clic sull'immagine per ingrandirla)

Se si vuole far pratica utilizzando i cmdlet (senza causare danni), un bel trucco è quello di mettere -WhatIf alla fine del comando. In tal caso, il sistema dirà che cosa accadrebbe se si esegue il comando, senza apportare effettivamente alcune modifiche al sistema.

Una volta che si ha familiarità con i cmdlet di base, come *-Mailbox, probabilmente se ne vorrà provare altri. Per trovare più cmdlet, utilizzare il cmdlet Get-ExCommand. Verrà visualizzato un elenco di tutti i cmdlet di gestione di Exchange. Per effettuare questa operazione Exchange Management Shell deve essere in esecuzione. Microsoft Command Shell o Windows PowerShell™ non è sufficiente per eseguire questa o qualunque altra attività di gestione di Exchange. Dal momento che l'elenco è molto lungo, utilizzare jolly di corrispondenza per trovare ciò che si cerca. Per esempio, Get-ExCommand *database* fornirà un elenco di tutti i cmdlet Exchange che contengono "database" nel nome come Dismount-Database, Move-DatabasePath e New-MailboxDatabase.

Se si pensa di conoscere parte del nome che si sta cercando, è possibile scorrere le opzioni. Ad esempio, è possibile digitare Get-Mailbox e premere il tasto TAB per cercare in tutti i cmdlet che hanno mailbox nel nome dell'attività. È possibile inoltre combinare la corrispondenza jolly e il completamento tramite tab. Per esempio, è possibile digitare Get-*Mailbox* e spostarsi con il tasto TAB attraverso le opzioni possibili.

Un altro semplice trucco è utilizzare la conferma. Ogni cmdlet ha una serie di parametri necessari per impostazione predefinita, i parametri fondamentali necessari per eseguire l'operazione. I cmdlet "Get", come Get-Mailbox, non richiedono nessun parametro. Per impostazione predefinita, Get-Mailbox restituirà un elenco di tutte le cassette postali di tutta l'organizzazione. L'elenco è limitato a 1.000 per impostazione predefinita. Per modificare questo limite massimo è possibile, ad esempio, digitare Get-Mailbox -ResultSize 2000. I cmdlet che creano o modificano oggetti (come Set o New) richiederanno le informazioni necessarie per l'oggetto che si vuole creare o modificare. Se si esegue New-Mailbox, per esempio, la shell chiederà password, database, nome e così via.

Per saperne di più sui parametri possibili su un certo cmdlet, utilizzare la guida: Help Move-DatabasePath. È anche possibile digitare solamente Move-DatabasePath, Move-DatabasePath -?, e così via. La guida fornirà una descrizione del cmdlet e un elenco dei parametri con lo scopo di ciascuno di essi. È possibile avere accesso alla guida anche con il cmdlet Get-Help. Non è fantastico digitare solo Get-Help? Non sarebbe bello eseguire quel cmdlet nel mondo reale con quelli che conosciamo?

Un altro modo di scoprire i possibili parametri su un cmdlet è utilizzare il completamento tramite tab sui nomi dei parametri. Digitare Get-Mailbox -S e premere TAB per scorrere i possibili parametri che iniziano con S.

E inoltre, c'è la guida estesa. Se non si trova ciò che si sta cercando offline, non dimenticare di controllare il contenuto della guida regolarmente aggiornato su go.microsoft.com/fwlink/?linkid=79421 e la guida di riferimento rapido su go.microsoft.com/fwlink/?linkid=64647.

Quando detto in precedenza costituisce un'introduzione a Exchange Management Console; queste informazioni rappresentano solamente una semplice infarinatura sulla potenza e la flessibilità della riga di comando. Tratteremo questo argomento in seguito in modo più approfondito.

D In Exchange Server 2003 ESM (Gestore di sistema di Exchange), era possibile vedere facilmente la dimensione della cassetta postale di tutti gli utenti. Quella funzionalità sembra essere scomparsa in Exchange 2007. C'è una funzione simile in Exchange 2007?

R Nella nuova console Exchange 2007, è possibile ottenere la dimensione di una cassetta postale sulla pagina proprietà generale della cassetta postale. Se si vuole visualizzare questa informazione per più utenti, si deve utilizzare Exchange Management Shell.

Se si esegue Get-MailboxStatistics, si ottengono i dati di un intero server (non solo un database specifico). Per impostazione predefinita, la dimensione non viene visualizzata: per ottenerla, eseguire il cmdlet con Format-List:

get-mailboxstatistics | format-list

Potrebbe essere preferibile scegliere ciò che si vuole visualizzare e trasmetterlo a una tabella. In questo esempio, si ottengono il nome visualizzato della cassetta postale, la dimensione totale dell'elemento, la dimensione totale dell'elemento eliminato e il database della cassetta postale:

Get-MailboxStatistics | Select-Object 
displayname,totalitemsize,
totaldeleteditemsize,databasename 
| Format-Table

A seconda delle informazioni ricercate, è possibile utilizzare una formattazione diversa per l'output. In questo esempio, il Format-Table sembra funzionare meglio di Format-List

KC Lemson è lead program manager del team Exchange Server. Il PIN della sua carta bancaria è 0000: non usarlo sempre nello stesso posto.

Nino Bilic Technical Lead, impiega il tempo libero ricevendo assegni da $1.000 da Bill in cambio dell'inoltro dei messaggi di posta elettronica.

© 2008 Microsoft Corporation e CMP Media, LLC. Tutti i diritti riservati. È vietata la riproduzione completa o parziale senza autorizzazione.