Utiliser les commandes xen pour les piloter à distance¶
Installer rsync pour récupérer le /opt/xenserver du serveur xen qui contient les CLI xen.
apt install rsync stunnel
Récupérer /opt/xenserver sur le xen (ici en exemple, le serveur est en 10.0.1.223) :
… code-block:: console
rsync -aPv root@10.0.1.223:/opt/xensource /opt/
Exemple pour un import de template. Il faudra récupérer l’uuid du template sur le xen qui possède le template; ici il est en 10.0.1.15. L’autocomplétion ne fonctionne pas.
/opt/xensource/bin/xe -s 10.0.1.15 -u root -pw PASSWORD template-export template-uuid=f7973fa8-cdd8-08e2-20c4-6dbfa05f953c filename=/big_data/EnghienBK01
Scan d’un SR en timeout¶
Pour vérifier les montages
mount
La SR en question est situé dans /var/sr-mount/UUID
Démonter le SR en mode lazy
mount -l /var/sr-mount/UUID
On démonte proprement
xe pbd-unplug uuid=UUID
Puis on vérifie qu’il n’y a plus de traces
ps edf | grep UUID
Autostart des vm sur xen¶
Dans un premier temps, autoriser le pool a lancer l’autostart des VM
xe pool-param-set uuid=$(xe pool-list --minimal) other-config:auto_poweron=true
Pour démarrage auto des vms :
IFS=",";for uuid in $(xe vm-list power-state=running is-control-domain=false --minimal); do echo $(xe vm-param-get uuid=$uuid param-name=name-label);xe vm-param-set uuid=$uuid other-config:auto_poweron=true; done;
Ne pas oublier de désactiver les anciens boot auto (Cas typique d’un serveur qui passe en « OLD- » …
IFS=",";for uuid in $(xe vm-list power-state=halted is-control-domain=false --minimal); do echo $(xe vm-param-get uuid=$uuid param-name=name-label);xe vm-param-set uuid=$uuid other-config:auto_poweron=false; done;
Lister les VM qui tourne sur un SR en particulier¶
for i in `xe vdi-list sr-uuid=$(xe sr-list name-label=CHANGEME --minimal) params=vbd-uuids --minimal | sed 's/,/\n/g'`; do xe vbd-list uuid=$i params=vm-name-label --minimal; done | sort
Stopper toutes les VM sur un SR en particulier¶
for i in `xe vdi-list sr-uuid=$(xe sr-list name-label=drbd1 --minimal) params=vbd-uuids --minimal | sed 's/,/\n/g'`; do for line in $(xe vbd-list uuid=$i params=vm-name-label --minimal); do xe vm-shutdown name-label=$line; done ; done
Pour chaque machine sur sr drbd1 qui sont allumées, les éteindre¶
for i in `xe vdi-list sr-uuid=$(xe sr-list name-label=drbd1 --minimal) params=vbd-uuids --minimal | sed 's/,/\n/g'`; do for line in $(xe vbd-list uuid=$i params=vm-name-label --minimal); do for uuid in $(xe vm-list name-label=$line power-state=running --minimal); do xe vm-shutdown uuid=$uuid; done ; done ; done
Copier template d’un pool sur un autre xenserver en ssh¶
xe template-export template-uuid=$( xe template-list name-label=modele-stretch --minimal) filename= | ssh root@IP_CIBLE 'cat - | xe vm-import filename=/dev/stdin'
Importer template sur srvfichiers sur le xen :
ssh root@srvfichiers 'cat /data/Template_MCC.xva' | xe vm-import filename=/dev/stdin
Gestion des SR¶
Afficher tous les Storage Repositories
xe sr-list
Sonde le Storage
sr-probe The device-config parameters can be specified by e.g. device-config:devs=/dev/sdb1.
Introduit un SR (Mais ne créer pas de PDB).
sr-introduce
xe sr-introduce uuid=39baf126-a535-549f-58d6-feeda55f7801 type=lvm name-label=”Local storage” content-type=user
xe pbd-create sr-uuid=39baf126-a535-549f-58d6-feeda55f7801
device-config:device=/dev/disk/by-id/scsi-SATA_ST380815AS_6QZ5Z1AM-part3 host-uuid=83f2c775-57fc-457b-9f98-2b9b0a7dbcb5
aec2c6fc-e1fb-0a27-2437-9862cffe213e
Attacher le PBD créé avec la commande xe pbd-plug :
xe pbd-plug uuid=aec2c6fc-e1fb-0a27-2437-9862cffe213e
Désigner un nouveau master dans un pool (Master present)¶
Pour changer le master dans un pool en bon état, choisir le futur master et récupérer son uuid
xe host-list
Le désigner comme nouveau master
xe pool-designate-new-master host-uuid=<host-uuid>
Divers commandes utiles a trier¶
Reconfigurer l’ip d’un interface avec l’uuid du pif¶
xe pif-reconfigure-ip uuid=892f4c16-bddc-3f13-ac06-daddec8de0c4 mode=static DNS=143.126.153.187,143.126.201.229 IP=143.126.153.188 netmask=255.255.255.224
Patcher un serveur Citrix Xenserver¶
xe patch-upload file-name=[nom_patch]
Export/Import XVA¶
The export command to run from XenServer console is
xe vm-export vm=crucialtestbox filename=/test/crucialtestbox.xva
Then on the new XenServer box run,
xe vm-import filename=/test/crucialtestbox.xva
Transfer template¶
Copier template d’un pool sur un autre xenserver en ssh :
xe template-export template-uuid=$( xe template-list name-label=modele-stretch --minimal) filename= | ssh root@143.126.151.201 'cat - | xe vm-import filename=/dev/stdin'
Regénérer les template par défaut¶
/usr/bin/create-guest-templates
Utiliser du VNC sur les VM xenserver/xcpng-server¶
Connect to VM installer At this stage we use VNC client to connect to our new virtual machine. First, we need to get a VNC port number to connect to:
xe vm-list name-label=srvads
xe vm-param-get uuid=2bba32c1-c2b2-7251-7acf-6acd8c856e6e param-name=dom-id
2
xenstore-read /local/domain/2/console/vnc-port
5901
Last two digits of the above command output will provide you with the VNC port number. In this case it’s 1. Use vnc client to connect remotely:
vncviewer -via root@XENSERVER_IP localhost:1
Montage disque virtuel¶
mount
/var/sr-mount
mount -l /var/sr-mount/UUID
On démonte proprement
ps edf | grep UUID
Astuce metadata¶
Pour xenserver, il ne faut pas modifier la valeur de metadata_read_only dans le ficheir lvm.conf. Il faut la laisser à 1. Si on a une commande qui a vraiment besoin, on peut toujours rajouter –config global{metadata_read_only=0} à la commande lvm
Créer le storage DVD DRIVES¶
xe sr-create host-uuid=5e54d10f-030d-4e61-b9cd-fce3d0a4a7a6 content-type=iso name-label="DVD drives" type=udev device-config:"location=/dev/xapi/cd" physical-size=0 shared=false sm-config:"type=cd"
Créer le storage REMOVABLE_STORAGE¶
xe sr-create host-uuid=9a976cca-c330-40d6-8eec-4fbee9cc3245 content-type=disk name-label="Removable storage" type=udev device-config:"location=/dev/xapi/block" physical-size=0 shared=false sm-config:"type=block"
Créer un SR NFS¶
[14:41 xcp-ng-server ~]# xe sr-probe type=nfs device-config:server=10.143.206.42 device-config:serverpath=/var/www/nfsshare
<?xml version="1.0" ?>
<SRlist>
<SR>
<UUID>d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3</UUID>
</SR>
</SRlist>
[14:41 xcp-ng-server ~]# xe sr-introduce uuid=d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3 shared=true type=nfs name-label=NFS_TEST
d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3
[14:42 xcp-ng-server ~]# xe pbd-create sr-uuid=d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3 host-uuid=948c5b8a-d78d-4920-a19f-87f57c089294 device-config:server=10.143.206.42 device-config:serverpath=/var/www/nfsshare
fe481eeb-5a1d-2d96-0450-5a7517d96bc1
[14:43 xcp-ng-server ~]# xe pbd-plug uuid=fe481eeb-5a1d-2d96-0450-5a7517d96bc1
xe sr-scan uuid=d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3
source : support.citrix.com/article/CTX220536
Ou bien¶
xe sr-probe type=nfs device-config:server=10.143.206.42 device-config:serverpath=/var/www/nfsshare"
xe sr-introduce uuid=d449a8a6-ca1a-0885-5f34-3d73ffd5e6b3 shared=true type=nfs name-label=NFS_SR
Renommer xcp/xen¶
xe host-set-hostname-live host-uuid=UUID_HOST host-name=NOM_HOST
visible dans xencenter :
xe host-param-set name-label=NOM_HOST uuid=UUID_HOST'
set dom0 to 2Go¶
/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=2048M,max:2048M
copy vdi for centos-root from nfs share to local sr #uuid on nfs : 89a021ae-8848-4557-8acd-569b6dd55533 Disk_modele-centos_root #attention le nom est perdu avec un partage nfs
xe vdi-copy uuid=89a021ae-8848-4557-8acd-569b6dd55533 sr-uuid=SR_UUID
Renommer uuid vdi nommé root¶
xe vdi-param-set uuid=VDI_UUID name-label=DISK_centos7_root"
Créer vm linux pour un template¶
xe vm-install new-name-label=TMPL_Centos7 template='CentOS 7' sr-name-label='Local storage'
Configurer le Vcpu max¶
xe vm-param-set uuid=UUID_VM VCPUs-max=2
Configurer le Vcpu at startup¶
xe vm-param-set uuid=UUID_VM VCPUs-at-startup=2
Recupérer le bad vdi de TMPL_Centos7 vm et le détruire¶
xe vdi-destroy uuid=$(xe vbd-param-get uuid=$(xe vbd-list vm-name-label=TMPL_Centos7 --minimal) param-name=vdi-uuid)
Attacher une partition a une vm¶
device=0 correspond à la position du disque
xe vbd-create vdi-uuid=VID_UUID vm-uuid=VM_UUID device=0"
Créer un network pour TMPL_Centos7¶
device=0 correspond à la position de la carte réseau
xe vif-create network-uuid=$(xe network-list name-label='Pool-wide network associated with eth0' --minimal) vm-uuid=VM_UUID device=0
Convertir en template la vm¶
La vm doit être éteinte
xe vm-param-set uuid=VM_UUID is-a-template=true"
Créer depuis ce nouveau template dXX-fspmp¶
xe vm-install new-name-label=dXX-fspmp template=TMPL_Centos7"
Rennommer le vdi root de dxx-fspmp¶
xe vdi-param-set uuid=$(xe vbd-param-get param-name=vdi-uuid uuid=$(xe vbd-list vm-name-label=dXX-fspmp vdi-name-label=DISK_centos7_root --minimal)) name-label=DISK_dXX-fspmp_root"
Ajouter un disque de 50G¶
xe vdi-create name-label=DISK_dXX-fspmp_wapt sr-uuid=SR_UUID virtual-size=50GiB"
Lier le nouveau disque¶
device=3 correspond à la position du disque
xe vbd-create vdi-uuid=VDI_UUID vm-uuid=VM_UUID device=3"
Récupérer l’adresse mac de la machine dXX-fspmp¶
xe vif-param-get uuid=$(xe vm-vif-list vm=dXX-fspmp --minimal) param-name=MAC"
Changer les type de boot bios ou uefi¶
Attention, la machine ne doit pas être démarré avant, ne serait-ce qu’une seule fois
xe vm-param-set HVM-boot-policy='BIOS order' HVM-boot-params:firmware=bios uuid=VM_UUID"
xe vm-param-set HVM-boot-policy='BIOS order' HVM-boot-params:firmware=uefi uuid=VM_UUID"
Configurer la limite de la ram à 6G¶
xe vm-memory-limits-set uuid=VM_UUID static-min=6GiB dynamic-min=6GiB dynamic-max=6GiB static-max=6GiB"
Configurer sur unevm le Vcpu max¶
xe vm-param-set uuid=VM_UUID VCPUs-max=4"
Configurer le Vcpu at startup sur une vm¶
xe vm-param-set uuid=VM_UUID VCPUs-at-startup=4"
Démarrer une vm¶
xe vm-start name-label=VM_NAME
Shutdown/eteindre les vm¶
xe vm-shutdown --multiple