kakao Cloud school 2기 D+19

LEE EUI JOO·2022년 11월 27일
0

Virtualization

목록 보기
5/11
post-thumbnail

1. 가상화 (Virtualization)


1-1 Where?




1-2 How?



  • Full Virtualization VS Para Virtualization (요즘은 상호 보완적이기 떄문에 큰 의미는 없다)

2. KVM (Kernel - based Virtual Machine)


  • 커널을 구성하는 모듈이며, 커널에 존재한다.
  • Hypervisor 이자 VMM 이다.
  • 사설 클라우드(Cloud)의 근간 이 되는 기술이다.

2-1 실습



  • 계산 리소스 - srv1 CPU, RAM, ... etc srv1 or srv2 가 담당

  • 저장 리소스 - srv3 Disk 저장공간 제공

  • 고가용성 HA (High Availability) - srv1 에 문제가 생기면 srv2로 마이그레이션 (Migration)

  • VM의 실체는 srv3 에 존재 하는 것이다.


VMware 3개 머신 설치 - 방화벽, 셀리눅스 OFF

* srv1 스펙
1. 2core 프로세서, RAM 4GB, ISO = DVD.iso
2. Software Selection = GUI
3. IP : 211.183.3.10 /24 GW : 211.183.3.2  DNS : 8.8.8.8

* srv2 스펙
1. 2core 프로세서, RAM 4GB, ISO = DVD.iso
2. Software Selection = GUI
3. IP : 211.183.3.20 /24 GW : 211.183.3.2  DNS : 8.8.8.8

* srv3 스펙
1. 2core 프로세서, RAM 2GB, ISO = DVD.iso
2. Software Selection = Minimall
3. IP : 211.183.3.30 /24 GW : 211.183.3.2  DNS : 8.8.8.8
4. 디스크 150GB (sdb) 추가

Go to srv3

> fidisk /dev/sdb 
파티션 추가
(n,p,default,default,default,w)

> mkfs.ext4 /dev/sdb1
디스크 포맷

> mkdir /shared
> mount /dev/sdb1 /shared
/shared 디렉토리에 마운트
> chmod 777 -R /shared
권한 지정

> vi /etc/fstab
마운트 유지

<추가>
***********************************************************************************************
/dev/sdb1               /shared                 ext4    defaults        0 0
***********************************************************************************************

> yum -y install nfs-utils
nfs 설정 위함

> vi /etc/exports - 읽고 쓸 수 있는 권한 부여
<추가>
***********************************************************************************************
/shared			*(rw)
***********************************************************************************************

> exportfs -r
> systemctl restart nfs-server
> systemctl enable nfs-server

마운트 대상 확인
> showmount -e
> df -h
  • 우리는 wget 명령어를 가지고 링크 주소를 통해 파일을 다운로드 받을 것 이다.
  1. 구글에 centos minimal iso 써치
  2. Download x86_64
  3. kakao mirror
  4. 오른쪽 마우스로 링크 copy

> yum -y install wget

> cd /shared
이 디렉토리에 링크 주소를 붙여넣기 하여 iso 파일을 다운로드 할 것임

> wget http://mirror.kakao.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso

파일 다운로드 완료

Go to srv1,srv2 설정 시작

  • 라이센스 동의 후 finish configuration
<인터페이스 변경>

> cd /etc/sysconfig/network-scripts
디렉토리로 이동

> mv ifcfg-ens32 ifcfg-eth0
인터페이스 이름 바꾸기 위해 ens32 -> eth0

> vi ifcfg-eth0
<변경>
***********************************************************************************************
NAME="eth0"
DEVICE="eth0"
***********************************************************************************************

> vi /etc/default/grub
<추가>
***********************************************************************************************
!quiet 뒤에!
net.ifnames=o biosdevname=0"
***********************************************************************************************

> grub2-mkconfig -o /boot/grub2/grub.cfg
마무리

> systemctl stop NetworkManager
> systemctl disable NetworkManager
네트워크 매니저 꺼주기

> init 6
reboot

> ifconfig

KVM 에 필요한 패키지 설치

> yum -y install bridge-utils libvirt virt-install virt-manager virt-viewer qemu-kvm

<패키지 구성>
***********************************************************************************************
1. bridge-utils : KVM에서 bridge 대역을 생성하기 위해 필요한 패키지 
"네가 네트워크를 만든다? - 브릿지라는 인터페이스 만들기"

2. qemu-kvm : 호스트의 자원을 게스트에게 에뮬레이션하는 역할

3. libvirt : 가상머신 매니저 데몬

4. virt-install : VM을 설치하기 위한 패키지

5. virt-viewer : VM의 화면을 보여주는 패키지

6. virt-manager : 가상머신 관리자 - 이것을 설치해야 가상머신에 애플리케이션이 보임

***********************************************************************************************

> system restart libvirtd
> systemctl enable libvirtd

> vi /etc/libvirt/qemu.conf
누가 쓸 것인지 설정

<파일 수정>
***********************************************************************************************
: /root

주석 처리 해제
user="root"
group="root"
***********************************************************************************************

> systemctl restart libvirtd

  • srv1을 물리적인 서버로 인지할 것! 여기서 KVM 을 설치한 것이다.
<Bridge 대역대의 인터페이스 생성>

> cd /etc/sysconfig/network-scripts

> ifcfg-eth0 ifcfg-br0

> vi ifcfg-br0
<전체 내용 지우기>
***********************************************************************************************
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
DEFROUTE=yes
NAME=br0
ONBOOT=yes
DNS1=8.8.8.8
IPADDR=211.183.3.10
PREFIX=24
GATEWAY=211.183.3.2
***********************************************************************************************

> vi ifcfg-eth0
<전체 내용 지우기>
***********************************************************************************************
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
***********************************************************************************************

> systemctl restart network
  • ifconfig 로 네트워크 확인
    br0 에 IP 가 올라와있어야 하고, eth0 에 IP가 올라와 있으면 안된다.

  • GUI 로그인 (루트계정으로 로그인)
> systemctl restart libvirtd

> init 0 
Virtual Machine Settings 에서 가상화 지원을 설정하기 위해 shut down


Virtual Machine Settings

가상화 지원이 check 가 안되어 있기 때문에 check


  • VM 생성


ISO 파일 마운트를 해줘야 함


> mkdir /remote

> mount -t nfs 211.183.3.30:/shared /remote

> df -h | grep /remote


nfs 로 설정하는 이유?

우리는 마치 iso 파일이 로컬에 있는 remote 폴더에 있는 것과 마찬가지 이기 때문이다.


  • 왼쪽에 pool이 생겼고 iso 파일을 볼 수 있다.

  • Automatically 체크 해제 후 OS type: Linux, Version: CentOS 7로 설정

  • New Volumes + button

  • 다른 VM 에서는 img 파일명을 다르게 설정해줘야 한다!
    예) centos7-1.img, centos7-2.img 이런식으로 !

  • 다른 VM 에서는 VM 명을 다르게 설정해줘야 한다!
    예) centos7, centos7-2 이런식으로 !
  • 네트워크는 생성했던 br0 브릿지 대역을 선택
  • 가상 머신 내의 가상머신이 생성된다

3. Migration (고가용성 : HA) 실습

Go to srv1

  • Add Connection

원격지 211.183.3.20 에 하이퍼바이저 심기


  • 아마 이런 오류 메시지가 나타날 것임
    우리는 SSH 패키지를 설치하지 않았기 때문!


로컬 : QEMU/KVM
원격지 : QEMU/KVM: 211.183.3.20 - Not Connected


> yum -y install openssh openssh-askpass

  • 마이그레이션이 성립하기 위해서는 아래의 2가지 조건을 만족해야 한다.
  1. 같은 Disk, 디렉토리가 있어야 한다 예) /remote1 이런식으론 불가능 하다는 식이다.

  2. 같은 네트워크(공간)이어야 한다.


  • 패키지를 설치했으면 srv1 의 GUI 환경으로 이동


  • Start Migration (srv1 -> srv2) - Simple

profile
무럭무럭 자라볼까

0개의 댓글