일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 메일보안
- Microsoft 365
- network
- 그룹정책
- 리눅스
- 네트워크
- Exchange Online
- 시스템 엔지니어
- 가상화
- windows server
- Azure AD
- Azure
- 시스템엔지니어
- 리눅스마스터1급
- 클라우드
- Microsoft
- Entra ID
- SE
- windows
- 컴퓨터
- It
- Docker
- Server
- aws
- Linux
- 시트릭스
- cloud
- cloud engineer
- 클라우드엔지니어
- Microsoft Azure
- Today
- Total
Cloud System Engineer
kvm 본문
QEMU와 KVM은 수많은 Hypervisor 중 하나입니다. Hypervisor는 서로 다른 복수 개의 OS를 단일 물리 머신 위에서 스케줄링 할 수 있는 소프트웨어이며 이는 [그림]과 같이 두 개의 타입으로 나누어집니다.
Type1의 경우, 운영체제 없이 바로 Hypervisor가 설치되며 VMware의 ESXi와 같은 것들이 여기에 해당됩니다. 반면 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전구간 통신 확인
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 를 등록 한다.
각 웹서버가 접근할 수 있게
사진과 같은 설정을 편집해 준다.
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
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
vi /var/www/john.com.db 로들어가서 kvm 2, 3 ip 를 추가해준다.
Nslookup
www.jeong.com 을 치면
아래의 3개의 ip가 뜨면 정상이다.
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 |