렬프








'Development > Solution' 카테고리의 다른 글

[64bit] 고려사항  (0) 2015.04.21
[병렬프로그래밍] Intel Parallel Studio 2013 평가  (0) 2015.04.21




'Development > Solution' 카테고리의 다른 글

[64bit] 고려사항  (0) 2015.04.21
[병렬프로그래밍] Intel Parallel Studio 2015 XE  (0) 2015.04.21

지난주 micro-software에서 주최한 "ISTEP 2013"세미나에 다녀왔습니다.

본 세미나의 주제는 멀티코어 개발자들을 위한 병렬프로그래밍입니다.

유익한 정보인 것 같아 공유하고자 합니다.

 

세미나는 다음과 같은 순으로 진행되었습니다.

1. Think Parallel

2. 강력한 멀티코어 프로세스 전략

3. 인텔 컴포저 XE 2013을 활용한 최적화, 벡터화 그리고 병렬화

4. 인텔 제온 파이에서의 애플리케이션 포팅

5. 제온 파이와 TBB를 결합한 반도체 제조 연구 분야 실무 사례 소개

 

<1. Think Parallel>

  "Think Parallel" 주제에서는 멀티코어/매니코어의 물리적한계 및 그에 따른 병렬처리의 필요성과 효율에 대해 이야기했습니다.

 

<2. 강력한 멀티코어 프로세스 전략>

  멀티코어 프로세스를 위한 인텔의 제품으로, 분석도구를 포함하는 통합 수트인 "Parallel Studio XE 2013" "Cluster Studio XE 2013",

그리고 차세대 프로세서인 "Intel Xeon Phi coprocessors"를 소개하였습니다.

 

"Parallel Studio XE 2013" "Cluster Studio XE 2013"의 주요기능입니다.

- 향상된 컴파일러 및 라이브러리 성능

- 3세대 인텔® 코어™ 프로세서와 다음 세대인 해즈웰(Haswell) 마이크로 아키텍처 및 인텔 제온(Xeon) Phi 코프로세서 지원

- 충돌 및 보안 취약성을 가져올 수 있는 버퍼 오버플로우를 감지하고 찾아낼 수 있는 포인터 검사기(Pointer checker)

- 기존 메모리 분석으로는 불가능했던 비 할당된 메모리 공간을 찾아주는 메모리 성장 분석(Memory growth analysis)

- 클러스터 안정성 향상을 가져오는 개선된 무장애 무중단(fault tolerance) MPI 라이브러리

 

<3. 컴포저 XE 2013을 활용한 최적화, 벡터화 그리고 병렬화>

프로젝트의 최적화 및 벡터화의 중요성(특히 Intel CilkPlus)과 인텔 컴파일러 성능을 강조하였습니다.

실제 인텔 컴파일러 데모를 시연하여 테스트의 결과를 볼 수 있었습니다.

 

예제) 1024 행렬의 곱셈의 수행속도 테스트

 

최적화 옵션

벡터화 옵션

결과()

1

/Od (최적화옵션 no)

자동벡터화

30

2

/O2

/Qvec-

19

3

/O3

자동벡터화

10

4

/O3

/QxAVX

4.5

※자동벡터화 : 컴파일러에 기본으로 포함되어있는 벡터화

 

적절한 최적화 옵션과 벡터화를 통하여 효율적인 속도를 얻을 수 있음을 확인하였습니다.

 

<4. 인텔 제온 파이에서의 애플리케이션 포팅>

HPC(High Performance Computing) 및 멀티프로세서 병렬화를 최대로 이끌어 낼 수 있는 제품이라는 소개로

인텔의 제품을 하드웨어적, 소프트웨어적으로 나누어 설명하였습니다.

 

- 하드웨어적 측면에서의 적용 : Intel Xeon Phi coprocessors

- 소프트웨어적 측면에서의 적용 : Intel XE 제품(Parallel Studio XE 2013, Cluster Studio XE 2013)

 

Xeon Phi Host컴퓨터의 PCIe 슬롯에 장착되어, 보조 프로세서의 역할을 수행하는 코프로세서입니다.

이러한 Xeon Phi 61코어와 512비트의 SIMD 벡터처리 능력과 1테라플롭이라는 최대 성능을 가지고 있습니다.

제온파이(Linux OS)는 호스트컴퓨터(windows OS) PCIe 버스를 통해 통신합니다.

 

제온파이의 목적은 application에 따라 호스트와 코프로세스의 사용을 코드상으로 제어하여 성능을 최대한 전략적으로 할 수 있도록 튜닝하는 것에 있습니다.

이러한 목적을 위해서는 application의 병렬화 및 벡터화를 최적으로 하여야 성능을 극대로 끌어올릴 수 있습니다.

 

<5. 제온 파이와 TBB를 결합한 반도체 제조 연구 분야 실무 사례 소개>

마지막 파트에서는 윈도우OS상에서 제온파이를 제어하는 기술을 설명하였습니다.

 

윈도우 os가 설치된 호스트 컴퓨터에서 제온 파이를 사용하기 위해서는,

- windows 7이상의 64bit 버전 설치

- .Net Framework 4.0이상

- MPSS 설치 - 제온 파이 코프로세서 드라이버

- 제온 파이의 플래시 업데이트

- 개발도구 설치. Visual Studio 2008이상

- 인텔 컴파일러 설치(Intel Composer XE 2013 update1 SP1

위와 같은 순서로 개발환경을 구축합니다.

구축을 완료한 후 OpenMP, MPI, TBB, Cilk Plus, MKL등의 라이브러리를 사용하여 병렬화를 구현할 수 있습니다.

 

하지만 윈도우 기반에서의 사용에는 데이터타입이나 포인터사용불가 등 데이터 구조의 제한과 문법 및 컴파일의 제한 등 아직 미흡한 부분이 많아,

제온파이의 적용은 어려워 보입니다.

 

 

실제 프로젝트에 적용해볼 항목들은 아래와 같습니다.

- Intel Parallel Studio XE 2013를 통한 프로젝트 분석

- Intel C++ Compiler 적용

- Intel TBB 라이브러리 적용

- Intel Cilk Plus 적용

- Intel MPI library (for Windows) 적용

 

[첨부] Intel ISTEP 2013 세미나 발표자료

 

 

이상입니다

<금일 스터디 진행사항>

1. GIT 개념 및 간단한 사용법 발표(정X원님)와 이클립스와 GIT 연동

2. 프로젝트 관리 토론

3. 각 파트별 프로젝트 리딩
  - 주제에 대한 개발 가능 성 검토 및 개발 범위 산정
  - 공통 모듈 산출


---------------------------------------------------------------------------------------

1. GIT 개념 및 간단한 사용법 발표

: Git을 SVN과 비교하여 장점을 위주로 설명함.
  > Git은 "로컬저장소"가 있음
  > 속도가 빠름
  > commit에 대한 부담이 없음
  > 원격 저장소와 연결되어있지 않아도 버전관리가 가능함
  > 원격 저장소가 폭파되어도 로컬 저장소로 복원이 가능함

: 스테이지 영역이란?
  > 변경사항이 저장소에 commit하기 전에 거치는 중간단계(commit되기 전의 파일의 내용까지 기억해둠)
  > staging area가 필요할 때?
   : 커밋하기전에 변경사항들을 하나씩 "확인"하는 역할을 수행
         
: Git의 Snapshot
  >Git에서 각 버전의 차이점이 아닌 버전자체를 저장하는 기능
  > 파일과 각 버전의 변경내역이 아닌 버전 자체만을 다운로드 하기때문에 느리지 않고, 로컬 저장소에서 받기 때문에 
    네트워크가 불가한 상황에서도 받을 수 있음
  > 버전 자체를 저장하므로 버전의 차이가 발생할 때 이를 극복할 수 있게 도와줌

※ Git을 잘 설명해주는 곳...
- 이클립스와 github연동 : http://unikys.tistory.com/330


2. 프로젝트 관리 토론

: 프로젝트 관리도구 "Trello" 사용
  > 각 파트별로 보드를 만들어 관리
  > "Action Item(주단위 요구사항) -> Request(세부사항) -> TO DO(해야할것) -> Doing(진행중) -> Done(완료)"


3. 각 파트별 프로젝트 리딩

  ※ 공통목표 : 하이브리드 웹 구현

  [1PART]
   - 주제 : 나만의 다이어리
   - 내용 : 폰빌더(?)를 이용하여 나만의 다이어리를 만들자!
   - 목표 : 속지선택, 글쓰기, 사진넣기, 스티커 붙이기 등등
   - 엔드유저 : 다이어리를 사용하는 모든 일반인들

  [2PART]
   - 주제 : PocketTube
   - 내용 : 유튜브 API를 활용하여 확장되고 편리한 유튜브 서비스 제공
   - 최소목표 : 결과 내 검색, 즐겨찾기 기능(핸드폰 계정)
   - 최대목표 : 온라인계정 적용
   - 엔드유저 : 유튜브를 효과적으로 사용하고자하는 일반인들

  [3PART]
   - 주제 : 쇼핑몰 구축
   - 내용 : Spring과 MVC를 사용하여 기능구현보다는 만드는 과정에 포커스를 두고 진행
   - 최소목표 : 기본 웹페이지 구성(회원관리 및 게시판)
   - 최대목표 : 웹 쇼핑몰 
   - 엔드유저 : 쇼핑몰고객(.. 인가요?ㅋㅋㅋ 일단은 "과정"에 포커싱)


[화면설계] 항목

1. 메인페이지
- 검색메뉴
- 즐겨찾기 항목
- 로그인버튼
등등

2. 로그인 창
- ID/PW
- 로그인버튼
- 회원가입
- ID/PW 찾기
등등

3. 메뉴바
- 설정창
- 회원정보
- 알림
- 즐겨찾기

3. 설정창
- 회원정보 메뉴
- 알림메뉴("구독" 등 알림메뉴.. 가능할까...?)

4. 회원정보 창
- 정보 출력창 (수정창으로 통합? or "수정하기"버튼?)
- 정보 수정창

5. 알림창
- 즐겨찾기나 구독으로 추가한 동영상에 대한 업로드 알림 설정
 (예. 팝업알림, 소리알림, 등등..)

6. 즐겨찾기 창
- 그룹 추가/수정/삭제
- 즐겨찾기 한 동영상 리스트

7. 검색결과 창
- 검색메뉴
- 상세검색바(결과내 검색)
- 동영상 리스트

[DB] DB 스키마

*사용 DB : MySQL
*DB  : db_pocket_tube

[정책]
1. 사용자가 탈퇴해도 해당 사용자에 대한 정보는 바로 지워지지 않고 tbl_memberis_joinout필드의 값을 1(true)로 수정한다.
2. 사용자가 비밀번호를 찾을때는 id, birth_date

[테이블 상세]
1. tbl_member
사용자 정보 테이블
필드명
타입
제약조건
설명
index
Int(32)
P.K.
Auto_increment
Not NULL
해당 테이블의 인덱스필드
id
Varchar(32)
Not NULL
사용자 id
(email 형식)
passwd
Varchar(32)
Not NULL
사용자 비밀번호
birth_date
DateTime
Not NULL
사용자의 생년월일
reg_date
DateTime
Not NULL
사용자가 서비스에 가입한 날짜
is_joinout
Int(1)
Default : 0
Not NULL
탈퇴여부

2. tbl_member_info
사용자의 추가 정보 테이블(가령 설정내용 등등)
필드명
타입
제약조건
설명
index
Int(32)
P.K.
Not NULL
tbl_member index값과 동일한 값
(auto_increament 속성을 사용하지 않음)
is_push
Int(1)
Not NULL
서비스의 push(알림)서비스

3. tbl_favorite
동영상 즐겨찾기 관련 테이블
필드명
타입
제약조건
설명
index
Int(32)
P.K.
Not NULL
auto_increament
tbl_member index값과 동일한 값
(auto_increament 속성을 사용하지 않음)
member_index
Int(32)
F.K.
Not NULL
Tbl_member의 사용자정보와 매필될index
url
varchar(128)
Not NULL
url 정보
reg_date
date_time
Not NULL
즐겨찾기를 등록한 날짜
group_num
Int(8)
Default : 0
Not NULL
즐겨찾기 항목에대하여 폴더구조를 가질시에 해당 필드로 구분
(아직 큰 의미는 없음)


playlist

단일 YouTube 재생목록을 표시합니다. 재생목록은 순서대로 감상하거나 다른 사용자와 공유할 수 있는 동영상의 모음입니다.

  https://developers.google.com/youtube/v3/docs/playlists


- 최대 목록 갯수 : 200개
- 메소드 :
  1. list : API 요청 매개변수와 일치하는 재생목록의 모음을 반환합니다. 예를 들어 인증된 사용자가 보유한 전체 재생목록을 검색하거나, 고유 ID를 통해 하나 또는 여러 개의 재생목록을 검색할 수 있습니다. 
    https://developers.google.com/youtube/v3/docs/playlists/list#try-it
  2. insert : 재생목록을 만듭니다. 
    https://developers.google.com/youtube/v3/docs/playlists/insert#try-it
  3. update : 재생목록을 수정합니다. 예를 들어 재생목록의 제목, 설명, 개인정보 보호 상태를 변경할 수 있습니다.
    https://developers.google.com/youtube/v3/docs/playlists/update#try-it
  4. delete : 재생목록을 삭제합니다. 
    https://developers.google.com/youtube/v3/docs/playlists/delete#try-it

playlistItem

재생목록에 포함된 동영상과 같은 리소스를 식별합니다. 
playlistItem 리소스에는 포함된 리소스가 재생목록에서 사용되는 방식을 설명하는 세부정보도 포함되어 있습니다.

- 메소드 
  1. list : API 요청 매개변수와 일치하는 재생목록 항목의 모음을 반환합니다. 지정된 재생목록의 모든 항목을 검색하거나 고유 ID를 통해 하나 또는 여러 개의 재생목록 항목을 검색할 수 있습니다.
    https://developers.google.com/youtube/v3/docs/playlistItems/list#try-it
  2. insert : 재생목록에 리소스를 추가합니다. 
    https://developers.google.com/youtube/v3/docs/playlistItems/insert#try-it
  3. update : 재생목록의 항목을 수정합니다. 예를 들어 재생목록에서 항목의 위치를 업데이트할 수 있습니다.
    https://developers.google.com/youtube/v3/docs/playlistItems/update#try-it
  4. delete : 재생목록의 항목을 삭제합니다. 
    https://developers.google.com/youtube/v3/docs/playlistItems/delete#try-it

search result

API 요청에 지정된 검색 매개변수와 일치하는 YouTube 동영상, 채널 또는 재생목록의 정보를 포함합니다. 검색 결과는 동영상과 같이 고유하게 식별할 수 있는 리소스를 보여주지만, 자체적으로는 영구적인 데이터를 가지지 않습니다.

- 메소드
  1. list : 기본적으로 검색결과의 집합은 쿼리 매개변수와 일치하는 videochannelplaylist 리소스를 식별하지만, 특정 유형의 리소스만 검색하도록 쿼리를 구성할 수도 있습니다
    https://developers.google.com/youtube/v3/docs/search/list

subscription

YouTube 사용자의 구독 정보를 포함합니다. 구독정보는 채널에 새 동영상이 추가되거나 다른 사용자가 YouTube에서 동영상 업로드, 동영상 평가 또는 동영상 추천 등의 작업 중 하나를 수행할 때 이를 알려줍니다.

- 메소드 
  1. list : API 요청 기준과 일치하는 구독정보 리소스를 반환합니다.
    https://developers.google.com/youtube/v3/docs/subscriptions/list#try-it
  2. insert : 인증된 사용자 채널에 대한 구독정보를 추가합니다.
    https://developers.google.com/youtube/v3/docs/subscriptions/insert#try-it
  3. delete : 구독정보를 삭제합니다. 
    https://developers.google.com/youtube/v3/docs/subscriptions/delete#try-it


참고사이트 :
1. Openstack Document
http://docs.openstack.org/image-guide/content/windows-image.html
2. 위 문서대로 진행한 한국블로그
http://heavenkong.blogspot.kr/2014/04/create-windows7-virtual-machine-image.html
2. cloudbase init & windows7 & openstack
http://cloud-ninja.org/2014/05/14/running-windows-7-guests-on-openstack-icehouse/
3. cloud-init for Windows instances (www.cloudbase.it)
http://www.cloudbase.it/cloud-init-for-windows-instances/

[출처] http://heavenkong.blogspot.kr/2014/04/create-windows7-virtual-machine-image.html

Create Windows7 Virtual Machine Image for OpenStack

Reference:
http://docs.openstack.org/image-guide/content/

  1.  virt-manager 
  2.  VirtIO driver
  3.  Sysprep
  4.  Cloudbase.init 


Requirements: 

windows7 iso file: 
http://www.w7forums.com/threads/official-windows-7-sp1-iso-image-downloads.12325/
select version by language ~
virtIO iso file:
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
select iso file to download ~
cloudbase.init fle: 
http://www.cloudbase.it/cloud-init-for-windows-instances/
Here select https://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta.msi file to download ~

1. Using virt-manager
yum install libvirt
yum install qemu-kvm
yum install virt-manager

service libvirtd start
virt-manager

New VM -> Name: vm_windows& -> Choose "Local install media(ISO image or CDROM)"
Use ISI image:
/root/openstack-images/X17-24329.iso
OS type:
Windows 7 

Memory 2048MB
CPUs 2

Select managed or other existing storage ( This is for adding virtual CD of installing VirtIO Driver)
New volume Name: vm_windows7.img
Format: qcow2
Max Capacity: 20000MB(20GB)
Allocation: 20000MB(20GB)

Forward
click customize configuration before install (This is for adding new hardware)
Finish
Add Hardware

select managed or other existing storage
Browse: /root/openstack-images/virtio-win-0.1-74.iso
Device type: IDE cdrom

Click Begin Installation

Click Next ~
2. Load driver as shown below ~
Begin to install ~
Restart ~
User: kisti
PW: ****
It will be shown as follow~

3. sysprep Run
In windows7, there is a tool called sysprep for use as a virtual machine image.
C:\Windows\System32\sysprep
execute sysprep.exe file
Click General (일반화)
OK(it needs to restart the windows7)


4. Install cloudbase.init

Install cloudbase.init


5. Other settings
Ethernet 컨트롤러 driver install
computer right click -> 관리-> 장치 관리자

load VirtIO driver and update ~ After updated as shown bellow~

shutdown Windows ~
6. Get image file
In the default directory /var/lib/libvirt/images, will find vm_windows7.img file ~
Run this command, virsh undefine vm_windows7

then you can use this image file to create virtual machine with windows7 in openstack ~

하다 보면 생성된 이미지가 블루 스크린(blue screen)이 뜨면서 설치 오류가 나는걸 볼수 있는데 해결 방법은 guest windows7에 microsoft .Net framework를 설치하면 된다. 

따로 설치할 필요없이 윈도우 오피스를 깔면 포함되어 설치가 된다. 


[출처]http://heavenkong.blogspot.kr/2014/04/create-windows7-virtual-machine-image.html


<www.cloudbase.it  서비스들>
- OpenStack Compute Installer
- Cloud-Init for WIndows instances
- Neutron Hyper-V plugins
- OpenStack Cinder-Volume on Windows Storage Server 2012
- OpenStack Windows Server 2012 R2 Evaluation
- OVS on Hyper-V
등등 많음

[Trouble shooting] ubuntu 디스크 늘리기(ESXi기반의 VM)

디스크를 새로추가하지 않고 기존의 디스크의 용량을 늘린다.
(주의)스냅샷이 있는 경우에는 늘려지지 않음

1. 디스크용량 확인
$ df -h

2. VM 종료 후 설정에서 DISK 추가

3. gparted
$ apt-get install gparted
$ sudo gparted
- 증설된 공간에 disk 추가하기
- gparted 닫기



4. lvm 추가
$ vgdisplay
$ fdisk /dev/sda
> p (확인,  *controller-vg)
> q (종료)
$ pvcreate /dev/sda4 (논리볼륨을 추가하기위해 pvcreate)
$ pvdisplay


$ vgextend controller-vg /dev/sda4 (controller-vg 확장)
$ lvextend /dev/controller-vg/root -l +100%FREE(논리볼륨확장)
$ resize2fs /dev/controller-vg/root (파일시스템을 파티션 크기에 맞추기)
$ df -h (확인)


참고.
http://lovevirus133.tistory.com/65


'System > Linux OS ' 카테고리의 다른 글

리눅스 커널 커밋(commit)하기 - ing  (0) 2015.12.23
Linux LVM  (0) 2015.08.12
[Linux] 리눅스 모니터링  (0) 2015.04.22
[Linux]라우팅 테이블  (0) 2015.04.21
[Linux] TUN/TAP  (0) 2015.04.21

[OpenStack 정기세미나]

일시 : 2015.01.15 (목) 19:00~21:30
장소 : 토즈 강남2호점
내용 :
  Session 1. 다른 시각으로 본 SDN - 포티넷 코리아 이상훈님
  Session 2. 개발자분들을 대상으로 네트워크 엔지니어가 바라보는 오픈스택 네트워킹
                     - KrDAG 서종호님
  Session 3. OpenStack 네트워크와 SDN - KrDAG 최영락님



< Session 1. 다른 시각으로 본 SDN >

#1. SDN 삼국지
a. IBM, HP등의 회사들이 End-to-End로 IT를 점령하던 시기에서
b. IT 산업혁명을 거치며 소품종 대량생산 체계로 전환
    - OS-HW 분리
    - 전문 Chipset 회사
    - 분야별 SW 분리
e. 네트워크 업계에선 Cisco같은 벤더들이 승승장구
    - 전문 ASIC 자체 개발
    - 전용 network OS를 만들어 제품에 탑제
    - 전용 Protocol 개발
f. 이렇게 30년... 다품종 소량생산 체계로 전환
g.  더이상 네트워크 업계에서는 돈이 안되기 시작
h. 네트워크 벤더들이 서버쪽으로 접근하기 시작(예로 Cisco가 스토리지와 서버를 만듬)
i. SOA + 사용자(SNS)를 기반으로 SDN 등장
    - Cisco.. 무겁고 비싸고 Cisco가 배신해서 횡포라도 부리는 날엔..? OTL
      => SDN의 개념이 대두

#2. SDN의 개념
    - 실체의 갭
    - 바라보는 시작의 차이 (SDN은 네트워크계의 SOA ??)

#3. 각자의 시점
a. ISP 입장에서의 SDN
    - 관리의 자동화
    - 리소스 최적화
    - NFV와의 연계
b. 클라우드 사업자 입장
    - Multi Tenant (기존과는 비교할 수 없이 굉장이 많은 숫자의 테넌트를 나눌 수 있게 됨)
    - VPC (아마존서비스)
c. 그외
    - 범용 Chip 기반
    - 활성화
    - 자동화
    - 네트워크를 벗어난 비지니스와의 연계


< Session 2. 개발자분들을 대상으로 네트워크 엔지니어가 바라보는 오픈스택 네트워킹 >
#1. 네트워크 기본지식
a. IP
b. NAT
    - 1:1 NAT : DNAT
    - 1:N NAT : SNAT
c. VLAN
    - 같은 물리네크워크 환경에서 여러개의 가상 네트워크로 분리
d. 802. 1Q Trunk
    : 서로다른 VLAN 패킷을 태그를 달아서 패킷을 구분하기위해 사용
e. 단말 IP 할당
    - 수동
    - 자동 : DSCP, Dnsmasq(nova에서 DHCP를 위해 실행되는 프로세스)
f. LAN 확장
    - 아무생각없이 LAN 화장시 문제가 발생 할 수 있음
    - 대량의 백그라운드 트래픽 발생(broadcast등)
    - 보안상 문제 발상
g. VXLAN
 : L3환경을 넘어가는 두 네트워크 그룹을 같은 네트워크 환경으로 제공할 수 있게하는 기술

#2. nova network
a. flat : 1개 네트워크만 사용가능. 수동으로 instance ip를 할당
b. flat DHCP : flat에다가 DHCP 가능
c. VLAN : 테넌트간 동일 네트워크 설정이 불가능. 4096개라는 갯수 제약
            : 물리 케이블은 1개이지만 VLAN태그를 사용해 여러개의 테넌트로 나눌 수 있음
    - 내부 다수 VM이 SNAT을 통해 public ip로 변환되어 외부 통신
      (다수 단말이 하나의 공인 IP를 가지고 NAT 수행)
    - 외부에서 내부 VM의 floating ip로 들어올때는 DNAT을 사용해야 함.
d. single host & multi host
    - single host - 장비가 죽거나 부하가 걸리면 ..?
    - multi host - (compute노드 + network 노드), neutron에서의 DVR

#3. Neutron
a. namespace기능
    - over lapping ips 가능 : 테넌트 별 동일 네트워크를 쓸 수 있게 해줌
    - plugin <ml2> : 컴퓨팅 노드간 서비스 할 수 있고, 벤더의 기능을 plug 할 수 있음
b. network node와 compute node간의 네트워크는 VLAN, VXLAN, GRE등의 Host간 데이터를 전송
c. 네트워크 모델
    - provider router with private network
        : 테넌트가 분리되어 있으나 같은 라우터를 공유해 서로 통신이 됨
    - pertenent routers wih privae network
        : 테넌트 별 라우터가 분리되어있음
d. DVR 개념
    - single host
    - multi host : network node를 경유하지 않고 compute node끼리 통신이 가능하게 함
e. plugin
    - NSX
    - midekhura의 midonet
    - Arista + F5
    - Cisco, Juniper

# 4. 서비스
    - LBaaS
    - VPNaaS : vPC on AWS : Cisco CSR1KV
    - FWaaS : 라우터 단에서 제어


< Session 3. OpenStack 네트워크와 SDN  >
#1. nova network
a. Fixed IP
b. Float IP
c. 구성방안
    - Flat (곧 없어질 예정)
    - Flat DHCP
        : 수동으로 IP할당하기 힘드니가 linux의 오픈소스 DHCP서비스인 Dnsmasq 사용
    - VLAN DHCP
        : VLAN tagging을 사용하여 네트워크를 분리
    - VLAN + Flat + Flat DHCP
d. 네트워크 가상화
    - 서버가상화
    - 네트워크 가상화
    - Quathum의 등장 : 2008년 OpenFlow관련 눈물을 읽은 대학 교수들이 Openstack에 적용. Network서비스가 복잡해짐에따라 nova-network만으로 커버가 불가능
    - VLAN은 4096개 네트워크로 나눌 수 있음
       (GRE tunneling)
    - VxLAN
    - 2012년 나사에서 OpenStack이 분리되면서
       네트워크 벤더들이 OpenStack에 들어오기 시작
      (네트워크 시설 이중화를 위한 vendor하드웨어 사용)

#2. SDN 등장
a. 구조
    - app 부분 -> OpenStack 이용
    : Openstack의 OFConfig, OVSDB : NW 장비가 꺼졌냐 커졌냐 등 물리적인 관리를 전담하는 서비스도 OpenStack에 포함
    - Controller + 네트워크 장비 -> SDN
c. Ryu : 파이썬으로 작성된 오픈소스 SDN 컨트롤러
    => 프로그램을 통해 switch기능 구현 가능(로드밸런싱, 방화벽구현 등)

#3. SDN 초기시장에서의 Openstack 변화
a. Quamtum의 상표권 문제로 neutron으로 이름 변경
b. Neutron과 ML2
  : L2를 모듈화시켜서 사용을 유연하게 하고자 함.
  : 벤더 플러그인을 잘 쓰고 싶어서 ML2를 발표한 걸수도 있음.(실제로 cisco가 발표)
  : Ryu plugin -> ML2 with ofagent
c. 기존 neutron은 이중화에 대한 문제를 갖고있음.
d. 이중화를 위해 DVR 등장
    - nova-network, multihost 기능 활용
    - network node HA
    - East-west traffic 관리
e. 분산 라우터가 생기면 트ㅐ픽을 분리할 수 있음

#4. 상용시장에서 요구되는 네트워크 요구사항 (Juno의 DVR과 NFV)
a. juno에서 NFV를 언급하기 시작 - NFV에서 Openstack개념이 필요하게 됨.
b. 네트워크 유연성의 철학이 Openstack에 지속적으로 언급됨.
c. Openstack, 오픈소스




tip1. opendaylight는 잘 사용하지 않음..?
tip2. wireshark 최신버전에서 SDN 패킷 분석이 가능함


1. 인벤토리선택 > 구성 > 스토리지 > 데이터스토어에 마우스 우클릭 > 데이터 브라우저
2. 새폴더 만들어서 복사할 vm폴더의 아래의 3개 파일을 복사해 넣는다.
.vmdk --> 스냅샷 마지막버전 파일
.vmx
,xmxf
3. 복사가 완료되면, 복사된 .vmx파일 우클릭 > 인벤토리에 추가 (생성할 vm이름을 알맞게 수정)
4. 만들어진 vm을 실행
5. "복사함" 선택 후 확인


6. 끝

+ Recent posts