일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- intellij ide
- Logrus
- 컴포지트패턴
- 윈도우키보드
- Intellij
- http 413
- AWS Infra
- System Design
- tenneling
- 디자인패턴
- Helm V3
- Infra
- Buffered channel
- UnBuffered channel
- Golines
- gitops
- 배포 파이프라인
- Bastion Server
- body size
- golang
- Kubernetes
- 배포 프로세스
- apollo router
- goland
- notification system
- GoF 디자인패턴
- GoF
- go
- AWS
- 대규모 시스템 설계
- Today
- Total
Fall in IT.
KVM 가상환경 구축 본문
서버장비에 KVM 가상환경을 구축합니다. (구축 시 필요한 개념들도 하나하나 정리합니다.)
목적
서버장비에 Linux(CentOS)를 설치 후 가상환경을 구축하여, 동일 네트워크 망에서 원격으로 접속하여 가상머신 관리 및 사용이 가능하게 합니다.
요구사항
- 물리적인 서버 장비 한대에 가상화를 통하여 여러개의 가상머신을 설치하도록 합니다.
- 원격에서 Manager-console로 접속해 가상머신을 매니지먼트(추가/삭제/수정) 할 수 있도록 합니다.
- 사용자(다수)는 가상머신 등록 후 내부 아이피로 설정하고 가상머신에 접속해 사용하도록 합니다.
- 서버장비는 1대만 사용합니다. 따라서, Manager-console + Host Server가 하나의 시스템에 구축됩니다.
(가상머신의 현재 상황을 모니터링하고 생성/삭제 등을 담당하는 관리 콘솔과 실제 가상머신을 운용하는 클라우드 호스트를 하나의 시스템에 구축합니다.) - 서버장비의 OS는 CentOS 7을 사용하고, 올릴 하이퍼바이저로 KVM을 사용합니다.
- 가상머신은 내부 IP를 사용하여 외부 컴퓨터의 접근이 가능하게 설정합니다. (방화벽 설정)
- 예를들어, vmware라는 소프트웨어는 윈도우즈 상에서 설치되어 윈도우즈가 접근할 수 있는 각종 자원을 vmware상에 설치되는 가상머신(리눅스)들이 접근할 수 있도록 하는 역할을 합니다.
- 이렇게 vmware같이 호스트서버(가상머신이 설치될 원래 물리서버) 위에 설치되어 가상머신이 서버 장비의 각종자원, 즉 cpu, 네트워크, 스토리지 등을 사용할 수 있도록 해주는 소프트웨어를 하이퍼바이저라고 합니다.
- 리눅스 기반에서 cpu 기반의 전가상화, 즉 하드웨어 전체를 가상화 하는 것을 지원하는 하이퍼바이저를 말합니다.
- 즉, 하이퍼바이저의 한 종류. 리눅스 커널을 기본적으로 가상화 지원됩니다.
- KVM은 레드헷 계열 리눅스, centos, fedora 기반 리눅스 등에 기본적으로 포함됩니다.
- 가상머신 관리 콘솔입니다. 이를 사용함으로 원격 컴퓨터에서 클라우드 호스트의 가상머신 운용상태를 효과적으로 관리 할 수 있도록 도와주는 응용프로그램입니다.
<시스템 구성도>
※위의 시스템 구성도와 동일하나, 다른점은 Manager-console과 Cloud Host서버가 1대안에 모두 구축된다는 점입니다.
구축 방법
1. 사전 준비 작업
- 서버장비에 CentOS를 설치합니다. (CentOS 7 버전 사용하였음.)
- CentOS 설치 시 Desktop 버전을 설치합니다. (Manager-console을 사용하여 GUI환경에서 가상머신을 컨트롤하기 위함.)
- 패키지 관리 프로그램이 인터넷을 통하여 설치되기 때문에 인터넷을 연결합니다.
- SELinux를 비활성화 합니다. KVM 프로세스는 리눅스 커널을 직접 이용하므로 해제해야합니다.
(SELinux : 리눅스의 보안 강화 버전으로 리눅스 보안 모듈 구조체를 이용하여 리눅스 커널에 대한 접근 제어를 구현하는 것.) - SELinux는 시스템 재시작 해야 동작하므로 reboot을 실시합니다.
2. KVM 설치 및 Bridge 네트워크 설정 작업
설치 전 확인사항
- KVM 관련 모듈 설치 여부를 확인합니다.
- 확인방법 : $ lsmod | grep kvm
- 아무것도 나오지 않을 경우, 설치 되지 않음.
- 서버의 가상화 지원 여부(KVM이 지원되는 cpu인지 확인)
- 확인방법 : $ egrep '(vmx|svm)' --color=always /proc/cpuinfo
- 명령 실행시 flags 정보에 VMX나 SVM이 표시되지 않는다면 BIOS설정에서 가상화 확장 기능 활성화로 변경해줘야 합니다.
KVM 설치 방법
- $ yum install kvm libvirt qemu-kvm 입력
- $ lsmod | grep kvm 명령어를 통해 제대로 설치가 되었는지 확인합니다. 아래의 설치된 화면과 같다면 제대로 설치된 것입니다.
Bridge 설치
- bridge-utils가 설치되어 있는지 확인합니다.
- $ yum info bridge-utils 명령어 입력
- 설치되어 있지 않을 경우 $ yum install bridge-utils 입력하여 설치합니다.
br0 네트워크 카드 생성 및 설정
- $ vi /etc/sysconfig/network-scripts/ifcfg-br0
*추가내용
DEVICE=br0
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.0.171
GREFIX=24
GATEWAY=192.168.0.1
DNS1=168.126.63.1
DNS2=168.126.63.2
NAME="System br0"
eth0 네트워크 수정
- $ vi /etc/sysconfig/network-scripts/ifcfg-eth0
*주석내용
IPADDR=192.168.0.171 >>> #IPADDR=192.168.0.171
NETMASK=255.255.255.0 >>> #NETMASK=255.255.255.0
GATEWAY=192.168.0.1 >>> #GATEWAY=192.168.0.1
DNS1=168.126.63.1 >>> #DNS1=168.126.63.1
DNS2=168.126.63.2 >>> #DNS2=168.126.63.2
*추가내용
BRIDGE=br0
- 저장 후 네트워크 재시작을 합니다.
- $ /etc/init.d/network restart
- 변경된 정보를 확인합니다.
- $ ifconfig
- 제대로 연결이 되었는지 확인을 위하여 게이트웨이에 핑테스트를 합니다.
- $ ping "IP"
- KVM 설치와 Bridge 설정이 완료 되었습니다.
- 가상머신으로 올릴 OS ISO파일을 /var/lib/libvirt/images/ 로 복사합니다.
3. 관리 콘솔 설치(Manager Console)
- 가상머신의 운영상태를 관리하는 콘솔을 설치합니다. (현재는 클라우드 호스트 서버에 설치하여 사용합니다.)
- 다양한 가상머신 관리 콘솔이 있지만, 그 중 Virt-manager을 사용합니다. (GUI 환경으로 사용 편함. KVM말고도 XEN도 사용 가능합니다.)
- $ yum install virt-manager
- 설치가 완료됩니다.
4. 관리 콘솔을 이용한 원격 연결
- virt-manager를 실행합니다.
- 프로그램 > 시스템 도구 > 가상머신관리
- 파일 > 연결추가를 선택하여 원격 설정을 설정합니다.
- Connect to remote host를 체크합니다.
- Method는 SSH를 사용합니다.
- 사용자명은 root로 하며 호스트명은 Cloud host ip를 적도록 합니다.
- 연결 버튼을 누르면, OpenSSH 연결시 키값을 저장한다고 경고창이 나오는데 yes를 입력하고 root의 비밀번호를 입력합니다.
- 원격으로 Cloud host에 연결이 완료됩니다.
사용방법
- 사용자는 Manager Console에 접근을 위해서(windows기준) Xming. putty 어플리케이션을 다운받아야 합니다.
- putty는 ssh 접속을 위해, Xming은 Xwindow 화면을 열기위해 사용합니다.
<Xming 사용방법>
- XLanuch 실행 -> one window -> start no client -> 클립보드 체크 -> 설정파일 저장
<putty 사용 방법>
- 호스트명에 접속할 리눅스 서버의 ip 혹은 호스트명을 입력합니다.
- 좌측 메뉴에서 접속(Connection) > SSH > X11 선택합니다.
- X11 포워딩 사용(Enable X11 forwarding) 체크 후 X 디스플레이 위치(X display location) 항목에 " localhost:0 " 입력 (안해도 무방)
- 좌측 메뉴에서 세션(Session) 메뉴 선택 후 입력한 내용 저장 후 하단의 열기 버튼 선택합니다.
<가상머신 관리 콘솔 접속 방법>
- putty로 ssh 접속 후, virt-manager를 실행합니다.
- $ virt-manager 입력
- Xwindow 화면에 가상머신 관리 화면이 나타납니다.
- 가상머신을 등록/삭제/수정 등의 작업을 실시합니다.
<securecrt 사용방법>
- Options->Global Options을 선택합니다.
- Category 부분의General → Default Session→Edit Default Settings버튼 클릭합니다.
- Category 부분의Connection → Port Forwarding → Remote/X11에서 X11 Forwarding 부분에Forwarding X11 Packets 체크합니다.
- securecrt로 ssh 접속 후, virt-manager를 실행합니다.
설치자료
- Xming 자료
http://sourceforge.net/projects/xming/postdownload?source=dlp - Putty 자료
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
구축화면
Manager-console(Virt-Manager)을 사용해서 가상머신을 등록하고 실행하는 화면입니다.
참고자료
- http://blog.bizmerce.com/?p=338, kvm 및 가상머신 os 설치
- http://cozyboy.tistory.com/entry/xming-%EC%82%AC%EC%9A%A9putty-gui, putty+xming 사용법
- http://keep2smile.tistory.com/85, putty+securecrt+xming 사용법
- http://ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%EB%B8%8C%EB%A6%AC%EC%A7%8, 네트워크 브리지에 대한 설명
- http://www.iamroot.org/xe/Hypervisor_3_KVM/72349, kvm의 내부구조 요약
'시스템구축' 카테고리의 다른 글
리눅스(ubuntu)에서 sudo 패스워드 없이 사용하는법 (0) | 2018.06.28 |
---|---|
리눅스 시간 UTC에서 KST로 변경하는 방법 (0) | 2018.06.27 |
코드리뷰시스템 gerrit 간단 정리 (0) | 2017.07.19 |
CentOS 아파치서버 설치방법 (0) | 2016.10.04 |
윈도우 Apache 웹서버 구축 (0) | 2016.02.26 |