kvm / virsh 팁

1.  guest  OS의 키보드 입력이 안되는 문제

/etc/libvirt/qemu/ 의 해당 guest 설정화일에서 spice 부분을 vnc 로 변경하고 guest 를 재 실행한다.

<graphics type=’spice‘ port=’-1′ autoport=’yes’/>

<graphics type=’vnc‘ port=’-1′ autoport=’yes’/>

2. Guest OS에 HDD 추가/제거 하기.

사용할 disk : host 의 storage LUN(/dev/sdi)

아래는 host의 scsi 장치 현황이다. 이 중에서 /dev/sdi를 guest 에 할당하려고 한다.

# lsscsi -i
[0:0:0:0] disk DGC RAID 5 0219 /dev/sdc –
[0:0:0:1] disk DGC RAID 5 0219 /dev/sdd –
[0:0:0:2] disk DGC RAID 5 0219 /dev/sde –
[0:0:0:3] disk DGC RAID 5 0219 /dev/sdf –
[0:0:1:0] disk DGC RAID 5 0219 /dev/sdb 3600601607f121a00a46a689d7c3de411
[0:0:1:1] disk DGC RAID 5 0219 /dev/sdg 3600601607f121a00666a12c43f65e411
[0:0:1:2] disk DGC RAID 5 0219 /dev/sdh 3600601607f121a006010d80a9e64e411
[0:0:1:3] disk DGC RAID 5 0219 /dev/sdi 3600601607f121a00fa518858817ae411
[1:0:0:0] disk HP LOGICAL VOLUME 3.52 /dev/sda 3600508b1001c8e50e64f83ef84c5b78b
[1:3:0:0] storage HP P410i 3.52 – –
[3:0:0:0] storage IET Controller 0001 – –
[3:0:0:1] mediumx STK L700 0104 /dev/sch0 –
[3:0:0:2] tape IBM ULT3580-TD5 0104 /dev/st0 –
[3:0:0:3] tape IBM ULT3580-TD5 0104 /dev/st1 –
[3:0:0:4] tape STK T10000B 0104 /dev/st2 –

/dev/sdi 추가전에 guest os의 disk 상태

# fdisk -l | grep -i sd
Disk /dev/sda: 10.7 GB, 10737418240 bytes
/dev/sda1 * 1 26 204800 83 Linux
/dev/sda2 26 157 1048576 82 Linux swap / Solaris
/dev/sda3 157 1306 9231360 83 Linux

Host 에서 아래 커맨드로 GuestOS(domain이 CentOS) 에 /dev/sdi 를 추가

# virsh attach-disk CentOS /dev/sdi sdi
Disk attached successfully

Guest 에서 확인해보면, 아래와 같이 새 디스크가 보인다.

# fdisk -l | grep -i sd
Disk /dev/sda: 10.7 GB, 10737418240 bytes
/dev/sda1 * 1 26 204800 83 Linux
/dev/sda2 26 157 1048576 82 Linux swap / Solaris
/dev/sda3 157 1306 9231360 83 Linux
Disk /dev/sdb: 107.4 GB, 107374182400 bytes

GuestOS에 할당된 디스크를 제거하고자 한다면, 아래와 같이 detach-disk 를 이용한다.

# virsh detach-disk CentOS /dev/sdi
Disk detached successfully

역시 Guest 에서 확인해보면

# fdisk -l | grep -i sd
Disk /dev/sda: 10.7 GB, 10737418240 bytes
/dev/sda1 * 1 26 204800 83 Linux
/dev/sda2 26 157 1048576 82 Linux swap / Solaris
/dev/sda3 157 1306 9231360 83 Linux

uuid로 디스크를 할당하고자 한다면

# virsh attach-disk CentOS /dev/disk/by-uuid/7be3bc96-a9f7-4eec-a8f0-abd88203763b  sdb

3. raw disk 추가하기
위에서 한 attach-disk 는 서버를 재부팅하거나 하면 guest에 남아 있지 않는다. 이것은, 설정화일(guest_name.xml)에 저장되지 않기 때문이다. virsh edit 커맨드로 아래 내용을 추가해 준다. source device는 uuid로 넣었다. 이래야 서버를 재부팅했을 경우에 device 이름이 바뀌어도 적용이 되기 때문이다. /etc/libvirt/qemu/ 아래에 해당 guest의 xml 화일을 직접 편집해도 된다.

# virsh edit CentOS
    <disk type='block' device='lun'>
      <driver name='qemu' type='raw' cache='none'/>
      <source dev='/dev/disk/by-uuid/7be3bc96-a9f7-4eec-a8f0-abd88203763b'/>
      <target dev='sda' bus='scsi'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>

4. host 정보 보기

# virsh nodeinfo
CPU model: x86_64
CPU(s): 8
CPU frequency: 1674 MHz
CPU socket(s): 1
Core(s) per socket: 4
Thread(s) per core: 2
NUMA cell(s): 1
Memory size: 5934692 KiB

5. guest 에 접속하기

# virsh console CentOS
Connected to domain CentOS
Escape character is ^]

접속되지 않는다. GuestOS 에서 console 접속이 허용되지 않기 때문이다. 아래는 Guest OS가 (CentOS 6.6 인경우) console 접속이 되도록 하는 방법이다. 작업은 guest os 에서 해야 한다

ttyS0.conf 화일을 아래와 같이 만든다.

# cp /etc/init/tty.conf /etc/init/ttyS0.conf

# vi /etc/init/ttyS0.conf
stop on runlevel [S016]

start on runlevel [345]

respawn
#instance $TTY
instance /dev/ttyS0
exec /sbin/mingetty /dev/ttyS0
#usage ‘tty TTY=/dev/ttyX – where X is console id’

/etc/securetty 화일에 아래 내용을 추가한다.

ttyS0

그리고 guestOS를 재부팅하고나면 아래와 같이 접속이 잘 됨을 확인 할 수 있다.

# virsh console CentOS
Connected to domain CentOS
Escape character is ^]


CentOS release 6.6 (Final)
Kernel 2.6.32-504.el6.x86_64 on an x86_64

CentOS2 login:

 
6. guest image화일 크기 조정
Guest OS의 디스크가 꽉 찼을 경우, 호스트의 log 화일에 아래와 같은 메시지가 나면서 guest가 정지상태로 들어간다.

# cat /var/log/libvirt/qemu/ubuntu.log
block I/O error in device 'drive-virtio-disk0': No space left on device (28)
block I/O error in device 'drive-virtio-disk0': No space left on device (28)
...

가상머신을 멈추고, 호스트에서 qemu-img 커맨드로 이미지의 크기를 늘인다.
아래는 ubuntu.img 를 5G 추가하는 예이다(10G에 5G추가). guest 이미지를 늘인다고 해서 OS 에서 화일시스템이 자동으로 늘어나지는 않는다.

# qemu-img resize ubuntu.img +5G
Image resized.

guest OS에서, fdisk나, lv 크기를 늘여 주어야 한다.

답글 남기기

Your email address will not be published.