14.8. Attacher des périphériques DASD à des machines virtuelles sur IBM Z
En utilisant la fonction vfio-ccw, vous pouvez attribuer des périphériques de stockage à accès direct (DASD) en tant que périphériques médiatisés à vos machines virtuelles (VM) sur des hôtes IBM Z. Cela permet par exemple à la VM d'accéder à un ensemble de données z/OS ou de fournir des DASD assignés à une machine z/OS. Cela permet par exemple à la VM d'accéder à un ensemble de données z/OS ou de fournir les DASD attribués à une machine z/OS.
Conditions préalables
- Vous disposez d'un système doté d'une architecture matérielle IBM Z compatible avec le protocole FICON.
- Vous disposez d'une VM cible d'un système d'exploitation Linux.
Le paquetage driverctl est installé.
dnf install driverctl
# dnf install driverctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Les modules nécessaires du noyau
vfioont été chargés sur l'hôte.lsmod | grep vfio
# lsmod | grep vfioCopy to Clipboard Copied! Toggle word wrap Toggle overflow La sortie de cette commande doit contenir les modules suivants :
-
vfio_ccw -
vfio_mdev -
vfio_iommu_type1
-
Vous disposez d'un périphérique DASD de rechange destiné à l'usage exclusif de la VM et vous connaissez l'identifiant de ce périphérique.
La procédure suivante utilise
0.0.002ccomme exemple. Lors de l'exécution des commandes, remplacez0.0.002cpar l'identifiant de votre périphérique DASD.
Procédure
Obtenir l'identifiant du sous-canal du dispositif DASD.
lscss -d 0.0.002c
# lscss -d 0.0.002c Device Subchan. DevType CU Type Use PIM PAM POM CHPIDs ---------------------------------------------------------------------- 0.0.002c 0.0.29a8 3390/0c 3990/e9 yes f0 f0 ff 02111221 00000000Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, l'identifiant du sous-canal est détecté comme étant
0.0.29a8. Dans les commandes suivantes de cette procédure, remplacez0.0.29a8par l'identifiant de sous-canal détecté pour votre appareil.Si la commande
lscssde l'étape précédente n'a affiché que l'en-tête et aucune information sur le périphérique, procédez comme suit :Retirer l'appareil de la liste
cio_ignore.cio_ignore -r 0.0.002c
# cio_ignore -r 0.0.002cCopy to Clipboard Copied! Toggle word wrap Toggle overflow Dans le système d'exploitation invité, modifiez la ligne de commande du noyau de la VM et ajoutez l'identifiant du périphérique avec une marque
!à la ligne qui commence parcio_ignore=, s'il n'est pas déjà présent.cio_ignore=all,!condev,!0.0.002c
cio_ignore=all,!condev,!0.0.002cCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Répétez l'étape 1 sur l'hôte pour obtenir l'identifiant du sous-canal.
Lier le sous-canal au pilote
vfio_ccwpassthrough.driverctl -b css set-override 0.0.29a8 vfio_ccw
# driverctl -b css set-override 0.0.29a8 vfio_ccwCopy to Clipboard Copied! Toggle word wrap Toggle overflow NoteCela lie le sous-canal 0.0.29a8 à
vfio_ccwde manière persistante, ce qui signifie que le DASD ne sera pas utilisable sur l'hôte. Si vous devez utiliser le périphérique sur l'hôte, vous devez d'abord supprimer la liaison automatique à 'vfio_ccw' et lier à nouveau le sous-canal au pilote par défaut :# driverctl -b css unset-override 0.0.29a8
Définir et démarrer le dispositif à médiation DASD.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Arrêter la VM, si elle est en cours d'exécution.
Affichez l'UUID de l'appareil précédemment défini et enregistrez-le pour l'étape suivante.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Attachez le dispositif médiatisé à la VM. Pour ce faire, utilisez l'utilitaire
virsh editpour modifier la configuration XML de la VM, ajoutez la section suivante au XML et remplacez la valeuruuidpar l'UUID que vous avez obtenu à l'étape précédente.<hostdev mode='subsystem' type='mdev' model='vfio-ccw'> <source> <address uuid="30820a6f-b1a5-4503-91ca-0c10ba12345a"/> </source> </hostdev><hostdev mode='subsystem' type='mdev' model='vfio-ccw'> <source> <address uuid="30820a6f-b1a5-4503-91ca-0c10ba12345a"/> </source> </hostdev>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Configurer le périphérique médiatisé pour qu'il démarre automatiquement au démarrage de l'hôte.
virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8
# virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Assurez-vous que le dispositif médiatisé est correctement configuré.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Obtenez l'identifiant que
libvirta attribué au périphérique DASD médiatisé. Pour ce faire, affichez la configuration XML de la VM et recherchez un périphériquevfio-ccw.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, l'identifiant attribué à l'appareil est
0.0.0009.- Démarrez la VM et connectez-vous à son système d'exploitation invité.
Dans le système d'exploitation invité, vérifiez que le périphérique DASD est répertorié. Par exemple, dans le système d'exploitation invité, confirmez que le périphérique DASD est répertorié :
lscss | grep 0.0.0009
# lscss | grep 0.0.0009 0.0.0009 0.0.0007 3390/0c 3990/e9 f0 f0 ff 12212231 00000000Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans le système d'exploitation invité, mettez le périphérique en ligne. Par exemple :
chccwdev -e 0.0009
# chccwdev -e 0.0009 Setting device 0.0.0009 online DoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow