Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning

4 834 vues

Publié le

TTA에 KVM 기반 프로비저닝 기술에 대한 데모 세션을 포함하는 세미나 관련 자료입니다. 클라우드환경으로 가고자 해서 Paas를 어떤 플랫폼위에 올린다면 그리고 가상화 환경이나 클라우드 환경으로 올린다면 어떤 환경으로 올릴것인가를 고민하여야 합니다. 
그리고 이 hypervisor중에 cloud 환경에서 가장 주목받는 kvm을 기반으로 하는 두가지 가상화 클라우드 솔루션인 rhev와 openstack을 잠시 살펴볼 것입니다. 
그리고 이러한 가상화 클라우드 환경에서 자동화 하는 솔류션을 어떻게 고려해야 하는가를 살펴보고, 그런 솔류션중에 하나인 아테나 피콕에 대해 살펴보겠습니다.
그리고 오픈스택환경하에서 구축해서 사용했던 사용기와 이를 자동화하기위해 개발자들이 사용했던 간단한 ansible provisioning 모습을 시연합니다.

Publié dans : Logiciels
  • Sex in your area is here: ❤❤❤ http://bit.ly/2Q98JRS ❤❤❤
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/2Q98JRS ❶❶❶
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning

  1. 1. Copyright 2016 osci.kr. All Rights Reserved / Confidential 클라우드 컴퓨팅 기반 기술과 오픈스택(KVM) 기반 Provisioning (주) 오픈소스컨설팅
  2. 2. 2 Hypervisor&KVM RHEV&Openstack 시스템자동화프로세스 시연(peacock) KVM&Virtualizationtuning Openstack(오픈소스컨설팅개발인프라환경사례) 시연(ansible)
  3. 3. 3 PaaS Architecture 출처 : http://pivotal.io/platform PaaS를 구축할 수 있는 많은 인프라 환경 중에 오픈스택은 하나의 클라우드 환경으로 점차 확대되어지고 있음. Cloud Foundry는 AWS/OpenStack/Vmware(vSphere, vCloud)등의 infra architecture를 사용함 Openshift의 경우는 baremetal/AWS/OpenStack/RHEV(virt)/Vmware 등을 지원함. 출처 : http://redhat.com Hypervisor&KVM
  4. 4. 4 OpenStack “Newton” “Olimpic” Hypervisor&KVM
  5. 5. 5 OpenStack Compute node에서 지원되는 Hypervisor 출처 : http://blog.rackspace.com/architecting-vmware-vsphere-for-openstack/ OpenStack의 Compute node는 크게 Vmware/Hyper-V/Xen/KVM 등이 지원된다. Compute node인 Nova는 API나 native management tools를 통해 관리된다. 출처 : http://suse.com Hypervisor&KVM
  6. 6. 6 What’s the Hypervisor ? 하이퍼바이저(hypervisor)는 호스트 컴퓨터에서 다수의 운영 체제(operating system)를 동시에 실행하기 위한 논리적 플랫폼(platform)을 말한다. - wikipedia Type-1, native or bare-metal hypervisors • 게스트 OS는 호스트의 각각의 process로 운영 • VMware vSphere/ESXi. • Hyper-V • Xen/the Citrix XenServer • RHEV • Oracle VM Server for x86 • IBM LPAR Type-2 or hosted hypervisors • 일반 프로그램과 같이 OS위에 하나의 프로세스로 운영된다. • VMware Workstation • VMware Player, • VirtualBox • QEMU • KVM KVM의 경우는 TYPE-2로 분류되어 있으나, KVM은 kernel-module로 이미 Converting 되었기 때문에 실제적인 운 영은 TYPE-1 형태이다. 그래서 가끔 혼란스러운 경우가 있다. Hypervisor&KVM Guest OS Guest OS Host OS Ring 0 Ring 3
  7. 7. 7 HW virtualization type 하이퍼바이저(hypervisor)는 호스트 컴퓨터에서 다수의 운영 체제(operating system)를 동시에 실행하기 위한 논리적 플랫폼(platform)을 말한다. - wikipedia 가. 전가상화 기술(Full Virtualization) - 하드웨어를 완전히 가상화, 게스트 OS의 아무런 수정없이 윈도우에서 리눅스까지 다양한 OS 지원 - 전제조건 : CPU의 Intel-VT나 AMD-V 기능 필수 - 단점 : 위 CPU의 사용으로 성능 저하 발생 예: Mac-on-Linux, Parallels Desktop for Mac, Parallels Workstation VMware Workstation, VMware Server (formerly GSX Server), VirtualBox 나. 반가상화 기술(Para-Virtualization) - 전가상화 달리 하드웨어를 완전히 가상화하지는 않음 게스트OS가 직접 하드웨어를 제어하는 것이 아니고 하이퍼바이저에게 의뢰, 높은 성능 유지, 대표적 기술 XEN 게스트 OS의 커널을 일부 수정해서 게스트의 커널 함수를 호출하면 호스트의 컨널로 전달 - 단점 : 게스트 OS의 일부를 수정해야 함, 오픈소스가 가능 - 예 : Zen Hypervisor&KVM VMWare Xen
  8. 8. 8 X86 processor virtualization techniques Full Virtualization 기술은 클라우드 시대에 Guest OS의 변경없이 구현 가능한 쉽고, 신뢰성있는 기술중에 하나임. Full Virtualization. Intel (Intel VT) and AMD (AMD-V) 'Intel VT-x'-based Full Virtualization. VMWare's Para Virtualization. Xen's Para Virtualization. Para Virtualization Host OS Virtualization 출차:http://www.cubrid.org/blog/dev-platform/x86-server-virtualization-technology/ https://www.vmware.com/files/pdf/VMware_paravirtualization.pdf Container-based Virtualization Hypervisor&KVM Kernel space user mode
  9. 9. 9 X86 processor virtualization techniques Full Virtualization 기술은 클라우드 시대에 Guest OS의 변경없이 구현 가능한 쉽고, 신뢰성있는 기술중에 하나임. Full Virtualization. Para Virtualization Host OS Virtualization Container-based Virtualization Hypervisor&KVM
  10. 10. 10 KVM (Kernel based Virtual Machine) 전가상화를 지원하는 리눅스 커널 기반의 가상화 도구 리눅스 커널 2.6.20 버전부터 KVM 컴포넌트를 포함 리눅스 자체를 호스트 OS로 이용하고 하이퍼바이저를 서브 모듈로 취급 리눅스 커널 모듈 – 리눅스 커널의 다양한 이점과 기능을 상속, Virtualization 구현 리눅스를 하이퍼바이저로 쓸 수 있도록 만들어 줌 • KVM 은 가상머신을 인스턴스화 하기 위해 일부 수정된 QEMU(Emulator)를 사용 • 가상머신 인스턴스가 실행되게 되면 이 가상머신은 일반적인 프로세스 처럼 동작 Hypervisor&KVM KVM의 경우는 TYPE-2로 분류되어 있으나, KVM은 kernel-module로 이미 Converting 되었기 때문 에 실제적인 운영은 TYPE-1 형태이다.
  11. 11. 11 libvirt 다양한 하이퍼바이저를 관리할 수 있는 표준화되고 단일화된 어플리케이션 프로그래머블 인터페이스 프로젝트를 가리킵니다 가상머신을 생성, 수정, 관리, 모니터링, 마이그레이션, 정지 시키는 등 공통적인 기능들에 대한 API를 제공합니다 libvirt 자체로 도구는 아니지만 가상머신을 관리하는 도구를 작성하기위한 API입니다 Xen, KVM, QEMU, OpenVz, VirtualBox, VMware 까지 지원됩니다 Hypervisor&KVM 사용자 인터페이스 툴 Hypervisor QEMU & KVM Libvirt virsh virt-viewer virt-manager
  12. 12. 12 RHEV(RED HAT ENTERPRISE VIRTUALIZATION) RHEV는 KVM을 기반으로 하는 가상화 솔루션임 RHEV&Openstack 호스트 KVM 사용 VDSM, QEMU, libvirt 가 호스트에서 동작 VM / Networks / Storage 를 관리 중앙 집중식 관리 그래픽 인터페이스 제공 가상 리소스 보관 VM / Template / ISOs RHEV 상태를 지속적으로 추적 및 기록 외부 디렉토리 서버 유저 및 권한 제공 물리네트워크와 논리 네트워크가 연결 됨.
  13. 13. 13 OpenStack Hypervisor Support Matrix OpenStack nova에서 지원하는 hypervisor는 아래와 같음. KVM - Kernel-based Virtual Machine. The virtual disk formats that it supports is inherited from QEMU since it uses a mo dified QEMU program to launch the virtual machine. The supported formats include raw images, the qcow2, and VMware formats. LXC - Linux Containers (through libvirt), used to run Linux-based virtual machines. QEMU - Quick EMUlator, generally only used for development purposes. UML - User Mode Linux, generally only used for development purposes. VMware vSphere 4.1 update 1 and newer, runs VMware-based Linux and Windows images through a connection with a v Center server or directly with an ESXi host. Xen (using libvirt) - Xen Project Hypervisor using libvirt as management interface into nova-compute to run Linux, Wind ows, FreeBSD and NetBSD virtual machines. XenServer - XenServer, Xen Cloud Platform (XCP) and other XAPI based Xen variants runs Linux or Windows virtual mach ines. You must install the nova-compute service in a para-virtualized VM. Hyper-V - Server virtualization with Microsoft's Hyper-V, use to run Windows, Linux, and FreeBSD virtual machines. Runs nova-compute natively on the Windows virtualization platform. 출처 :http://docs.openstack.org/liberty/config-reference/content/section_compute-hypervisors.html RHEV&Openstack
  14. 14. 14 OpenStack Hypervisor Nova의 경우 드라이버의 추상화 레이어를 가지며, 이것은 nova deploy를 지원하지만, 모든 driver가 전부 nova의 모든 기능을 fully 지원하는 것은 아님. 출처 :http://docs.openstack.org/developer/nova/support-matrix.html RHEV&Openstack
  15. 15. 15 시스템 자동화 개요 가상화를 통한 클라우드 구축 기업에서는 프로세스에 대한 자동화 부분에 초점을 맞추고 있음 배경 및 이슈  소프트웨어/시스템 - 이원화된 시스템 및 소프트웨어 관리 - 엔지니어 의존적 소프트웨어 설치  장애 대처 능력 - 사용량 폭주시 시스템 구성의 즉각 대처 어려움 - 단편적인 모니터링에 의한 수동 대처 대응 방안  시스템 설치/구성 자동화 - 웹 서버/미들웨어/데이터베이스 - VM에 대한 운영 자동화 구성  장애대응 모니터링/자동확장 - 시스템 자원의 자동 증감 - 로드밸런싱/클러스터링 자동참 여  오픈소스 SW 기반의 도구 개발 - 개발 커뮤니티 확산, 커미터 양성 - 오픈소스 기반의 SW 스택 구성 기대 효과  서비스 운용 효율성 - 시스템 운영 비용에 대한 절감 - 중앙 집중형 관리 시스템 구성  무정지 시스템 제공 - 사용량에 따른 시스템 자동 확장/감소 - 시스템 유연성, 확장성 증대  오픈소스SW 개발 가이드 제시 - 오픈소스SW 개발 방법에 대한 개발자 참여 - 자체 개발SW를 통한 이미지 강화  오픈소스 SW 활성화 정책 - 기업 내부의 오픈소스SW 활성화 정책 - 오픈소스 원천 기술 확보 • 자동 설치/구성(Provisioning): IT인프라 자원을 사용자 요구사항에 맞게 할당, 배치, 배포하여 시스템을 즉시 사용할 수 있도록 만드는 것 • 자동 확장(Auto Scaling): 시스템에 설정된 임계치에 의하여 사용량 등의 증가시 자동으로 확장하여 로드밸런싱에 참여. 예) 수강신청 시스템, 연 말정산 간소화 시스템, 스포츠 문자 중계 시스템 등 시스템자동화프로세스
  16. 16. 16 자동화 기대효과 실시간 장애대응 클라우드 가상머신 리소스 부족 등으로 인한 업무 프로세스에 대한 무중단 아키텍처 구현 비용 절감 기존 운영 관리에 소요되던 많은 시간과 서비스 인터페 이스 모듈 정형화를 통한 서비스 표준화 즉시 대응 패치 등이 변경에 대한 자동 화를 수행함으로써 시스템적 인 변화에 즉각적으로 대응함 으로써 실시간 적용 구현 경쟁력 향상 수작업으로 발생할 수 있는 문제점을 최소화함으로써 시 스템 운영에 대한 안전성 확보와 경쟁력 향상 기술적 측면 • 자동 스케일링 핵심 기술 내재화 • 확장형 인터페이스 아키텍처 • 서비스 재활용 극대화 • 타 시스템 연계 유연성 및 통합 프로세스 측면 비즈니스 측면 • 운영 프로세스 표준화 및 자동화 • 요구에 따른 처리 프로세스 유연성 극대화 • 업무 생산성, 운영 및 효율성 극대화 • 운영 관리 프로세스 표준 정립 • 운영 비용 절감으로 인한 총 소유 비용에 대한 감소 효과 • 무중단 서비스 제공을 통한 고객 신뢰성 증대 • 서비스 재조합을 통한 비즈니스 민첩성 증대 최적의 운영자동화 솔루션 개발에 의한 운영 표준 수립, 장애 대응 체계 마련, 운영 비용 감소 및 기업 경쟁력 확보 시스템자동화프로세스
  17. 17. 17 영역별 고려사항 요구기능 • 시스템 입고시 OS 설치 구성 • OS 버전별 설치, 하이퍼바이저 설치 • IP할당, 디스크 구성 요구기능 • WEB/WAS/DB 런타임 설치 구성 • CMS, 모니터링 에이전트 설치 요구기능 • 운영 체제(Linux) 패치(보안, 버그 등) 적용 • 시스템 소프트웨어 버전 업그레이드(WEB/WAS/DB) 요구기능 • 애플리케이션 버전 관리 • 빌드/배포 시스템에 대한 반자동화 구성(하이브리드 디플로이) OS/하이퍼바이저 설치 시스템 소프트웨어, 에이전트 설치 패치 관리 애플리케이션 배포 서버, 하이버바이저, 패치, 리소스, 애플리케이션에 대한 프로비저닝 제공 Supported by OpenSource Cousulting Enhanced 시스템 구축에 대한 모든 프로세스 영역에 대한 검토 필요 1) PXE: Preboot Execution Environment 시스템자동화프로세스
  18. 18. 18 시스템 자동화 대상 영역 Infrastructure Middleware Application 물리적 머신 VM … • 서비스 별 VM deploy 상황 • VM 상태 모니터링 • VM 사용량 모니터링(CPU, 메모리,…) • 자동 스케일링 VM VM VM DB WAS WEB Server 3rd Party Solution Log DB Log File • 프로비저닝/환경설정 - 소프트웨어 자동설치 - 설치 소프트웨어 환경 구성 설정 • 솔루션 별 맞춤형 모니터링 - 적절한 log 수집 쿼리를 지정하여 Log DB의 내용을 수집 - 정규 표현식 기반의 파일 로그 수집 물리적 머신 … 플랫폼의 서비스 구성 요소 - IaaS 인프라 위에 웹 서버, 미들웨어 및 데이터베이스 서버 구성 상위 애플리케이션은 각 비즈니스에 따라 별도로 구축되어 관리 시스템자동화프로세스
  19. 19. 19 Peacock Introduction 클라우드 환경의 업무 운영을 위한 OS, DBMS, WEB, WAS 등의 설치, 구성, 배포, 패치 관리 등에 필요한 운영 자동화 서버 및 에이전트 사용자가 폭주하는 특정 시간 또는 기간에 발생하는 상황에 능동적으로 대처할 수 있는 자동 확장 및 감소 기능을 통해 장애 대응 및 운영 효율성 극대화 소프트웨어 로드 밸런서를 활용한 동적 로드 밸런싱 기능 추가와 후단 머신에 대한 다양한 알고리즘 적용 및 구성을 통한 관리 Core Modules Operation Management Monitoring 서비스 상태 감시 성능 감시소프트웨어 관리 운영 프로세스 관리 가상화 관리 인스턴스 관리 Operator Admin. 로그수집 뷰어 통계 정보 IAM 사용자 인증 권한 제어 명령어 서비스 접근 통제 필터링 (Filtering) 암호화 (Encryption) Scaling/Provisioning 로드 밸런서 OS 프로비저닝 자동 스케일링 소프트웨어 프로비저닝 User Interface & Control Channel ControlRepository IaaS Orchestration
  20. 20. 20 Peacock 시스템 아키텍처 시스템특징 특징1 특징2 특징3 De-facto(사실상 표준) 오픈소스를 활용한 범용성 운영환경 및 업무환경에 최적화된 응용 구조 중앙 집중화된 관리를 위한 관리자 포털 제공 솔루션영역 연계대상 오픈소스 기반 클라우드 운영 자동화 솔루션 시스템 관리 리포지토리 열람·활용관리 패키지 관리SW관리 관리자 포털 구성관리 그룹 관리사용자관리 가상화 관리 서버 관리 모니터링 MySQL 톰캣 JBoss 아파치 기타 RHEV, AWS 에이전트관리 메모리CPU 디스크 관리 데이터베이스 자동확장 통지임계치 HAProxy 호스트 데이터센터 네트워크 가상머신
  21. 21. 21 Peacock 시스템 상태 모니터링 • Server Summary: 현재 접속된 가상화 관리자의 내용을 포함, 현재 가상머신의 갯수, 템플릿, 인스턴스 구동수, 문제가 발생하는 서버에 대한 알람 정보 • Project Summary: ALM을 통하여 현재 사업부서에서 사용하고 있는 프로젝트에 대한 정보로써 프로젝트 수, SVN 리포지토리의 수, Jenkins Job의 수 • S/W Summary: 현재 관리중인 인스턴스들에 대한 소프트웨어 설치 요약 정보를 표시합니다. Jboss EWS(HTTPD), JBoss EWS(Tomcat), JBoss EAP5의 현재 설치된 소프트웨어 정보 • 하위 그래프: 그래프는 현재 높은 사용량을 보이는 서버의 목록을 상위부터 5개를 보여줌. 각 CPU, Memory, 디스크 정보를 보여주며, 문제가 발생하는 서버를 쉽게 찾을 수 있도록 도와줌
  22. 22. 22 Peacock 소프트웨어 프로비저닝 소프트웨어 설치 설치 결과 설정 확인 설정 변경사항 확인 • 모든 인스턴스의 소프트웨어 구성 정보를 표준화하여, 전체 프로젝트의 설정에 대한 일관성을 부여하는 것이 가능함 • 관리자가 임의로 소프트웨어의 설정 정보를 수정하는 것을 확인하고, 변경사항에 대한 내용 히스토리를 모두 기록하여 추적함 • 소프트웨어 설치, 설정 변경, 삭제를 통합된 중앙 관리 콘솔을 통하여 수행
  23. 23. 23 SDS (Software Defined Storage)
  24. 24. 24 Peacock ( www.osci.kr  PROJECT WITH ATHENA PEACOCK VIDEO ) https://youtu.be/ilbZrRh08Hg
  25. 25. 25 Openstack ( 오픈소스컨설팅 개발 인프라 환경 사례 ) Compute node : 4대 VM : 약 50대 사내 운영 환경 및 개발 환경 ( Centos 7 + community OpenStack(Liberty) + Ceph Hammer)
  26. 26. 26 OpenStack Controller HA 구성 Pacemaker & HA-Proxy Active-backup resources Active-Active resources
  27. 27. 27 OpenStack Controller HA 구성 Pacemaker & HA-Proxy Controller1 -> controller3 Controller1의 component Stop
  28. 28. 28 OpenStack Tuning Galera cluster Active-backup 설정 # vi /etc/haproxy/haproxy.cfg ---------------------------------------------------------------------------------------------- listen galera_cluster bind 10.0.0.100:3306 mode tcp balance leastconn option mysql-check user haproxy_check server controller1 10.0.0.101:3306 check inter 2000 rise 2 fall 5 server controller2 10.0.0.102:3306 check inter 2000 rise 2 fall 5 backup server controller3 10.0.0.103:3306 check inter 2000 rise 2 fall 5 backup ---------------------------------------------------------------------------------------------- Multi-Master로 설정 시, 이슈 발생하여 Active-backup으로 변경
  29. 29. 29 OpenStack Tuning ( RHEL/CentOS 7 ) throughput-performance/tuned.conf [cpu] governor=performance energy_perf_bias=performance min_perf_pct=100 [disk] readahead=>4096 [sysctl] kernel.sched_min_granularity_ns = 10000000 kernel.sched_wakeup_granularity_ns = 15000000 vm.dirty_ratio = 40 vm.dirty_background_ratio = 10 vm.swappiness=10 virtual-host/tuned.conf [main] include=throughput-performance [sysctl] vm.dirty_background_ratio = 5 kernel.sched_migration_cost_ns = 5000000 /usr/lib/tuned/virtual-guest/tuned.conf [main] include=throughput-performance [sysctl] vm.dirty_ratio = 30 vm.swappiness = 30 # tuned-adm profile throughput-performance # tuned-adm active Current active profile: throughput-performance # tuned-adm profile virtual-host # tuned-adm active Current active profile: virtual-host Controller node Compute node
  30. 30. 30 OpenStack Tuning nova.conf 수정 # vi /etc/nova/nova.conf --------------------------- [libvirt] cpu_mode=host-model --------------------------- Instance 의 CPU
  31. 31. 31 Instance 의 CPU OpenStack Tuning nova.conf 수정 # vi /etc/nova/nova.conf --------------------------- [libvirt] cpu_mode=host-passthrough --------------------------- 출처 : http://openstack-in-production.blogspot.kr/2015/08/cpu-model-selection-for- high-throughput.html
  32. 32. 32 OpenStack with CEPH SSD를 Journal disk로 설정 # ceph-deploy osd create --zap-disk osc-ceph001:/dev/sdc:/dev/sda4 osc- ceph001:/dev/sdd:/dev/sda5 osc-ceph001:/dev/sde:/dev/sda6 Glance에 Image는 raw format으로 업로드 Ceph는 qcow2를 지원하지 않음, qcow2 image 사용하면, 인스턴스 생성 시 compute-node에서 qcow2 -> raw로 변환(local disk 사용, convert 시 CPU 부하)
  33. 33. 33 OpenStack Tuning # modinfo kvm_intel | egrep ept # vi /etc/modprobe.d/kvm_intel.conf -------------------------- options kvm_intel ept=N -------------------------- [Unload kvm_intel module] # modprobe -r kvm_intel [Load kvm_intel module] # modprobe kvm_intel # cat /sys/module/kvm_intel/parameters/ept N kvm_intel module parameter 수정 http://openstack-in-production.blogspot.kr/2015/08/ept-and- ksm-for-high-throughput.html EPT(Extended Page Table) : MMU(Memory Management Unit)를 가상 머신에 최적화시키는 CPU의 기능 – Intel
  34. 34. 34 OpenStack Tuning # echo 2048 > /proc/sys/vm/nr_hugepages Or # vi /etc/sysctl.d/10-hugepage.conf vm.nr_hugepages=2048 # sysctl -p Setting Huge-Pages # virsh edit <vm name> <memoryBacking> <hugepages> <page size='2048' unit='KiB' nodeset='0'/> </hugepages> </memoryBacking> Setting to enable huge-pages via Libvirt # nova flavor-key <flavor-ID> set hw:mem_page_size=<Number of Huge pages> Setting to enable huge-pages to nova # cat /proc/meminfo | grep -i huge AnonHugePages: 13791232 kB HugePages_Total: 2048 HugePages_Free: 2048 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB
  35. 35. 35 Ansible Ansible : Python 기반의 Configuration Management System(like, Chef, puppet etc) Shade : OpenStack Cloud 환경을 운영하기 위한 Client Library # yum install git gcc glibc tzdata glibc-common python-devel # git clone git://github.com/ansible/ansible.git –recursive # pip install paramiko PyYAML Jinja2 httplib2 six # pip install shade Installation Ansible 2.1 & shade
  36. 36. 36 Ansible clouds: testing: auth: auth_url: http://controller.osci.kr:5000/v2.0 username: jyy password: XXXXX project_name: infra • ~/.config/openstack/clouds.yaml : 오픈스택 인증정보 - name: Gather facts about hosts: localhost tasks: - name: Executing osserver facts os_server_facts: server: test* cloud: testing - name: debuging debug: var: openstack_servers • os_server_facts.yml : test로 시작되는 인스턴스 정보 수집 # ansible-playbook test_os_server_facts.yml • os_networks_facts.yaml : 오픈스택에 설정된 네트워크 정보 수집 - name: Gather network facts hosts: localhost tasks: - name: Executing os_subnets_facts os_subnets_facts: cloud: testing - name: Print out the result debug: var: openstack_subnets • os_subnet_facts.yml : 오픈스택에 설정된 Subnet 정보 수집 - name: Gather network facts hosts: localhost tasks: - name: Executing os_networks_facts os_networks_facts: cloud: testing - name: Print out the result debug: var: openstack_networks
  37. 37. 37 Ansible [root@cent7-temp ~]# ansible-playbook os_server_facts.yml [WARNING]: Host file not found: /etc/ansible/hosts [WARNING]: provided hosts list is empty, only localhost is available PLAY [Gather facts about all instances] **************************************** TASK [setup] ******************************************************************* ok: [localhost] TASK [Executing os server facts] *********************************************** ok: [localhost] TASK [debuging] **************************************************************** ok: [localhost] => { "openstack_servers": [ { "HUMAN_ID": true, "NAME_ATTR": "name", "OS-DCF:diskConfig": "MANUAL", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "compute04", "OS-EXT-SRV-ATTR:hypervisor_hostname": "compute04", "OS-EXT-SRV-ATTR:instance_name": "instance-0000017e", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-SRV-USG:launched_at": "2016-03-17T07:43:35.000000", "OS-SRV-USG:terminated_at": null, "accessIPv4": "", "accessIPv6": "", "addresses": { "private-10.10.10.0": [ { "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:39:a2:xx", "OS-EXT-IPS:type": "fixed", "addr": "10.10.10.42", "version": 4 }, "az": "nova", "cloud": "testing", "config_drive": "", "created": "2016-03-17T07:42:36Z", "flavor": { "id": "3" }, "hostId": "0fe4f96621ffa5db7268ac0cb5320ec6b1404a30ba43a23b2780ba58", "human_id": "testserver", "id": "bd73715c-0fc4-4183-8dbc-6aa699ddfa55", "image": { "id": "06315c8c-0f68-48bb-a3be-3e9b8c07370b" }, "key_name": "jyy-key-001", "metadata": {}, "name": "testServer", "networks": { "private-10.10.10.0": [ "10.10.10.42", "192.168.0.155" ] }, "os-extended-volumes:volumes_attached": [], "progress": 0, "region": "", "request_ids": [], "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tenant_id": "0c6a2e1f1992416f892292778fa61423", "updated": "2016-03-17T07:43:36Z", "user_id": "7ae4af63f88b431f897243140b3e541c", "volumes": [], "x_openstack_request_ids": [] }, PLAY RECAP ********************************************************************* localhost : ok=3 changed=0 unreachable=0 failed=0
  38. 38. 38 Ansible - name: Launch the new instance hosts: localhost tasks: - name: Upload key os_keypair: name: jyy-key-001 public_key_file: jyy-public-key cloud: testing - name: Boot Test instance os_server: name: testServer image: CentOS7 flavor: m1.medium security_groups: default key_name: jyy-key-001 auto_ip: yes nics: - net-name: private-10.10.10.0 wait: yes cloud: testing register: test_server_result - name: Print out the result of launching instance debug: var: test_server_result - name: Wait for the test instance wait_for: port: 22 host: "{{ test_server_result.openstack.accessIPv4 }}" search_regex: OpenSSH timeout: 200 - name: Add new host to inventory add_host: name: "{{ test_server_result.openstack.name }}" ansible_ssh_host: "{{ test_server_result.openstack.accessIPv4 }}" - name: Setup Nginx on the Test Instance hosts: testServer become: yes remote_user: centos tasks: - name: Install EPEL repo yum: name: https://dl.fedoraproject.org/pub/epel/epel-release-latest- {{ ansible_distribution_major_version }}.noarch.rpm state: present - name: Import EPEL GPG key rpm_key: key: /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }} state: present - name: Run yum update yum: name=* state=latest update_cache=yes - name: Install Nginx server yum: name: nginx state: present notify: enable nginx - name: Copy test page copy: src: example.html dest: /usr/share/nginx/html/example.html notify: - restart nginx - name: enable nginx action: service name=nginx enabled=yes - name: restart nginx action: service name=nginx state=restarted # ansible-playbook --verbose --private-key=jyy-private-key test_os_launching_instance.yml • test_os_launching_instance.yml
  39. 39. 39 To do Network I/O SR-IOV나 DPDK 적용 Jumbo frames 적용(Storage 대역) Storage I/O Ceph Tuning LBaaS Ceilometer & Heat를 이용한 Auto-scaling
  40. 40. 40 NewsLetter
  41. 41. 41 NewsLetter
  42. 42. 42 OPEN SHARE CONTRIBUTE ADOPT REUSE

×