분류 전체보기
- libvirt 0.10.1 install from source 2012.09.20
- qemu-kvm 1.2.0 install from source 2012.09.20
- libvirt sheepdog xml 2012.09.20
- libvirt chown issue 2012.09.20
- Libvirt source 설치 2012.09.18
- QEMU 소스 설치 2012.09.18
- eth0 eth1 eth2? centos 2012.09.11
- Consistenct Hashing 2012.09.10
- QEMU와 KVM 2012.09.10
- Using QEMU to Boot VM Image on GlusterFS Volume 2012.09.06
libvirt 0.10.1 install from source
qemu-kvm 1.2.0 install from source
libvirt sheepdog xml
Storage Volume Creation XML
Domain Creation XMLlibvirt chown issue
볼륨 생성이 실패를 하여 확인해보니,
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로 되어 있다는 것을 확인할 수 있다.
Libvirt source 설치
설치 (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
QEMU 소스 설치
다운로드
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
eth0 eth1 eth2? centos
VM의 Root Disk를 가지고 VM들을 만들면서,
기존의 Root Disk를 이용해서 새로운 VM을 만들경우,
eth0 이 아닌 eth1이 만들어진다. 그 다음은 eth2.
물론 기존의 nic가 없을경우는 상관이 없지만, 기존에 nic 이 있을 경우 이런식이다.
/etc/udev/rules.d/ 를 보면
70-persistent-net.rules 파일이 있는데,
이 파일을 열어 보면 nic 정보가 들어있다. (Centos6 기준)
이걸 보면 느낌이 오겠지만 기존 정보를 지우고 재부팅을 하면 원하는 eth로 사용을 할 수 있다.
Consistenct Hashing
QEMU와 KVM
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이다.
Using QEMU to Boot VM Image on GlusterFS Volume
[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/