Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

17.2. FCP 부착 논리 유닛(LUN) 추가하기

다음은 FCP LUN을 추가하는 방법을 보여줍니다.

참고

z/VM을 실행한다면, FCP 어답터가 z/VM 게스트 가상 머신에 부착되어 있는지 확인하십시오. 실제 프로덕션 환경에서 멀티패스를 하려면, 최소한 두개의 FCP 장치가 두개의 서로 다른 물리 아답터(CHPID)상에 있어야 합니다. 예를 들어:
CP ATTACH FC00 TO * 
CP ATTACH FCD0 TO *

17.2.1. FCP LUN 동적으로 활성화하기

다음 단계를 따라 LUN을 활성화하십시오:
  1. cio_ignore 유틸리티를 사용하여 FCP 어댑터를 무시할 장치 목록에서 제거하고, Linux가 볼 수 있도록 합니다:
    # cio_ignore -r device_number
    device_number를 FCP 어답터의 장치 번호로 바꾸십시오. 예를 들어:
  2. FCP 어답터 장치를 온라인으로 만들려면 다음 명령을 실행하십시오:
    # chccwdev -e fc00
  3. 필요한 WWPN이 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. FCP LUN을 LUN에 대한 액세스를 얻어낼 포트(WWPN)에 추가함으로써, 활성화합니다.
    # echo 0x4020400100000000 > /sys/bus/ccw/drivers/zfcp/0.0.fc00/0x50050763050b073d/unit_add
  5. 할당된 SCSI 장치명을 찾아냅니다:
    # 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. FCP LUN 영구적으로 활성화하기

앞에서 설명한 절차는 FCP LUN을 실행중인 시스템에서 동적으로 활성화하는 방법이었습니다. 하지만, 이러한 변경사항은 영구적이지 않고, 재부팅후 사라집니다. Linux상의 FCP 설정 변경을 영구적으로 저장하는 방법은 FCP LUN이 root 파일 시스템인지에 따라 달려있습니다. 만약 FCP LUN이 root 파일 시스템이라면, 부팅 과정의 앞부분에서 initramfs이 root 파일 시스템을 마운트할 수 있도록, DASD를 활성화해 주어야만 합니다. cio_ignore 명령은 영구적인 장치 설정을 투명하게 처리하며, 직접 장치를 무시 목록에서 제거할 필요가 없습니다.

17.2.2.1. Root 파일 시스템의 일부인 FCP LUN

root 파일 시스템의 일부로 FCP LUN을 추가하기 위해 변경해야 하는 것은 /etc/zipl.conf 뿐입니다. 그 후, zipl 부트 로더 도구를 실행하십시오. 다시 initramfs를 생성시킬 필요가 없습니다.
Red Hat Enterprise Linux는 부팅 과정의 앞부분에서 FCP LUN을 활성화하기 위해 하나의 매개변수를 제공합니다: rd.zfcp=. 값은 장치 버스 ID와 0x 접두사가 붙은 16진수 WWWPN, 그리고 0x 접두사가 붙고, 16자리 16진수를 만들기 위해 0이 채워넣어진 FCP LUN을 포함하는 콤마로 분리된 목록입니다.
다음 zipl.conf는 두개의 FCP LUN에 있는 물리 볼륨을 vg_devel1 LVM 볼륨 그룹으로 사용하고, 그 안에 논리 볼륨 lv_root를 root 파일시스템으로 사용하는 예입니다. 단순화하기 위해서 다음 예제는 멀티패스를 사용하지 않았습니다.
[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"
다른 물리 볼륨을 장치 버스 ID가 0.0.fc00, WWPN이 0x5105074308c212e9, FCP LUN이 0x401040a300000000인 3번째 FCP LUN에 추가하기 위해서, rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a300000000zipl.conf에 있는 부트 커널 매개변수에 추가하십시오. 예를 들어:
[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"
zipl를 실행하여 다음 IPL시에 /etc/zipl.conf 변경 사항이 적용되도록 하십시오:
# 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. Root 파일 시스템의 일부가 아닌 FCP LUN

데이터 디스크와 같은 root 파일시스템의 일부가 아닌 FCP LUN은 /etc/zfcp.conf에 의해 영구히 설정됩니다. 그 안에는 한 줄에 하나의 FCP LUN 정보가 들어갑니다. 각 행은 FCP 어답터의 장치 버스 ID와 0x 접두사로 시작하는 16자리 16진수 WWPN, 그리고 0x 접두사로 시작하고, 0으로 채워넣어진 16자리 16진수가 공백이나 탭 문자로 분리되어 들어갑니다. /etc/zfcp.conf의 항목들은 FCP 어답터가 시스템에 추가될 때 udev에 의해 활성화됩니다. 부팅시 시스템이 인식한 모든 FCP 아답터가 추가되며, udev를 트리거합니다.
/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
시스템을 재부팅한 다음이나, 시스템의 I/O 설정을 변경해서 새 FCP 채널을 동적으로 추가한 후에만 (예를 들어 채널이 z/VM에 연결된 경우) /etc/zfcp.conf의 변경 사항이 적용됩니다. 또는 이전에 활성화되지 않았던 FCP 어뎁터에 대해 /etc/zfcp.conf에 있는 새로운 항목의 활성화를 다음과 같은 명령을 실행하여 수행할 수 도 있습니다:
  1. cio_ignore 유틸리티를 사용하여 FCP 어댑터를 무시할 장치 목록에서 제거하고, Linux가 볼 수 있도록 합니다:
    # cio_ignore -r device_number
    device_number를 FCP 어답터의 장치 번호로 바꾸십시오. 예를 들어:
    # cio_ignore -r fcfc
  2. 변경을 활성화하는 uevent를 트리거하기 위해서 다음을 수행합니다:
    echo add > /sys/bus/ccw/devices/device-bus-ID/uevent
    예를 들어:
    echo add > /sys/bus/ccw/devices/0.0.fcfc/uevent