'분류 전체보기' 카테고리의 글 목록 (3 Page)
Loading...
2020. 2. 11. 18:18

Stein 오픈스택 클라우드 서버 구축(9) - 대시보드 서비스(Horizon) 구축 및 대시보드 기본 구조

blog post 기본적인 오픈스택 클라우드 서비스 구축 마지막 단계 입니다. 이번 포스팅에서는 대시보드 서비스를 제공하는 Horizon 서비스를 구성해 보도록 하겠습니다. Horizon은 httpd 기반으로 동작하며, 컨트롤러 노드에서 서비스를 제공하므로 아래 과정은 컨트롤러 노드에서 진행합니다. 1. Horizon 서비스 설치 및 설정 Horizon 서비스를 설치합니다. [root@Controller ~]# yum --enablerepo=centos-openstack-stein,epel -y install openstack-dashboard 다음과 같이 대시보드 및 httpd 관련 설정을 진행합니다. [root@Controller ~]# vi /etc/openstack-dashboard/local_s..

2020. 2. 11. 13:06

Stein 오픈스택 클라우드 서버 구축(8) - 테넌트 네트워크 환경 구축

blog post 본 포스팅에서는 테넌트 네트워크를 제공하기 위한 설정을 진행해 보도록 하겠습니다. 앞서 네트워크 서비스 포스트에서 구성을 마무리하며 말씀드린 것과 같이 실제 VM이 사용하기 위한 가상의 테넌트 네트워크를 구성하기 위한 추가 설정이 필요합니다. 가상 네트워크를 구성하기 위해 오픈스택에서 제공하는 l2 네트워크 인터페이스 타입에는 여러가지가 있습니다. 대표적으로 flat, vlan, gre, vxlan 등의 l2 네트워크 인터페이스 타입을 지정할 수 있습니다. 각 인터페이스를 어떻게 사용하는가에 따라 호스트 시스템에서 동작하는 네트워크 인터페이스 구성이 달라집니다. 각 l2 인터페이스에 대해서는 추후에 별도로 다루도록 하겠습니다. 본 클라우드 구축 과정에서는 다음과 같이 구성해 보도록 하겠..

2020. 2. 9. 15:24

Stein 오픈스택 클라우드 서버 구축(7) - 네트워크 서비스 (Neutron) 설치 및 구성

blog post 이번 포스팅에서는 VM의 네트워킹 서비스를 제공하는 Neutron 서비스를 구축해보도록 하겠습니다. 특히 이번 과정에서는 앞서 구성 개요 포스트에서 말씀드린 것과 같이 VM의 네트워크 트래픽 처리를 전담하는 별도의 노드(이하 네트워크 노드)를 구성할 계획입니다. 별도 노드 없이 개별 컴퓨트 노드에서 vm 네트워크 트래픽을 자체적으로 처리하는 구성도 추후에 따로 다루도록 하겠습니다. 1. 전체 구성 본 포스팅을 통해 다음과 같은 서비스를 최종적으로 구성해 보도록 하겠습니다. 이번 네트워크 서비스를 구성하는 과정에서 위와 같이 총 3개의 노드가 구축됩니다. 기본적인 네트워킹 기능은 Neutron을 통해 제공되며, VM이 Neutron을 통해 네트워킹 서비스를 활용할 수 있어야 하므로 Nov..

2020. 1. 31. 15:07

Stein 오픈스택 클라우드 서버 구축(6) - 컴퓨트 서비스 (Nova) 설치 및 구성

blog post 이번 포스트에서는 오픈스택의 핵심 기능이라고 볼 수 있는 Nova 컴퓨트 서비스를 구축하는 과정에 관하여 다루도록 하겠습니다. Nova 서비스에 대한 기본 내용은 해당 포스트를 참고하시기 바랍니다. [바로가기] 1. 전체 구성 이번 포스트에서 구축할 서비스 구성은 아래와 같습니다. 앞서 전체 오픈스택 시스템 구성 포스팅에서 컴퓨트 노드를 분리하기로 하였습니다. 이번 포스팅에서 nova-compute 서비스가 Compute0 노드에 구성됩니다. 따라서 이번 포스트에서는 컨트롤러와 컴퓨트 노드를 구분하여 진행하도록 하겠습니다. 컨트롤러 노드 구성 컨트롤러 노드에는 인스턴스 사용자의 vm 관련 명령을 해당 컴퓨트 노드에 전달하는 역할을 담당합니다. 이 밖에도 여러 컴퓨트 노드가 멀티 구성인 ..

2020. 1. 31. 14:15

[오픈스택 클라우드 개념] 컴퓨트 서비스(Nova)

blog post 이번 포스팅에서는 오픈스택에서 가장 핵심 기술인 Nova 컴퓨트 서비스에 대해 알아보도록 하겠습니다. 1. 컴퓨트 서비스란? 오픈스택에서 컴퓨트 서비스는 가상머신(VM, 혹은 인스턴스라 부름)이 필요한 자원들을 할당하고 관리합니다. 여기에서 자원이란 주로 호스트 시스템으로 부터 가상화된 메모리, CPU, 디스크, 네트워크 등을 의미하는데, Nova라고 불리는 오픈스택 컴퓨트 서비스가 이러한 가상화된 자원을 관리하고 VM에 할당하는 역할을 담당합니다. 물론 좀 더 정확히는 실제 자원을 가상화 하는 작업은 물리 자원을 가지고 있는 노드의 하이퍼바이저가 담당합니다. (가상화와 관련해서는 해당 포스트를 참고하시기 바랍니다. [바로가기]) 이러한 하이퍼바이저와 Nova 컴퓨트 서비스가 상호작용하..

2020. 1. 30. 21:21

[리눅스 가상화 개념] 가상화(Virtualization)와 하이퍼바이저 (Hypervisor)

blog post 이번 포스팅에서는 클라우드 컴퓨팅의 핵심 기술인 가상화에 대해 알아보고 특히 가상화에서 빼놓을 수 없는 하이퍼바이저도 함께 알아보도록 하겠습니다. 1. 가상화란? 일반적으로 가상화란, 컴퓨팅에 필요한 물리적 자원을 복제하는 기술을 가리킵니다. 물리 자원을 복제하여 새로운 가상의 자원을 생성하는 행위를 흔히 "가상화 한다"고 표현합니다. 여기에서 물리적 자원은 어떠한 컴퓨터를 구동하기 위해 반드시 필요한 CPU나 메모리, 디스크, 네트워크, 사운드 카드, 프린터 등, 거의 대부분의 시스템 자원이 해당됩니다. 가상화를 하는 가장 큰 이유는 자원 비용 절감의 효과가 크기 때문입니다. 기존 물리 장비에서 사용하던 서버나 어플리케이션을 클라우드 기반의 가상화 된 환경으로 마이그레이션 함으로써 물..

2020. 1. 30. 15:47

Stein 오픈스택 클라우드 서버 구축(5) - 이미지 서비스 (Glance) 설치 및 구성

blog post 이번 포스트에서는 인증 서비스(Keystone)에 이어 이미지 관리 서비스(Glance)를 구축해 보도록 하겠습니다. 본 과정은 모두 컨트롤러 노드에서 진행되며, Glance 관련 기본 내용은 해당 포스트를 참고하시기 바랍니다. [바로가기] 1. 전체 구성 이번 포스트를 통해 구성될 컨트롤러 노드 서비스 구성은 다음과 같습니다. 2. Glance 서비스 사용자 및 역할 추가 앞서 인증서비스(Keystone) 관련 포스트에서 사용자나 서비스는 API 통신을 위해 인증 및 승인 절차가 필요하다고 했습니다. 따라서 일반 사용자 뿐만 아니라 오픈스택 컴포넌트들도 사용자로서 도메인과 역할(role), 프로젝트에 귀속되어야 하고 서비스간 질의 응답을 위한 endpoint url 등이 지정되어야 합..

2020. 1. 29. 01:14

[오픈스택 클라우드 개념] 이미지 서비스(Glance)와 지원 이미지 포맷

blog post 이번 포스트에서는 오픈스택의 Glance 이미지 서비스에 관하여 알아보도록 하겠습니다. 1. 가상 디스크 이미지와 Glance 오픈스택 클라우드에서 가상머신을 생성하기 위해 "이미지"라고 부르는 파일이 필요합니다. 이 디스크 이미지는 데이터가 저장된 파일의 형태로, ISO라고 부르는 광학 디스크나 QCOW2, VHD 등의 가상 하드 디스크와 같이 실제 물리 CD/DVD나 하드디스크를 파일의 포맷으로 생성한 것입니다. 오픈스택에서는 Glance 서비스가 전적으로 이러한 이미지를 관리하는 서비스를 제공하고 있습니다. 주로 이미지 생성 및 삭제, 정보 관리, 관련 정보 DB 동기화, Rest API 통신 등의 역할을 Glance가 담당하고 있습니다. 2. Glance 서비스 구조 그림2. G..

2020. 1. 28. 18:30

Stein 오픈스택 클라우드 서버 구축(4) - 인증 서비스 (Keystone) 설치 및 구성

blog post 이번 포스트에서는 Keystone 인증 서비스를 구축해 보겠습니다. 이번 작업 역시 컨트롤러 노드에서 진행되며, Keystone에 대한 개념은 앞서 포스팅했던 글을 참고하시기 바랍니다 [바로가기] 1. 전체 구성 컨트롤러 노드에 구성될 서비스는 다음과 같습니다. 2. DB 생성 앞서 설치한 MariaDB에 Keystone 서비스에 필요한 데이터를 저장하기 위한 DB를 생성하고 권한을 부여합니다. [root@Controller ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 10.3..

2020. 1. 28. 15:30

Stein 오픈스택 클라우드 서버 구축(3) - 오픈스택 기본 패키지 설치 (update 2020.01.28)

blog post 이번 포스팅에서는 오픈스택 관련 기본 패키지를 세팅하는 과정에 관하여 다루도록 하겠습니다. 본 과정은 컨트롤러 노드에서 진행합니다. 패키지 구성 컨트롤러 노드에 구성될 패키지는 다음과 같습니다. - MariaDB: 오픈스택 서비스 및 VM 관련 설정들을 보관하기 위해 사용됩니다. - RabbitMQ: 오픈스택 서비스 간 상호 메시지를 주고 받기 위한 메시지 큐로 사용됩니다. - Memcached: 범용 분산 메모리 캐시 시스템으로, 자주 외부 데이터에 접근해야 하는 경우에 발생하는 오버헤드를 줄이기 위해 메모리에 캐싱하고 읽어들이는 역할을 담당합니다. 오픈스택 서비스에서는 주로 인증 메커니즘에서 토큰 캐싱을 위해 사용됩니다. 1. 오픈스택 패키지 설치 및 레포지토리 구성 오픈스택 패키지..

2020. 1. 28. 13:12

[오픈스택 클라우드 개념] 인증 서비스(Keystone)

blog post 이번 포스트에서는 오픈스택에서의 인증, 승인 등의 서비스를 제공하는 Keystone 서비스에 관하여 다뤄보도록 하겠습니다. 오픈스택 인증 서비스(Keystone) 특징 앞서 말씀드린 바와 같이 Keystone의 핵심은 사용자 및 각종 서비스 접근에 대한 인증 서비스를 제공하는 것이지만, 이에 더하여 다양한 기능을 수행합니다. 구체적으로 Keystone 서비스는 오픈스택 시스템의 백엔드에서 아래와 같은 기능들을 수행합니다. - Identity: Keystone 서비스의 핵심 기능입니다. 사용자 및 그룹, 프로젝트, 역할 등을 관리합니다. - Assignment: 역할을 관리하고 사용자에게 역할을 할당합니다. - Resource: 자원 할당을 위해 도메인 별로 조직을 구분하고 조직 내 프로..

2020. 1. 10. 21:43

[Mac] 맥 VMware Fusion 11.5에서 Windows 8.1, 10 Guest OS (가상머신) 화면 깜빡임 및 블랙아웃, 블랙스크린 현상

blog post 블랙아웃 상황 기존 패럴렐즈에서 사용하던 Windows 8.1 가상머신을 VMware로 마이그레이션 하고 Vmware 툴을 설치했습니다. 이후 재부팅을 하고 보니 아래와 같이 화면이 심하게 깜빡이기 시작했습니다. 처음 보는 현상이었는데, 깜빡이는 도중에도 마우스나 키보드 사용은 가능했습니다. 하지만 사용하면 할 수록 깜빡임이 심해졌고, 결국 완전히 블랙스크린이 되어버려서 더 이상 컨트롤이 어려운 상황이 되었습니다. 이를 해결하기 위해 여러가지 방법을 찾아 보았고, 근본적인 원인을 찾은 것은 아니지만 해결하는 과정을 기록해 봅니다. 1. 비디오 드라이버 문제? 혹시나 하는 생각에 우선 재부팅부터 해보았지만 효과는 없었습니다. 따라서 비디오 드라이버에 문제가 있을 것으로 의심되었습니다. 사..

[C++ / STL] sort 함수를 활용한 오름차순 / 내림차순 정렬

blog post Sort 알고리즘 얼마전 현장 코딩 테스트에서 Sort 함수를 활용한 내림차순 정렬을 구현하려고 했는데 키워드가 생각이 안나서 써먹지 못한 경험이 있습니다. 결국은 직접 내림차순 정렬을 구현했는데, C++ STL의 기본 알고리즘 중에 greater 와 less를 활용하면 정렬을 아주 간단하게 구현할 수 있습니다. STL Sort 함수 우선 STL Sort 함수의 기본 포맷은 다음과 같습니다. default (1) template void sort (RandomAccessIterator first, RandomAccessIterator last); custom (2) template void sort (RandomAccessIterator first, RandomAccessIterator..

2020. 1. 2. 01:16

[C++] 5가지 온라인 컴파일러 사이트 비교

blog post 개발환경을 구축하기 위해서는 여러가지로 손이 참 많이 갑니다. 그래서 저는 온라인 컴파일 환경을 자주 사용하는 편입니다. 물론 이번 포스팅에서 추천드릴 사이트들은 기업에서의 대규모 프로젝트를 빌드하고 테스트하기에 적합한 환경은 절대 아닙니다. 다만 어떤 알고리즘을 테스트해야 하는 경우, 혹은 코딩 테스트를 연습하면서 디버깅을 해보고 싶거나, 컴파일러 별로 어떤 차이가 있는지 알고싶은 경우에 유용합니다. 컴파일러 사이트 별로 지원하는 언어나 컴파일러, 라이브러리 등이 전부 다릅니다. 본 포스팅에서는 주로 C++과 관련하여 각 온라인 컴파일 서버별 특징들을 살펴보도록 하겠습니다. OnlineGDB 제가 가장 즐겨쓰는 온라인 컴파일 사이트 입니다. 사실 Boost 라이브러리를 지원하지 않는다..

2020. 1. 1. 20:44

[알고리즘 / C++] DFS(깊이 우선 탐색) 알고리즘 개념 및 스택과 재귀를 활용한 구현

DFS(Depth First Search) 알고리즘 DFS(깊이 우선 탐색) 역시 앞서 포스팅했던 BFS 알고리즘과 마찬가지로 길찾기 알고리즘을 구현할 때 유용한 그래프 탐색 알고리즘입니다. Brute Force(완전탐색) 형태로 모든 경우의 수를 다 시도하여 답을 찾는 방법으로, 이름과 같이 깊이(Depth)를 끊임없이 추적하며 전체 정점을 탐색합니다. 앞서 인접행렬과 BFS탐색 알고리즘에서 보였던 아래와 같은 그래프와 인접행렬을 예로 들어보겠습니다. 1부터 탐색을 시작한다고 가정할 때, BFS가 2와 3을 큐에 담는 것과 달리, DFS는 오직 가장 근접한 값인 2만 스택에 담습니다. 그리고 두번째 뎁스인 2에서 다음 탐색을 이어갈 정점을 찾습니다. 1,4,5가 2와 연결되어있지만, 1은 이미 탐색을 ..

2019. 12. 26. 17:07

[Algorithm / C++] 인접행렬과 BFS (너비 우선 탐색) 알고리즘 및 구현

이번 포스팅에서는 탐색 알고리즘에서 가장 중요하게 활용되는 BFS 알고리즘과 인접 행렬에 대해 다루도록 하겠습니다. 인접행렬 인접행렬에 대한 설명은 다른 사이트에서 워낙 많이 다뤄 온 주제이기 때문에 본 포스팅에서 구체적으로 설명하지 않겠습니다. 그럼에도 불구하고 본 포스팅에서 인접행렬을 다루는 가장 큰 이유는 BFS 알고리즘과 관련이 많기 때문입니다. 보통 경로 탐색 알고리즘을 사용하는 경우, 예를 들어 A->Z로 가는 방향에 대해 최적의 경로를 찾고자 하는 경우, 다양한 방식으로 경로를 계산하고 이를 표현할 수 있습니다. 어떠한 알고리즘을 사용하느냐에 따라 경로가 달라지는데, 이러한 경로에 대한 정보를 행렬로 표현할 수 있습니다. 흔히 사용되는 행렬이 인접행렬입니다. 인접 행렬에는 다음과 같이 몇 가..

2019. 12. 26. 03:40

[Algorithm / C++] String을 파싱하는 3가지 방법

문자열 파싱 알고리즘 String 처리와 관련된 알고리즘 문제를 해결하는 과정에서 종종 Sub String을 파싱해서 처리해야 하는 상황에 직면하곤 합니다. 사실 파싱하는 방법은 머릿속으로 방법을 그리는 것은 쉽다고 생각할 수 있지만 직접 만들어보지 않으면 생각보다 어려울 수도 있습니다. 그래서 이번 포스팅에서는 알고리즘 문제를 해결하기 위해 반드시 필요한 문자열 파싱 알고리즘에 대해 다루고자 합니다. 문자열을 파싱하는 방법은 정말 다양합니다. 언어에 따라서는 기본적으로 파싱 기능을 제공하기도 합니다. Java가 대표적으로 파싱을 위한 tokenizer기능을 제공하고 있습니다. C++의 경우에는 공식적으로 STL을 통한 파싱 알고리즘은 아직 제공하지 않고 있습니다. (다만 시간 포맷으로 구성된 strin..

2019. 12. 25. 17:17

[Algorithm / C++] BackTracking 기법을 활용한 순열(Permutation)과 조합(Combination) 구현

blog post 순열과 조합 개발 과정에서 어떤 집합의 경우의 수를 찾아야 하는 경우가 종종 있습니다. 이때 경우에 따라 조합 혹은 순열을 활용해야 하는데, 둘의 차이는 다음과 같습니다. - 조합(Combination): 순서 바뀜 허용 안함. 중복 허용 안함. 표현: nCr = n! / r! * (n - r)! . - 순열(Permutation): 순서 바뀜 허용. 중복 허용 안함. 표현: nPr = nCr x r! . 예를 들어 {1,2,3} 세개의 요소를 가지고 있는 벡터 v={1,2,3} 를 활용하여 각각 순열과 조합을 구성하고자 하는 경우 아래와 같은 경우의 수를 도출할 수 있습니다. 순열: - 3개의 원소로 조합 가능한 모든 구성: 3P3 (nPn = n!). 가능한 구성: {1,2,3}, ..

2019. 12. 24. 02:05

[리눅스 네트워크] 1개의 NIC에서 Veth를 이용하여 멀티 IP 구성하기 (Update. 2020.04.30)

blog post Veth peer 구성부터 활용까지 집에서 오픈스택 기반 Private 클라우드를 구축하던 도중 호스트 네트워크 구성 단계에서 문제가 발생했습니다. 가상화가 필요 없는 Cinder, Controller, Network 노드는 어차피 Vmware로 돌릴 계획이므로 가상 NIC를 2개씩 (각각 관리용, 통신용 NIC)구성하였으나, Compute Node가 문제였습니다. 현재 Compute Node의 경우, 가상화를 지원하는 Intel NUC Kit으로 구축하였는데 문제는 물리 NIC가 한 개라는 점입니다. 이럴때 흔히 다음과 같이 멀티 IP를 사용하여 구성하곤 합니다: eno0:0 - 192.168.0.2/24 --> gw - 192.168.0.1 eno0:1 - 192.168.0.3/24..

2018. 1. 28. 16:53

가로수길에 입점한 전 세계 500호 애플스토어 오픈 방문기

b l o g p o s t 아이폰 배터리 게이트로 최근 떠들석 했던 애플이 국내 500호 애플스토어를 오픈했다는 소식을 듣고 방문해봤습니다. 배터리 사건 이후 썩 이미지가 좋지 않았는데, 국내 첫 오픈으로 궁금했던 터라 오픈 당일에 방문해봤습니다. 역시 어마어마한 인파가 휘몰아쳐 내부는 발 디딜 곳도 없었고, 사진도 찍기 힘들어서 2장 밖에 건지질 못했네요.. 우선 위치는 신사역과 압구정 역 사이에 있는 가로수길 중앙에 있어요. 길은 찾기 쉬웠습니다. 저는 신사역 방면에서 출발했고 가로수길 입구에서 길 따라 쭉 가면 바로 나와요. 외부 전경 미국에서 방문했을 당시 가장 인상적이었던건 전면 유리로 된 애플 스토어 외관이었습니다. 국내 가로수길점 애플 스토어 역시 전면 유리로 되어 주변 건물 중에 눈에 띄..