17.2. Ajouter des Unités Logiques (LUN) attachées FCP

L'exemple suivant illustre comment ajouter un LUN FCP.

Note

Si exécuté sous z/VM, assurez-vous que l'adaptateur FCP est bien attaché à la machine virtuelle invitée z/VM. Pour les multiples chemins d'accès en environnement de production, il devrait y avoir au moins deux périphériques FCP sur deux adaptateurs physiques différents (CHPID). Par exemple :
CP ATTACH FC00 TO * 
CP ATTACH FCD0 TO *

17.2.1. Activer dynamiquement un LUN FCP

Suivez ces étapes pour activer un LUN :
  1. Utilisez cio_ignore afin de supprimer l'adaptateur FCP de la liste des périphériques ignorés et pour le rendre visible à Linux :
    # cio_ignore -r device_number
    Remplacez device_number par le numéro de périphérique de l'adaptateur FCP. Par exemple :
  2. Pour mettre le périphérique de l'adaptateur FCP en ligne, utilisez la commande suivante :
    # chccwdev -e fc00
  3. Vérifiez que le WWPN requis a été trouvé par le scan de port automatique du pilote de périphérique zfcp :
    # ls -l /sys/bus/ccw/drivers/zfcp/0.0.fc00/
    drwxr-xr-x.  3 root root    0 Apr 28 18:19 0x500507630040710b
    drwxr-xr-x.  3 root root    0 Apr 28 18:19 0x50050763050b073d
    drwxr-xr-x.  3 root root    0 Apr 28 18:19 0x500507630e060521
    drwxr-xr-x.  3 root root    0 Apr 28 18:19 0x500507630e860521
    -r--r--r--.  1 root root 4096 Apr 28 18:17 availability
    -r--r--r--.  1 root root 4096 Apr 28 18:19 card_version
    -rw-r--r--.  1 root root 4096 Apr 28 18:17 cmb_enable
    -r--r--r--.  1 root root 4096 Apr 28 18:17 cutype
    -r--r--r--.  1 root root 4096 Apr 28 18:17 devtype
    lrwxrwxrwx.  1 root root    0 Apr 28 18:17 driver ->  ../../../../bus/ccw/drivers/zfcp
    -rw-r--r--.  1 root root 4096 Apr 28 18:17 failed
    -r--r--r--.  1 root root 4096 Apr 28 18:19 hardware_version
    drwxr-xr-x. 35 root root    0 Apr 28 18:17 host0
    -r--r--r--.  1 root root 4096 Apr 28 18:17 in_recovery
    -r--r--r--.  1 root root 4096 Apr 28 18:19 lic_version
    -r--r--r--.  1 root root 4096 Apr 28 18:17 modalias
    -rw-r--r--.  1 root root 4096 Apr 28 18:17 online
    -r--r--r--.  1 root root 4096 Apr 28 18:19 peer_d_id
    -r--r--r--.  1 root root 4096 Apr 28 18:19 peer_wwnn
    -r--r--r--.  1 root root 4096 Apr 28 18:19 peer_wwpn
    --w-------.  1 root root 4096 Apr 28 18:19 port_remove
    --w-------.  1 root root 4096 Apr 28 18:19 port_rescan
    drwxr-xr-x.  2 root root    0 Apr 28 18:19 power
    -r--r--r--.  1 root root 4096 Apr 28 18:19 status
    lrwxrwxrwx.  1 root root    0 Apr 28 18:17 subsystem ->  ../../../../bus/ccw
    -rw-r--r--.  1 root root 4096 Apr 28 18:17 uevent
  4. Activez le LUN FCP en l'ajoutant au port (WWPN) au travers duquel vous souhaiteriez accéder aux LUN :
    # echo 0x4020400100000000 > /sys/bus/ccw/drivers/zfcp/0.0.fc00/0x50050763050b073d/unit_add
  5. Trouvez le nom du périphérique SCSI assigné :
    # lszfcp -DV
    /sys/devices/css0/0.0.0015/0.0.fc00/0x50050763050b073d/0x4020400100000000
    /sys/bus/ccw/drivers/zfcp/0.0.fc00/host0/rport-0:0-21/target0:0:21/0:0:21:1089355792

17.2.2. Activer des LUN FCP de manière persistante

Les instructions ci-dessus décrivent comment activer des LUN FCP dynamiquement sur un système en cours d'exécution. Cependant, de telles modifications ne sont pas persistantes et ne survivront pas aux redémarrages. La persistance des modifications que vous apportez à la configuration FCP de votre système Linux dépend de si les LUN FCP appartiennent au système de fichiers racine. Ceux qui sont requis par le système de fichiers racine doivent être activés au tout début du processus de démarrage par initramfs afin de pouvoir monter le système de fichiers racine. cio_ignore est géré de manière transparente par les configurations persistantes de périphériques et il n'est pas nécessaire de libérer de périphériques de la liste Ignorer manuellement.

17.2.2.1. LUN FCP faisant partie du système de fichiers racine

/etc/zipl.conf est le seul fichier que vous devrez modifier pour ajouter des LUN FCP qui font partie du système de fichiers racine, suivi par l'exécution de l'outil du chargeur de démarrage zipl. Il n'est plus nécessaire de recréer initramfs.
Red Hat Enterprise Linux offre un paramètre permettant d'activer des LUN FCP au début du processus de démarrage : rd_zfcp=. La valeur est une liste séparée par des virgules contenant l'ID du bus périphérique, le WWPN en tant que nombre hexadécimal de 16 chiffres avec le préfixe 0x, et le LUN FCP avec le préfixe 0x et contenant des zéros à sa droite afin d'avoir 16 chiffres hexadécimaux.
L'exemple suivant de zipl.conf est pour un système utilisant des volumes physiques sur les partitions de deux LUN FCP pour un groupe de volumes LVM vg_devel1 qui contiendrait le volume logique lv_root comme système de fichiers racine. Par souci de simplicité, ce exemple montre une configuration sans multiples chemins d'accès.
[defaultboot]
default=linux
target=/boot/
[linux]
image=/boot/vmlinuz-2.6.32-19.el7.s390x
ramdisk=/boot/initramfs-2.6.32-19.el7.s390x.img
parameters="root=/dev/mapper/vg_devel1-lv_root 
rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a000000000 
rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a100000000 
rd_LVM_LV=vg_devel1/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 
SYSFONT=latarcyrheb-sun16 KEYTABLE=us cio_ignore=all,!condev"
Pour ajouter un autre volume physique sur la partition d'un troisième LUN FCP avec pour ID de bus de périphérique 0.0.fc00, WWPN 0x5105074308c212e9 et LUN FCP 0x401040a300000000, ajoutez rd_ZFCP=0.0.fc00,0x5105074308c212e9,0x401040a300000000 à la ligne des paramètres de votre noyau de démarrage dans zipl.conf. Exemple :
[defaultboot]
default=linux
target=/boot/
[linux]
image=/boot/vmlinuz-2.6.32-19.el7.s390x
ramdisk=/boot/initramfs-2.6.32-19.el7.s390x.img
parameters="root=/dev/mapper/vg_devel1-lv_root 
rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a000000000 
rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a100000000 
rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a300000000
rd_LVM_LV=vg_devel1/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 
SYSFONT=latarcyrheb-sun16 KEYTABLE=us cio_ignore=all,!condev"
Exécutez zipl pour appliquer les modifications apportées à /etc/zipl.conf pour le prochain démarrage IPL :
# zipl -V
Using config file '/etc/zipl.conf'
Target device information
Device..........................: 08:00
Partition.......................: 08:01
Device name.....................: sda
Device driver name..............: sd
Type............................: disk partition
Disk layout.....................: SCSI disk layout
Geometry - start................: 2048
File system block size..........: 4096
Physical block size.............: 512
Device size in physical blocks..: 10074112
Building bootmap in '/boot/'
Building menu 'rh-automatic-menu'
Adding #1: IPL section 'linux' (default)
kernel image......: /boot/vmlinuz-2.6.32-19.el7.s390x
kernel parmline...: 'root=/dev/mapper/vg_devel1-lv_root rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a000000000 rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a100000000 rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a300000000 rd_LVM_LV=vg_devel1/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us cio_ignore=all,!condev'
initial ramdisk...: /boot/initramfs-2.6.32-19.el7.s390x.img
component address:
kernel image....: 0x00010000-0x007a21ff
parmline........: 0x00001000-0x000011ff
initial ramdisk.: 0x02000000-0x028f63ff
internal loader.: 0x0000a000-0x0000a3ff
Preparing boot device: sda.
Detected SCSI PCBIOS disk layout.
Writing SCSI master boot record.
Syncing disks...
Done.

17.2.2.2. LUN FCP faisant partie du système de fichiers racine

Les LUN FCP qui ne font pas partie du système de fichiers racine, tels que les disques de données, sont configurés de manière persistante dans le fichier /etc/zfcp.conf. Celui-ci contient un LUN FCP par ligne. Chaque ligne contient l'ID du bus périphérique de l'adaptateur FCP, le WWPN en tant que nombre hexadécimal de 16 chiffres avec le préfixe 0x, et le LUN FCP avec le préfixe 0x et des zéros sur la droite pour avoir 16 chiffres hexadécimaux, séparés par un espace ou une tabulation (tab). Les entrées dans le fichier /etc/zfcp.conf sont activées et configurées par udev lorsqu'un adaptateur FCP est ajouté au système. Pendant le démarrage, tous les adaptateurs FCP visibles au système sont ajoutés et déclenchent udev.
Exemple d'extrait de contenu de /etc/zfcp.conf :
0.0.fc00 0x5105074308c212e9 0x401040a000000000
0.0.fc00 0x5105074308c212e9 0x401040a100000000
0.0.fc00 0x5105074308c212e9 0x401040a300000000
0.0.fcd0 0x5105074308c2aee9 0x401040a000000000
0.0.fcd0 0x5105074308c2aee9 0x401040a100000000
0.0.fcd0 0x5105074308c2aee9 0x401040a300000000
Les modifications de /etc/zfcp.conf ne prennent effet qu'après le redémarrage du système, ou après l'ajout dynamique d'un nouveau canal FCP en modifiant la configuration des E/S du système (par exemple, lorsqu'un canal est attaché sous z/VM). Alternativement, vous pouvez déclencher l'activation d'une nouvelle entrée dans /etc/zfcp.conf pour un adaptateur FCP qui n'était pas actif au préalable, ce en exécutant les commandes suivantes :
  1. Utilisez cio_ignore afin de supprimer l'adaptateur FCP de la liste des périphériques ignorés et pour le rendre visible à Linux :
    # cio_ignore -r device_number
    Remplacez device_number par le numéro de périphérique de l'adaptateur FCP. Par exemple :
    # cio_ignore -r fcfc
  2. Pour déclencher l'événement uevent qui active la modification, exécutez :
    echo add > /sys/bus/ccw/devices/device-bus-ID/uevent
    Par exemple :
    echo add > /sys/bus/ccw/devices/0.0.fcfc/uevent