본문 바로가기

KOSA 클라우드 솔루션즈 아키텍트 양성과정

[5.4] 오픈스택(Openstack) 개념

--수업 전 간단 정리(서브넷 마스크)--

* 네트워크 주소를 너무 많이 나눠버리면 브로드캐스트에 있어 문제 발생 가능성

 

1. 오픈스택(Openstack)

1.1 오픈스택 개념 정리

오픈스택 구성도
오픈스택 아키텍처

* 가운데가 Vm 

* 5core service : Nova, Glance, Neutron, Cinder, Keystone은 반드시 있어야 하는 서비스

* Nova가 Vm으로 프로비전 되어 있다.

* Nova는 CPU나 Memory와 같은 컴퓨트를 서비스 해준다. (그래서 프로비전)

* Glance는 Vm에게 이미지(OS파일)을 서비스하는 역할을 한다.

* Neutron은 Vm에게 네트워크 서비스를 제공한다.

* Cinder는 Vm에게 스토리지 서비스를 제공한다. (일종의 어플 같은 것들이 탑재되는 블록스토리지라고 할 수 있다.)

* Keystone은 인증과 권한을 제공하는 서비스다. (ID와 PW를 생성해서 로그인 작업에 참여)

* Nova, Glance, Neutron, Cinder, Keystone를 제외한 나머지 서비스들은 Optional service로 필수는 아니다.

* Swift는 웹 쉐어 같은 오브젝트 스토리지(url을 통한 서비스)에 해당하는 서비스라고 보면 된다. (백업하는 역할, 파일을 공유하는 역할)

* Horizen은 WEB UI를 제공하는 서비스다.

* Heat는 자동화 도구로써 스크립트를 작성, 실행하는 인프라 구축 지원  서비스(IaC : Infrastructure as Code)

* Swift까지 그나마 중요하고 나머지는 크게 중요하지 않다.

 

오픈스택 서비스 관계도

* 컴퓨트, 이미지, 블록스토리지, 네트워크 서비스가 오픈스택에서 무엇에 해당하는지 적을 수 있어야 한다.

* Compute서비스(CPU, MEMORY) : NOVA, AWS의 EC2

* image서비스(OS) : Glance, AWS의 AMI-Amazon Machine Image

* Block Storage서비스(SSD, HDD) : Cinder, AWS의 EBS-Elastic Block Store

* Networking서비스(G/W, vSwitch) : Neutron, AWS의 VPC

* Object Storage서비스(웹쉐어, 구글 드라이브, RESTFUL API, URL서비스, 백업) : Swift , AWS의 S3

* Identity서비스(keypair, ID, PW, GROUP, ROLE) : Keystone, AWS의 IAM-Identity Access Management

* Orchestration서비스(IaC) : Heat, AWS의 Cloud Formation

* Dashboard서비스 : Horizen

 

1.2 오픈스택(Openstack)설치 과정

* 실습환경은 H/W위에 WINDOW10 위에 PRO 위에 CentOS8 위에 KVM 위에 Openstack

* PRO와 KVM 둘 다 하이퍼바이저니까 중첩된 가상화

* 원래는 H/W 위에 CentOS8과 KVM이 같은 층에 있고, 그 위에 Openstack이 올라가는 것이다.

 

1.2.1 CentOS8 설치

 

 

 

 

 

Customize Hardware 클릭

 

 

중첩된 가상화할 때는 첫 번째 체크박스 체크

* Hardware지원 가상화를 받을 수 있도록 체크

 

CentOS8 선택

* iso는 인스톨이 필요한 이미지라는 의미

 

 

* usb, sound card, printer는 Remove

* close -> Finish

 

* OPENSTACK 전원 켜기

* 설치 후  언어는 English 그대로 하고, 시간대를 서울로 선택

* 루트 패스워드 설정

* 아직 랜카드가 설치되지 않았기 때문에 SOFTWARE파트에서 Installation Source에 애러 표시

* NETWORK에서 랜카드 켜주고 IP를 기록해 놓기

* Installation Destination에서 파티션을 최상위 폴더로 몰아줘야 한다.

-> Storage Configuration을 Custom으로 바꾼 후 Done 클릭

-> click here to create them automatically

-> /home 선택 후 하단의 - 눌러서 지워주기

-> available space 52GiB 된다.

-> Desired Capacity를 대충 200GiB로 넣고 /boot라든가 아무거나 한 번 누르면 자동으로 /에 용량 할당 됨

* SOFTWARE 파트에서 Software Selection 클릭

-> Minimal Install 선택

-> Done 클릭

* Begin Installation 활성화된 버튼 클릭해서 설치

 

1.2.2CentOS8위에 Openstack설치

 

* CentOS8 특징 및 설정 사항

-> yum이라는 명령어가 dnf로 변경

-> network-scripts를 별도로 설치해줘야 한다. 

-> 오픈스택에 방화벽이 있기에 disable시켜주기

-> NetworkManager가 메인이고 사이드로 필요에 따라(IP를 수동으로 정해주는 경우) network를 활성화 시켜 사용

-> powertools를 enable 시켜줘야 오픈스택 설치할 수 있다.

-> openstack-packstack을 설치하면 answers.txt파일이 만들어진다.

-> answers.txt.에는 openstack 환경설정 파일이 들어가 있다.

-> answers.txt에서 설치를 원하는 부분만 -y를 넣어주면 자동으로 설치되어 해당 서비스 사용 가능

-> vxlan은 openswitch의 주축을 이루는 드라이버로 vlan의 확장형 기술, tenent의 네트워크를 vxlan으로 꾸미겠다.

-> flat드라이버는 오픈스택 시스템이 외부의 피지컬랜카드로부터 Ip를 받아올 때 사용됨

-> extnet이란?? : external network의 약자로 vm들의 입장에서는 가장 외부에 있는 인터페이스로 인식되도록 꾸며져 있다.   

->

---------------------------------------------------------                           

                                        (vm)                      |

                                          |                         |

                          (vm) -     extnet - br-ex - ens32(랜카드) - 외부

                                          |                         |                         

                                        (vm)                      |

----------------------------------------------------------

 

192.168.0.52(오픈스택의 IP로 웹 브라우저 검색)


 

# mobaXterm에서

1. 192.168.0.66 DNS서버 들어가서 cd /var/named/db/ 입력하여 DNS서버의 순방향 설정 파일로 이동

2. 본인의 mz~~ 파일에 들어가서 마지막 줄 open IN  A 192.168.0.52

3. 제어판 -> 네트워크 -> 어댑터설정변경 -> 이더넷 -> 오른쪽 클릭 -> 속성 -> IPv4 

4. DNS 첫번째에 192.168.0.66 보조DNS는 8.8.8.8로 설정 후 확인

5.오픈스택 poweroff 해주기(반드시 명령어로 poweroff 정상적으로 해주기) -> 스냅샷 찍어놓기, 스냅샷이름 openstack 6. 다시 실행 시키기

7. 오픈스택IP로 웹 브라우저 접속 후 오른쪽 admin의 설정

8. 시간대 : UTC+9로 바꾸기 -> 저장

9. 좌측 관리 메뉴에서 네트워크 클릭 ->  네트워크 클릭 -> 우측의 네트워크 생성

10. 이름 : EXTERNAL, 프로젝트의 이름 : admin 선택, 공급자 네트워크 유형 : flat 선택 , 물리적인 네트워크에: extnet(이것의 이름이 잘 못되면 통신이 안 됨) , 외부네트워크 체크박스에 체크(공유 빼고 다 체크된 상태로) -> 다음 버튼 클릭

11. 서브넷 이름 : EXTERNAL_SUBNET, 네트워크 주소 : 192.168.0.0/20 입력, 게이트웨이 : 192.168.0.1 입력 -> 다음 클릭 12 . DHCP사용 체크박스 해제, Pools할당 : 192.168.4.1,192.168.4.126 입력(배포된 IP파일참고) -> 생성 클릭

13. 프로젝트는 내부 네트워크에 생성 -> 프로젝트 / 네트워크 / 네트워크  -> 네트워크 이름 : INTERNAL -> 다음 클릭

14. DHCP 사용 체크, DNS네임서버에  192.168.0.66하고 엔터 후 밑에 줄에 8.8.8.8 입력 -> 생성버튼 클릭

15. shared : 둘 다 아니오, external은 위에 익스터널은 예, 아래 인터널은 아니오

16. 왼쪽 메뉴에서 라우터 클릭, 브라우저 이름 나오는 탭에서 새탭에서 보기 눌러서 탭을 복제

17. 복제된 탭을 드래그해서 끄집어 내기, 두 개의 라우터 페이지를 화면에 양분, 원래 페이지에서 네트워크 토폴로지-> 라우터 생성 -> 러우터 이름 : ROUTER로 -> 관리 상태 활성화 체크 -> 외부네트워크 : EXTERNAL -> 가용구역 힌트 : nova ->  라우터 생성 클릭

18. 애러발생하는 경우도 있었음, 새로고침하면 로그아웃이 되어 있을 수도 있음

19. 애러 발생할 경우 라우터 다시 생성하기 -> 표준버튼 누르면 구성도 같이 생긴 파랑색 주황색 막대기가 확대됨 -> 양분된 화면 중 오른쪽 라우터 페이지에서 라우터라는 이름을 클릭, 메뉴에서 인터페이스 눌러서 -> 인터페이스 추가 버튼 클릭 -> 서브넷 : INTERNAL선택 -> 제출 버튼 클릭

20. 윈도우의 cmd관리자 창 -> 윈10에서 192.168.4.대 외부게이트웨이로 ping 나가야 함