KVM 복습하기 2

양승현·2022년 8월 8일

가상머신(인스턴스)에 볼륨 제공하기(블록스토리지)

1. 볼륨 디스크 확인

  • 가상 머신 내에서 볼륨 디스크 확인
ls /dev/sd*

2. kvm1에 볼륨 생성

  • kvm1에서 볼륨 생성
[root@kvm1 ~]# virsh vol-create-as remote testvol1 1G
  • kvm1의 볼륨을 가상 머신 centos1에게 연결
[root@kvm1 ~]# virsh attach-disk centos1 /remote/testvol1 --target sdb --persistent --live

  • centos1에서 파티셔닝 생성
fdisk /dev/sdb

  • 생성확인
  • 데이터를 작성할 수 있도록 sdb1 포맷해주기
mkfs.ext4 /dev/sdb1

  • sdb1을 사용하기위해 마운트 하여 추가하기
mkdir /addedvol
mount /dev/sdb1 /addedvol/
df -h

  • 작성해보기
touch /addedvol/test.txt
echo "hello" > /addedvol/test.txt
cat /addedvol/test.txt

3. storage와 kvm1에 연결되어 있는 볼륨을 제거하고 kvm2와 연결하기

  • centos1과 연결된 /addedvol을 연결 해제하기
[root@kvm1 ~]# virsh detach-disk centos1 sdb

  • 연결 해제한 볼륨을 kvm2 centos2번과 연결하기
[root@kvm2 ~]# virsh attach-disk centos2 /remote/testvol1 --target sdb --persistent --live

  • sdb1과 마운트 하고 확인해보기(centos1에서 생성한 test.txt 파일을 centos2에서도 확인이 가능하다.)
mkdir /added
mount /dev/sdb1 /added/
ls /added/
cat /added/test.txt

  • centos2과 연결된 /addedvol을 연결 해제하기
[root@kvm2 ~]# virsh detach-disk centos2 sdb

  • 볼륨을 완전 제거하고 싶을때
[root@kvm1 ~]# virsh vol-delete testvol1 remote

인스턴스 중지와 삭제

1. 인스턴스 중지와 삭제

virsh destroy centos1 -> 중지
virsh undefine centos1 -> xml을 제거하는 것과 같다.
virsh undefine centos1 --remove-all-storage -> 디스크 까지 전부 제거하기

  • 볼륨 상태 확인
[root@kvm2 ~]# virsh pool-list
[root@kvm2 ~]# virsh vol-list remote

  • 리스트에 있는 qcow2로 다시 가상머신을 생성하게 되면 기존에 설정한 값들을 그대로 이용 가능하다.

br0(linux bridge) 사용하기

  • 사설 주소 1개와 공인 주소 1개를 1대1 매핑하는 정적 NAT(EIP, floating IP)
  • eth0은 L3 포트가 아닌 L2로 동작해야 하므로 IP를 제거해야한다.
  • eth0이 포함될 가상의 브릿지(linux bridge) br0

1. br0 파일 생성

  • br0 생성하기
[root@kvm1 ~]# cd /etc/sysconfig/network-scripts/
[root@kvm1 network-scripts]# ls
[root@kvm1 network-scripts]# cp ifcfg-eth0 ifcfg-br0

[root@kvm2 ~]# cd /etc/sysconfig/network-scripts/
[root@kvm2 network-scripts]# cp ifcfg-eth0 ifcfg-br0

2. eth0, br0 편집하기

kvm1

  • KVM1 br0 편집하기
[root@kvm1 network-scripts]# vi ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=211.183.3.101
PREFIX=24
GATEWAY=211.183.3.2
DNS=8.8.8.8

  • KVM1 eth0 편집하기
[root@kvm1 network-scripts]# vi ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0

kvm2

  • KVM2 br0 편집하기
[root@kvm2 network-scripts]# vi ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=211.183.3.102
PREFIX=24
GATEWAY=211.183.3.2
DNS=8.8.8.8

  • KVM2 eth0 편집하기
[root@kvm2 network-scripts]# vi ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE-br0

  • 네트워크 재시작
[root@kvm1 network-scripts]# systemctl restart network
[root@kvm2 network-scripts]# systemctl restart network
  • eth0, br0 IP 확인
[root@kvm1 network-scripts]# ifconfig

[root@kvm2 network-scripts]# ifconfig

  • br0에 eth0이 포함되어 있는지 확인하기
[root@kvm1 network-scripts]# brctl show

[root@kvm2 network-scripts]# brctl show

3. br0에 연결된 가상머신 생성하기(기존 볼륨은 활용한다.)

  • kvm1 centos1 가상 머신 생성
virt-install --name centos1 --vcpus 1 --ram 1024 --disk /remote/centos1.qcow2,format=qcow2,size=10 --network bridge:br0 --graphics vnc,port=5901 --import --noautoconsole
  • kvm2 centos2 가상 머신 생성
virt-install --name centos2 --vcpus 1 --ram 1024 --disk /remote/centos2.qcow2,format=qcow2,size=10 --network bridge:br0 --graphics vnc,port=5902 --import --noautoconsole
--network bridge:vr0 -> 네트워크는 브릿지 vr0을 사용하겠다.
--import -> 기존의 볼륨을 활용하겠다.
  • centos1/2 ip 확인
ip a

 만약 vnc 포트 오류가 난다면 virsh net-destroy centos1 으로 centos1 의 네트워크를 중지시키고, virsh edit centos1 을 통해 vnc port 번호를 변경한다. 이는 migrartion 했을때 centos1 과 centos2의 vnc port 번호가 동일해서 일어나는 문제이다.

0개의 댓글