OpenStack Class2014.11.25 00:18

안녕하세요~!!


오랜만에 다시 블로그에 포스팅을 하는 것 같습니다.

그동안 책이 출간되고 세미나에 강의에 정신이 없어서 글을 쓸 시간이 없었던것 같습니다.


제가 지금까지 연재한 OpenStack Class 강좌 내용은 모두 "오픈스택을 다루는 기술"에 포함하였습니다. 계속 이어서 "오픈스택을 다루는 기술"에 있는 내용을 모두 이곳에 연재를 할까 합니다. 이곳에서 연재되는 강좌도 많이 많이 사랑해 주세요~!! 


지금까지 우리는 데브스택을 설치해서 오픈스택이 어떻게 동작하는지를 살펴보았습니다. 데브스택은 서버를 재부팅 했을 때 서비스를 재시작하기 어려워 다시 설치해야 하는 불편함이 있습니다. 또한 개발중인 소스를 받아서 사용하기 때문에 불안정합니다. 그래서 서비스를 하기에는 적합하지 않습니다. 이번 장에서는 메뉴얼 방식으로 서비스가 가능한 오픈스택을 설치해보겠습니다.

 

시스템 구성도를 그려보자

오픈스택을 설치하기 전에는 반드시 시스템 구성도 및 네트워크 구성도를 먼저 그려야 합니다. 데브스택 같은 경우는 쉘 스크립트가 모든 서비스를 자동으로 설치하기 때문에 시스템 구성도를 몰라도 상관이 없었으나 서비스를 위한 매뉴얼 방식으로 설치할 때는 반드시 시스템 구성도를 그려야 합니다. 그럼, 지금부터 서비스가 되는 오픈스택 설치를 위한 시스템 구성도를 그려보겠습니다.

 

Neutron를 이용한 오픈스택 네트워킹 구성

Neutron을 이용해서 오픈스택 네트워킹을 구성하려면 컨트롤러 노드, 네트워크 노드, 컴퓨트 노드 이렇게 최소 서버 3대 이상이 필요합니다.



컨트롤러 노드에는 서비스를 관리하는 컴포넌트들이 설치됩니다. 데이터베이스를 지원할 MySQL이나 MariaDB가 기본으로 설치되고 메시지 서비스로 RabbitMQ 또는 Qpid가 설치됩니다. 기본 서비스로는 인증을 담당하는 Keystone, 이미지 서비스인 Glance, 컴퓨트 노드들을 관리하는 Nova, 네트워크 서비스를 관리하는 Neutron ServerML2 Plugin, 데쉬보드 서비스인 Horizon이 설치됩니다. 이 외에 필요에 따라서 블록 스토리지 서비스인 Cinder, 오브젝트 스토리지 서비스인 Swift, 데이터베이스 서비스인 Trove, 오케스트레이션을 담당하는 Heat, 텔레미터 서비스인 Ceilometer를 설치할 수 있습니다.

네트워크 노드에는 Neutron 서비스의 기본 플러그인 ML2가 설치되며, L2 에이전트인 OpenvSwitch, L3 에이전트, DHCP 에이전트가 설치됩니다.

마지막으로 컴퓨트 노드에는 오픈스택의 기본 하이퍼바이저인 KVM이나 QEMU가 설치되며, 네트워크 서비스로 ML2 플러그인, L2 에이전트인 OpenvSwitch가 설치됩니다. 이때 컨트롤러 노드에 Ceilometer가 설치되어 있다면, 컴퓨트 노드에는 Ceilometer 에이전트를 설치해야 합니다.

네트워크 인터페이스는 컨트롤러 노드일 경우 매니징을 위한 모니터링 및 관리용 인터페이스 하나만 있으면 됩니다. 그러나 네트워크 노드에는 컨트롤러 노드와 연결되는 인터페이스 하나, 컴퓨트 노드 간의 통신을 담당하는 인터페이스 하나, 외부 네트워크와 연결을 하기 위한 인터페이스 하나 이렇게 총 3개의 인터페이스가 필요합니다. 컴퓨트 노드는 컨트롤러 노드와의 연결을 위한 인터페이스 하나, 네트워크 노드와 컴퓨트 노드 간 연결을 위한 인터페이스 이렇게 2개가 필요합니다.


 

nova-network를 이용하는 오프스택 네트워킹 구성

Neutron을 사용하지 않고 기존 네트워킹 서비스인 nova-network를 사용해서 오픈스택을 설치한다면 컨트롤러 노드, 컴퓨트 노드 이렇게 서버 2대 이상이 필요합니다.

컨트롤러 노드에 MySQL이나 MariaDB가 설치되고 메시지 서비스로 RabbitMQQpid가 설치됩니다. 기본 서비스 역시 인증을 위한 Keystone, 이미지 서비스인 Glance, 컴퓨트 서비스인 Nova, 데쉬보드 서비스인 Horizon이 설치됩니다. Neutron과 달리 Nova에서 네트워크 서비스를 포함하므로 별도의 네트워크 서비스를 설치하지 않습니다. 필요에 따라 설치되는 서비스들은 Neutron과 마찬가지로 블록 스토리지 서비스인 Cinder, 오브젝트 스토리지 서비스인 Swift, 데이터베이스 서비스인 Trove, 오케스트레이션을 담당하는 Heat, 텔레미터 서비스인 Ceilometer가 설치됩니다.

컴퓨트 노드에는 하이퍼바이저인 KMV이나 QEMU가 설치되며, nova-network가 함께 설치됩니다. 컨트롤러 노드에 Ceilometer를 설치하였으므로 컴퓨트 노드도 Ceilometer 에이전트를 설치합니다. 컴퓨트 노드의 자원 역시 얼마나 썼는지 모니터링을 하려면 자원 정보를 수집하는 에이전트가 설치되어야 합니다. 수집된 자원 정보는 컨트롤러 노드에 설치된 Ceilometer를 통하여 사용자에게 알려줍니다.

네트워크 인터페이스 카드는 Neutron과 마찬가지로 사용됩니다. 컨트롤러 노드는 모니터링과 관리를 위한 인터페이스 하나가 필요합니다. 그리고 컴퓨트 노드는 컨트롤러 노드와 연결을 위한 인터페이스 하나, 외부 네트워크와 통신을 하기 위한 인터페이스 하나 이렇게 인터페이스 2개가 필요합니다.


이렇게 해서 서비스가 되는 오픈스택을 설치하기 위한 첫번째 준비과정인 시스템 구성도를 그려보았습니다. 다음시간에는 오픈스택을 설치하기 위한 두번째 준비과정을 살펴보도록 하겠습니다. 


그럼, 다음시간에 다시 만나요~!! ^^ 

Posted by 나리 짱!!! naleejang