Cloud System Engineer

kvm 본문

리눅스/centos

kvm

클라우드 엔지니어 2021. 3. 17. 15:08

QEMUKVM은 수많은 Hypervisor 중 하나입니다. Hypervisor는 서로 다른 복수 개의 OS를 단일 물리 머신 위에서 스케줄링 할 수 있는 소프트웨어이며 이는 [그림]과 같이 두 개의 타입으로 나누어집니다.

 

Type1의 경우, 운영체제 없이 바로 Hypervisor가 설치되며  VMwareESXi와 같은 것들이 여기에 해당됩니다. 반면 Type2의 경우 운영체제를 설치하고, 그 위에 Hypervisor가 실행되는 형태입니다.  KVM, QEMU, Virtualbox가 이 유형에 해당합니다.

 

#kvm 모듈확인

lsmod | grep kvm 

modprobe kvm kmv_intel 

 

#kvm 설치하기 위한 저장소

yum repolist 

yum -y install qemu-kvm libvirt virt-install virt-manager 

yum groupinstall "virtualizaion" -y 

 

가상화 하이퍼 바이져 시작 

systemctl start libvirtd 

systemctl enable libvirtd

 

 

하드디스크 추가한거 마운트하기 

 

df -h 

cd /dev 

fdisk /dev/sdb 

m 

n 

p 

1 

엔터두번 

q 

 

fdisk /dev/sdc 

 

 파티션 나눈뒤 포맷해준다 

 mkfs -t ext4 /dev/sdb 

 

 

mkdir /vms 

VM 을 관리하기 위한 폴더를 생성한다. 

Mkdir /iso_lib 

ISO 파일이 들어올수있게만든다 

#마운트

mount /dev/sdb /vms 

mount /dev/sdb /iso_lib

 

 

자동 마운트 하게 하는 명령어이다  

vi /etc/fstab 

/dev/sdb        /vms                            ext4    defaults        1 2 

를추가 해주고 

/dev/sdc        /iso_lib                        ext4    defaults        1 2 

해주면 껏다켜도 마운트 되게 설정하는것이다 

 

 

리눅스 커널에 virt-manager 하면 가상 머신을 추가 할 수 있는 GUI 환경이 뜬다.

가상머신 관리자가 뜨면 파일을 선택해서 새 가상 머신추가를 누른다.

 

 

 

1. Iso 파일이 있는 /iso_lib 폴더를 마운트한다.

2.Cpu 와 메모리는 사용자가 지정해서 만들 수 있다.

 

 

 

1.디스크 크기를 지정하고

2.Kvm 이름을 지정하고 완료를 누르고

3.Kvm에 오른쪽 마우스를 클릭 후 kvm 2,3 clone   생성한다.

4.서로 통신 하기 위한 network만들어줘야한다.

 

 

 

 

 

 

Open Vswitch

 

오픈브이스위치(OpenvSwitch)

흔히 OVS라고 부르며, 아파치 라이선스로 배포되는 다계층 오픈소스 가상 스위치다.

OVS는 네트워킹 환경에서 네트워킹 스위치를 가상으로 또는 소프트웨어로 구현해 사용할 수 있다.

OVS는 호스트 내의 가상머신 또는 호스트 간 가상머신을 연결하는 데 사용된다.

 

#기본적인 명령어

#ovs-vsctl show                                      :실행중인 스위치의 구성 

#ovs-vsctl list-br                                     :설정된 모든 브릿지 이름 

#ovs-vsctl list-ports <bridge>                    :브리지의 모든 포트이름 표시 

#ovs-vsctl list interface <bridge>                :모든 인터페이스 이름 

#ovs-vsctl add-br <bridge>                       :스위치 데이터베이스에 브리지 생성 

#ovs-vsctl add-port <bridge> <interface>    :인터페이스를 Open vSwtich 연결한다 

 

 

설치 과정

## kvm 가상화를 위한 소프트웨어 정의 네트워킹

Open vSwitch 설치와 설정

EPEL을 통한 yum 설치

*EPEL(Extra Packages of Enterprise Linux): 레드헷에서 제공 되는 별도의 패키지 저장소

#yum install -y epel-release

# yum install -y openvswitch bridge-utils // 오픈 스위치 설치

 

 

Vi /etc/sysconfig/network-scripts/ifcfg-ens32 uuid 제외한 나머지 # 처리 후 아래를 추가

 

 

 

 

 

Vi /etc/sysconfig/network-scripts/ifcfg-vswitch001 생성 후 아래와 같이 편집

 

 

 

 

ovs-vsctl add-br vswitch001  //vswitch001 이름을 가진  스위치 추가

ovs-vsctl show //추가한 스위치 목록 확인

 

 

 

 

Virt-manager 에있는 kvm상세보기하면 하드웨어 정보를 확인할 수 있다.

네트워크 카드를 추가한 후 vswitch001 네트워크를 적용시킨다.

 

 

 

 

vi ./vswitch001.xml 을 생성하고 아래의 구성을 입력한다.

 

Vswitch001.xml에 대한 편집을 마쳤으면

아래와 같이 정의된 네트워크를 시작한다.

 

 

virsh edit kvm 들어가서 kvm1 ~ 3번까지

Interface 란에 <virtualport type='openvswitch'>

<target dev=‘kvm1~3’/> 을 추가편집 한다.

 

 

 

게스트 os 로 가서 앞서 설정한 장치에 포트를 달아줘야 한다.

#ovs-vsctl add-port <bridge>, <interface>

Ovs-vsctl add-port kvm1 ~ 3 을 추가한다.

 

 

포트를 추가해줬으면 ovs-vsctl show 하면

Vswitch001 에 대한 정보를 확인 할 수 있다.

 

 

ovs-vswitch001 kvm 1~3전구간 통신 확인

kvm1

 

kvm2

 

 

kvm3

 

 

NFS-SERVER

NFS란 무엇인가요?

공유된 원격 호스트의 파일을 로컬에서 사용할 수 있도록 개발된 파일 시스템을 네트워크 파일 시스템(NFS)이라고 합니다.

NFS 서버가 파일을 공유하면 NFS 클라이언트가 공유한 디렉터리를 마운트해서 원격 호스트(NFS 서버)의 파일을 사용합니다

 

 

 

rpm -qa nfs-utils  // nfs가 설치 되어있는지 확인

## nfs 설치 및 설정

Yum –y install nfs-utils

Systemctl restart nfs-server

Systemctl enable nfs-server

vi /etc/exports  // 공유할 폴더와 허용할 ip 대역 설정

/share   192.168.100.0*(rw.sync) 

mkdir /share  //share 라는 폴더 생성

 

NFS-SERVSER 상태확인

 

 

공유할 폴더 생성

 

 

 

허용할 IP 대역과 권한 설정

 

 

Exportfs –v 하여 공유된 폴더 상태 확인

 

 

/shared 폴더안에 jpg 파일을 넣는다.

 

 

Client 에서 마운트할 폴더 생성 후 fstab 에서  사진과 같은 설정후 저장한다.

10.6.1.55:/shared (nfs-server  ip마운트할 폴더

/root/myshare -> /shared마운트할 디렉터리의 경로

Kvm1~3 까지 설정하고 편집한다.

 

 

 

kvm 1~3 에서 myshare 디렉터리로 가면 jpg 파일이 보인다.

 

 

 

testfile 이라는 디렉터리로

Jpg 파일을 옮기고

ls 로 확인

 

 

 

 

 

이로서 nfs-server 구축이 끝났습니다.

 

 

로드 벨런싱

 

부하분산 또는 로드 밸런싱(load balancing)은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다.

부하 분산을 하면 가용성 및 응답시간을 최적화 시킬 수 있다.

 

 

 

 

3개의 웹서버로 라운드 로빈을 하기위해선 각각 웹서버가 작동해야한다.

rpm –qa httpd //웹서버 설치 확인

Yum –y install httpd

Systemctl start httpd

Systemctl enable httpd

 

 

 

3 대의 웹서버가 구축되었으면

Vi /var/www/html/index.html // index.html 파일을 생성한다.

아래와 같은 웹서버에 올릴 내용을 편집한다.

 

 

Named = DNS

도메인 이름을 ip 주소로 변환시키는 역할

yum -y install bind-chroot

DNS 서버를 구축해서

서버에 있는 hosts 파일에 동일한 3대 웹서버 ip 를 등록 한다.

namd 작동상태

 

 

각 웹서버가 접근할 수 있게

사진과 같은 설정을 편집해 준다.

vi /etc/namd.conf

set nu

11   -> { any; };

12 -> none;

19 ->any;

34   -> no;

 

 

vi /etc/named.conf

zone "jeong.com" IN {  //도메인 이름

  type master;

  file "jeong.com.db 

jeong.com.db 파일에다 세부적인 사항을 설정하겠다는 뜻

  allow-update { none; };

};

 

 

 

cd /var/named

ls

touch jeong.com.db

vi ./ jeong.com.db

 

 

 

 

vi /var/named/jeong.com.db 설정

 

www.jeong.com 주소를 요청하면 192.168.35.160 을알려준다.

해당 문법이 잘 되었는지

named-checkconf 로 확인한다. 만약 에러가 난다면 /etc/named.conf 에서 문법오류가 발생한 것으로 다시 가서 확인한다.

name-checkzone john.com.db john.com.db  // john.com.db 파일에 문법체크 확인

 

 

 

Kvm1~3 까지 DNS서버를 IP 192.168.35.160 으로 바꾼후 cat 으로 DNS 서버 확인

 

 

Kvm 2~3 로가서 jeong.com 을 치면 웹페이지가 뜬다.

 

 

Kvm 2~3 로 가서 웹서버의 설정을 파란색,녹색 으로 바꾼다.

vi /var/www/html/index.html

kvm 2는 파란색으로 설정

 

vi /var/www/john.com.db 로들어가서 kvm 2, 3 ip 를 추가해준다.

Nslookup

www.jeong.com 을 치면

아래의 3개의 ip가 뜨면 정상이다.

 

client 의 nslookup

 

 

 

Client 로 가서 www.jeong.com  을 치면 아래 사진과 같이 다른 웹서버가 돌아가면서 뜨게 된다.

, 부하 분산을 할때 동일한 정보가 가진 웹서버를 여러대 구현해야 동일한 서비스를 이용할 수 있다.

 

 

 

 

'리눅스 > centos' 카테고리의 다른 글

리눅스마스터 1급 사용자 관리 명령어  (0) 2021.10.05
리눅스마스터 1급 백업 명령어 모음  (0) 2021.10.03
보안을 위한 네트워크 설계  (0) 2021.02.24
클라우드 서비스  (0) 2021.02.15
라운드 로빈  (0) 2021.02.14