Citrix Virtual Apps and Desktops

Database

Un sito Citrix Virtual Apps o Citrix Virtual Desktops utilizza tre database SQL Server:

  • Sito: (noto anche come configurazione del sito) memorizza la configurazione del sito in esecuzione, oltre allo stato della sessione corrente e alle informazioni di connessione.
  • Registrazione configurazione: (nota anche come registrazione) memorizza le informazioni sulle modifiche alla configurazione del sito e sulle attività amministrative. Questo database viene utilizzato quando è abilitata la funzione di registrazione di configurazione (impostazione predefinita= abilitato).
  • Monitoraggio: memorizza i dati utilizzati da Director, ad esempio le informazioni sulla sessione e la connessione.

Ogni Delivery Controller comunica con il database del sito. È richiesta l’autenticazione di Windows tra il controller e i database. Un controller può essere scollegato o disattivato senza influire sugli altri controller presenti nel sito. Ciò significa, tuttavia, che il database del sito forma un singolo punto di errore. In caso di errori del server del database, le connessioni esistenti continuano a funzionare fino a quando un utente non si scollega o si disconnette. Per informazioni sul comportamento di connessione quando il database del sito diventa non disponibile, vedere Cache host locale.

Citrix consiglia di eseguire regolarmente il backup dei database in modo da poter eseguire il ripristino dal backup se vi sono errori nel server dei database. La strategia di backup per ogni database può essere diversa. Per istruzioni, vedere CTX135207.

Se il sito contiene più zone, assicurarsi che la zona primaria contenga sempre il database del sito. I controller di ogni zona comunicano con quel database.

Elevata disponibilità

Esistono diverse soluzioni a disponibilità elevata da considerare per garantire il failover automatico:

  • Gruppi di disponibilità AlwaysOn (inclusi i gruppi di disponibilità di base): questa soluzione di elevata disponibilità e ripristino di emergenza a livello aziendale introdotta in SQL Server 2012 consente di ottimizzare la disponibilità per uno o più database. La soluzione Gruppi di disponibilità AlwaysOn richiede che le istanze di SQL Server risiedano nei nodi di clustering di failover di Windows Server (WSFC). Per ulteriori informazioni, vedere Clustering di failover di Windows Server con SQL Server.
  • Mirroring del database SQL Server: il mirroring del database garantisce che, se si perde il server di database attivo, si verifichi un processo di failover automatico in pochi secondi, in modo che gli utenti in genere non ne risentano. Questo metodo è più costoso rispetto ad altre soluzioni perché sono necessarie licenze complete di SQL Server in ogni server di database. Non è possibile utilizzare SQL Server Express Edition in un ambiente con mirroring.
  • Clustering SQL: la tecnologia di clustering Microsoft SQL può essere utilizzata per consentire automaticamente a un server di assumere le attività e le responsabilità di un altro server che ha riportato errori. Tuttavia, l’impostazione di questa soluzione è più complicata e il processo di failover automatico è in genere più lento rispetto ad alternative come il mirroring SQL.
  • Utilizzo delle funzionalità di alta disponibilità dell’hypervisor: con questo metodo, è possibile distribuire il database come macchina virtuale e utilizzare le funzionalità di elevata disponibilità dell’hypervisor. Questa soluzione è meno costosa del mirroring perché utilizza il software dell’hypervisor esistente e consente anche di utilizzare SQL Server Express Edition. Tuttavia, il processo di failover automatico è più lento, in quanto per l’avvio di un nuovo computer per il database potrebbe richiedere tempo, interrompendo quindi il servizio per gli utenti.

La funzionalità Cache host locale integra le procedure consigliate per la disponibilità elevata di SQL Server. La cache host locale consente agli utenti di connettersi e riconnettersi ad applicazioni e desktop anche quando il database del sito non è disponibile. Per ulteriori informazioni, vedere Cache host locale.

Se tutti i controller di un sito presentano errori, è possibile configurare i VDA in modo che funzionino in modalità ad alta disponibilità, consentendo agli utenti di continuare ad accedere ai desktop e alle applicazioni. In modalità ad alta disponibilità, il VDA accetta connessioni ICA dirette dagli utenti, anziché le connessioni negoziate dal controller. Utilizzare questa funzione solo nelle rare occasioni in cui la comunicazione con tutti i controller non riesce. La funzionalità non è un’alternativa ad altre soluzioni ad alta disponibilità. Per ulteriori informazioni, vedere CTX 127564.

L’installazione di un controller in un nodo in un cluster SQL o un’installazione di mirroring SQL non è supportata.

Installare il software del database

Per impostazione predefinita, SQL Server Express Edition viene installato quando si installa il primo Delivery Controller se un’altra istanza di SQL Server non viene rilevata in tale server. Tale azione predefinita è generalmente sufficiente per la prova di concetto o per le implementazioni pilota. Tuttavia, SQL Server Express non supporta le funzionalità di disponibilità elevata Microsoft.

L’installazione predefinita utilizza gli account e le autorizzazioni predefiniti del servizio Windows. Per informazioni dettagliate su queste impostazioni predefinite, inclusa l’aggiunta di account del servizio Windows al ruolo sysadmin, vedere la documentazione di Microsoft. Il controller utilizza l’account Servizio di rete in questa configurazione. Il controller non richiede ulteriori ruoli o autorizzazioni di SQL Server.

Se necessario, è possibile selezionare Nascondi istanza per l’istanza di database. Quando si configura l’indirizzo del database in Studio, immettere il numero di porta statica dell’istanza anziché il nome. Per informazioni dettagliate su come nascondere un’istanza del Motore di database di SQL Server, vedere la documentazione Microsoft.

Per la maggior parte delle distribuzioni di produzione e per qualsiasi distribuzione che utilizza le funzionalità di disponibilità elevata di Microsoft, è consigliabile utilizzare solo le edizioni non Express supportate di SQL Server. Installare SQL Server su macchine diverse dal server in cui è installato il primo controller. I requisiti di sistema elencano le versioni supportate di SQL Server. I database possono risiedere su una o più macchine.

Assicurarsi che il software SQL Server sia installato prima di creare un sito. Non è necessario creare il database, ma se lo si crea, deve essere vuoto. Si consiglia inoltre di configurare le tecnologie Microsoft ad alta disponibilità.

Utilizzare Windows Update per mantenere SQL Server aggiornato.

Impostare i database nella creazione guidata sito

Specificare i nomi e gli indirizzi (posizione) dei database nella pagina Database della creazione guidata sito (vedere Formati degli indirizzi del database). Per evitare potenziali errori quando Director esegue una query sul servizio di monitoraggio, non utilizzare spazi nel nome del database di monitoraggio.

La pagina Database offre due opzioni per l’impostazione dei database: automatico e mediante script. In genere, è possibile utilizzare l’opzione automatica se l’utente di Studio e l’amministratore Citrix dispongono dei privilegi di database richiesti (vedere Autorizzazioni necessarie per impostare i database).

È possibile modificare il percorso del database di registrazione e monitoraggio della configurazione in un secondo momento, dopo aver creato il sito. Vedere Modificare le posizioni dei database.

Per configurare un sito per l’utilizzo di un database mirror, eseguire le operazioni riportate di seguito e procedere con la procedura di installazione automatica o con script.

  1. Installare il software SQL Server su due server, A e B.
  2. Nel server A creare il database destinato a essere utilizzato come principale. Eseguire il backup del database sul server A e copiarlo nel server B.
  3. Nel server B ripristinare il file di backup.
  4. Avviare il mirroring sul server A.

Per verificare il mirroring dopo aver creato il sito, eseguire il cmdlet PowerShell get-configdbconnection per assicurarsi che il partner di failover sia stato impostato nella stringa di connessione al mirror.

Se in un secondo momento si aggiunge, si sposta o si rimuove un Delivery Controller in un ambiente di database con mirroring, vedere Delivery Controller.

Impostazione automatica

Se si dispone dei privilegi di database richiesti, selezionare Crea e impostare database da Studio nella pagina Database della creazione guidata sito. Quindi fornire i nomi e gli indirizzi dei database principali.

Se esiste un database in un indirizzo specificato, il database deve essere vuoto. Se non esistono database in un indirizzo specificato, si viene informati che non è possibile trovare un database e quindi viene chiesto se si desidera che il database venga creato automaticamente. Quando si conferma tale azione, Studio crea automaticamente i database e quindi applica gli script di inizializzazione per i database principale e duplicato.

Configurazione con script

Se non si dispone dei diritti richiesti per database, chiedere assistenza a qualcuno che ne dispone, ad esempio un amministratore del database. Ecco la sequenza:

  1. Nella pagina Database della creazione guidata sito selezionare Generate scripts to manually set up (Genera script per configurare manualmente). Questa azione genera i seguenti tre tipi di script per ciascuno dei seguenti database principali e per i database replica: database del sito, di monitoraggio e di registrazione.

    • Script contenente “SysAdmin” nel nome. Uno script che crea i database e l’accesso del Delivery Controller. Queste attività richiedono diritti securityadmin.
    • Script contenente “DbOwner” nel nome. Script che crea i ruoli utente nel database, aggiunge gli account di accesso e quindi crea gli schemi del database. Queste attività richiedono diritti db_owner.
    • Script contenente “Mixed” nel nome. Tutte le attività in un solo script, indipendentemente dai diritti richiesti.

    È possibile indicare dove memorizzare gli script.

    Nota:

    Negli ambienti aziendali, la configurazione del database include script che potrebbero essere gestiti da team diversi con ruoli (diritti) diversi: securityadmin o db_owner. Se applicabile, si dispone innanzitutto di script “SysAdmin” eseguiti dagli amministratori con il ruolosecurityadmin e quindi di script “DbOwner” eseguiti dagli amministratori con diritti db_owner. Per generare questi script, è anche possibile utilizzare PowerShell. Per i dettagli, vedere Script dei diritti di database preferiti.

  2. Dare questi script all’amministratore dei database. A questo punto, la creazione guidata sito si interrompe automaticamente. Quando si torna in un secondo momento, viene richiesto di continuare la creazione del sito.

L’amministratore dei database crea quindi i database. Ogni database deve avere le seguenti caratteristiche:

  • Utilizzare regole di raccolta che terminano con _CI_AS_KS. Si consiglia di utilizzare una raccolta che termina con _100_CI_AS_KS.
  • Per ottenere prestazioni ottimali, attivare la copia istantanea in lettura di SQL Server. Per ulteriori informazioni, vedere CTX 137161.
  • Funzionalità di alta disponibilità configurate, se applicabile.
  • Per configurare il mirroring, impostare innanzitutto il database in modo che utilizzi il modello di ripristino completo (il modello semplice è l’impostazione predefinita). Eseguire il backup del database principale in un file e copiarlo nel server mirror. Quindi, ripristinare il file di backup sul server mirror. Infine, avviare il mirroring sul server principale.

L’amministratore del database utilizza l’utilità della riga di comando SQLCMD o SQL Server Management Studio in modalità SQLCMD per:

  • Eseguire ciascuno degli script xxx_Replica.sql nelle istanze di database SQL Server ad alta disponibilità (se è configurata la disponibilità elevata).
  • Eseguire ciascuno degli script xxx\_Principal.sql nelle istanze principali del database di SQL Server.

Per dettagli di SQLCMD vedere la documentazione Microsoft.

Quando tutti gli script sono stati completati correttamente, l’amministratore del database fornisce all’amministratore Citrix i tre indirizzi principali del database.

Studio richiede di continuare la creazione del sito. Si torna alla pagina Databases . Immettere gli indirizzi. Se non è possibile contattare nessuno dei server che ospitano un database, viene visualizzato un messaggio di errore.

Autorizzazioni necessarie per impostare i database

Per creare e inizializzare i database o modificarne la posizione, è necessario essere un amministratore locale e un utente di dominio. È inoltre necessario disporre di determinate autorizzazioni di SQL Server. Le seguenti autorizzazioni possono essere configurate o acquisite in modo esplicito dall’appartenenza al gruppo Active Directory. Se le credenziali utente di Studio non includono queste autorizzazioni, vengono richieste le credenziali utente di SQL Server.

Operazione Scopo Ruolo del server Ruolo del database
Creare un database Creare un database vuoto adatto dbcreator  
Creare uno schema Creare tutti gli schemi specifici del servizio e aggiungere il primo controller al sito securityadmin* db_owner
Aggiungere un controller Aggiungere un controller (diverso dal primo) al sito securityadmin* db_owner
Aggiungi un controller (server mirror) Aggiungere un account di accesso controller al server di database attualmente nel ruolo mirror di un database con mirroring securityadmin*  
Rimuovi il controller Rimuovere il controller dal sito ** db_owner
Aggiorna uno schema Applicare gli aggiornamenti o gli aggiornamenti rapidi dello schema   db_owner

* Mentre tecnicamente più restrittivo, in pratica, è possibile considerare il ruolo del server securityadmin come equivalente al ruolo del server sysadmin.

** Quando un controller viene rimosso da un sito, tramite Studio o utilizzando script generati da Studio o SDK, l’accesso controller al server di database non viene rimosso. Questo per evitare di rimuovere potenzialmente un accesso utilizzato da servizi diversi da questo prodotto Citrix sullo stesso computer. Se non è più necessario, l’accesso deve essere rimosso manualmente. Questa azione richiede l’appartenenza al ruolo securityadmin del server.

Quando si utilizza Studio per eseguire queste operazioni, l’utente di Studio deve disporre di un account del server di database che appartenga esplicitamente ai ruoli server appropriati oppure essere in grado di fornire le credenziali di un account che vi appartiene.

Script dei diritti di database preferiti

Negli ambienti aziendali, la configurazione del database include script che devono essere gestiti da team diversi con ruoli (diritti) diversi: securityadmin o db_owner.

Utilizzando PowerShell, è ora possibile specificare i diritti preferiti per i database. La specifica di un valore non predefinito comporta la creazione di script separati. Uno script contiene attività che richiedono il ruolo securityadmin. L’altro script richiede solo diritti db_owner e può essere eseguito da un amministratore Citrix, senza dover contattare un amministratore del database.

Nei cmdlet get-*DBSchema, l’opzione -DatabaseRights hai i seguenti valori validi:

  • SA: genera uno script che crea i database e l’accesso del Delivery Controller. Queste attività richiedono diritti securityadmin.
  • DBO: genera uno script che crea i ruoli utente nel database, aggiunge gli account di accesso e quindi crea gli schemi del database. Queste attività richiedono diritti db_owner.
  • Mixed: (impostazione predefinita) tutte le attività presenti in uno script, indipendentemente dai diritti richiesti.

Per ulteriori informazioni, vedere la Guida del cmdlet.

Formati degli indirizzi di database

È possibile specificare un indirizzo di database in uno dei seguenti formati:

  • ServerName
  • ServerName\InstanceName
  • ServerName,PortNumber

Per un gruppo di disponibilità AlwaysOn, specificare il listener del gruppo nel campo della posizione.

Modifica delle posizioni dei database

Dopo aver creato un sito, è possibile modificare il percorso dei database di registrazione e monitoraggio della configurazione. Non è possibile modificare la posizione del database del sito. Quando si modifica la posizione di un database:

  • I dati del database precedente non vengono importati nel nuovo database.
  • I log non possono essere aggregati da entrambi i database durante il recupero dei log.
  • La prima voce di registro nel nuovo database indica che si è verificata una modifica nel database, ma non identifica il database precedente.

Non è possibile modificare la posizione del database di registrazione della configurazione quando è abilitata la registrazione obbligatoria.

Per modificare la posizione di un database:

  1. Verificare che nel server in cui si desidera che risieda il database sia installata una versione supportata di Microsoft SQL Server. Impostare le funzionalità di alta disponibilità in base alle esigenze.
  2. Selezionare Configurazione nel pannello di navigazione di Studio.
  3. Selezionare il database per il quale si desidera specificare una nuova posizione, quindi selezionare Cambia database nel riquadro Azioni.
  4. Specificare la nuova posizione e il nome del database.
  5. Se si desidera che Studio crei il database e si dispone delle autorizzazioni appropriate, fare clic su OK. Quando richiesto, fare clic su OKe quindi Studio crea automaticamente il database. Studio tenta di accedere al database utilizzando le credenziali dell’utente. Se l’operazione non riesce, viene richiesto di specificare le credenziali dell’utente del database. Studio carica quindi lo schema del database nel database Le credenziali vengono conservate solo per il periodo di tempo di creazione del database.
  6. Se non si desidera che Studio crei il database o non si dispone di autorizzazioni sufficienti, fare clic su Genera script. Gli script generati includono istruzioni per la creazione manuale del database e un database mirror, se necessario. Prima di caricare lo schema, assicurarsi che il database sia vuoto e che almeno un utente disponga dell’autorizzazione di accesso e modifica del database.

Ulteriori informazioni

Database