Red Hat Training

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

20.16. 장치

이 XML 요소 세트는 모두 게스트 가상 머신 도메인에 제공되는 장치를 설명하는 데 사용됩니다. 아래의 모든 장치는 주요 장치 요소의 자식으로 표시됩니다.
다음과 같은 가상 장치가 지원됩니다.
  • virtio-scsi-pci - PCI 버스 스토리지 장치
  • virtio-9p-pci - PCI 버스 스토리지 장치
  • virtio-blk-pci - PCI 버스 스토리지 장치
  • virtio-net-pci - virtio-net이라고도 하는 PCI 버스 네트워크 장치
  • virtio-serial-pci - PCI 버스 입력 장치
  • virtio-balloon-pci - PCI 버스 메모리 balloon 장치
  • virtio-rng-pci - PCI 버스 가상 임의 번호 생성기 장치
중요
virtio 장치가 32보다 큰 값으로 설정된 벡터 수가 생성되는 경우 장치는 Red Hat Enterprise Linux 6에서 0 값으로 설정되었지만 Enterprise Linux 7에서는 값이 아닌 것처럼 작동합니다. 결과 벡터 설정이 일치하지 않으면 두 플랫폼의 virtio 장치 벡터 수가 33 이상으로 설정된 경우 마이그레이션 오류가 발생합니다. 따라서 벡터 값을 32보다 크게 설정하지 않는 것이 좋습니다. virtio-balloon-pci 및 virtio-rng-pci를 제외한 모든 virtio 장치는 벡터 인수를 허용합니다.

그림 20.22. 장치 - 하위 요소


  ...
  <devices>
    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
  </devices>
  ...
<에뮬레이터 요소의 내용은 장치 모델 에뮬레이터> 바이너리에 대한 정규화된 경로를 지정합니다. capabilities XML은 각 특정 도메인 유형 또는 아키텍처 조합에 사용할 권장 기본 에뮬레이터를 지정합니다.

20.16.1. 하드 드라이브, Floppy 디스크, CDROM

도메인 XML의 이 섹션은 디스크처럼 보이는 모든 장치를 지정합니다. 피로, 하드 디스크, cdrom 또는 반가상화 드라이버가 디스크 요소를 통해 지정됩니다.

그림 20.23. 장치 - 하드 드라이브, 플로피 디스크, CDROM


 ...
  <devices>
    <disk type='file' snapshot='external'>
      <driver name="tap" type="aio" cache="default"/>
      <source file='/var/lib/xen/images/fv0' startupPolicy='optional'>
        <seclabel relabel='no'/>
      </source>
      <target dev='hda' bus='ide'/>
      <iotune>
        <total_bytes_sec>10000000</total_bytes_sec>
        <read_iops_sec>400000</read_iops_sec>
        <write_iops_sec>100000</write_iops_sec>
      </iotune>
      <boot order='2'/>
      <encryption type='...'>
        ...
      </encryption>
      <shareable/>
      <serial>
        ...
      </serial>
    </disk>
      ...
    <disk type='network'>
      <driver name="qemu" type="raw" io="threads" ioeventfd="on" event_idx="off"/>
      <source protocol="sheepdog" name="image_name">
        <host name="hostname" port="7000"/>
      </source>
      <target dev="hdb" bus="ide"/>
      <boot order='1'/>
      <transient/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
    <disk type='network'>
      <driver name="qemu" type="raw"/>
      <source protocol="rbd" name="image_name2">
        <host name="hostname" port="7000"/>
      </source>
      <target dev="hdd" bus="ide"/>
      <auth username='myuser'>
        <secret type='ceph' usage='mypassid'/>
      </auth>
    </disk>
    <disk type='block' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hdc' bus='ide' tray='open'/>
      <readonly/>
    </disk>
    <disk type='block' device='lun'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/sda'/>
      <target dev='sda' bus='scsi'/>
      <address type='drive' controller='0' bus='0' target='3' unit='0'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/sda'/>
      <geometry cyls='16383' heads='16' secs='63' trans='lba'/>
      <blockio logical_block_size='512' physical_block_size='4096'/>
      <target dev='hda' bus='ide'/>
    </disk>
    <disk type='volume' device='disk'>
      <driver name='qemu' type='raw'/>
      <source pool='blk-pool0' volume='blk-pool0-vol0'/>
      <target dev='hda' bus='ide'/>
    </disk>
  </devices>
  ...

20.16.1.1. 디스크 요소

<disk> 요소는 디스크를 설명하는 기본 컨테이너입니다. 특성 유형은 <disk> 요소와 함께 사용할 수 있습니다. 다음 유형을 사용할 수 있습니다.
  • file
  • 블록
  • dir
  • network

20.16.1.2. source 요소

<디스크 type='file''> 의 경우 file 속성은 디스크를 포함하는 파일의 정규화된 경로를 지정합니다. <디스크 type='block'> 의 경우 dev 속성은 디스크로 사용할 호스트 물리적 시스템 장치의 경로를 지정합니다. 파일과 블록 모두를 사용하면 아래에 설명된 하나 이상의 하위 요소 seclabel 을 사용하여 해당 소스 파일에 대한 도메인 보안 레이블 지정 정책을 재정의할 수 있습니다. 디스크 유형이 dir 이면 dir 속성은 디스크로 사용할 디렉터리의 정규화된 경로를 지정합니다. 디스크 유형이 네트워크 이면 protocol 속성은 요청된 이미지에 액세스할 프로토콜을 지정합니다. 가능한 값은 nbd,rbd,sheepdog 또는 gluster 입니다.
protocol 속성이 rbd,sheepdog 또는 gluster 이면 사용할 볼륨 및 또는 이미지를 지정하는 추가 속성 이름이 필요합니다. 디스크 유형이 네트워크 인 경우, 소스에type='dir'type='network' 를 포함하여 연결할 호스트 물리적 시스템을 지정하는 데 사용되는 호스트 하위 요소가 0개 이상 있을 수 있습니다. cdrom 또는 coat(Device 속성)를 나타내는 파일 디스크 유형의 경우 소스 파일에 액세스할 수 없는 경우 디스크로 수행할 작업을 정의할 수 있습니다. 이 작업은 다음 값과 함께 startupPolicy 특성을 조작하여 수행됩니다.
  • 어떤 이유로든 누락된 경우 필수적으로 오류가 발생합니다. 이 설정은 기본 설정입니다.
  • requisite 부팅 시 누락된 경우 오류가 발생하는 경우 migrate/restore/revert에 누락된 경우 드롭
  • 시작 시도에 누락된 경우 선택적 드롭

20.16.1.3. mirror 요소

이 요소는 하이퍼바이저가 BlockCopy 작업을 시작한 경우 특성 파일의 <미러> 위치가 결국 소스와 동일한 내용이 있고 속성 형식의 파일 형식(소스 형식과 다를 수 있음)을 사용하는 경우 존재합니다. 준비가 된 속성이 있는 경우 디스크가 피벗할 준비가 된 것으로 알려져 있습니다. 그렇지 않으면 디스크를 계속 복사합니다. 현재 이 요소는 출력에서만 유효하므로 입력에서 무시됩니다.

20.16.1.4. target 요소

<target> 요소는 디스크가 게스트 가상 머신 OS에 노출되는 버스 / 장치를 제어합니다. dev 속성은 논리 장치 이름을 나타냅니다. 지정된 실제 장치 이름은 게스트 가상 머신 OS의 장치 이름에 매핑되지 않습니다. 선택적 bus 속성은 에뮬레이션할 디스크 장치 유형을 지정합니다. 가능한 값은 일반적인 값인scsi,virtio,xen,usb 또는 sata 와 함께 드라이버별로 다릅니다. 생략하면 버스 유형이 장치 이름의 스타일에서 유추됩니다. 예를 들어 'sda' 라는 장치는 일반적으로 SCSI 버스를 사용하여 내보냅니다. 선택적 속성 트레이 는 이동식 디스크(예: CD-ROM 또는 Floppy 디스크)의 트레이 상태를 나타냅니다. 값은 열거나 닫을 수 있습니다. 기본 설정은 폐쇄 입니다. 자세한 내용은 대상 항목을 참조하십시오.

20.16.1.5. iotune

선택적 <iotune> 요소는 장치별 I/O 튜닝을 추가로 제공할 수 있는 기능을 제공하며, 장치마다 다를 수 있는 값을 제공합니다(이 요소는 도메인에 전역적으로 적용되는 blkiotune 요소에 제한). 이 요소에는 다음과 같은 선택적 하위 요소가 있습니다. 하위 요소가 지정되거나 전혀 지정되지 않거나 0 값으로 지정되지 않거나 지정된 하위 항목은 제한이 없음을 나타냅니다.
  • <total_bytes_sec> - 초당 총 처리량 제한(바이트)입니다. 이 요소는 <read_bytes_sec> 또는 <write_bytes_sec> 과 함께 사용할 수 없습니다.
  • <read_bytes_sec> - 초당 읽기 처리량 제한(바이트)입니다.
  • <write_bytes_sec> - 초당 쓰기 처리량 제한(바이트)입니다.
  • <total_iops_sec> 초당 총 I/O 작업 수입니다. 이 요소는 <read_iops_sec> 또는 <write_iops_sec> 과 함께 사용할 수 없습니다.
  • <read_iops_sec> 초당 읽기 I/O 작업 수입니다.
  • <write_iops_sec> - 초당 쓰기 I/O 작업 수입니다.

20.16.1.6. 드라이버

선택적 <드라이버> 요소를 사용하면 디스크를 제공하는 데 사용되는 하이퍼바이저 드라이버와 관련된 추가 세부 정보를 지정할 수 있습니다. 다음 옵션을 사용할 수 있습니다.
  • 하이퍼바이저가 여러 백엔드 드라이버를 지원하는 경우 name 속성은 기본 백엔드 드라이버 이름을 선택하는 반면 선택적 type 속성은 하위 유형을 제공합니다. 사용 가능한 유형 목록은 Driver Element를 참조하십시오.
  • 선택적 캐시 속성은 캐시 메커니즘을 제어합니다. 가능한 값은 기본,none,writethrough, writeback ,writeback,directsync (호스트 물리적 머신 페이지 캐시 쓰기 가 가능) 및 안전하지 않음(호스트 물리적 시스템 페이지 캐시가 무시됨) 및 안전하지 않은 (호스트 가상 머신 가상 머신의 모든 디스크 io, 동기화 요청을 캐시할 수 있음)입니다.
  • 선택적 error_policy 속성은 하이퍼바이저가 디스크 읽기 또는 쓰기 오류에서 작동하는 방식을 제어합니다. 가능한 값은 중지,보고, ,ignore, enospace. error_policy 의 기본 설정은 보고서 입니다. 읽기 오류에 대한 동작을 제어하는 선택적 rerror_policy 도 있습니다. rerror_policy 가 제공되지 않으면 error_policy 가 읽기 및 쓰기 오류 모두에 사용됩니다. rerror_policy 를 지정하면 읽기 오류가 있는지 error_policy 를 덮어씁니다. 또한 enospace 는 읽기 오류에 대한 유효한 정책이 아니므로 error_policyenospace 로 설정되어 있고 rerror_policy 가 제공되지 않으면 기본 설정인 report 가 사용되는 읽기 오류입니다.
  • 선택적 io 속성은 I/O에서 특정 정책을 제어합니다. qemu 게스트 가상 머신 가상 머신은 스레드네이티브 를 지원합니다. 선택적 ioeventfd 특성을 사용하면 사용자가 디스크 장치에 대한 도메인 I/O 비동기 처리를 설정할 수 있습니다. 기본값은 하이퍼바이저의 재량에 따라 다릅니다. 허용되는 값은 설정 및 해제 입니다. 이를 활성화하면 별도의 스레드에서 I/O를 처리하는 동안 게스트 가상 머신 가상 머신을 실행할 수 있습니다. 일반적으로 게스트 가상 머신 가상 머신은 I/O 중에 시스템 CPU 사용률이 높아지는 데 도움이 됩니다. 반면 과부하된 호스트 물리적 시스템은 게스트 가상 머신 가상 시스템 I/O 대기 시간을 늘릴 수 있습니다. IOS를 조작할 필요가 있다는 것을 완전히 인증하지 않는 한, 기본 설정을 변경하지 않고 하이퍼바이저가 설정을 지시할 수 있도록 하는 것이 좋습니다.
  • 선택적 event_idx 속성은 장치 이벤트 처리의 일부 측면을 제어하며, 거나 수 있습니다. 이 경우 중단 횟수를 줄이고 게스트 가상 머신 가상 시스템에 대해 종료됩니다. 기본값은 하이퍼바이저에 따라 결정되며 기본 설정은 에 있습니다. 이 동작이 낙관적 인 상황이 있는 경우 이 속성은 기능을 강제로 수 있는 방법을 제공합니다. event_idx 를 조작해야 한다는 것을 완전히 인증하지 않는 한 기본 설정을 변경하지 않고 하이퍼바이저가 설정을 지정할 수 있도록 하는 것이 좋습니다.
  • 선택 사항인 copy_on_read 속성은 읽기 백업 파일을 이미지 파일에 복사할지 여부를 제어합니다. 허용되는 값은 <설정 또는 해제> 수 있습니다. copy-on-read 는 동일한 백업 파일 섹터에 반복적으로 액세스하는 것을 방지하고 백업 파일이 느린 네트워크를 할 때 유용합니다. 기본적으로 copy-on-read해제 되어 있습니다.

20.16.1.7. 추가 장치 요소

다음 특성을 장치 요소 내에서 사용할 수 있습니다.
  • <Boot - 디스크를 부팅> 할 수 있도록 지정합니다.

    추가 부팅 값

    • <순서> - 부팅 시퀀스 중에 장치를 시도하는 순서를 결정합니다.
    • <장치별> 부팅 요소는 BIOS 부트 로더 섹션의 일반 부트 요소와 함께 사용할 수 없습니다.
  • <Encryption> - 볼륨의 암호화 방법을 지정합니다. 자세한 내용은 스토리지 암호화 페이지를 참조하십시오.
  • <readonly> - 게스트 가상 머신 가상 머신에서 장치를 수정할 수 없음을 나타냅니다. 이 설정은 attribute device='cdrom' 이 있는 디스크의 기본값입니다.
  • 공유 가능 은 장치가 도메인 간에 공유되어야 함을 나타냅니다(하이퍼바이저와 OS 지원의 경우). 공유할 수 있는 경우 해당 장치에 cache='no' 를 사용해야 합니다.
  • <일시적>- 게스트 가상 머신 가상 머신이 종료되면 장치 콘텐츠에 대한 변경 사항을 자동으로 되돌리야 함을 나타냅니다. 일부 하이퍼바이저에서는 디스크를 임시로 표시 하면 도메인이 마이그레이션 또는 스냅샷에 참여하지 않습니다.
  • <serial>- 게스트 가상 머신 가상 머신의 하드 드라이브의 일련 번호를 지정합니다. 예를 들어 <직렬>WD-WMAP9A966149</직렬> 입니다.
  • <wwn> - 가상 하드 디스크 또는 CD-ROM 드라이브의 WWN(World Wide Name)을 지정합니다. 16개의 16진수로 구성되어야 합니다.
  • <vendor> - 가상 하드 디스크 또는 CD-ROM 장치의 벤더를 지정합니다. 8 인쇄 가능한 문자보다 길면 안 됩니다.
  • <product> - 가상 하드 디스크 또는 CD-ROM 장치의 제품을 지정합니다. 16 인쇄 가능 문자보다 길면 안 됩니다.
  • <Host - 4 속성 지원: 각각 호스트> 이름,포트 번호,전송 유형 및 소켓 경로를 지정하는 viz, 이름 , 포트 , 전송 및 소켓을 지원합니다. 이 요소의 의미와 요소 수는 다음과 같이 protocol 속성에 따라 달라집니다.

    추가 호스트 속성

    • NBD - nbd -server를 실행하는 서버를 지정하고 하나의 호스트 물리적 컴퓨터에만 사용할 수 있습니다.
    • RBD - RBD 유형의 서버를 모니터링하고 하나 이상의 호스트 물리적 시스템에 사용할 수 있습니다.
    • Sheepdog - sheepdog 서버 중 하나를 지정합니다(기본값은 localhost:7000)이며 호스트 물리적 시스템 중 하나 또는 none을 사용할 수 있습니다.
    • Gluster - iLO 데몬을 실행하는 서버를 지정하고 하나의 호스트 물리적 시스템에 대해서만 사용할 수 있습니다. transport 속성에 유효한 값은 tcp,rdma 또는 unix 입니다. 아무것도 지정되지 않은 경우 tcp 를 가정합니다. transport가 unix 인 경우 socket 속성은 unix 소켓의 경로를 지정합니다.
  • <address> - 컨트롤러의 지정된 슬롯에 디스크를 연결합니다. 실제 <컨트롤러> 장치는 종종 가 유추할 수 있지만 명시적으로 지정할 수도 있습니다. type 속성은 필수이며 일반적으로 pci 또는 드라이브 입니다. pci 컨트롤러의 경우 버스,슬롯함수에 대한 추가 속성과 선택적 도메인 및 다중 기능이 있어야 합니다. Multifun ction 의 기본값은 off 입니다. 드라이브 컨트롤러의 경우 추가 특성 컨트롤러,버스,대상유닛을 사용할 수 있으며 각각 기본 설정이 0 입니다.
  • auth - 소스에 액세스하는 데 필요한 인증 자격 증명을 제공합니다. 인증 중에 사용할 사용자 이름을 식별하는 필수 특성 사용자 이름 및 필수 속성 유형의 하위 요소가 포함되도록 하는 필수 속성 사용자 이름 이 포함됩니다. 자세한 내용은 장치 요소(Deviceelement)에서 확인할 수 있습니다.
  • 지오메트리 - 지오메트리 설정을 재정의하는 기능을 제공합니다. 이는 S390 DASD-disks 또는 이전 DOS-disks에 주로 유용합니다.
  • Cyls - 실린더 수를 지정합니다.
  • heads - 헤드 수를 지정합니다.
  • secs - 트랙당 섹터 수를 지정합니다.
  • trans - BIOS-Translation-Modus를 지정하고 다음 값을 가질 수 있습니다:none,lba 또는 auto
  • blockio - 아래 블록 장치 속성 중 하나로 블록 장치를 덮어쓸 수 있습니다.

    blockio 옵션

    • logical_block_size- 게스트 가상 머신 가상 머신 OS에 보고하고 디스크 I/O의 최소 단위를 설명합니다.
    • physical_block_size - 게스트 가상 머신 가상 머신 OS에 보고하고 디스크 데이터의 정렬과 관련이 있는 디스크의 하드웨어 섹터 크기를 설명합니다.