posted by 은이종 2014. 4. 25. 17:35

핫이슈를 넘어서 이제는 당연시 되고 있는 클라우드 시스템(Cloud System). 클라우드를 구성하는 요소 중에서 가상화(Virtualization) 기능은 빠질 수 없는 핵심 요소 중에 하나라고 할 수 있다. 가상화를 하기 위해서는 하이퍼바이저(Hypervisor, Virtual Machine Monitor이라고도 한다)라는 별도의 시스템 프로그램이 필요하다. 이미 서버단의 가상화는 자원의 효율성 측면에서 기본이 되어가고 있다.

가상화 분야에서 '가상화 대상이 되는 시스템'을 의미하는 용어는 여러 용어가 횬재되어 사용되니 정리하고 넘어가자. '가상머신(Virtual Machine)'-약어로 'VM', '도메인(Domain)'-약어로 'Dom', '게스트(Guest)' 이들 용어 모두가 '가상화 대상이 되는 시스템'을 의미한다. '게스트 운영체제'와 대비되는 '호스트 운영체제'는 가상화 프로그램을 실행하는-즉, 가상화 하지 않은- 실제 운영체제를 의미한다. 호스트 운영체제는 Type 2에서만 존재하는데, Xen은 Type 1 하이퍼바이저이므로 호스트 운영체제가 존재하지 않는다. Type 1은 하이퍼바이저 위에 모든 도메인이 동작하는 방식이고, Type 2는 호스트 운영체제에서 가상화 프로그램을 실행하여 게스트를 실행하는 방식을 말한다.

<그림 1. Type 1과 Type 2 하이퍼바이저>

대표적인 오픈소스  하이퍼바이저로는 Xen과 KVM이 있다. Xen은 'Xen and the Art of Virtuallization'이라는 가상화 분야에서 매우 유명한 논문과 함께 대표적인 반 가상화(Para Virtualization) 하이퍼바이저로 등장하였다. 반 가상화는 게스트 운영체제 일부를 수정하는 시스템을 말한다. 반 가상화의 대비되는 전 가상화(Full Virtualization)은 게스트 운영체제를 수정하지 않고 실제 머신과 동일하게 사용하는 것을 말한다. Xen의 반 가상화의 게스트 운영체제는 특권 명령을 실행하려면 '하이퍼콜(Hypercall)'로 하이퍼바이저에게 서비스를 요청하는 해야 한다. 운영체제에서 어플리케이션이 커널에게 '시스템 콜(System Call)'로 서비스를 요청하는 방식과 동일하다. 실제로 하이퍼 콜은 시스템 콜과 동일한 방식으로 구현되어 있다. 서비스를 요청이 (어플리케이션 -> 커널) 인지, 아니면 (게스트 운영체제 -> 하이퍼바이저) 인지에 따라 용어가 달라질 뿐이다.

Xen에는 도메인 0라는 특수한 도메인이 존재한다. 도메인 0는 실제 물리 디바이스와 통신하는 디바이스 드라이버가 있고, 각 도메인을 제어한다. 도메인 0는 기능상 Type 2 하이퍼바이저의 호스트 운영체제와 유사하지만, Type 2에서 호스트 운영체제는 하이퍼바이저를 하나의 어플리케이션으로 관리하고, Type 1에서 도메인 0는 하이퍼바이저에서 하나의 도메인으로 관리되므로 전혀 의미가 다르다. Xen 반 가상화에서 장치 입/출력을 예를 들면, 각 도메인은 하이퍼 콜로 Xen 하이퍼바이저에게 입/출력 요청을 하게 되고, Xen 하이퍼바이저는 이를 도메인 0에게 전달하여 실제 장치와 입/출력을 하게 된다. 그러면, Xen 하이퍼바이저는 입/출력 결과를 다시 입/출력을 요청한 도메인에게 입/출력 결과를 응답한다. Xen의 반 가상화 입/출력을 할 시에 사용되는 매커니즘으로 I/O 링, 이밴트 채널(Event Channel), 프론트-앤드/백-앤드 드라이버, 그랜트 테이블(Grant Table), XenStore등이 있지만 모두 설명하려면 내용이 너무 길어지니 그런 것이 있다고만 알고 넘어가도록 하자.

<그림 2. Xen 아키텍처>

KVM은 Xen과 다른 관점에서 가상화를 제공한다. KVM은 가상화를 제공하는 하이퍼바이저를 메모리 관리자나 파일 시스템등과 같은 커널의 '서브 모듈'로 취급한다. 개인적으로는 가상화 기능이 운영체제의 기본이 되어가는 시점이므로 KVM과 같은 접근 방식이 옳다는 생각이다. KVM에서 가상화를 제공하기 위해서는 한 가지 전제 조건이 붙는데, 사용하는 CPU에서 HVM(Hardware Virtual Machine) 기능을 제공해야 한다는 점이다. 과거 가상 메모리(Virtual Memory)를 지원하기 위해 CPU에서 페이징(Paging) 기능을 하드웨어 차원에서 제공했던 것과 같이, 최근 가상화 기능이 많이 사용되므로 CPU에서 가상화 기능을 하드웨어 차원에서 제공해주는 것이다. x86 아키텍처의 HVM으로는 Intel의 VT-x와 AMD의 SVM가 있다. 같은 x86 아키텍처이라고 할지라도 가상화 기능은 벤더마다 다르므로 벤더별로 구현해야 하는 단점이 있다. 최근에는 임베디드 시스템에서 주로 사용되는 ARM 아키텍처도 Cortex-A15 이후로 가상화 확장(Virtualization Extension) 기능이 추가되어 HVM을 제공한다.

<그림 3. KVM 아키텍처>

이렇듯 Xen과 KVM은 가상화를 제공하기 위해 애초에 접근 방법이 다르고 물론 구현도 매우 달랐'었다'. 당연히 프로젝트 초창기에는 Xen과 KVM 양 진영에서 서로 각자가 좋다고 주장하며 많이 싸웠다. 상용 하이퍼바이저인 VMWare, MS 하이퍼-V와 오픈 소스 Xen, KVM 등의 '하이퍼바이저 전쟁'이 한창 이다. (Xen의 반 가상화는 VMWare의 바이너리 변환(Binary Translation)에 대비되는 기술이다. 초창기에는 기술적인 측면에서 '반 가상화 Vs. 바이너리 변환'로 대립하였다.)

여기서 중요한 점은, Xen과 KVM은 오픈 소스라는 것이다. 원한다면 누구나 소스를 볼 수 있고, 필요에 따라 코드를 수정 할 수 있다. 리눅스가 BSD의 장점을 흡수하면서 발전해온 것처럼, Xen과 KVM도 서로 장점을 흡수하면서 발전해 나가고 있다. 이미 Xen도 매우 오래전부터 전 가상화를 지원해 왔다. Xen의 전 가상화는 KVM과 같이 HVM 기능을 활용하여 구현되어 있다. 즉, Xen의 전 가상화 기능만 떼고 봤을 때는 KVM이나 Xen이나 유사하다는 것이다. 더구나 VMWare나 KVM도 반 가상화 기능을 제공한다. Xen의 하이퍼 콜, VMWare의 VMI등의 각 하이퍼바이저 별로 다르게 구현된 반 가상화 인터페이스를 일관된 인터페이스로 추상화 하기 위하여 Paravirt Operation가 등장하였다.

결론은 이제는 가상화 시스템을 구축하기 위하여 어떤 하이퍼바이저를 선택하던간에 비슷하다는 것이다. Xen의 "하이퍼바이저 위에서 모두 놀아라." 라던지, KVM의 "커널이 곧 하이퍼바이저이다." 라던지 현 시점에는 더 이상 의미가 없어졌다. 돈이 좀 들더라도 높은 완성도에 기술 지원을 바라면 VMWare가 정답이고, MS빠라면 하이퍼-V가 정답이다. 무료로 필요에 따라 소스 수정도 할 생각이면 Xen이나 KVM 어느 것도 괜찮다. 그냥 익숙한 것을 선택하면 된다. 지금 사용 중인 하이퍼바이저가 다른 하이퍼바이저보다 성능이 떨어진다면 하이퍼바이저를 의심 할 것이 아니라 튜닝이 잘못 된 것이므로 담당 엔지니어의 능력을 의심해 보라.

원본 위치 <http://onestep.tistory.com/94>

'가상머신 > Xen 젠' 카테고리의 다른 글

Xen Network  (0) 2016.01.08
Xen Storage Repository 설정  (0) 2016.01.06
Xen 백업  (0) 2015.03.17
posted by 은이종 2014. 4. 24. 19:19

윈도우에 숨겨진 midi 파일!

 

 

윈도우7 기준으론

C:\Windows\Media에 파일들이 있다.

 

flourish.mid

onestop.mid

추천

'Windows' 카테고리의 다른 글

Windows DSR구조 Loopback 설정하기  (0) 2014.07.16
IIS 튜닝  (0) 2014.07.09
Cygwin(시그윈) 설치 후 기본 세팅  (0) 2014.04.02
Cygwin(시그윈) 설치  (0) 2014.04.01
윈도우7 빠른실행 만들기  (0) 2014.03.31
posted by 은이종 2014. 4. 24. 13:15
사실 별것도 아니지만 자바 개발을 위한 첫 단계로써 알아두어야 할 사항중에 하나가
JDK 와 JRE 의 차이점, 그리고 JVM 이란 무엇인지를 알아야 할 듯 해서 간단하게 용어를
정리해보려고 합니다.

JDK ( Java Development Kit )
 Java 용 SDK ( Software Development Kit ) 라고 생각하면 쉽겠다.
 -> 실제로 두가지 용어를 혼용해서 쓰므로 헷깔리기 쉽지만 다 같은 의미정도로 생각하자.
 Java 개발자가 Java 기반 프로그램을 개발할 수 있도록 컴파일러, 툴 등을 제공한다.
 개발자 용이기 때문에 사용자는 굳이 설치할 필요가 없다.
 -> 다만 자바로 개발된 Application을 사용하기 위한 실행 환경은 있어야 한다. 그 역할을 JRE 가 한다.
 JDK 는 다시 J2EE ( Enterprise Edition ) , J2SE ( Standard Edition ) , J2ME ( Micro Edition ) 등으로 분류한다.
 -> EE는 기업용 대규모 개발 환경에서 적합한 버전이고
 -> SE는 일반적인 개발 환경
 -> ME는 PDA나 Embeded 환경에서의 개발환경을 제공합니다.

JRE ( Java Runtime Environment )
 Java 프로그램을 실행시키기 위한 환경을 제공한다.
 즉, Java 언어로 만들어져서 컴파일된 프로그램을 실행하려면 JRE 는 설치되어 있어야 한다.

JVM ( Java Virtual Machine )
 Java 소스 코드로부터 만들어지는 Java byte code(자바파일이 컴파일된 코드) 를 실행할 수 있다.
 "write once, run anywhere" 라는 Java 의 trade mark ( '슬로건' 이라는 단어정도로 해석하시면 쉬울듯)
 는 JVM 이 많은 SW/HW 플랫폼에서 동작 할 수 있기때문에 가능한 이야기 이다.
 -> 개발을 했으면, 어디서든 사용이 가능해야지 !! 라는 슬로건 아래에서 만들어진 개념이 JVM 입니다.
 -> 다시 말해 윈도우에서 개발하고 리눅스에서도 실행이 가능하다는 말입니다.
 -> 또한 윈도우에서 개발해도 다른 임베디드 시스템에서도 사용이 가능하게 된다는 뜻입니다.

* JDK 는 개발자 툴이므로 당연히 실행할수 있는 환경이 제공되어진다. 따라서 
JDK = JRE + 개발툴 + Java 컴파일러
JRE = JVM, 라이브러리, 기타 애플릿이나 어플리케이션 구동 요소 
로 생각하면 쉬울듯 하다.
* JRE 는 개발자용이 아니다 -> 따라서 Debuger 등의 유틸리티 역시 없다.

 <기타> Java 를 별로 사용안하면 생각보다 해깔리는 경우가 많아서 ... 간단히 용어 정리 합니다.

JNI ( Java Native Interface ) 
 JVM 에서 동작하는 Java code 가 다른언어(assem, c, c++) 에 의해 호출되고, 
 다른 언어를 호출 할 수 있도록 만들어진 interface 이다.
 -> 위키백과를 참조하시면 더 좋을듯 합니다. ( http://en.wikipedia.org/wiki/JNI )

JSP ( Java Server Page )
 HTML 내에 자바 코드를 삽입하여서 웹 서버 내에서 동적으로 웹 페이지를 생성하여 웹 브라우져에
돌려주는 언어입니다.
출처:JDK, JRE, JVM

원본글 :
http://mwultong.blogspot.com/2006/08/java-jdk-jre-java-development-kit-java.html 

'Linux' 카테고리의 다른 글

Linux DSR구조에서 Loopback 설정하기  (0) 2014.07.16
SSH Trust login 설정  (0) 2014.07.08
hpacucli 간단한 명령어  (0) 2014.01.17
쉘, 명령어 창 기본세팅  (0) 2013.12.06
넷사랑 xshell 기본 설정  (0) 2013.11.12
posted by 은이종 2014. 4. 22. 15:53

 윈도우로 따지면 msconfig 라고 볼수 있습니다.

 안드로이드폰 구동 시, 불필요한 프로그램을 삭제하거나

 반대로

 필요한 어플을 시작하게 설정할 수 있습니다.

 저같은 경우는 brightness anywhere을 구동 시, 실행되게 설정해두었습니다.
 

 

'App 추천' 카테고리의 다른 글

<App추천> Tmap 대중교통  (0) 2015.08.28
<App추천> T통화&  (0) 2015.08.27
Clean master (발열, 메모리 관리 프로그램)  (0) 2014.10.15
<APP추천> Brightness Anywhere  (0) 2014.04.07
지니모션(genymotion) 설치  (0) 2014.03.24
posted by 은이종 2014. 4. 18. 17:32

 일반적으로 AD 그룹정책은 

 'Default Domain Policy' 정책에 적용하는 방법이 있고,
 새로 Policy를 만들어서 추가 하는 방법이 있다.
 
 후자로 한번 해보았는데, 정책 관리하는 부분에서 헷가리는 경우가 많아서....
 필자는 단순해서.. 전자를 사용하는 중이다.


1. 그룹 정책 관리

가. 컴퓨터 구성



계정, 로컬 정책 부분은 기본적으로 다 설정하리라 믿고,
추가적인 부분만  설명하겠다.

ㅇ 시스템 종료:가상 메모리 페이지 파일 지움

시스템 종료시 Pagefile.sys 파일을 0으로 채워서 파일을 Clear 하고 종료하는데
이 과정이, 파일 크기가 많은경우, 시스템 종료에 많은 시간이 소요 (30분이상도 봄...)

보안상,
멀티OS를 사용하지 않는 상태면 큰 이슈는 없다 (실제 Windows 서버에서 멀티OS사용하시는 경우가 ....ㅎㄷㄷ)

TechNet 참고링크)

http://technet.microsoft.com/ko-kr/library/cc740219(v=ws.10).aspx

 



ㅇ Windows 방화벽 OFF
구조상 상단에 물리F/W이 있어서, 실제 윈도우 서버에선 Windows방화벽을 Off하여 운영중이다.
구지 정책에 포함한 이유는

AD Join 후 Windows 방화벽이 올라가는 경우가 발생하기 때문에
AD 정책에 추가하였다.




추가적으로
그룹 정책 새로 고침 간격과, 로그인 시 기타 프로그램 띄우는걸 사용안함 처리하였다.


아래 내역은 시스템 트레이에 모든 알람표시 설정이다.
트레이에 이것저것 감춰있는게 많이 귀찮아서...




 AD join된 서버들에 Reg들을 배포할수 있는데,

언어관련 표시줄을 없애는 Reg이다.



"값 데이터의 세부내역이니 참고"

HKEY_CURRENT_USER\Software\Microsoft\CTF\LangBar


the ShowStatus value becomes 0 when we select the option "Floating on desktop"

the ShowStatus value becomes "4" when set to "docked on the taskbar"

the ShowStatus value becomes "3" when set to "hidden" which is the default.


기타 설정해두면 편리한 옵션이다.


 

 

'Windows > AD' 카테고리의 다른 글

AD GPO 백업  (0) 2014.10.15
AD 계정별 Policy 설정  (0) 2014.07.23
AD 장애  (0) 2014.01.17
AD join시 Open Port  (0) 2014.01.06
AD 설정 1. 계정 2.로그인 대상  (0) 2013.08.28
posted by 은이종 2014. 4. 7. 18:35

DNS 현재 입력되어있는 정보 확인 방법

크롬 주소창에 아래와 같이 입력한다

chrome://net-internals/#dns


 아래 버튼을 통하여 cache 정리가능하다.
 

상단 좌측바를 통하여, 기타 다른 정보도 조회 가능
 
posted by 은이종 2014. 4. 7. 18:06


80Port가 오픈이 되지 않는 환경에서
크롬 오프라인 설치 방법

1. 
크롬에서 오프라인설치용 파일을 제공한다

https://support.google.com/chrome/answer/126299?hl=ko

현재 사용자 계정용과
모든 사용자 계정용 두 가지를 제공해주니, 편한걸로 설치 ㄱㄱ
(전 관대함으로 모든 사용자 계정으로 설치)


직접 경로 (2014.04.07일자)

https://www.google.com/intl/ko/chrome/browser/index.html?system=true&standalone=1#eula

 
 
posted by 은이종 2014. 4. 7. 15:15

안드로이드 어플 중에 밝기를 조절하는 어플이 있어 추천합니다.


1. 설치

직접 URL에서 다운로드
https://play.google.com/store/apps/details?id=com.kigate.brightnessWolf&hl=ko

or 안드로이드 마켓에서
Brightness Anywhere검색하여 설치



2. 특징

가. 간편한 GUI

나. 현재 시간과 Battery 잔량 표시
모바일 겜 좋아하는 사람이면... 항상 시간이랑 배터리 확인하러 홈키 눌렀는데,
이 부분이 상당히 편함

다. 아이콘 변경 가능

배터리 소모의 주범이 밝기이다. 안드로이드 기본 조절로는 조절이 한계가 있는 바,
해당 APP을 사용하고 있다.

개인적으로 핸드폰을 많이 사용하시는 분들은 필수어플 



 

'App 추천' 카테고리의 다른 글

<App추천> Tmap 대중교통  (0) 2015.08.28
<App추천> T통화&  (0) 2015.08.27
Clean master (발열, 메모리 관리 프로그램)  (0) 2014.10.15
Startup Manager (스타트업 매니저)  (0) 2014.04.22
지니모션(genymotion) 설치  (0) 2014.03.24
posted by 은이종 2014. 4. 2. 11:00

1.
Prompt 창이 너무 휑하니까 디렉토리명 설정을 진행


절대경로에 설정 (부팅시, 설정 내역 읽어옴)
파일을 생성해서 아래 내역 추가

vi /etc/profile.d/prompt.sh
-----------------------------------

export PS1="[\u@\h \w]\\$ "
--------------------------------
권한 부여

chmod 777  /etc/profile.d/prompt.sh 


2.
색깔설정 및 자주쓰는 명령어 alias 설정

vi /root/.bashrc 
에 설정하면 된다.

alias vi='vim'
 
alias ll='ls -al'
alias ls="ls --color=auto --show-control-chars"


'Windows' 카테고리의 다른 글

IIS 튜닝  (0) 2014.07.09
윈도우의 숨겨진(?) midi 파일  (0) 2014.04.24
Cygwin(시그윈) 설치  (0) 2014.04.01
윈도우7 빠른실행 만들기  (0) 2014.03.31
탐색기에 휴지통 추가하기  (0) 2014.03.27
posted by 은이종 2014. 4. 1. 17:49


윈도우즈에서 리눅스를 사용가능하게 해주는 프로그램이다.

저같은 경우는
xshell 세션 생성 스크립트를 배치파일로 작성을 해두어서, 해당 스크립트를 실행하기 위해서
cygwin을 사용한다.



1. 설치파일 경로

http://cygwin.com 
접속하여 각기 상황에 맞는 버전을 설치 (x32, x64)


2. 설치경로

가. 
Choose A donwload Source 를 물어보게되는데

Install from internet

Donload Without Installing

install from Local Directory 

총 세가지가 나온다.

일반적으론 첫번째로 설치를 진행한다.

나.
실제 설치가 되는 곳과
패키지들을 설치할 디렉토리를 설정해주면된다.


다. Download Site
현재 가장 문제(?!)가 되는 부분이다.

국내에서 지원되는 사이트는

http://ftp.daum.net

가 있다.

Add 로 추가하여 설치 진행한다.


타 외국 사이트로 선택하면 설치 과정이..하루가 소모될수 있으니 특히 주


라. Select Packages

설치할 패키지를 선택한다.
기본적으로 Dafault 가 설정되어있다.

Perl을 사용함으로 해당 부분 추가하여 설치 진행