SlideShare a Scribd company logo
ONOS SDN Controller
소스코드 분석 및 SDN 응용개발
Mobile Convergence Lab, Computer Engineering,
Kyung Hee University
Sangyun Han
Email : sangyun0628@khu.ac.kr
SDN/NFV 이론, 실습, 최신동향
[ONOS 다중 인스턴스 설치 및 테스트]
Structure of Machines
• 다중 인스턴스 설치 시, 사용할 머신들의 구조
Mobile Convergence Laboratory 2
Internet
Physical machine
Virtual machine Virtual machine Virtual machine
Instance 1 Instance 2 Instance 3
Eth0 Eth1 Eth0 Eth1 Eth0 Eth1
Host-Only Network
Structure of Machines
• 다중 인스턴스 설치 시, 사용할 머신들의 구조
Mobile Convergence Laboratory 3
Internet
Physical machine
Virtual machine Virtual machine Virtual machine
Instance 1 Instance 2 Instance 3
Eth0 Eth1 Eth0 Eth1 Eth0 Eth1
Host-Only Network
현재 설치 중인
인스턴스 Instance Duplication
Configure
1. Change linux user authority
2. Install openssh-server
Mobile Convergence Laboratory 4
Configuration
• 다중 노드 설치 시,
• 유저명 sdn에 비밀번호 없도록 권한 추가(SSH 접속 시)
• /etc/sudoers 파일 수정
• sdn ALL=(ALL) NOPASSWD:ALL
• SSH 설치
• $ sudo apt-get install openssh-server
Mobile Convergence Laboratory 5
Configuration
Mobile Convergence Laboratory 6
ONOS - Install multi instance
1. Getting ONOS
2. Installing ONOS
3. Start ONOS
Mobile Convergence Laboratory 7
https://wiki.onosproject.org/display/ONOS/Installing+and+Running+ONOS
ONOS Multiple Instances-scenario 1
Mobile Convergence Laboratory 8
- Download source code
- Build ONOS project
- Package the project
- Deploy the package
Deploy & Install
Copy VM instance
ONOS Multiple Instances-scenario 2
Mobile Convergence Laboratory 9
- Download source code
- Build ONOS project
- Package the project
- Deploy the package
Deploy & Install
1. Prepare multi machine
• 물리 머신 or 가상 머신
• 홀수의 머신이 필요( ∵ RAFT algorithm for distributed clustering)
• 물리 머신이라면
Java 설치 및 경로 설정(1,2), 환경 셋팅(4,5), 경로 설정(7) 필요
• 가상 머신이라면 그대로 복사
(주의! MAC 주소 수동 변경)
Mobile Convergence Laboratory 10
Multiple Instance Setting (1/6)
1. Prepare multi machine
Mobile Convergence Laboratory 11
Multiple Instance Setting (1/6)
주의!
Mobile Convergence Laboratory 12
새로 고침
1. Prepare multi machine
Mobile Convergence Laboratory 13
Multiple Instance Setting (1/6)
인스턴스 3개 복제 완료
2. cell script
Mobile Convergence Laboratory 14
Multiple Instance Setting (2/6)
• a cell is a collection of environment variables that are used
• cells make it easy to use the utility scripts to package,
configure, install, and run ONOS.
• ~/onos/tools/test/cells
2. cell script
Mobile Convergence Laboratory 15
Multiple Instance Setting (2/6)
• ~/onos/tools/test/cells
• 디렉토리에 FILE_NAME 파일에
다음과 같이 작성
• 머신과 환경에 맞게 작성
3. Define control plane
• cell 명령어와 작성한 스크립트로 제어 평면에 대한 정의
$ cell FILE_NAME
Mobile Convergence Laboratory 16
Multiple Instance Setting (4/6)
4. Connect SSH
• 배포할 머신과 패키징을 받을 머신들끼리 연결
$ ssh-keygen -t rsa // 각 인스턴스 머신마다 key 생성
$ onos-push-keys $OC1 // 노드 개수 만큼
$ onos-push-keys $OC3
$ onos-verify-cell // 연결 확인
Mobile Convergence Laboratory 17
Multiple Instance Setting (3/6)
…
4. Connect SSH
• 배포할 머신과 패키징을 받을 머신들끼리 연결
Mobile Convergence Laboratory 18
Multiple Instance Setting (3/6)
주의!
OpenSSH-Server 설치 필수
(p.5 참고)
4. Connect SSH
• 배포할 머신과 패키징을 받을 머신들끼리 연결
Mobile Convergence Laboratory 19
Multiple Instance Setting (3/6)
연결할 인스턴스 수 만큼 push-key 진행
password (mclab)
초기 계정 비밀번호
4. Connect SSH
• 각 인스턴스끼리 연결 확인
Mobile Convergence Laboratory 20
Multiple Instance Setting (3/6)
5. Packaging and Deploying
$ mvn clean install
$ onos-package
$ onos-install $OC1
$ onos-install $OC3
배포 및 실행, onos의 process PID가 반환
Mobile Convergence Laboratory 21
Multiple Instance Setting (5/6)
…
5. Packaging and Deploying
$ onos-install $OC1
$ onos-install $OC3
배포 및 실행, onos의 process PID가 반환
Mobile Convergence Laboratory 22
Multiple Instance Setting (5/6)
…
6. Manage Multi instances
• CLI
$ onos -w $OC1 //cell script에 등록한 인스턴스 이름
또는
$ onos -w 192.168.56.101 //해당 인스턴스의 IP
• GUI in web
http://192.168.56.101:8181/onos/ui/login.html
//접속하고자 하는 인스턴스의 IP
Mobile Convergence Laboratory 23
Multiple Instance Setting (6/6)
6. Manage Multi instances
• CLI
//cell에 등록한 인스턴스 이름
$ onos -w $OC1
//해당 인스턴스 IP
$ onos -w 192.168.56.101
Mobile Convergence Laboratory 24
Multiple Instance Setting (6/6)
Mobile Convergence Laboratory 25
<ONOS Instance>
ONOS command
• onos-service $OC1 start/stop/restart/status
• onos-install
• onos-uninstall $OC1
• onos-show-cell
• onos-log
Mobile Convergence Laboratory 26
ONOS - Test multi instance
1. mininet script by python code
2. connect multi instance to mininet
Mobile Convergence Laboratory 27
http://mininet.org/sample-workflow/
mininet depth & fanout
• depth 2 and fanout 8
= 64 hosts connected to 9 switches
Mobile Convergence Laboratory 28
S
S SS S SS SS
H H…
8 hosts
H H…
8 hosts
…64 hosts
8 switches
1 switch
switch number = ∑ (𝑓𝑎𝑛𝑜𝑢𝑡)+,-./012
+3-
python script
Mobile Convergence Laboratory 29
입력되는 컨트롤러와의 연결
sudo python tree.py $OC1 $OC2 $OC3
컨트롤러 실행부
토폴로지 셋팅
tree.py code
import sys
from mininet.net import Mininet
from mininet.topo import Topo
from mininet.log import setLogLevel
from mininet.cli import CLI
from mininet.topolib import TreeTopo
from mininet.node import RemoteController, OVSKernelSwitch
myTree = TreeTopo(depth=3,fanout=4)
def run( controllers ):
net = Mininet( topo=myTree, controller=None, autoSetMacs=True )
ctrl_count = 0
for controllerIP in controllers:
net.addController( 'c%d' % ctrl_count, RemoteController, ip=controllerIP )
ctrl_count += 1
net.start()
CLI( net )
net.topo()
if __name__ == '__main__':
setLogLevel( 'info' )
if len(sys.argv ) > 1:
controllers = sys.argv[ 1: ]
else:
print 'Usage: sudo python tree.py '
exit(1)
run(controllers)
Mobile Convergence Laboratory 30
for copy & paste
Mobile Convergence Laboratory 31

More Related Content

What's hot

Building Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
Building Multi-Site and Multi-OpenStack Cloud with OpenStack CascadingBuilding Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
Building Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
Joe Huang
 
SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)
NAIM Networks, Inc.
 
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
InfraEngineer
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
VMware Tanzu Korea
 
Hypervisors
HypervisorsHypervisors
Hypervisors
SrikantMishra12
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
rockplace
 
Basic onos-tutorial
Basic onos-tutorialBasic onos-tutorial
Basic onos-tutorial
Eueung Mulyana
 
Linux command ppt
Linux command pptLinux command ppt
Linux command ppt
kalyanineve
 
클라우드 환경을 위한 네트워크 가상화와 NSX(기초편)
클라우드 환경을 위한 네트워크 가상화와 NSX(기초편)클라우드 환경을 위한 네트워크 가상화와 NSX(기초편)
클라우드 환경을 위한 네트워크 가상화와 NSX(기초편)
Laehyoung Kim
 
Introduction to Consul
Introduction to ConsulIntroduction to Consul
Introduction to Consul
Viswanath J
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
Paradigma Digital
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overview
indevlab
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
Winton Winton
 
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOSKERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
Universidad Militar Nueva Granada-Universidad de Cundinamarca
 
해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution
Nalee Jang
 
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
InfraEngineer
 
VMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project PresentationVMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project Presentation
Rabbah Adel Ammar
 
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
STePINForum
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
Sparkbit
 
Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)
sangyun han
 

What's hot (20)

Building Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
Building Multi-Site and Multi-OpenStack Cloud with OpenStack CascadingBuilding Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
Building Multi-Site and Multi-OpenStack Cloud with OpenStack Cascading
 
SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)
 
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
 
Hypervisors
HypervisorsHypervisors
Hypervisors
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
 
Basic onos-tutorial
Basic onos-tutorialBasic onos-tutorial
Basic onos-tutorial
 
Linux command ppt
Linux command pptLinux command ppt
Linux command ppt
 
클라우드 환경을 위한 네트워크 가상화와 NSX(기초편)
클라우드 환경을 위한 네트워크 가상화와 NSX(기초편)클라우드 환경을 위한 네트워크 가상화와 NSX(기초편)
클라우드 환경을 위한 네트워크 가상화와 NSX(기초편)
 
Introduction to Consul
Introduction to ConsulIntroduction to Consul
Introduction to Consul
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overview
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
 
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOSKERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
 
해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution해외 사례로 보는 Billing for OpenStack Solution
해외 사례로 보는 Billing for OpenStack Solution
 
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
[MeetUp][2nd] 오리뎅이의_쿠버네티스_네트워킹_v1.2
 
VMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project PresentationVMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project Presentation
 
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
 
Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)
 

Similar to ONOS - multiple instance setting(Distributed SDN Controller)

ONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and testONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and test
sangyun han
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
John Kim
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
Amazon Web Services Korea
 
Build the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouseBuild the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouse
jieun kim
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
충섭 김
 
Mcollective orchestration tool 소개
Mcollective orchestration tool 소개Mcollective orchestration tool 소개
Mcollective orchestration tool 소개
태준 문
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migration
ymtech
 
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
Ji-Woong Choi
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
wonyong hwang
 
.Net conf 2019 Korea_ ASP.NET Core를 통한 HealthCheck 서비스 구현
.Net conf 2019 Korea_ ASP.NET Core를 통한 HealthCheck 서비스 구현.Net conf 2019 Korea_ ASP.NET Core를 통한 HealthCheck 서비스 구현
.Net conf 2019 Korea_ ASP.NET Core를 통한 HealthCheck 서비스 구현
Hong Min Kim
 
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
OpenStack Korea Community
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
NAVER D2
 
(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell
Jay Park
 
Node.js 기본
Node.js 기본Node.js 기본
Node.js 기본
Han Jung Hyun
 
[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf
HeeJung Chae
 
Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례
SangIn Choung
 
SDN컨트롤러 오벨_아토리서치
SDN컨트롤러 오벨_아토리서치SDN컨트롤러 오벨_아토리서치
SDN컨트롤러 오벨_아토리서치
ATTO Research
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
Terry Cho
 
K8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postK8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_post
Inho Kang
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
Tommy Lee
 

Similar to ONOS - multiple instance setting(Distributed SDN Controller) (20)

ONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and testONOS - setting, configuration, installation, and test
ONOS - setting, configuration, installation, and test
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
 
Build the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouseBuild the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouse
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
 
Mcollective orchestration tool 소개
Mcollective orchestration tool 소개Mcollective orchestration tool 소개
Mcollective orchestration tool 소개
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migration
 
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
.Net conf 2019 Korea_ ASP.NET Core를 통한 HealthCheck 서비스 구현
.Net conf 2019 Korea_ ASP.NET Core를 통한 HealthCheck 서비스 구현.Net conf 2019 Korea_ ASP.NET Core를 통한 HealthCheck 서비스 구현
.Net conf 2019 Korea_ ASP.NET Core를 통한 HealthCheck 서비스 구현
 
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell(OCI 탐험일지) cloud shell
(OCI 탐험일지) cloud shell
 
Node.js 기본
Node.js 기본Node.js 기본
Node.js 기본
 
[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf
 
Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례Io t에서의 소프트웨어단위테스트_접근사례
Io t에서의 소프트웨어단위테스트_접근사례
 
SDN컨트롤러 오벨_아토리서치
SDN컨트롤러 오벨_아토리서치SDN컨트롤러 오벨_아토리서치
SDN컨트롤러 오벨_아토리서치
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
K8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postK8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_post
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
 

More from sangyun han

SDN, ONOS, and Network Virtualization
SDN, ONOS, and Network VirtualizationSDN, ONOS, and Network Virtualization
SDN, ONOS, and Network Virtualization
sangyun han
 
Introduce to OpenVirteX
Introduce to OpenVirteXIntroduce to OpenVirteX
Introduce to OpenVirteX
sangyun han
 
XOS in open CORD project
XOS in open CORD projectXOS in open CORD project
XOS in open CORD project
sangyun han
 
Introduction to CORD project
Introduction to CORD projectIntroduction to CORD project
Introduction to CORD project
sangyun han
 
OpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSOpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOS
sangyun han
 
KhuHub student guideline
KhuHub student guidelineKhuHub student guideline
KhuHub student guideline
sangyun han
 
KhuHub professor guideline
KhuHub professor guidelineKhuHub professor guideline
KhuHub professor guideline
sangyun han
 
Introduction of ONOS and core technology
Introduction of ONOS and core technologyIntroduction of ONOS and core technology
Introduction of ONOS and core technology
sangyun han
 
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
sangyun han
 
[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed
sangyun han
 
RAFT Consensus Algorithm
RAFT Consensus AlgorithmRAFT Consensus Algorithm
RAFT Consensus Algorithm
sangyun han
 
Hazelcast 소개
Hazelcast 소개Hazelcast 소개
Hazelcast 소개
sangyun han
 
Git & Github Seminar-1
Git & Github Seminar-1Git & Github Seminar-1
Git & Github Seminar-1
sangyun han
 
Git & Github Seminar-2
Git & Github Seminar-2Git & Github Seminar-2
Git & Github Seminar-2
sangyun han
 

More from sangyun han (14)

SDN, ONOS, and Network Virtualization
SDN, ONOS, and Network VirtualizationSDN, ONOS, and Network Virtualization
SDN, ONOS, and Network Virtualization
 
Introduce to OpenVirteX
Introduce to OpenVirteXIntroduce to OpenVirteX
Introduce to OpenVirteX
 
XOS in open CORD project
XOS in open CORD projectXOS in open CORD project
XOS in open CORD project
 
Introduction to CORD project
Introduction to CORD projectIntroduction to CORD project
Introduction to CORD project
 
OpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSOpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOS
 
KhuHub student guideline
KhuHub student guidelineKhuHub student guideline
KhuHub student guideline
 
KhuHub professor guideline
KhuHub professor guidelineKhuHub professor guideline
KhuHub professor guideline
 
Introduction of ONOS and core technology
Introduction of ONOS and core technologyIntroduction of ONOS and core technology
Introduction of ONOS and core technology
 
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
 
[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed
 
RAFT Consensus Algorithm
RAFT Consensus AlgorithmRAFT Consensus Algorithm
RAFT Consensus Algorithm
 
Hazelcast 소개
Hazelcast 소개Hazelcast 소개
Hazelcast 소개
 
Git & Github Seminar-1
Git & Github Seminar-1Git & Github Seminar-1
Git & Github Seminar-1
 
Git & Github Seminar-2
Git & Github Seminar-2Git & Github Seminar-2
Git & Github Seminar-2
 

ONOS - multiple instance setting(Distributed SDN Controller)

  • 1. ONOS SDN Controller 소스코드 분석 및 SDN 응용개발 Mobile Convergence Lab, Computer Engineering, Kyung Hee University Sangyun Han Email : sangyun0628@khu.ac.kr SDN/NFV 이론, 실습, 최신동향 [ONOS 다중 인스턴스 설치 및 테스트]
  • 2. Structure of Machines • 다중 인스턴스 설치 시, 사용할 머신들의 구조 Mobile Convergence Laboratory 2 Internet Physical machine Virtual machine Virtual machine Virtual machine Instance 1 Instance 2 Instance 3 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1 Host-Only Network
  • 3. Structure of Machines • 다중 인스턴스 설치 시, 사용할 머신들의 구조 Mobile Convergence Laboratory 3 Internet Physical machine Virtual machine Virtual machine Virtual machine Instance 1 Instance 2 Instance 3 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1 Host-Only Network 현재 설치 중인 인스턴스 Instance Duplication
  • 4. Configure 1. Change linux user authority 2. Install openssh-server Mobile Convergence Laboratory 4
  • 5. Configuration • 다중 노드 설치 시, • 유저명 sdn에 비밀번호 없도록 권한 추가(SSH 접속 시) • /etc/sudoers 파일 수정 • sdn ALL=(ALL) NOPASSWD:ALL • SSH 설치 • $ sudo apt-get install openssh-server Mobile Convergence Laboratory 5
  • 7. ONOS - Install multi instance 1. Getting ONOS 2. Installing ONOS 3. Start ONOS Mobile Convergence Laboratory 7 https://wiki.onosproject.org/display/ONOS/Installing+and+Running+ONOS
  • 8. ONOS Multiple Instances-scenario 1 Mobile Convergence Laboratory 8 - Download source code - Build ONOS project - Package the project - Deploy the package Deploy & Install Copy VM instance
  • 9. ONOS Multiple Instances-scenario 2 Mobile Convergence Laboratory 9 - Download source code - Build ONOS project - Package the project - Deploy the package Deploy & Install
  • 10. 1. Prepare multi machine • 물리 머신 or 가상 머신 • 홀수의 머신이 필요( ∵ RAFT algorithm for distributed clustering) • 물리 머신이라면 Java 설치 및 경로 설정(1,2), 환경 셋팅(4,5), 경로 설정(7) 필요 • 가상 머신이라면 그대로 복사 (주의! MAC 주소 수동 변경) Mobile Convergence Laboratory 10 Multiple Instance Setting (1/6)
  • 11. 1. Prepare multi machine Mobile Convergence Laboratory 11 Multiple Instance Setting (1/6)
  • 13. 1. Prepare multi machine Mobile Convergence Laboratory 13 Multiple Instance Setting (1/6) 인스턴스 3개 복제 완료
  • 14. 2. cell script Mobile Convergence Laboratory 14 Multiple Instance Setting (2/6) • a cell is a collection of environment variables that are used • cells make it easy to use the utility scripts to package, configure, install, and run ONOS. • ~/onos/tools/test/cells
  • 15. 2. cell script Mobile Convergence Laboratory 15 Multiple Instance Setting (2/6) • ~/onos/tools/test/cells • 디렉토리에 FILE_NAME 파일에 다음과 같이 작성 • 머신과 환경에 맞게 작성
  • 16. 3. Define control plane • cell 명령어와 작성한 스크립트로 제어 평면에 대한 정의 $ cell FILE_NAME Mobile Convergence Laboratory 16 Multiple Instance Setting (4/6)
  • 17. 4. Connect SSH • 배포할 머신과 패키징을 받을 머신들끼리 연결 $ ssh-keygen -t rsa // 각 인스턴스 머신마다 key 생성 $ onos-push-keys $OC1 // 노드 개수 만큼 $ onos-push-keys $OC3 $ onos-verify-cell // 연결 확인 Mobile Convergence Laboratory 17 Multiple Instance Setting (3/6) …
  • 18. 4. Connect SSH • 배포할 머신과 패키징을 받을 머신들끼리 연결 Mobile Convergence Laboratory 18 Multiple Instance Setting (3/6) 주의! OpenSSH-Server 설치 필수 (p.5 참고)
  • 19. 4. Connect SSH • 배포할 머신과 패키징을 받을 머신들끼리 연결 Mobile Convergence Laboratory 19 Multiple Instance Setting (3/6) 연결할 인스턴스 수 만큼 push-key 진행 password (mclab) 초기 계정 비밀번호
  • 20. 4. Connect SSH • 각 인스턴스끼리 연결 확인 Mobile Convergence Laboratory 20 Multiple Instance Setting (3/6)
  • 21. 5. Packaging and Deploying $ mvn clean install $ onos-package $ onos-install $OC1 $ onos-install $OC3 배포 및 실행, onos의 process PID가 반환 Mobile Convergence Laboratory 21 Multiple Instance Setting (5/6) …
  • 22. 5. Packaging and Deploying $ onos-install $OC1 $ onos-install $OC3 배포 및 실행, onos의 process PID가 반환 Mobile Convergence Laboratory 22 Multiple Instance Setting (5/6) …
  • 23. 6. Manage Multi instances • CLI $ onos -w $OC1 //cell script에 등록한 인스턴스 이름 또는 $ onos -w 192.168.56.101 //해당 인스턴스의 IP • GUI in web http://192.168.56.101:8181/onos/ui/login.html //접속하고자 하는 인스턴스의 IP Mobile Convergence Laboratory 23 Multiple Instance Setting (6/6)
  • 24. 6. Manage Multi instances • CLI //cell에 등록한 인스턴스 이름 $ onos -w $OC1 //해당 인스턴스 IP $ onos -w 192.168.56.101 Mobile Convergence Laboratory 24 Multiple Instance Setting (6/6)
  • 25. Mobile Convergence Laboratory 25 <ONOS Instance>
  • 26. ONOS command • onos-service $OC1 start/stop/restart/status • onos-install • onos-uninstall $OC1 • onos-show-cell • onos-log Mobile Convergence Laboratory 26
  • 27. ONOS - Test multi instance 1. mininet script by python code 2. connect multi instance to mininet Mobile Convergence Laboratory 27 http://mininet.org/sample-workflow/
  • 28. mininet depth & fanout • depth 2 and fanout 8 = 64 hosts connected to 9 switches Mobile Convergence Laboratory 28 S S SS S SS SS H H… 8 hosts H H… 8 hosts …64 hosts 8 switches 1 switch switch number = ∑ (𝑓𝑎𝑛𝑜𝑢𝑡)+,-./012 +3-
  • 29. python script Mobile Convergence Laboratory 29 입력되는 컨트롤러와의 연결 sudo python tree.py $OC1 $OC2 $OC3 컨트롤러 실행부 토폴로지 셋팅
  • 30. tree.py code import sys from mininet.net import Mininet from mininet.topo import Topo from mininet.log import setLogLevel from mininet.cli import CLI from mininet.topolib import TreeTopo from mininet.node import RemoteController, OVSKernelSwitch myTree = TreeTopo(depth=3,fanout=4) def run( controllers ): net = Mininet( topo=myTree, controller=None, autoSetMacs=True ) ctrl_count = 0 for controllerIP in controllers: net.addController( 'c%d' % ctrl_count, RemoteController, ip=controllerIP ) ctrl_count += 1 net.start() CLI( net ) net.topo() if __name__ == '__main__': setLogLevel( 'info' ) if len(sys.argv ) > 1: controllers = sys.argv[ 1: ] else: print 'Usage: sudo python tree.py ' exit(1) run(controllers) Mobile Convergence Laboratory 30 for copy & paste