| 1 | [목차] |
|---|
| 1 | 2 | |
|---|
| 3 | == 개요 == |
|---|
| 4 | [[클라우드 컴퓨팅|클라우드]] 자원을 관리하고, 정의하고, 활용하기 위한 프레임워크. 비영리 단체인 오픈스택 재단에서 운영 중이며 [[아파치 라이선스]] 2.0을 사용한다. |
|---|
| 5 | |
|---|
| 6 | 현재 클라우드 시스템을 만드는 가장 표준적인 [[운영 체제]]이다. [[아마존 웹 서비스]]와 유사한 형태로 사용자가 요청할 때마다 가상 머신 등의 리소스를 공급하고 이를 운영, 유지하는 시스템을 운영체제라고 할 때, 현재 가장 성공적으로 사실상의 기술 표준으로 인정 받고 있는 클라우드 운영체제라고 할 수 있다. 다만, 오픈스택은 전통적인 운영체제처럼 수백 대의 서버를 부팅 디스크에서 구동하여 운영체제를 올려 놓은 것과는 다르다. 오픈스택은 자원을 관리한다는 점에서 운영체제의 특성을 공유하지만 어디까지나 클라우드 컴퓨팅이라는 맥락에서만 그러하다. |
|---|
| 7 | |
|---|
| 8 | 오픈스택은 서버, 스토리지, 네트워크, 심지어 어플리케이션 자원들의 클라우드까지도 제어하는 공통 플랫폼을 제공한다. 오픈스택은 웹 기반 인터페이스, 커맨드 라인 인터페이스, API를 사용해 관리할 수 있다. 하이퍼바이저, 스토리지 시스템, 네트워크 하드웨어와 소프트웨어 등 다양한 유형의 상용 또는 오픈 소스 하드웨어와 소프트웨어를 제어하며, 제조사 전용 자원 위에서 클라우드 관리 계층을 제공한다. |
|---|
| 9 | |
|---|
| 10 | 원래 Rackspace라는 서비스 업체와 [[NASA]]가 같이 만들기 시작했는데, 경쟁 상대였던 프로젝트들이 자사 프로덕트 특화(Cloudstack)라든가, 유료([[VMware]] vSphere)라든가 하는 삽질을 거듭한 끝에 개발자가 유입이 되더니 어느새 업계 표준이 되어 있던 케이스. 대표적으로 [[카카오(기업)|카카오]]의 사내 클라우드 플랫폼이 오픈스택으로 구축되어 있다. |
|---|
| 11 | |
|---|
| 12 | 버전은 첫자리가 A, B, C, D 순으로 진행이 되며 각 6개월 마다 새로운 버전이 업데이트된다. 그리고 각 버전은 1년 정도만 업데이트가 이루어지며 그 이후는 버려진다.(EOL) |
|---|
| 13 | |
|---|
| 14 | [[http://m.zdnet.co.kr/news_view.asp?article_id=20131113135430|SW 변방이라고?…오픈스택 뒤흔든 '중국의 힘']] |
|---|
| 15 | |
|---|
| 16 | == 하드웨어 자원 == |
|---|
| 17 | === 컨트롤러 노드 (Controller Node) === |
|---|
| 18 | 컨트롤러 자체와 다른 공유 서비스를 관리하는 노드. |
|---|
| 19 | Identity 서비스(Keystone), 이미지 서비스(Glance), Compute 관리(Nova), 네트워킹 에이전트(Neutron), 대시보드(Horizon) 등을 실행한다. 서버 측 API 서비스를 관리하며, 구성 요소들의 요청을 조율하고 오픈스택 배포를 위한 주요 인터페이스 역할을 한다. |
|---|
| 20 | |
|---|
| 21 | 추가적으로 컨트롤러 노드에 블록 스토리지(Cinder), 오브젝트 스토리지(Swift), Orchestration(Heat), Telemetry(Ceilometer) 서비스를 실행할 수 있으며, 최소한 두 개의 네트워크 인터페이스(NIC)[* 쉽게 말해 랜카드가 두 개 이상]가 필요하다. 하나는 물리 호스트 자체의 매니지먼트 네트워크, 다른 하나는 오픈스택 내부에서 가상 머신을 위해 사용할 VM 네트워크로 사용하는 것이 일반적이기 때문이다. 이 때 VM 네트워크가 될 NIC은 OS에서 IP를 부여하지 않은 Unnumbered 상태로 둔다. |
|---|
| 22 | |
|---|
| 23 | === 컴퓨트 노드 (Compute Node) === |
|---|
| 24 | 가상 머신에 컴퓨트 자원을 제공하는 노드. 오픈스택이 관리하는 가상 머신은 이 노드에서 동작한다고 볼 수 있다. |
|---|
| 25 | 인스턴스 동작 시에는 하이퍼바이저(Hypervisor)가 실행된다. 기본적으로 KVM 하이퍼바이저를 사용하며, 그 외에도 다양한 하이퍼바이저를 사용할 수 있다. |
|---|
| 26 | |
|---|
| 27 | 또한 컴퓨트 노드는 인스턴스를 가상 네트워크에 연결하는 네트워킹 서비스 에이전트(Networking Service Agent)를 실행하며, Security Groups를 통하여 인스턴스에 방화벽 서비스를 제공한다. 예전 버전에서는 이 기능을 담당하는 네트워크 노드가 따로 존재했지만 Liberty 버전부터는 컴퓨트 노드가 이 기능을 수행하게 되면서 네트워크 노드는 사라지게 되었다. |
|---|
| 28 | |
|---|
| 29 | == 구성 요소 == |
|---|
| 30 | 오픈스택은 핵심 프로젝트로 불리는 여러 개의 프로젝트들로 구성되어 있으며, 핵심 프로젝트들은 오픈스택 로고를 사용할 수 있으며 필수 테스트를 반드시 통과해야 한다. 간단히 말해서 대부분의 사람이 오픈스택 배포 환경에서 사용하는 것이 바로 핵심 프로젝트이다. |
|---|
| 31 | === Nova (Compute) === |
|---|
| 32 | CPU, 메모리, 디스크, 네트워크 인터페이스 등 가상 머신(VM)의 자원을 관리한다. IaaS(Infrastructure-as-a-Service)의 가장 중요한 부분으로써, 자동으로 컴퓨터 자원 풀을 관리하고 다양한 가상화 기술들을 사용할 수 있는 환경을 제공한다. 주요 모듈은 파이썬으로 제작되었으며, 어느 특정 하드웨어에 종속되지 않고 수평적으로 확장이 가능하도록 설계되었다. |
|---|
| 33 | === Neutron (Networking) === |
|---|
| 34 | === Keystone (Identity) === |
|---|
| 35 | 오픈스택에서 사용하는 여러 서비스들의 인증(Identity)을 관리한다. 이 때 사용하는 토큰은 Memcached라는 [[인 메모리 데이터베이스]]에 저장된다. |
|---|
| 36 | === Horizon (Dashboard) === |
|---|
| 37 | === Glance (Image) === |
|---|
| 38 | === Cinder (Block Storage) === |
|---|
| 39 | === Swift (Object Storage) === |
|---|
| 40 | == 기타 == |
|---|
| 41 | 오픈스택을 편리하게 설치할 수 있도록 해 주는 툴로 Microstack([[우분투]]), Packstack([[CentOS]])이 있다. |
|---|
| 42 | |
|---|
| 43 | Microstack의 경우 우분투의 snap 패키지로 설치되며, 순정 오픈스택의 서비스들이 /etc 밑에 위치하는 반면 Microstack은 /var/snap/microstack/common/etc 밑에 위치한다. 이 때문에 순정 오픈스택을 접한 사람들은 오히려 혼동이 올 수 있다. |
|---|
| 44 | |
|---|
| 45 | == 외부 링크 == |
|---|
| 46 | * [[http://www.openstack.org/|홈페이지]] |
|---|
| 47 | |
|---|
| 48 | [[분류:클라우드 컴퓨팅]] |
|---|