TERUWA OPENSTACK 커피는 역시 떼루와
Content OpenStack Environment Keystone Identity Glance Image Nova compute Neutron Networking Horizon Dashboard Cinder Block Storage
클라우드 컴퓨팅 OpenStack IaaS 형태의 클라우드 컴퓨팅 오픈소스 프로젝트 Platform Description 2010년 NASA 주도로 시작 OpenNebula 2008년 벤쳐기업 시작 Eucalyptus 2008년 UC Santa Barbara 개발 CloudStack 2009년 Citrix 개발
시장 점유율 OpenStack https://www.rightscale.com/blog/cloud-industry-insights/cloud-computing-trends-2017-state-cloud-survey
구성도 OpenStack 2010년 Austin을 시작으로 2018년 8월 Rocky 기능들을 프로젝트 단위로 관리하고 있음 그래서 확장성, 모듈성이 좋음 - 기업이 원하는 기능만 선택하여 클라우드 시스템 만들 수 있는 것 Bug 관련 잇슈들이 있어서 업데이트가 잦음 2. 2010년 Austin을 시작으로 2018년 8월 Rocky 3. 장점 - 확장성과 모듈성 -> 기업이 원하는 기능만 선택하여 클라우드 시스템 만들 수 있는것 각각 기능들을 프로젝트 단위로 관리하고 있음 그래서 확장성, 모듈성이 좋음
Content OpenStack Environment Keystone Identity Glance Image Nova compute Neutron Networking Horizon Dashboard Cinder Block Storage
컴퓨터 구성도 Environment Info Multi Node All in one Controller Compute Private IP 1.0.0.92 1.0.0.91 1.0.0.21 GW 1.0.0.254 Subnet 255.255.255.0 Public 192.168.0.27 192.168.0.227 192.168.0.1 255.255.254.0 NAT CPU 1P1C 2P1C MEM 4G 8G HDD 50 100
IP 설정 Environment vi /etc/sysconfig/network-scripts/ifcfg-ens33 Bridge카드로 만든 ens34번은 ip를 할당하지 않고 위와 같이 설정합니다
IP 설정 Environment vi /etc/hosts에 다음을 포함하도록 구성한다. Compute노드와 연결되는지 핑 확인
NTP* 설정 Environment 패키지 설치후 vi /etc/chrony.conf에 들어가 설정합니다. 서비스를 시작합니다. 컨트롤러 노드에서 # chronyc sources 명령을 실행하여 서버가 동기화 되는지 확인합니다. 컴퓨트 노드 역시 명령을 실행하여 controller 노드의 호스트 이름을 확인합니다. *Name Time Protocol: 인터넷상의 정확한 시간 유지
Openstack 패키지 설치 Environment 컨트롤러 노드와 컴퓨트 노드 모두 패키지를 설치합니다. 그 후 패키지를 업그레이드 합니다. Openstack 클라이언트를 설치합니다 Selinux를 관리 하도록 설치함
SQL 데이터 베이스 설치 Environment 패키지를 설치합니다. vi /etc/my.cnf.d/openstack.cnf 에 입력해줍니다. Bind-address를 통해 다른 노드에 액세스 할 수 있게 해줍니다.
SQL 데이터 베이스 설치 Environment 서비스를 시작합니다. mysql의 root계정의 비밀번호를 변경합니다.
Message queue* 설치 Environment 패키지를 설치합니다 서비스를 시작합니다. Openstack의 사용자를 추가해주고 비밀번호를 설정합니다. Openstack 사용자의 구성, 쓰기 및 읽기 액세스를 허용합니다. *Message queue: 들어오는 메시지를 선입선출 구조로 저장
Memcached* 설치 Environment 패키지를 설치합니다. vi /etc/sysconfig/memcached 관리네트워크를 통해 controller의 노드를 액세스 허용합니다. 서비스를 시작합니다. *Memcached: 자주쓰는 데이터를 메모리에 저장
Etcd* 설치 Environment 패키지를 설치합니다. 다른 노드에 액세스 할수 있게 컨트롤러 노드를 설정합니다.
Etcd 설치 Environment 서비스를 시작합니다.
동영상 https://youtu.be/ejSOpexvBu4 Openstack 을 이용하여 클라우드 컴퓨팅 서비스를 지원하는데 GPU의 p100을 이용하여 im2txt(이미지를 txt로 바꿈) 학습 속도가 월등히 높다고 자랑함
Content OpenStack Environment Keystone Identity Glance Image Nova compute Neutron Networking Horizon Dashboard Cinder Block Storage
개요 Keystone OpenStack Openstack의 인증 서비스를 제공함 잠시만요, 아저씨 나 Keystone인데 이리 와보세요 나 Keystone인데 누구세요?? OpenStack
역할 Keystone - Keystone 인증없이는 Openstack의 어떤 서비스에도 접근 할 수 없음 - 사용자, 보안 그룹, Endpoint URL 관리 사용자 ID와 PW를 통하여 역할에 따라 확인후 토큰을 발행 후 서비스를 이용할 수 있도록 함 - PKI 키 기반 사용자 식별 및 권한 검증 체계
설치 및 구성 Keystone 데이터베이스 서버에 연결 Keystone 데이터베이스 만들어준다.
설치 및 구성 Keystone DB에서 나온 후 패키지를 설치한다. vi /etc/keystone/keystone.conf로 들어간후 [database]섹션에 데이터베이스 액세스를 구성한다. [Token]섹션에 fernet* 토큰 공급자를 구성한다. Identity 서비스 데이터베이스를 채워준다. Fernet 키 저장소를 초기화 해준다. *Fernet: 토큰생성자로는 대칭 암호화 키를 이용하여 토큰 생성
설치 및 구성 Keystone 설정을 넣어 부트스트래핑을 함
Apache HTTP 서버 구성 Keystone vi /etc/httpd/conf/httpd.conf에 들어간 후. ServerName 컨트롤러 노드를 참조하는 옵션을 구성한다. /usr/share/keystone/wsgi-keystone.conf 파일에 대한 링크를 만든다. 서비스를 시작한다. 관리 계정을 환경변수로 설정함.
Apache HTTP 서버 구성 Keystone 새 도메인을 만들어 준다. 사용자 환경에 추가하는 각 서비스에 대해 고유 한 사용자를 포함하는 service 프로젝트를 만들어준다.
Apache HTTP 서버 구성 Keystone myproject 프로젝트를 만들어 준다. myuser 사용자를 만들어준다
Apache HTTP 서버 구성 Keystone Myrole 역할을 만들어준다. 임시 변수 OS_AUTH_URL 및 OS_PASSWORD 환경 변수 설정을 해제한다.
Apache HTTP 서버 구성 Keystone admin사용자로 인증 토큰을 요청한다. myuser이전 섹션에서 작성한 사용자로 인증 토큰을 요청한다.
Apache HTTP 서버 구성 Keystone (vi admin-openrc) (vi demo-openrc) Demo-openrc파일을 만들고 위 내용을 추가한다.
Apache HTTP 서버 구성 Keystone 클라이언트를 특정 프로젝트 및 사용자로 실행 하려면 연관된 클라이언트 환경 스크립트를 실행하기전에 업로드 해야한다. Admin 프로젝트 및 사용자 자격 증명을 사용하여 ‘환경 변수를 채워 파일을 로드 한다. 인증 토큰을 요청한다.
Content OpenStack Environment Keystone Identity Glance Image Nova compute Neutron Networking Horizon Dashboard Cinder Block Storage
개요 Glance 이미지 서비스 (glance)는 사용자들이 가상 머신 이미지를 찾고, 등록과 가져오도록 하는 서비스 운영체제 설치 방법 - 이미 운영체제가 설치 된 이미지를 Glance에 등록해 두고, 가상 머신을 생성할 때 등록된 이미지를 복제하여 사용하는 것
역할 Glance 이미지들을 관리하는 서비스 ※ 이미지의 종류 - 운영체제를 설치하기 위한 설치용 이미지 - 설치가 완료 서비스가 가능한 이미지 - 설치가 완료되어 서비스가 가능한 이미지 - 운영 중인 운영체제를 복제하여 만든 이미지 - P2V나 V2V 도구를 이용하여 생성한 이미지 - 백업을 위한 복제한 스냅샷 이미지 ※ 이미지 확장자 종류 - raw: Flat 이미지 파일, 구조화되지 않은 디스크 이미지 포맷 - AMI/AKI/ARI: 아마존의 EC2에서 사용하는 이미지 파일 - qcow2: KVM 하이퍼바이저가 사용하는 이미지 - VDI: VirtualBox용 이미지 - VMDK: VMware의 ESX/ESXi용 이미지 - VHD: 마이크로소프트의 Hyper-V가 사용하는 이미지로, Hyper-V, VMware, Xen, VirtualBox 등이 사용할 수 있는 이미지 포맷 - ISO: 광학 디스크의 데이터 포맷이며, 주로 CD-ROM의 이미지로 사용
역할 Glance Glance 등록 가능 이미지(. qcow2) <- Hypervisor(KVM or QEMU) - 운영체제 제조사에서 배포하는 클라우드용 운영체제 이미지 사용 ※ Glance용 가상머신 이미지 생성도구 - Oz(파이썬) - VMBuilder - VeeWee - Packer - Imagefactory - KIWI - SUSE Studio - Virt-Building
설치 Glance glance 데이터 베이스를 만든다. glance 데이터 베이스에 액세스 권한을 부여한다. admin 프로젝트 및 사용자 자격 증명을 사용하여 환경 변수를 채워 파 일을 로드한다
설치 Glance glance 사용자를 만들어준다. 사용자와 프로젝트에 admin역할을 추가한다. glance 서비스를 생성함
설치 Glance 이미지 서비스 api 엔드 포인트를 작성한다.
설치 Glance 패키지를 설치하고, vi /etc/glance/glance-api.conf 편집화면에서 다음 섹션에 엑세스를 구성해준다. [database]섹션에 데이터베이스 액세스를 구성한다. [keystone_authtoken]섹션에 액세스를 구성한다.
설치 Glance [paste_deploy]섹션에 액세스를 구성함. [glance_store] 섹션에서 로컬 파일 시스템 저장소와 이미지 파일 의 위치를 구성한다.
설치 Glance vi /etc/glance/glance-registry.conf 환경에 들어가 다음 엑세스를 구성한다. [database]섹션에서 데이터 베이스 액세스를 구성한다. [keystone_authtoken] 섹션에 액세스를 구성한다.
설치 Glance [paste_deploy]신원 서비스 액세스를 구성하고, 편집 화면을 빠져나온다. 이미지 서비스 데이터베이스를 채워준다. 이미지 서비스를 시작한다.
설치 ※ 작동 확인 Glance CirrOS를 사용하여 이미지 서비스의 작동을 확인한다. admin 프로젝트 및 사용자 자격 증명을 사용하여‘ 환경 변수 를 채워 파일을 로드한다. wget을 설치해준다. wget 완료설치문구와 함께 원본이미지를 다운받아준다.
설치 Glance 이미지 서비스에 이미지를 업로드해준다. 이미지 업로드 확인 및 속성 유효성 검사를 해준다.
Content OpenStack Environment Keystone Identity Glance Image Nova compute Neutron Networking Horizon Dashboard Cinder Block Storage
개요 Nova CPU, Memory, Network, Storage를 이용해 가상 머신 서비스 제공 가상화 기능을 포함하고 있지 않기 때문에 드라이버를 이용해 하이퍼바이저 외부에서 가상 머신 제어
동작 절차 Nova App O/S VM ⑧ ① 사용자나 관리자가 Horizo이 제공하는 대시보드를 통해 가상 머신을 생성한다. Nova-scheduler ⑧ ① 사용자나 관리자가 Horizo이 제공하는 대시보드를 통해 가상 머신을 생성한다. ② 대시보드는 Horizon에게 사 용자의 요청을 전달한다. ③ Horizon은 가상 머신이 생성 될 컴퓨트 노드의 Nova-api의 가상 머신 생성 API를 호출한다. ④ Nova-api는 Horizon의 가상 머신 생성 명령을 메시지 큐에 저장한다. ⑤ ① KVM Hypervisor KVM Driver Message Queue ⑦ ⑥ ② ④ Horizon Nova-api Nova-compute ③ Controller Node Compute Node
동작 절차 Nova App O/S VM ⑧ ⑤ Nova-scheduler는 저장된 명령을 스케줄링하여 실행 우선 순위를 정한다. ⑥ Nova-compute는 스케쥴링 된 명령을 하나씩 가져온다. ⑦ 하이퍼바이저 드라이를 통해 하이퍼바이저에 가상머신생성을 요청한다. ⑧ 하이퍼바이저는 가상 머신생성에 필요한 자원을 할당받아 가상 머 신을 생성한다. 생성이 완료되면 요청 동선을 따라 메시지 큐를 거쳐 역순으로 전달한다. ⑤ ① KVM Hypervisor KVM Driver Message Queue ⑦ ⑥ ② ④ Horizon Nova-api Nova-compute ③ Controller Node Compute Node
동작 절차(Docker 사용 예시) Nova Controller Node Compute Node Nova-scheduler Container Nova-scheduler Docker Container Docker Container Docker Message Queue Docker Driver Horizon Nova-api Nova-compute Controller Node Compute Node
Hypervisor Nova Nova가 지원하는 Hypervisor Group C는 공식적으로 거의 지원하지 않음 ex) Docker Driver를 더 이상 서비스 하지 않는다고 하였음
Docker 시연 Nova 데모 구성 환경 Controller Compute Internet ens34 VM0 NAT CentOS7 Host IP(ens33): 1.0.0.92 Subnet: 255.255.255.0 GW: 1.0.0.254 Controller 192.168.0.25 Compute Internet ens34 CentOS7 Host IP(ens33): 1.0.0.91 Subnet: 255.255.255.0 GW: 1.0.0.254 VM0 1.0.0.25 192.168.0.27 NAT ens33 ens33
Docker 시연 Nova
Docker 시연 Nova ubuntu 인스턴스에 접속
Docker 시연 Nova docker 설치 사전에 docker repository에 올라가 있는 Docker container를 받음 container를 실행함으로써 완료
Docker 시연 Nova docker안에 container가 돌아가는 확인 할 수 있음
설치 Nova 데이터베이스 서버에 연결한다. nova_api, nova, nova_cell0, placement* 데이터베이스를 만든다. *placement: 리소스들이 어떻게 어디로 쓰였는지 저장함
설치 Nova 데이터베이스에 대한 액세스 권한을 부여한다.
설치 Nova MariaDB 종료 후, 사용자 자격 증명을 사용한다. Nova 사용자를 만든다.
설치 Nova 사용자 admin에 역할을 추가한다. Nova 서비스 만든다.
설치 Nova Compute API service endpoint를 만든다.
설치 Nova Placement user를 만들어준다. 관리 역할이 있는 서비스 프로젝트에 위치 사용자를 추가한다.
설치 Nova API를 만든다. 게재 위치 API 서비스 끝점을 만든다.
설치 Nova 패키지를 설치한다. Vi /etc/nova/nova.conf [default] Enabled_apis = compute metadata만 사용하게 한다. 메시지 큐를 설정하고 컨트롤러 노드 IP 주소를 구성한다. 네트워킹 서비스에 대한 지원을 사용하도록 설정한다.
설치 Nova Nova api database에 연결한다. Nova database에 연결한다. Placement database에 연결한다. 인증 방식은 keystone으로 한다.
설치 Nova [keystone_authtoken] 인증을 구성한다. VNC*를 구성한다. *VNC: Virtual Network Computing로 그래픽 데스크탑 공유 시스템
설치 Nova Glance의 API 위치를 구성한다. 잠금 경로를 구성한다. Placement 인증을 한다.
설치 Nova 게재 위치 API에 대한 액세스를 허용한다.
설치 Nova Httpd 서비스를 시작해주고, 데이터베이스를 밀어준다. Cell0와 Cell1이 올바르게 등록되었는지 확인한다.
설치 Nova 서비스를 시작해준다.
설치 Nova Nova Compute 설치를 이어간다. 패키지를 설치하고 vi /etc/nova/nova.conf 를 수정한다. 인증 방식은 Keystone을 사용한다.
설치 Nova Keystone_authtoken 의 인증을 구성한다. [vnc] 를 구성한다.
설치 Nova Glance와 oslo_concurrency를 구성한다. Placement 인증을 구성해준다.
설치 Nova 계산 노드가 가상 컴퓨터의 하드웨어 가속을 지원하는지 여부를 확인한다. Virt_type을 qemu로 사용한다. 서비스를 시작한다.
설치 Nova 그 후 컨트롤러에 compute node가 있는지 확인한다.
설치 Nova Compute 호스팅을 검색하고, 서비스 리스트를 확인한다.
설치 Nova Catalog list를 확인하여 여태의 서비스가 제대로 구성되었는지 확인한다.
설치 Nova 이미지 리스트를 확인한다.
셀 및 게재 위치 API가 제대로 작동되는지 확인한다. 설치 Nova 셀 및 게재 위치 API가 제대로 작동되는지 확인한다.
동영상 시청 Link: https://youtu.be/fIgLeP6AQEo LG CNS 데이터센터 https://blog.lgcns.com/1532?category=515093
동영상 시청 카페24의 Cloud 서비스가 Openstack 기반으로 만들어져 있음 https://www.cafe24.com/
Content OpenStack Environment Keystone Identity Glance Image Nova compute Neutron Networking Horizon Dashboard Cinder Block Storage
개요 Neutron 클라우드 환경의 네트워크 연결을 정의하고, 네트워크 기능을 제공 Network Virtualization Service를 제공 Virtual Network를 생성하고 관리하는 역할을 담당 Virtual Network를 설정하고 VMs를 연결할 수 있는 추상화 된 API 제공 Virtual Switch 와 Physical Switch를 연결 다양한 Networking 관련 기술 및 장비를 지원하기 위해 Plugin 방식 사용
동작원리 Neutron neutron-server Queue neutron database plugin(s) agent(s) network provider 사용자는 Neutron API를 이용하여 Neutron 서버로 IP를 할당을 요청합니다. Neutron 서버는 들어온 요청을 Queue로 다시 요청합니다. Queue는 Neutron 에이전트와 플러그인으로 IP 할당 지시를 내립니다. Neutron 에이전트와 플러그인은 지시 받은 작업을 데이터베이스에 저장합니다. Neutron 에이전트는 네트워크 프로바이더에게 작업을 지시합니다. 수시로 작업상태를 데이터베이스에 업데이트합니다. 할당된 IP를 인스턴스에서 사용할 수 있습니다. 1. 사용자는 Neutron API를 이용하여 Neutron 서버로 IP를 할당을 요청합니다. 2. Neutron 서버는 들어온 요청을 Queue로 다시 요청합니다. 3. Queue는 Neutron 에이전트와 플러그인으로 IP 할당 지시를 내립니다. 4. Neutron 에이전트와 플러그인은 지시 받은 작업을 데이터베이스에 저장합니다. 5. Neutron 에이전트는 네트워크 프로바이더에게 작업을 지시합니다. 6. 그리고, 수시로 작업상태를 데이터베이스에 업데이트합니다. 7. 이제 할당된 IP를 인스턴스에서 사용할 수 있습니다. 출처: http://naleejang.tistory.com/107 [Nalee와 함께 떠나는 IT이야기] 실질적인 네트워킹 기능은 네트워크 프로바이더가 지원해준다. 여기서는 ml2가 해준다. 스위치 = 물리적 브릿지 = 논리적(소프트웨어) 그렇기 때문에 가상머신에서는 전부 브릿지라고 이야기 함. 출처: http://naleejang.tistory.com/107
Tenant Network Neutron 가상 머신들이 연결되는 가상화 된 네트워크 Tenant VLAN A Tenant VLAN B A VM1 A VM2 A VM3 B VM1 B VM2 B VM3
Provider Network Neutron 외부와 연결 고리 역할을 하는 네트워크 네트워크 노드에서는 가상의 Provider Router가 됨 네트워크 노드가 따로 없는 경우 Physical network Switch가 됨 Provider Network 인터넷 Tenant VLAN A Tenant VLAN B A VM1 A VM2 A VM3 B VM1 B VM2 B VM3
Plugins, Agent 구성도 Neutron Neutron Server DHCP Agent Core Plugins Fixed IP 할당 Core Plugins Service Plugins Message Queue L3 Agent Virtual Router OVS Load Balancer L2 Agent Virtual L2 Switch Cisco Nexus Firewall Vendor Olugins VPN Core: L2 Connectivity와 IP Address Management 등 기본 기능 Service: Routing, Firwall 등 서비스 기능 Agent: Neutron Server 명령 수신하여 실제 Networking 동작 구현 ML2 L3 services
ML2(Modular Layer 2) Neutron Local - 단일 노드에서 테스트용으로 사용되며 호스트간 연결 지원하지 않음 Flat - 모든 인스턴스들을 동일한 네트워크에 위치하며 여러 호스트와 공유 VLAN - 스위치에서 실행 중인 컴퓨터의 네트워크 트래픽 분할 위해 사용 - 다수의 Provider 또는 프로젝트 네트워크 생성 가능 GRE - 인스턴스 상호 간에 네트워크 터널* 을 사용해 사설 통신 가능 VXLAN - Layer 3 네트워크에서 사용되는 Layer 2 터널 기술 - IP/UDP, MAC으로 모두 통신 가능 *터널: Overlay라고 하며 호환외지 않는 전송 네트워크에서 페이로더(헤더를 제외한 실제 데이터)의 전송을 가능하게 함
Linux Bridge Plugin Neutron 인스턴스와 Network Resource를 Virtual Switch에 연결 eth0 KVM Linux Bridge VM0 tap0 인터넷 eth1 eth1 VM1 tap1 Tap Device: KVM과 같은 Hypervisor에 Virtual Interface 구현에 사용 VLAN Interface: eth1과 같은 이름을 사용 LinuxBridge: 여러 Network Interface를 연결하는 Virtual Interface
Controller neutron 설치 Neutron 데이터 베이스 서버에 연결합니다. 그후 데이터 베이스에 액세스권한을 부여하고 나간다.
설치 Neutron Neutron 사용자를 만들어준다. 사용자 admin에 역할을 추가해주고 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. 사용자 admin에 역할을 추가해주고 Neutron 서비스 엔티티를 만들어준다.
설치 Neutron 네트워킹 서비스 API 엔드 포인트를 작성한다. 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. 네트워킹 서비스 API 엔드 포인트를 작성한다.
네트워킹 옵션 구성하기 Neutron 네트워킹 구성 요소를 설치해준다. 설치후 vi /etc/neutron/neutron.conf 파일에 들어가 [DEFAULT] 섹션의 액세스를 구성한다. 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. [database] 섹션에 데이터베이스 액세스를 구성한다.
네트워킹 옵션 구성하기 Neutron [keystone_authtoken]섹션에 액세스를 구성한다. 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. [oslo_concurrency] 섹션에 잠금 경로를 구성한다. [Nova] 섹션에 액세스를 구성한다.
ML2 플러그인 구성 Neutron [ml2]섹션에 액세스를 구성한다. 공급자 가상 네트워크를 플랫 네트워크로 구성한다. 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. 셀프 서비스 네트워크에 대한 vxlan 네트워크 식별자 범위를 구성한다. Ipset을 사용하여 보안 그룹 규칙의 효율성을 높인다.
Linux 브릿지 에이전트 구성 Neutron 공급자 가상 네트워크를 공급자의 실제 네트워크 인터페이스에 매핑해준다 Local_ip 에는 오버레이 네트워크를 처리하는 인터페이스의 ip주소로 대체해준다. 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. 보안그룹을 사용해 linux브릿지 iptables 방화벽 드라이버를 구성한다.
에이전트 구성 Neutron 셀프 서비스 가상 네트워크에 라우팅 및 NAT서비스를 제공한다. vi /etc/neutron/l3_agent.ini 파일을 다음과 같이 편집한다. linux브릿지 인터페이스 드라이버 및 외부 네트워크 브릿지를 구성한다. . 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다.
DHCP 에이전트 구성 Neutron /etc/neutron/dhcp_agent.ini파일을 편집하고 다음 작업을 완료하십시오. linux브릿지 인터페이스 드라이버, Dnsmasq DHCP 드라이버를 구성하고 격리된 메타데이터를 활성하 하여 공급자 네트워크의 인스턴스가 네트워크를 통해 메타 데이터에 액세스 할수 있게한다. 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다.
메타데이터 에이전트 구성 Neutron 자격 증명과 같은 구성정보를 인스턴스에 제공한다 vi /etc/neutron/metadata_agent.ini 파일을 다음과 같이 편집한다. 메타 데이터 호스트 및 공유 암호를 구성한다. 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다.
Compute 서비스 구성 Neutron 액세스 매개 변수를 구성하고 메타 데이터 프록시를 활성화한다. 기호링크를 작성해주고 데이터베이스를 채워준다. 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. 서비스를 시작한다.
설치 Neutron 구성 요소를 설치해준다. /etc/neutron/neutron.conf 파일을 편집하고 다음 작업을 한다. default섹션에 rabbitmq 메시지 대기열 액세스를 구성해준다. . 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. 섹션에 잠금 경로를 구성해준다. [Keystone_authtoken] 섹션의 액세스를 구성한다.
Compute 서비스 설치 Neutron /etc/nova/nova.conf 파일을 편집하고 다음 작업을 완료하십시오.. 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. 액세스 매겨 변수를 구성해준다.
Linux 브릿지 에이전트 구성 Neutron Linux 브릿지 에이전트는 인스턴스에 대한 계층 2 (브리징 및 스위칭) 가상 네트워킹 인프라를 구축하고 보안 그룹을 처리합니다. 공급자 가상네트워크를 공급자의 실제 네트워크 인터페이스에 매핑 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. VXLAN 오버레이 네트워크를 활성화하고 오버레이 네트워크를 처리하는 실제 네트워크 인터페이스의 IP 주소를 구성하고 레이어 2 채우기를 활성화합니다.
Linux 브릿지 에이전트 구성 Neutron 보안 그룹을 사용하고 Linux 브리지 iptables 방화벽 드라이버를 구성합니다. 서비스를 시작해준다. 이 두 네트워크의 차이점은 l3 network을 제공한다는 것이다. 성공적으로 시작되는지 컨트롤러 노드에서 확인해본다.
Content OpenStack Environment Keystone Identity Glance Image Nova compute Neutron Networking Horizon Dashboard Cinder Block Storage
Overview Horizon Nova, Swift, Keystone 등 OpenStack 서비스에 웹 기반 사용자 인터페이스를 제공하는 서비스 Rocky의 Dashboard 로그인 화면 로그인 후 첫 화면
Function Horizon 서비스들이 API를 이용해 웹 기반의 사용자 인터페이스를 제공 가상머신을 생성 또는 네트워크를 구성 또는 보안 규칙을 설정 가능 VNC Client를 통해 웹 브라우저에서 가상 머신의 콘솔에 접근 가능 ※단 사용하는 웹 브라우저가 HTML5의 캔버스와 웹소켓을 지원해야함 Python과 Django 프레임워크로 서비스를 제공, 커스터 마이징이 가능함 세밀한 사용자의 권한을 제한하는 방법을 제공하지 않음 대시보드 서비스는 웹을 통해 사용자나 관리자가 오픈스택의 자원과 서비스를 이용할 수 있도록 사용자 인터페이스를 제공하는 서비스이며, 서브 프로젝트 명칭은 Horizon이다. Horizon은 오픈스택의 서비스들이 제공하는 다양한 API를 이용해 웹 기반의 사용자 인터페이스를 제공하며, 템플릿들과 도구를 이용하여 약간의 커스터마이징이 가능하다. Horizon을 이용하면 기본적인 클라우드 운영은 가능하다. 그러나 서비스 카탈로그 제공 기능과 과금 관련 기능, 사용자 관리 기능이 부족하기 때문에 추가적인 개발을 통해 클라우드 포털을 별도로 개발해야 한다. 클라우드 포털 구성시 앞서 언급한 템플릿들과 도구들을 사용할 수 있다. Horizon은 통상적으로 컨트롤러 노드에 설치하며, 아파치 웹 서버를 사용함 사용자와 관리자는 Horizon을 통해 가상 머신을 생성하거나 가상 머신에 네트워크를 구성하고, IP를 지정하거나 보안 규칙을 설정하는 등 다양한 기능을 사용할 수 있따. 또한 Horizon이 제공하는 기능인 VNC Client를 통해 사용자 또는 관리자가 웹 브라우저를 이용하여 가상 머신의 콘솔에 접근 할 수 있다. 단 사용하는 웹 브라우저가 HTML5의 캔버스와 웹소켓을 지원해야함 Horizon은 파이썬과 Django 프레임워크로 서비스를 제공하기 때문에 높은 수준의 커스터마이징을 원한다면 파이썬을 다룰 줄 알아야 한다. 손쉽게 수정할 수 있는 로고(Logo)와 사이트의 컬러 스타일, HTML, 타이틀, 도움말 링크 등은 HTML 파일과 설정 파일의 간단한 수정만으로 변경할 수 있다. Horizon의 단점으로는 사용자의 권한을 제한하는 방법을 제공하지 않는다. 프로젝트 단위로 사용자의 구릅을 관리할 수 있으나 프로젝트 내에서 모두 동일한 권한을 가지고 있다. 모든 사용자가 가상 머신의 생성과 변경, 삭제의 권한을 가지고 있으므로 휴먼 에러가 발생할 가능성이 높다. 세밀한 권한 제어를 요구하는 국내의 환경에서는 사용하기 어려운 면이 존재함
설치 Horizon 컨트롤러 노드에 다음 패키지를 설치합니다. 컨트롤러 노드를 사용하도록 대시보드를 구성해준다. 대시보드 서비스는 웹을 통해 사용자나 관리자가 오픈스택의 자원과 서비스를 이용할 수 있도록 사용자 인터페이스를 제공하는 서비스이며, 서브 프로젝트 명칭은 Horizon이다. Horizon은 오픈스택의 서비스들이 제공하는 다양한 API를 이용해 웹 기반의 사용자 인터페이스를 제공하며, 템플릿들과 도구를 이용하여 약간의 커스터마이징이 가능하다. Horizon을 이용하면 기본적인 클라우드 운영은 가능하다. 그러나 서비스 카탈로그 제공 기능과 과금 관련 기능, 사용자 관리 기능이 부족하기 때문에 추가적인 개발을 통해 클라우드 포털을 별도로 개발해야 한다. 클라우드 포털 구성시 앞서 언급한 템플릿들과 도구들을 사용할 수 있다. Horizon은 통상적으로 컨트롤러 노드에 설치하며, 아파치 웹 서버를 사용함 사용자와 관리자는 Horizon을 통해 가상 머신을 생성하거나 가상 머신에 네트워크를 구성하고, IP를 지정하거나 보안 규칙을 설정하는 등 다양한 기능을 사용할 수 있따. 또한 Horizon이 제공하는 기능인 VNC Client를 통해 사용자 또는 관리자가 웹 브라우저를 이용하여 가상 머신의 콘솔에 접근 할 수 있다. 단 사용하는 웹 브라우저가 HTML5의 캔버스와 웹소켓을 지원해야함 Horizon은 파이썬과 Django 프레임워크로 서비스를 제공하기 때문에 높은 수준의 커스터마이징을 원한다면 파이썬을 다룰 줄 알아야 한다. 손쉽게 수정할 수 있는 로고(Logo)와 사이트의 컬러 스타일, HTML, 타이틀, 도움말 링크 등은 HTML 파일과 설정 파일의 간단한 수정만으로 변경할 수 있다. Horizon의 단점으로는 사용자의 권한을 제한하는 방법을 제공하지 않는다. 프로젝트 단위로 사용자의 구릅을 관리할 수 있으나 프로젝트 내에서 모두 동일한 권한을 가지고 있다. 모든 사용자가 가상 머신의 생성과 변경, 삭제의 권한을 가지고 있으므로 휴먼 에러가 발생할 가능성이 높다. 세밀한 권한 제어를 요구하는 국내의 환경에서는 사용하기 어려운 면이 존재함 모든호스트를 허용해주고, MEMCACHED세션의 저장소 서비스를 구성해준다.
설치 Horizon 도메인 지원은 True로 바꿔준다. API 버전을 구성한다. 대시보드 서비스는 웹을 통해 사용자나 관리자가 오픈스택의 자원과 서비스를 이용할 수 있도록 사용자 인터페이스를 제공하는 서비스이며, 서브 프로젝트 명칭은 Horizon이다. Horizon은 오픈스택의 서비스들이 제공하는 다양한 API를 이용해 웹 기반의 사용자 인터페이스를 제공하며, 템플릿들과 도구를 이용하여 약간의 커스터마이징이 가능하다. Horizon을 이용하면 기본적인 클라우드 운영은 가능하다. 그러나 서비스 카탈로그 제공 기능과 과금 관련 기능, 사용자 관리 기능이 부족하기 때문에 추가적인 개발을 통해 클라우드 포털을 별도로 개발해야 한다. 클라우드 포털 구성시 앞서 언급한 템플릿들과 도구들을 사용할 수 있다. Horizon은 통상적으로 컨트롤러 노드에 설치하며, 아파치 웹 서버를 사용함 사용자와 관리자는 Horizon을 통해 가상 머신을 생성하거나 가상 머신에 네트워크를 구성하고, IP를 지정하거나 보안 규칙을 설정하는 등 다양한 기능을 사용할 수 있따. 또한 Horizon이 제공하는 기능인 VNC Client를 통해 사용자 또는 관리자가 웹 브라우저를 이용하여 가상 머신의 콘솔에 접근 할 수 있다. 단 사용하는 웹 브라우저가 HTML5의 캔버스와 웹소켓을 지원해야함 Horizon은 파이썬과 Django 프레임워크로 서비스를 제공하기 때문에 높은 수준의 커스터마이징을 원한다면 파이썬을 다룰 줄 알아야 한다. 손쉽게 수정할 수 있는 로고(Logo)와 사이트의 컬러 스타일, HTML, 타이틀, 도움말 링크 등은 HTML 파일과 설정 파일의 간단한 수정만으로 변경할 수 있다. Horizon의 단점으로는 사용자의 권한을 제한하는 방법을 제공하지 않는다. 프로젝트 단위로 사용자의 구릅을 관리할 수 있으나 프로젝트 내에서 모두 동일한 권한을 가지고 있다. 모든 사용자가 가상 머신의 생성과 변경, 삭제의 권한을 가지고 있으므로 휴먼 에러가 발생할 가능성이 높다. 세밀한 권한 제어를 요구하는 국내의 환경에서는 사용하기 어려운 면이 존재함 DEFAULT 대시보드를 통해 생성한 사용자의 기본도메인으로 구성한다.
user대시보드를 통해 생성 한 사용자의 기본역할로 구성한다. 설치 Horizon user대시보드를 통해 생성 한 사용자의 기본역할로 구성한다. 대시보드 서비스는 웹을 통해 사용자나 관리자가 오픈스택의 자원과 서비스를 이용할 수 있도록 사용자 인터페이스를 제공하는 서비스이며, 서브 프로젝트 명칭은 Horizon이다. Horizon은 오픈스택의 서비스들이 제공하는 다양한 API를 이용해 웹 기반의 사용자 인터페이스를 제공하며, 템플릿들과 도구를 이용하여 약간의 커스터마이징이 가능하다. Horizon을 이용하면 기본적인 클라우드 운영은 가능하다. 그러나 서비스 카탈로그 제공 기능과 과금 관련 기능, 사용자 관리 기능이 부족하기 때문에 추가적인 개발을 통해 클라우드 포털을 별도로 개발해야 한다. 클라우드 포털 구성시 앞서 언급한 템플릿들과 도구들을 사용할 수 있다. Horizon은 통상적으로 컨트롤러 노드에 설치하며, 아파치 웹 서버를 사용함 사용자와 관리자는 Horizon을 통해 가상 머신을 생성하거나 가상 머신에 네트워크를 구성하고, IP를 지정하거나 보안 규칙을 설정하는 등 다양한 기능을 사용할 수 있따. 또한 Horizon이 제공하는 기능인 VNC Client를 통해 사용자 또는 관리자가 웹 브라우저를 이용하여 가상 머신의 콘솔에 접근 할 수 있다. 단 사용하는 웹 브라우저가 HTML5의 캔버스와 웹소켓을 지원해야함 Horizon은 파이썬과 Django 프레임워크로 서비스를 제공하기 때문에 높은 수준의 커스터마이징을 원한다면 파이썬을 다룰 줄 알아야 한다. 손쉽게 수정할 수 있는 로고(Logo)와 사이트의 컬러 스타일, HTML, 타이틀, 도움말 링크 등은 HTML 파일과 설정 파일의 간단한 수정만으로 변경할 수 있다. Horizon의 단점으로는 사용자의 권한을 제한하는 방법을 제공하지 않는다. 프로젝트 단위로 사용자의 구릅을 관리할 수 있으나 프로젝트 내에서 모두 동일한 권한을 가지고 있다. 모든 사용자가 가상 머신의 생성과 변경, 삭제의 권한을 가지고 있으므로 휴먼 에러가 발생할 가능성이 높다. 세밀한 권한 제어를 요구하는 국내의 환경에서는 사용하기 어려운 면이 존재함 네트워킹 옵션 1을 선택한 경우 레이어 3 네트워킹 서비스에 대한 지원을 비활성화한다.
vi /etc/httpd/conf.d/openstack-dashboard.conf로 들어가 해당 설치 Horizon vi /etc/httpd/conf.d/openstack-dashboard.conf로 들어가 해당 문구를 입력해준다. 대시보드 서비스는 웹을 통해 사용자나 관리자가 오픈스택의 자원과 서비스를 이용할 수 있도록 사용자 인터페이스를 제공하는 서비스이며, 서브 프로젝트 명칭은 Horizon이다. Horizon은 오픈스택의 서비스들이 제공하는 다양한 API를 이용해 웹 기반의 사용자 인터페이스를 제공하며, 템플릿들과 도구를 이용하여 약간의 커스터마이징이 가능하다. Horizon을 이용하면 기본적인 클라우드 운영은 가능하다. 그러나 서비스 카탈로그 제공 기능과 과금 관련 기능, 사용자 관리 기능이 부족하기 때문에 추가적인 개발을 통해 클라우드 포털을 별도로 개발해야 한다. 클라우드 포털 구성시 앞서 언급한 템플릿들과 도구들을 사용할 수 있다. Horizon은 통상적으로 컨트롤러 노드에 설치하며, 아파치 웹 서버를 사용함 사용자와 관리자는 Horizon을 통해 가상 머신을 생성하거나 가상 머신에 네트워크를 구성하고, IP를 지정하거나 보안 규칙을 설정하는 등 다양한 기능을 사용할 수 있따. 또한 Horizon이 제공하는 기능인 VNC Client를 통해 사용자 또는 관리자가 웹 브라우저를 이용하여 가상 머신의 콘솔에 접근 할 수 있다. 단 사용하는 웹 브라우저가 HTML5의 캔버스와 웹소켓을 지원해야함 Horizon은 파이썬과 Django 프레임워크로 서비스를 제공하기 때문에 높은 수준의 커스터마이징을 원한다면 파이썬을 다룰 줄 알아야 한다. 손쉽게 수정할 수 있는 로고(Logo)와 사이트의 컬러 스타일, HTML, 타이틀, 도움말 링크 등은 HTML 파일과 설정 파일의 간단한 수정만으로 변경할 수 있다. Horizon의 단점으로는 사용자의 권한을 제한하는 방법을 제공하지 않는다. 프로젝트 단위로 사용자의 구릅을 관리할 수 있으나 프로젝트 내에서 모두 동일한 권한을 가지고 있다. 모든 사용자가 가상 머신의 생성과 변경, 삭제의 권한을 가지고 있으므로 휴먼 에러가 발생할 가능성이 높다. 세밀한 권한 제어를 요구하는 국내의 환경에서는 사용하기 어려운 면이 존재함 방화벽은 모두 닫고, 서비스를 시작해 준다. 그후 컨트롤러 ip로 대시보드에 접속이 된다면 설치가 잘 된 것을 확인할 수 있다.
Allinone 데모 데모 환경 구성도 Internet NAT ens34 ens33 CentOS 192.168.0.0/23 Provider Network Router 1.0.0.0/24 Tenant Network CentOS7 Host IP(ens33): 1.0.0.92 Subnet: 255.255.255.0 GW: 1.0.0.254 OpenStack VM0 1.0.0.25 192.168.0.27
Allinone 데모 동영상 데모
Content OpenStack Environment Keystone Identity Glance Image Nova compute Neutron Networking Horizon Dashboard Cinder Block Storage
Content OpenStack Environment Keystone Identity Glance Image Nova compute Neutron Networking Horizon Dashboard Cinder Block Storage
Reference https://sarc.io/index.php/cloud http://naleejang.tistory.com/98 https://www.slideshare.net/rootfs32/20150511-jun-leeopenstack-neutron 오픈스택 기반의 프라이빗 클라우드 서비스, 저자:강남규 , 박상수 https://aws.com http://openstack.org http://docker.com
THANK Y O U
User App O/S VM App O/S VM App O/S VM App O/S VM App O/S VM App O/S VM Identity Service Keystone이 중단되면 Openstack의 어떤 서비스에도 접근 할 수 없음(가용성에 유의 해야함) Controller Node Compute Node Compute Node Storage Node
웹 기반 사용자 인증 Web Browser User Dash Board Keystone이 중단되면 Openstack의 어떤 서비스에도 접근 할 수 없음(가용성에 유의 해야함) App O/S VM App O/S VM App O/S VM App O/S VM App O/S VM App O/S VM 사용자 정보DB Identity Service Controller Node Compute Node Compute Node Storage Node
역할 Glance VM App Copy O/S Glance Snapshot Reuse Template VM App Copy 운영체제 설치 방법 - 이미 운영체제가 설치 된 이미지를 Glance에 등록해 두고, 가상 머신을 생성할 때 등록된 이미지를 복제하여 사용하는 것 Copy Snapshot Image
역할 Cinder Block Storage App O/S VM KVM Hypervisor Volume Manager KVM Driver Cinder-volume Nova- Scheduler Volume- provider Nova- Compute Block Storage Message Queue Cinder-api Nova-api
Message Queue Nova-scheduler Horizon Nova-api Nova-compute VM App O/S User Message Queue KVM Hypervisor KVM Driver Web Browser Horizon Nova-api Nova-compute
Message Queue Nova-scheduler Horizon Nova-api Nova-compute Docker Container Docker Container Docker Container Message Queue Docker Docker virt Driver Glace Horizon Nova-api Nova-compute
Platform Description OpenStack 2010년 NASA 주도로 시작 OpenNebula 2008년 벤쳐기업 시작 Eucalyptus 2008년 UC Santa Barbara 개발 CloudStack 2009년 Citrix 개발
Neutron Server DHCP Agent Core Plugins Service Plugins Message Queue L3 Agent OVS Load Balancer L2 Agent Cisco Nexus Firewall Vendor Olugins VPN ML2 L3 services
eth0 KVM Linux Bridge VM0 tap0 인터넷 eth1 eth1 VM1 tap1
Controller Internet Compute ens33 VM0 NAT ens33 ens33 Provider Network CentOS7 Host IP(ens33): 1.0.0.92 Subnet: 255.255.255.0 GW: 1.0.0.254 Controller 192.168.0.25 Internet Compute ens33 CentOS7 Host IP(ens33): 1.0.0.91 Subnet: 255.255.255.0 GW: 1.0.0.254 VM0 1.0.0.25 192.168.0.27 NAT ens33 ens33 Provider Network Router Tenant Network
Internet NAT ens34 ens33 CentOS 192.168.0.0/23 1.0.0.0/24 OpenStack Provider Network Router 1.0.0.0/24 Tenant Network CentOS7 Host IP(ens33): 1.0.0.92 Subnet: 255.255.255.0 GW: 1.0.0.254 OpenStack VM0 1.0.0.25 192.168.0.27