본문 바로가기
개발 저장소/가상화

libvirt python 개발 가이드 2편

by 팡삼이 2016. 7. 12.

이 문서는 팡삼이 블로그( http://pangsam.tistory.com/) 에서 libvirt.org 공식문서를 바탕으로 해석하며 정리한 내용들입니다.




Guest Domains




살펴보기

게스트 도메인은 가상머신os 객체를 의미합니다.

게스트 도메인은 2가지 종류가 있습니다, 영구적(persistent),와 일시적(transient) 

일시적 도메인은 오직 running 상태에서 관리가 가능하며, power off할 경우 사라지게 됩니다.

영구적 도메인은  호스트 하이퍼바이저에 구성되어있으며 defined 형식으로 되어있습니다.

power off할경우 inactive설정 변경됩니다.




도메인은 고유 식별자를 가지고있으며 여러 도메인들로부터 구분할수 있습니다.

고유식별자는 ID, Name, UUID가 있으며 각각의 식별자를 이용해 도메인을 불러올수 있습니다.

# Example-1.py
from __future__ import print_function
import sys
import libvirt

conn = libvirt.open('qemu:///system')
if conn == None:
    print('Failed to open connection to qemu:///system', file=sys.stderr)
    exit(1)

domainID = 6
dom = conn.lookupByID(domainID)
if dom == None:
    print('Failed to get the domain object', file=sys.stderr)

conn.close()
exit(0)
# Example-2.py
from __future__ import print_function
import sys
import libvirt

conn = libvirt.open('qemu:///system')
if conn == None:
    print('Failed to open connection to qemu:///system', file=sys.stderr)
    exit(1)

domainName = 'someguest'
dom = conn.lookupByName(domainName)
if dom == None:
    print('Failed to get the domain object', file=sys.stderr)

conn.close()
# Example-3.py
from __future__ import print_function
import sys
import libvirt

conn = libvirt.open('qemu:///system')
if conn == None:
    print('Failed to open connection to qemu:///system', file=sys.stderr)
    exit(1)

domainUUID = '00311636-7767-71d2-e94a-26e7b8bad250'
dom = conn.lookupByUUID(domainUUID)
if dom == None:
    print('Failed to get the domain object', file=sys.stderr)

conn.close()
exit(0)




도메인 리스트


리스트는 2가지 종류가 있습니다.

1.running 상태의 도메인리스트 
2.inactive상태가 포함된 모든 도메인리스트


1번 running 상태의 도메인리스트를 불러오기위해선 IDs를 이용해야합니다
ID는 오직 running 상태의 도메인에게 부여되는 값입니다.
listDomainsID를 이용합니다. 파라미터가 필요없습니다.


# Example-4.py
from __future__ import print_function
import sys
import libvirt

conn = libvirt.open('qemu:///system')
if conn == None:
    print('Failed to open connection to qemu:///system', file=sys.stderr)
    exit(1)

domainIDs = conn.listDomainsID()
if domainIDs == None:
    print('Failed to get a list of domain IDs', file=sys.stderr)

print("Active domain IDs:")
if len(domainIDs) == 0:
    print('  None')
else:
    for domainID in domainIDs:
        print('  '+str(domainID))

conn.close()
exit(0)
Example 4.4. Listing active domains





2번 inactive 상태 리스트를 불러오는 방법은 다음과 같습니다

# Example-5.py
from __future__ import print_function
import sys
import libvirt

conn = libvirt.open('qemu:///system')
if conn == None:
    print('Failed to open connection to qemu:///system', file=sys.stderr)
    exit(1)

domainNames = conn.listDefinedDomains()
if conn == None:
    print('Failed to get a list of domain names', file=sys.stderr)

domainIDs = conn.listDomainsID()
if domainIDs == None:
    print('Failed to get a list of domain IDs', file=sys.stderr)
if len(domainIDs) != 0:
    for domainID in domainIDs:
        domain = conn.lookupByID(domainID)
        domainNames.append(domain.name)

print("All (active and inactive domain names:")
if len(domainNames) == 0:
    print('  None')
else:
    for domainName in domainNames:
        print('  '+domainName)

conn.close()
exit(0)
Example 4.5. Listing inactive domains



댓글