- powerputty 접속시 아래와 같은 퍼블릭 키 이슈가 나와 다음과 같이 해결하였습니다.
Disconnected: No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic).
- vi /etc/ssh/sshd_config에 접속하여 63라인을 no에서 yes로 변경해주고 수정 후 systemctl restart sshd를 해주었습니다. 이 후 비밀번호를 통해 접속하였습니다.

- storage는 /cloud
- kvm1/2는 /remote
1. yum -y install nfs-utils
- 서버의 역할을 하게되는 storage 뿐만 아니라 클라이언트 역할을 하는 kvm1/2에 설치하게 되면 storage는 서버를 동작 시키면되고 클라이언트로 동작하게하여 마운트하게 한다.
2. vi /etc/exports
- /cloud kvm1(rw,sync,no_root_squash)
/cloud kvm1() - 클라우드 디렉터리를 kvm1번에게 rw - 읽고쓰도록 권한을 주고 sync - 동기화되도록하게 no_root_squash - kvm1번의 root 계정이 storage에서도 root로 동작할 수 있게끔한다.
- /cloud kvm2(rw,sync,no_root_squash)
/cloud kvm2() - 클라우드 디렉터리를 kvm2번에게 rw - 읽고쓰도록 권한을 주고 sync - 동기화되도록하게 no_root_squash - kvm2번의 root 계정이 storage에서도 root로 동작할 수 있게끔한다.3. chmod 777 /cloud/
- kvm1/2에게 데이터에 대한 작성(읽기,쓰기)이 가능하도록 권한을 부여한다.
[root@storage ~]# systemctl start nfs-server서버 동작
[root@storage ~]# systemctl enable nfs-server서버 부팅시 자동으로 활성화
4. kvm1,2에 /remote 공유 디렉터리 생성 및 마운트
[root@kvm1 ~]# mkdir /remote [root@kvm2 ~]# mkdir /remote
- 같은 이름을 가진 remote 디렉터리를 생성해야 한다.
[root@kvm1 ~]# mount -t nfs storage:/cloud /remote [root@kvm2 ~]# mount -t nfs storage:/cloud /remote
- storage에 있는 /cloud 디렉터리를 kvm1,2에 있는 /remote 디렉터리와 마운트 되게 한다.
[root@kvm1 ~]# mount | grep /remote
[root@kvm2 ~]# mount | grep /remote
- 마운트가 잘 되었는지 다음과 같이 확인한다.
- 파일을 공유하는지 확인한다.
5. 마운트 정보를 재부팅해도 유지 될수 있도록 설정
- vi /etc/fstab 디렉터리에 접속하여 파일 수정
[root@kvm1 ~]# vi /etc/fstab [root@kvm2 ~]# vi /etc/fstab
- kvm1/2가 재부팅을 하더라도 파일의 정보를 공유할 수 있도록 설정해준다.
- kvm1 - storage에 kvm1이 사용할 volume(Disk)를 먼저 만들어 놓고 kvm1에는 xml 파일을 생성해서 연결한다
- kvm2 - storage에는 가상머신 설치를 진행하면서 동시에volume(Disk)를 만들어 놓는다.
1. qemu-img create -f qcow2 /remote/centos1.qcow2 10G
[root@kvm1 ~]# qemu-img create -f qcow2 /remote/centos1.qcow2 10G [root@kvm2 ~]# qemu-img create -f qcow2 /remote/centos2.qcow2 10G
- /remote 아래에 /centos1.qcow2의 이름으로 10G 크기로 볼륨을 생성한다.
2.1 인스턴스 설치 [kvm1]
[root@kvm1 ~]# virt-install --name centos1 --vcpus 1 --ram 1024 --disk /remote/centos1.qcow2 --network network:default --graphics vnc,port=5901 --location /remote/centos7.iso --noautoconsole--name centos1 -> 가상 머신의 이름을 centos1로 한다. --vcpus 1 -> cpu 수는 1개이다. --ram 1024 -> rma은 1기가이다. --disk /remote/centos1.qcow2 -> 디스크는 /remote아래에 있는 centos1이다. --network network:default -> 기본 네트워크 사용 --graphics vnc,port=5901 -> 설치후 그래픽 환경은 vnc포트(5900)를 사용하고 포트포워딩을 할 경우 port 번호를 5901로 할당한다.(할당하지 않을 경우 자동으로 포트 번호를 할당해준다.) --location /remote/centos7.iso -> contos7.iso 미디어를 통해 설치를 진행한다. --noautoconsole -> 자동으로 콘솔을 연결하는 것은 필요하지 않기에 다음과 같이 설정한다.2.2 인스턴스 설치 [kvm2]
[root@kvm2 ~]# virt-install --name centos2 --vcpus 1 --ram 1024 --disk /remote/centos2.qcow2 --network network:default --graphics vnc,port=5902 --location /remote/centos7.iso --noautoconsole OR [root@kvm2 ~]# virt-install --name centos2 --vcpus 1 --ram 1024 --disk /remote/centos2.qcow2,format=qcow2,size=10 --network network:default --graphics vnc,port=5902 --location /remote/centos7.iso --noautoconsole--name centos2 -> 가상 머신의 이름을 centos2로 한다. --vcpus 1 -> cpu 수는 1개이다. --ram 1024 -> rma은 1기가이다. --disk /remote/centos1.qcow2 -> 디스크는 /remote아래에 있는 centos1이다. --network network:default -> 기본 네트워크 사용 --graphics vnc,port=5902 -> 설치후 그래픽 환경은 vnc포트(5900)를 사용하고 포트포워딩을 할 경우 port 번호를 5902로 할당한다.(할당하지 않을 경우 자동으로 포트 번호를 할당해준다.) --location /remote/centos7.iso -> contos7.iso 미디어를 통해 설치를 진행한다. --noautoconsole -> 자동으로 콘솔을 연결하는 것은 필요하지 않기에 다음과 같이 설정한다.2.3 TEST
- network & hostname 설정
- 자동으로 시작되도록 Automatically 설정 체크
- IPv4 method 설정은 Automatic으로 설정
- IP 확인
- root/user 설정
3. 호스트가 재부팅이 될 때 호스트에 연결된 centos도 같이 재부팅하게 하기
- 다음과 같은 명령어로 인스턴스 상태 확인 해보면
호스트 안의 가상 머신은 재부팅이 되지 않는다.[root@kvm1 ~]# virsh list --all Id Name State ---------------------------------------------------- 1 centos1 shut off
- 호스트가 재부팅이 될 때 호스트 안에 설치된 가상 머신은 재부팅이 되지 않는다. 그렇기 때문에 다음과 같은 설정을 해주어 호스트 안 가상 머신도 재부팅 하게 해준다.
[root@kvm1 ~]# virsh autostart centos1 [root@kvm2 ~]# virsh autostart centos2
- centos 실행
[root@kvm1 ~]# virsh start centos1 [root@kvm2 ~]# virsh start centos24.1 네트워크 & 기본구조 확인 하기
- centos1 구조 확인
[root@kvm1 ~]# virsh dumpxml centos1
- centos1 default 네트워크 확인
[root@kvm1 ~]# virsh net-dumpxml default<name>default</name> <uuid>2e48078a-fa70-49d9-8a02-a2d200e71664</uuid> <forward mode='nat'> ---> default network는 nat을 제공한다. <nat> <port start='1024' end='65535'/> ---> 연결된 가상머신들은 1024~65535 사이의 포트를 사용해 외부와 연결한다. </nat> </forward> <bridge name='virbr0' stp='on' delay='0'/> ---> 연결된 스위치는 virbr0에 연결된다. <mac address='52:54:00:bf:a3:3b'/> <ip address='10.10.10.1' netmask='255.255.255.0'> ---> 해당 스위치는 10.10.10.1의 IP를 가지고 있고 <dhcp> <range start='10.10.10.201' end='10.10.10.239'/> ---> 연결된 가상머신들은 201에서 239 사이의 IP를 할당 받는다. </dhcp> </ip>
- centos1 구조 편집하기
[root@kvm1 ~]# virsh edit centos14.2 kvm1/2 default 네트워크 편집하기
[root@kvm1 ~]# virsh net-edit default [root@kvm2 ~]# virsh net-edit default
- 네트워크 종료
[root@kvm1 ~]# virsh net-destroy default [root@kvm2 ~]# virsh net-destroy default
- 네트워크 시작
[root@kvm1 ~]# virsh net-start default [root@kvm2 ~]# virsh net-start default
- ifconfig로 변경 내용 확인
[root@kvm1 ~]# ifconfig [root@kvm2 ~]# ifconfig
4.3 가상머신 centos1/2 재시작
- 가상머신 centos1/2 재시작
[root@kvm1 ~]# virsh reboot centos1 [root@kvm2 ~]# virsh reboot centos2
- 가상머신 centos1/2 IP 확인
[root@kvm1 ~]# virsh domifaddr centos1 [root@kvm2 ~]# virsh domifaddr centos2Name MAC address Protocol Address ------------------------------------------------------------------------------- vnet0 52:54:00:a7:2f:74 ipv4 10.10.10.81/24migrate
- centos migrate 해보기
1. 새로운 네트워크(스위치) private.xml 생성하기
- 파일 생성
[root@kvm2 ~]# touch private.xml [root@kvm2 ~]# virsh net-edit default [root@kvm2 ~]# vim private.xml
- 가상 네트워크 설정 파일 private.xml를 바탕으로 새로운 가상 네트워크를 정의
[root@kvm2 ~]# virsh net-define private.xml [root@kvm2 ~]# virsh net-list --all
- 가상 네트워크 시작
[root@kvm2 ~]# virsh net-start private2
- 가상 네트워크 자동으로 시작
[root@kvm2 ~]# virsh net-autostart private2
- 가상 네트워크 변경
[root@kvm2 ~]# virsh attach-interface --domain centos2 --type network --source private2 --model virtio --config --live
- 위와 같이 가상 네트워크를 생성하여 변경해주어야 centos1/2가 서로 migrate가 가능하다.