14.8. IBM Z의 가상 머신에 DASD 장치 연결


vfio-ccw 기능을 사용하면 IBM Z 호스트의 VM(가상 머신)에 중재된 장치로 직접 액세스 스토리지 장치(DASD)를 할당할 수 있습니다. 예를 들어 VM이 z/OS 데이터 집합에 액세스하거나 할당된 DASD를 z/OS 시스템에 제공할 수 있습니다.

사전 요구 사항

  • FICON 프로토콜에서 지원되는 IBM Z 하드웨어 아키텍처가 있는 시스템이 있습니다.
  • Linux 운영 체제의 대상 VM이 있습니다.
  • driverctl 패키지가 설치되어 있습니다.

    # dnf install driverctl
  • 필요한 vfio 커널 모듈이 호스트에 로드되었습니다.

    # lsmod | grep vfio

    이 명령의 출력에는 다음 모듈이 포함되어야 합니다.

    • vfio_ccw
    • vfio_mdev
    • vfio_iommu_type1
  • VM에서 독점적으로 사용할 수 있는 예비 DASD 장치가 있으며 장치의 식별자를 알고 있습니다.

    다음 절차에서는 예제로 0.0.002c 를 사용합니다. 명령을 수행할 때 0.0.002c 를 DASD 장치의 식별자로 바꿉니다.

프로세스

  1. DASD 장치의 하위 채널 식별자를 가져옵니다.

    # 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 00000000

    이 예에서 서브채널 식별자는 0.0.29a8 로 감지됩니다. 이 절차의 다음 명령에서 0.0.29a8 을 장치의 감지된 하위 채널 식별자로 바꿉니다.

  2. 이전 단계의 lscss 명령에서 헤더 출력과 장치 정보만 표시하는 경우 다음 단계를 수행합니다.

    1. cio_ignore 목록에서 장치를 제거합니다.

      # cio_ignore -r 0.0.002c
    2. 게스트 OS에서 VM 의 커널 명령줄을 편집하고, 아직 없는 경우 cio_ignore= 로 시작하는 줄에 ! 라는 장치 식별자를 추가합니다.

      cio_ignore=all,!condev,!0.0.002c
    3. 호스트에서 1단계를 반복하여 하위 채널 식별자를 가져옵니다.
  3. 하위 채널을 vfio_ccw 패스스루 드라이버에 바인딩합니다.

    # driverctl -b css set-override 0.0.29a8 vfio_ccw
    참고

    이렇게 하면 0.0.29a8 하위 채널을 vfio_ccw 에 영구적으로 바인딩하므로 호스트에서 DASD를 사용할 수 없습니다. 호스트에서 장치를 사용해야 하는 경우 먼저 'vfio_ccw'에 자동 바인딩을 제거하고 하위 채널을 기본 드라이버에 다시 바인딩해야 합니다.

    # driverctl -bss unset-override 0.0.29a8

  4. DASD 중재 장치를 정의하고 시작합니다.

    # cat nodedev.xml
    <device>
        <parent>css_0_0_29a8</parent>
        <capability type="mdev">
            <type id="vfio_ccw-io"/>
        </capability>
    </device>
    
    # virsh nodedev-define nodedev.xml
    Node device 'mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8' defined from 'nodedev.xml'
    
    # virsh nodedev-start mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8
    Device mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8 started
  5. VM이 실행 중인 경우 종료합니다.
  6. 이전에 정의한 장치의 UUID를 표시하고 다음 단계를 위해 저장합니다.

    # virsh nodedev-dumpxml mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8
    
    <device>
      <name>mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8</name>
      <parent>css_0_0_29a8</parent>
      <capability type='mdev'>
        <type id='vfio_ccw-io'/>
        <uuid>30820a6f-b1a5-4503-91ca-0c10ba12345a</uuid>
        <iommuGroup number='0'/>
        <attr name='assign_adapter' value='0x02'/>
        <attr name='assign_domain' value='0x002b'/>
      </capability>
    </device>
  7. 중앙 집중식 장치를 VM에 연결합니다. 이렇게 하려면 virsh edit 유틸리티를 사용하여 VM의 XML 구성을 편집하고 다음 섹션을 XML에 추가하고 uuid 값을 이전 단계에서 가져온 UUID로 바꿉니다.

    <hostdev mode='subsystem' type='mdev' model='vfio-ccw'>
      <source>
        <address uuid="30820a6f-b1a5-4503-91ca-0c10ba12345a"/>
      </source>
    </hostdev>
  8. 선택 사항: 중앙 집중식 장치가 호스트 부팅 시 자동으로 시작되도록 구성합니다.

    # virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8

검증

  1. 미디어 장치가 올바르게 구성되었는지 확인합니다.

    # virsh nodedev-info mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8
    Name:           mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8
    Parent:         css_0_0_0121
    Active:         yes
    Persistent:     yes
    Autostart:      yes
  2. libvirt 가 중재된 DASD 장치에 할당한 식별자를 가져옵니다. 이렇게 하려면 VM의 XML 구성을 표시하고 vfio-ccw 장치를 찾습니다.

    # virsh dumpxml vm-name
    
    <domain>
    [...]
        <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-ccw'>
          <source>
            <address uuid='10620d2f-ed4d-437b-8aff-beda461541f9'/>
          </source>
          <alias name='hostdev0'/>
          <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0009'/>
        </hostdev>
    [...]
    </domain>

    이 예에서 장치의 할당된 식별자는 0.0.0009 입니다.

  3. VM을 시작하고 게스트 OS에 로그인합니다.
  4. 게스트 OS에서 DASD 장치가 나열되는지 확인합니다. 예를 들면 다음과 같습니다.

    # lscss | grep 0.0.0009
    0.0.0009 0.0.0007  3390/0c 3990/e9      f0  f0  ff   12212231 00000000
  5. 게스트 OS에서 장치를 온라인에 설정합니다. 예를 들면 다음과 같습니다.

    # chccwdev -e 0.0009
    Setting device 0.0.0009 online
    Done
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.