Storage Pool Creation XML


Storage Volume Creation XML

Domain Creation XML

볼륨 생성이 실패를 하여 확인해보니,

Libvirt에서 아래와 같이 에러가 났다.

2012-09-19 06:09:15.007+0000: 15006: error : virFileOpenForceOwnerMode:796 : '/mnt/e57ef0ee-16c7-ed72-9726-53fa57612794/9098c1b7-b7ef-d155-fe58-70044f6aa41a'를 (0, 0)로 chown할 수 없음: 부적절한 인수

2012-09-19 06:09:15.007+0000: 15006: error : virStorageBackendCreateRaw:401 : 경로 /mnt/e57ef0ee-16c7-ed72-9726-53fa57612794/9098c1b7-b7ef-d155-fe58-70044f6aa41a를 생성할 수 없음: 부적절한 인수


권한 문제같아 확인해보니 nfs 로 마운트한 곳이 nobody로 되어 있었다.

drwxrwxrwx. 3 nobody nobody 20480 2012-09-19 20:29 e57ef0ee-16c7-ed72-9726-53fa57612794


참고로 nfs server의 설정은 아래와 같이 되어있다.

/home/data *(rw,async,no_root_squash)


구글링 한 결과 대충 nfs4 문제인거 같기도 하고, 설정문제같기도 한데, 일단은 버전을 바꿔서 임시로 해결하였다.

vim /etc/nfsmount.conf

Defaultvers=3

Nfsvers=3


version 4를 3으로 바꿔주고,

/etc/init.d/rpcbind restart

/etc/init.d/nfs restart


다시 마운트를 해보면 버전 3으로 되고 root로 되어 있다는 것을 확인할 수 있다.


설치 (configure 에서 error 나는 package 에 대해서는 추가 설치 필요)
# tar -xvf libvirt-0.X.X

# yum install gcc libc

# yum install libxml2-devel

# yum install gnutls gnutls-devel

# yum install device-mapper device-mapper-devel device-mapper-libs

# yum install python python-devel

# yum libnl-devel

# configure --prefix=/usr/local/libvirt

# make && make install


#./autogen.sh --system --prefix=/usr/local/libvirt --sysconfdir=/etc --localstatedir=/var

Path 설정

# vi /etc/profile

--> export LIBVIRT_HOME=/usr/local/libvirt

--> export PATH=${LIBVIRT_HOME}/bin:${LIBVIRT_HOME}/sbin:${PATH}

# . /etc/profile


링크설정

# cd /usr/sbin

# ln -s ${LIBVIRT_HOME}/sbin/libvirtd libvirtd

# cd /var/run

# ln -s ${LIBVIRT_HOME}/var/run/libvirt libvirt


데몬 서비스 복사

# cp ${LIBVIRT_HOME}/etc/rc.d/init.d/* /etc/rc.d/init.d/


functions 경로 수정

# vi /etc/rc.d/init.d/libvirtd

--> # Source function libriry

--> . /etc/rc.d/init.d/functions


데몬 시작

# service libvirtd start

다운로드

http://sourceforge.net/projects/kvm/files/qemu-kvm/


 

QEMU 설치

# tar -xvf qemu-kvm-1.0.tar.gz

# yum install glib2 glib2-devel

# configure --prefix=/usr/local/qemu

# make && make install


Path 설정

# vi /etc/profile

--> export QEMU_HOME=/usr/local/qemu

--> export PATH=${QEMU_HOME}/bin:${PATH}


링크 걸기

# cd /usr/bin

# ln -s {QEMU_HOME}/bin/qemu-system-x86_64 kvm


KVM llibrary load

# modprobe kvm

# modprobe kvm-intel


본문 : http://blog.daum.net/cbjazz/22

VM의 Root Disk를 가지고 VM들을 만들면서,

기존의 Root Disk를 이용해서 새로운 VM을 만들경우,

eth0 이 아닌 eth1이 만들어진다. 그 다음은 eth2.

물론 기존의 nic가 없을경우는 상관이 없지만, 기존에 nic 이 있을 경우 이런식이다.

/etc/udev/rules.d/ 를 보면 

70-persistent-net.rules 파일이 있는데,

이 파일을 열어 보면 nic 정보가 들어있다. (Centos6 기준)

이걸 보면 느낌이 오겠지만 기존 정보를 지우고 재부팅을 하면 원하는 eth로 사용을 할 수 있다.


QEMU는 게스트 OS와 호환이 되는 하드웨어 상에서 실행 될 때에도 많은 에뮬레이션을 진행하기 때문에 그 자체로 아주 빠르지 않다.

더 빠르게 하기 위해서, KVM 이라는 QEMU가 가진 커널 모듈을 사용해서 리눅스에서 x86이나 x86-64 프로세서 가상화 상에서 실행 중일 때 게스트 OS의 코드를 호스트 프로세서상에서 바로 실행한다.

예를 들어 호스트가 x86 리눅스이고 게스트가 윈도우 XP라면, KVM은 윈도우 XP 코드의 대부분을 에뮬레이션 없이 프로세서 상에서 바로 실행 할 수 있다.

QEMU-KVM은 리눅스나 BSD 유닉스 호스트, 가상화가 가능한 CPU를 필요로 한다. (Intel VT 또는 AMD-V).

CPU가 가상화 지원여부를 확인하는 방법은.

egrep '(vmx|svm)' /proc/cpuinfo

아무 것도 출력하는 것이 없다면 가상화를 지원하지 않는 CPU이다.



[root@bharata ~]# qemu-img create gluster://bharata:0/test/F17-new?transport=socket 5G 

[root@bharata ~]# qemu-system-x86_64 --enable-kvm -m 1024 -smp 4 -drive file=gluster://bharata


출처 : http://www.gluster.org/2012/09/using-qemu-to-boot-vm-image-on-glusterfs-volume/


+ Recent posts