Configurazione dei Dischi Virtuali delle VM Xen

14 Aprile 2018 0 Di Alessandro Scamporrino

DESCRIZIONE

xl-disk-configuration – Sintassi di configurazione del disco XL

SINTASSI

Questo documento specifica l’opzione di configurazione del disco in formato file xl config. Ha la seguente forma:

   disk = [ 'DISKSPEC', 'DISKSPEC', ... ]

dove ognuno DISKSPECè in questa forma:

   [<key>=<value>|<flag>,]*,
     [<target>, [<format>, [<vdev>, [<access>]]]],
     [<key>=<value>|<flag>,]*
     [target=<target>]

Ad esempio, queste stringhe sono equivalenti:

    /dev/vg/guest-volume,,hda
    /dev/vg/guest-volume,raw,hda,rw
    format=raw, vdev=hda, access=rw, target=/dev/vg/guest-volume
    raw:/dev/vg/guest-volume,hda,w  (deprecated, see below)

Come sono questi:

    /root/image.iso,,hdc,cdrom
    /root/image.iso,,hdc,,cdrom
    /root/image.iso,raw,hdc,devtype=cdrom
    format=raw, vdev=hdc, access=ro, devtype=cdrom, target=/root/image.iso
    raw:/root/image.iso,hdc:cdrom,ro   (deprecated, see below)

Questi potrebbero essere specificati nel file di configurazione del dominio in questo modo:

    disk = [ '/dev/vg/guest-volume,,hda', '/root/image.iso,,hdc,cdrom' ]

Più formalmente, la stringa è una serie di coppie di parole chiave / valori separate da virgola, flag e parametri posizionali. I parametri che non sono parole chiave nulle e che non contengono simboli “=” vengono assegnati ai parametri posizionali finora non specificati, nell’ordine seguente. I parametri posizionali possono anche essere specificati esplicitamente per nome.

Ogni parametro può essere specificato al massimo una volta, come parametro posizionale o come parametro denominato. I valori predefiniti si applicano se il parametro non è specificato, o se è specificato con un valore vuoto (sia in modo posizionale che esplicito).

Gli spazi bianchi possono apparire prima di ogni parametro e saranno ignorati.

Parametri posizionali

bersaglio
Descrizione
Blocca il percorso del dispositivo o del file immagine. Quando viene usato come percorso, / dev verrà anteposto se il percorso non inizia con un ‘/’.
Valori supportati
N / A
Valori deprecati
N / A
Valore di default
Nessuna. Mentre nella maggior parte dei casi viene fornito un percorso, esiste un’eccezione: per un dispositivo cdrom, la mancanza di questo attributo implicherebbe un’unità disco cdrom vuota.
Sintassi speciale
Quando questo parametro è specificato per nome, cioè con la target=sintassi nel file di configurazione, consuma tutto il resto degli DISKSPECspazi bianchi inclusi. Quindi in tal caso deve venire per ultimo. Questo è consentito anche se un valore vuoto per il target è già stato specificato come parametro posizionale. Questo è l’unico modo per specificare una stringa di destinazione contenente metacaratteri quali virgole e (in alcuni casi) due punti, che altrimenti verrebbero interpretati erroneamente.

I nomi dei parametri e dei flag futuri inizieranno con una lettera ascii e contengono solo caratteri alfanumerici, trattini e caratteri di sottolineatura ascii e non saranno legali come vdevs. Le destinazioni che potrebbero corrispondere a quella sintassi non dovrebbero essere specificate come parametri posizionali.

formato
Descrizione
Specifica il formato del file immagine.
Valori supportati
grezzo, qcow, qcow2, vhd, qed
Valori deprecati
Nessuna
Valore di default
crudo
vdev
Descrizione
Dispositivo virtuale visto dall’ospite (indicato anche come designazione dell’unità ospite in alcune specifiche). xen-VBD-interfaccia (7)
Valori supportati
hd [x], xvd [x], sd [x] ecc. Si prega di fare riferimento alle specifiche sopra per ulteriori dettagli.
Valori deprecati
Nessuna
Valore di default
Nessuno, questo parametro è obbligatorio.
accesso
Descrizione
Informazioni di controllo accessi specificate. Se il dispositivo a blocchi viene fornito o meno al guest in modalità di sola lettura o di lettura-scrittura, dipende da questo attributo.
Valori supportati
ror(specifica solo lettura)

rww(specifica lettura / scrittura)

Valori deprecati
Nessuna
Valore di default
rw a meno che non sia devtype = cdrom, nel qual caso r

Altri parametri e bandiere

devtype = DEVTYPE
Descrizione
Qualifica il tipo di dispositivo virtuale.
Valori supportati
cd rom
Valori deprecati
Nessuna
Obbligatorio
No
cd rom
Alias ​​di convenienza per “devtype = cdrom”.
backend = DOMAIN-NAME
Descrizione
Designa un dominio back-end per il dispositivo
Valori supportati
Nomi di dominio validi
Obbligatorio
No

Specifica il dominio di back-end a cui questo dispositivo deve connettersi. Il valore predefinito è il dominio 0. La specifica di un altro dominio richiede l’impostazione di un dominio del driver che non rientra nell’ambito di questo documento.

backendtype = TYPE
Descrizione
Specifica l’implementazione del back-end da utilizzare
Valori supportati
phy, tap, qdisk
Obbligatorio
No
Valore di default
Determina automaticamente quale back-end usare.

Questo non influisce sulla vista del guest sul dispositivo. Controlla quale implementazione software del driver backend Xen viene utilizzata.

Non tutti i driver di back-end supportano tutte le combinazioni di altre opzioni. Ad esempio, “phy” non supporta formati diversi da “raw”. Normalmente questa opzione non dovrebbe essere specificata, nel qual caso libxl determinerà automaticamente il backend più adatto.

script = SCRIPT
Specifica che la destinazione non è un normale percorso host, ma piuttosto informazioni da interpretare dal programma eseguibile SCRIPT , (cercato in / etc / xen / scripts , se non contiene una barra).

Questi script sono normalmente chiamati “block- SCRIPT “.

direct-io-safe
Descrizione
Disabilita la soluzione alternativa a O_DIRECT
Valori supportati
assente, presente
Obbligatorio
No
Valore di default
assente (la soluzione potrebbe essere abilitata)

Esiste un errore di durata della memoria in alcuni kernel del dominio (dom0) che possono causare arresti anomali quando si utilizza O_DIRECT. Il bug si verifica a causa di una mancata corrispondenza tra la durata visibile del backend delle pagine utilizzate per il protocollo di rete Xen PV e quella prevista dal sottosistema di rete del kernel back-end. Ciò può causare arresti anomali quando si utilizzano determinati backend con determinati archivi sottostanti.

Vedi: http://lists.xen.org/archives/html/xen-devel/2012-12/msg01154.html

Per questo motivo, (questa versione di) il toolstack di Xen libxl disabilita O_DIRECT quando si utilizza il backend Xen PV ( qdisk) basato su qemu .

Tuttavia, questa soluzione alternativa ha implicazioni in termini di prestazioni e ridimensionamento ed è necessaria solo se il dispositivo sottostante è un filesystem di rete. Se il dispositivo sottostante non lo è, allora è bene disabilitarlo; questo è ciò che questa opzione è per.

Questa opzione richiede semplicemente che la soluzione alternativa sia disabilitata. (Tuttavia, non tutte le versioni di backend che utilizzano la soluzione alternativa comprendono questa opzione, quindi questa è la soluzione migliore).

È importante notare che se si sta memorizzando il disco della VM su un filesystem di rete o su un dispositivo di blocco di rete (NFS o ISCSI) potrebbe non essere sicuro usare questa opzione. Altrimenti specificarlo è sicuro e può dare migliori prestazioni.

Se in futuro il bug viene corretto correttamente questa opzione verrà quindi ignorata silenziosamente.

scartare / non-scartare
Descrizione
Richiedi che il backend pubblicizzi il supporto degli scarti sul frontend
Valori supportati
scartare, non scartare
Obbligatorio
No
Valore di default
scartare

Un’impostazione di consulenza per il driver di back-end, che specifica se annunciare il supporto degli scarti (TRIM, UNMAP) al front-end. Il vero vantaggio di questa opzione è di essere in grado di forzarlo via piuttosto che via. Può essere usato per disabilitare la “perforatura” per i backend basati su file che sono stati intenzionalmente creati non sparsi per evitare la frammentazione del file.

Parametri COLO

colo
Abilita COLO HA per il disco. Per una migliore comprensione della replica dei blocchi su QEMU, fare riferimento a: http://wiki.qemu.org/Features/BlockReplication Si noti che le impostazioni di configurazione di COLO devono essere considerate instabili. Potrebbero cambiare in modo incompatibile nelle versioni future di Xen.
colo-host
Descrizione
Indirizzo dell’host secondario
Obbligatorio
Sì quando COLO è abilitato
colo-port
Descrizione
Porta secondaria Eseguiremo un server nbd sull’host secondario e il server nbd ascolterà questa porta.
Obbligatorio
Sì quando COLO è abilitato
colo-export
Descrizione
Eseguiremo un server nbd sull’host secondario, exportname è il nome di esportazione del disco del server nbd.
Obbligatorio
Sì quando COLO è abilitato
attivo-disk
Descrizione
Questo è usato dal secondario. La scrittura degli ospiti secondari verrà memorizzata in questo disco.
Obbligatorio
Sì quando COLO è abilitato
nascosto-disk
Descrizione
Questo è usato dal secondario. Memorizza il contenuto originale che viene modificato dalla VM principale.
Obbligatorio
Sì quando COLO è abilitato

Parametri, prefissi e sintassi deprecati

I moduli deprecati sono accettabili e si intendono compatibili con xend e xl da xen 4.1. In futuro potrebbero stampare un avvertimento. È probabile che il supporto per i parametri e le sintassi deprecati vengano eliminati nelle future versioni di xl.

Esiste il supporto per una vecchia sintassi deprecata per DISKSPEC:

  [<format>:][<target>],<vdev>[:<devtype>],<access>   (deprecated)

Questa sintassi supporta anche i prefissi deprecati, descritti di seguito. Questi si trovano anteposto al parametro format – es tap:aio:qcow:.

formato
Descrizione
Specifica il formato (deprecato)
Valori supportati
raw: qcow2: vhd:

Nelle versioni xend e precedenti di libxl era necessario specificare il formato con un prefisso. Per compatibilità, questi tre prefissi sono riconosciuti come specificando il formato corrispondente. Sono equivalenti format=FORMATo alle specifiche del formato (senza due punti) come parametro posizionale.

copione
Descrizione
Specifica lo script (deprecato)
Valori supportati
iscsi: nbd: enbd: drbd:

Nelle versioni xend e precedenti di libxl era necessario specificare lo “script” (vedi sopra) con un prefisso. Per compatibilità, questi quattro prefissi sono riconosciuti come specificando lo script corrispondente. Essi sono equivalenti a script=block-SCRIPT.

deprecato-prefix
Descrizione
Prefisso deprecato, ignorato
Valori supportati
tapdisk: tap2: aio: ioemu: file: phy:

Sono stati richiesti vari prefissi da xend e versioni precedenti di libxl per far funzionare i dispositivi a blocchi. In alcuni casi queste opzioni annullerebbero il tipo di back-end, ma in altri casi verrebbero ignorate in favore del “funzionamento”; in altri casi sarebbe necessario specificare alcuni di questi, ad esempio:

  tap:aio:/some/path...

Tutti questi prefissi ora sono spogliati e ignorati.

Formato mancante e destinazione vuota

È inoltre supportata la seguente sintassi:

  ,<vdev>:<devtype>,<access>   (deprecated)

Questo è solo per compatibilità con la sintassi di xend per i CDdrom vuoti, che è (per esempio) ,hdc:cdrom,r.