17.2. Adicionando FCP-attached Logical Units (LUNs)

Veja a seguir um exemplo de como adicionar um FCP LUN.

Nota

Se estiver sendo executado no z/VM, certifique-se que o adaptador do FCP está anexado à máquina virtual do convidado do z/VM. Para realizar um multipath em ambientes de produção, teriam ao menos dois dispostivos FCP em dois adaptadores físicos diferentes (CHPIDs). Por exemplo:
CP ATTACH FC00 TO * 
CP ATTACH FCD0 TO *

17.2.1. Ativando dinamicamente FCP LUN

Siga estes passos para ativar um LUN:
  1. Use o utilitário cio_ignore para remover o adaptador de FCP da lista dos dispositivos ignorados e torne-os visíveis ao Linux:
    # cio_ignore -r device_number
    Substitua device pelo número de dispositivo do adaptador FCP. Por exemplo:
  2. Para colocar o dispositivo de adaptador do FCP online, use o seguinte comando:
    # chccwdev -e fc00
  3. Verifique se o WWPN necessário foi encontrado pela porta automática de escaneamen to do driver de dispositivo 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. Ativar o FCP LUN adicionando-o à porta (WWPN) através do qual você gostaria de acessar ao LUN:
    # echo 0x4020400100000000 > /sys/bus/ccw/drivers/zfcp/0.0.fc00/0x50050763050b073d/unit_add
  5. Descubra o nome de dispositivo SCSI atribuído:
    # 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. Ativando FCP LUNs de forma persistente

As instruções acima descritas sobre como ativar um FCP LUNs de forma dinâmica em um sistema em execução. No entanto, tais mudanças não são persistentes e não sobrevivem uma reinicialização. Como realizar mudanças na configuração do FCP persistentes no seu sistema Linux, depende se o FCP LUNs pertence ao sistema de arquivo root. Aqueles necessários ao sistema de arquivo root precisam ser ativados durante o início do processo de inicialização pelo initramfs para ser capaz de montar o sistema de arquivo root. Os comandos cio_ignore são manuseados transparentemente para configurações de dispositivos persistentes e você não precisa liberar dispositivos a partir da lista de ignorar manualmente.

17.2.2.1. O FCP LUNs que faz parte do sistema de arquivo root

O único arquivo que você modificou para adicionar o FCP LUNs que fazem parte do sistema de arquivo root é /etc/zipl.conf seguido por uma execução da ferramenta de carregador de inicialização do zipl. Não há mais necessidade de recriar o initramfs.
O Red  Hat Enterprise  Linux fornece um parâmetro para ativar o FCP LUNs no início do processo de inicialização: rd.zfcp=. O valor é uma lista separada por vírgula, contendo um ID de barramento de dispositivo, o WWPN como número hexadecimal de 16 dígitos, préfixados com o 0x, e o FCP LUN préfixado com o 0x, e incluindo zeros à direita para ter 16 dígitos hexadecimais.
O exemplo a seguir zipl.conf +e para um sistema que usa volumes físicos em partições de dois FCP LUNs para um grupo de volume LVM vg_devel1 que contém um volume lógico lv_root para o sistema de arquivo root. Para simplicidade, o exemplo mostra uma configuração sem multipath.
[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"
Para adicionar outro volume físico em uma partição de um terço de FCP LUN com o ID 0.0.fc00, WWPN 0x5105074308c212e9 and FCP LUN 0x401040a300000000 de barramento de dispositivo, adicione rd_ZFCP=0.0.fc00,0x5105074308c212e9,0x401040a300000000 para a linha de parâmetros de seu kernel de inicialização em zipl.conf, por exemplo:
[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"
Execute zipl para salvar as alteracões do etc/zipl.conf para a próxima 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. O FCP LUNs que não faz parte do sistema de arquivo root

FCP LUNs que não faça parte do sistema de arquivo root, tal como discos de dados, são configurados de forma persistentes no arquivo /etc/zfcp.conf. Ele contém um FCP LUN por linha. Cada linha contém o ID de barramento de dispositivo do adapatador de FCP, o WWPN como número de 16 dígitos hexadecimais préfixados com o 0x, e o FCP LUN préfixado com o 0x, incluindo zeros à direita para ter 16 dígitos hexadecimais, separados por um espaço ou aba. Entradas no /etc/zfcp.conf são ativados e configurados pelo udev quando um adaptador do FCP é adicionado ao sistema. Durante a inicialização, todos os adaptadores FCP visíveis ao sistema são adicionados e disparam o udev.
Exemplo de conteúdo 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
Modificações de /etc/zfcp.conf tornam-se efetivas somente após uma reinicialização do sistema ou após a adição dinâmica de um novo canal FCP ao alterar o sistema de configuração E/S (por exemplo, um canal esta anexado sob z/VM). Como alternativa, você pode iniciar a ativação de uma nova entrada em /etc/zfcp.conf para um adaptador FCP que foi ativado previamente, ao executar os seguintes comandos:
  1. Use o utilitário cio_ignore para remover o adaptador de FCP da lista dos dispositivos ignorados e torne-os visíveis ao Linux:
    # cio_ignore -r device_number
    Substitua device pelo número de dispositivo do adaptador FCP. Por exemplo:
    # cio_ignore -r fcfc
  2. Para disparar o evento que ativa a mudança, emita:
    echo add > /sys/bus/ccw/devices/device-bus-ID/uevent
    Por exemplo:
    echo add > /sys/bus/ccw/devices/0.0.fcfc/uevent