Virtual Machines for PC/Server

Virtual Machine 한글로 하자면 가상 컴퓨터 정도?


지금 얘기하는 VM 은 Java Virtual Machine 을 말하는 것은 아닙니다.


BS 가 근래 여러가지 테스트를 회사와 집에서 했습니다.


BS 컴퓨터를 업그레이드 했거든요.


 


CPU: AMD KUMA 2.7GHz Dual Core


RAM: PC-6400 DDR2 2GB * 2


Mainboard: ASRock AM2+ CPU Socket + AMD 790GX DDR3 128MB Sideport RAM


Power: LG 450W


 


요렇게 해서 30만원 들었습니다.


CPU는 블랙 에디션이라 클럭 조정이 용이하다고 하지만 아직은 오버클럭이 필요하진 않네요.


 


BS가 근래 사용한 가상화 솔루션은


MS의 Windows Server 2008 with Hyper-V, Hyper-V Server 2008, Virutal Server 2005, Virtual PC 2007


WMWare의 VMWare Server 1, VMWare Server 2, VMWare Workstation


Sun의 VirtualBox


입니다.


크게 구분하자면 서버군에 사용되는 Hypervisor 인 Hyper-V, VMWare ESXi 가 있고,


그외 PC 가상화 솔루션인 VirtualPC, VMWare Workstation, VirtualBox 가 있습니다.


 


각각 모두 장단점이 있습니다만…


Windows Server 2008 with Hyper-V가 Hypervisor 로는 좋고


PC 가상화에서는 VMWare Workstation 이 역시 최강입니다.


 


Hyper-V


Hyper-V 는 MS 에서 내놓은 가상화 솔루션의 일부입니다.


공개버전과 Windows Server 2008에 포함된 버전이 있습니다.


공개 버전은 정말 공개 버전 다운 모습입니다. 뭐 되는게 없습니다.


Hyper-V 를 사용하기 위해서는 최소한 Windows Server 2008 Core 는 되야 합니다.


만약 Hyper-V에 도전을 하신다면, 서버와 클라이언트 설정에서  DCOM, WMI, MMC 등의 방화벽 설정 및 보안, 권한 설정을 주의하세요.


Hyper-V 의 성능은 상당히 좋은 편입니다. 현재 회사의 개발 PC에 Windows Server 2008 Standard with Hyper-V 위에


Windows Server 2008을 다시 설치하고, 그것을 복제하여, 하나는 SQL Server 테스트 용으로, 하나는 게임서버 테스트 용으로 사용하고 있습니다. Bridge 네트워크도 쉽게 설정되고 이래저래 편리합니다.


VMWare의 ESXi에 해당하는 제품인데… ESXi 는 Linux 기반으로 Linux에 대한 사전 지식이 필요합니다.


단점은 Windows Server 자체가 그렇게 가벼운 OS 가 아니라는 점입니다.


ISO 파일 용량을 본다면 MS의 공개 버전 Hyper-V Server 2008 이 약 1.2 GB 인데 비해, VMWare 의 공개 버전인 VMWare ESXi 는 300 MB도 안됩답니다.


 


Virtual PC 2007 SP1


이것 또한 MS의 제품으로 무료입니다.


역시나 MS 다운 UI 와 기능을 가지고 있습니다. 정말 쉽게 설치해서 사용할 수 있으며,


Guest OS로 대부분의 MS 운영체제를 지원합니다.


그리고 성능 또한 하드웨어 가상화 기술을 지원하여 굉장히 좋은 편입니다.


단점이라면 스냇샷 기능이 없고 1단계 Undo 기능만 있다는 것입니다.


 


VirtualBox 2


Sun에서 개인 사용에 한하여 무료로 제공하는 제품입니다. 그리고 Open Source 이죠.


여기서 개인 용도는 집, 회사, 관공서를 떠나서 개인이 사용하는 것을 말합니다. (VirtualBox 라이센스 문서 참조)


여타 다른 개인 용도 프리웨어와는 조금 좋은 조건입니다.


업무에 사용하더라도 OK 입니다.


단, 회사 시스템 관리자가 수백대의 PC에 설치한다면 Sun에 연락해서 구매하라고 하는데요.


구매 페이지도 없고, 가격도 명시가 안 된걸로 봐서는


Sun 영업 파트와 말만 잘 하면 그냥 쓸 수 있을지도…


성능은 PC 가상화 중 단연 최고였습니다.


Windows XP 를 설치해서 부팅해보니… 처음 지렁이 기어가는 화면 (다들 아시는 처음 부팅시 로고 밑에 네모칸들이 지나가는 그것)이


1회가 지나가기 전에 화면 전환이 되며, 바탕 화면 준비 중이라는 멘트가 나오자 마자 바탕화면을 볼 수 있을 정도입니다.


단점은 Open Source 로 진행되다 보니… 조금 불안한 부분이 잇어서


최신 버전을 받았더니 NAT 버그로 인해 DHCP 를 사용할 수 없었고 IP 또한 변경이 불가능 하더군요…


스냅샷은 지원은 하나 VMWare Workstation 과는 비교할 수 없을 정도로 간단한 기능만 가집니다.


VirtualPC의 Undo 가 여러 단계로 지원된다고 생각하시면 됩니다.


 


VMWare Workstation 6


역시 이 분야 선두 주자 다운 막강한 기능을 자랑합니다.


트리 구조의 스냅샷을 지원하며 원하는 경우 해당 스냅샷을 기반으로 하여 현재의 가상 머신을 복제까지 해줍니다.


성능은 VirtualBox와 VirtualPC 사이 정도로 느껴지는데, RDP로 Host에 붙어서 VMWare 를 실행했더니…


헉… 마우스 조작은 포기해야 할 정도로 키보드와 마우스 반응이 느립니다.


그렇지만 프로그램 기동 성능은 굉장히 좋은 편입니다.


최대 장점은 Virtual SMP 를 제공한다는 것이죠.. 다른 회사 제품은 가상 머신에서 CPU가 1개로 되지만


VMWare 제품은 가상으로 4개까지 CPU를 만들 수 있답니다.


역시 VMWare 답습니다.


최대 단점은 타사의 제품들은 모두 무료인데 반해, VMWare Workstation 은 여전히 비싼 가격이라는 점입니다.


물론 주기적으로 평가판 시리얼을 받아 갱신하면 되긴 합니다…


 


1개 PC 나 서버에서 여러 서비스를 제공해야 할 때에, Host OS 에서 여러 서비스를 제공하는 것보다,


가상화를 통해 서비스를 하고 테스트를 하는 것이 굉장히 편리할 것 같습니다.


일단 문제 발생시 복구도 편리하고, 성능도 Host에 비해 크게 느리지 않으며


다양한 환경을 구축할 수 있고… 여러분도 한번 가상화의 세계로 빠져보세요.


 

Hyper-V 관리자 없이 바로 가상머신 접속하기

Process Explorer 를 보던 중에
vmconnect.exe 라는 프로세스의 command line 이 보여 해보니… 잘 되네요


“C:\Program Files\Hyper-V\vmconnect.exe” “호스트이름” “가상머신이름” -G “GUID” -C “0”


요렇게 해서 바로 가기 만들어 PATH 에 넣고 실행창에서 바로 접속합니다.


여기서 GUID 는 가상 머신이 올라가있는 호스트컴퓨터에 가보면
가상머신 경로에
“GUID”.xml 로 가상머신 설정이 담긴 XML 파일이 있는데 이 파일의 이름입니다.

Hyper-V 오류 – 작업이 실패했습니다.

회사에서 Hyper-V 를 개발 테스트용으로 설치해서 사용중인데요



이거 뭐 Vista 머신에서 원격으로 관리자가 붙질 않아서 하루 종일 고생했습니다.


“작업이 실패했습니다.”
이런 식의 메시지… 아 한글 메시지가 기억이 안나네요.
영문으로는
The operation on computer ‘hostname’ failed.
요렇게 뜹니다.


이거 한참 헤매었는데 이런 글이 있네요.



I ran into this problem as well on my PE2950 w/ Win2k8 x64 and Broadcom NetXtreme II NICs. To resolve it open the Broadcom Advanced Control Suite and disable IPv4 Large Send Offload and your problem will be solved.


대충 번역하자면…
Broadcom NetXtreme II NIC 카드에서 IPv4 Large Send Offload 를 disable 했더니 해결되더라.
입니다.
이거 어디서 설정하는지 모르시는 분은 직접하시지 마세요. ^_^

Hyper-V 설치하기

역시 MS의 제품은 설치는 쉬우나 설정은 그닥 쉽지 않군요.
이전 글에서 간단하게 설명했는데… 그 설치에 관한 글입니다.

 

0. 현재의 환경
도메인 환경이 아니고
사내에 있는 서버에 Windows Server 2008 with Hyper-V Korean 를 설치했고
Core 설치는 아니고 일반 설치
클라이언트 환경은 Vista x86 입니다.

 

1. Hyper-V 역할 설정
서버 관리자 (시작>관리도구>서버 관리자)를 실행
왼쪽 트리에서 역할 선택
오른쪽에서 역할 추가 선택
Hyper-V 선택 (NAT 필요시에는 네트워크 정책 및 액세스 서비스 추가 선택)
설치하기
여기서 주의할 사항은… Windows Server 2008 설치하고 나서 바로하면 ‘시험판’ 이라는 문구가 나온다는 것.
서비스 실행이 안됩니다. Windows Update를 완료하시고 역할 추가 하세요.
설치가 끝나면 Local Host에서는 Hyper-V가 작동합니다.
이후 2번 부터는 원격에서 Hyper-V 관리자를 통해 관리하기 위한 설정입니다.

 

2. WMI 방화벽 설정
Core의 경우 netsh을 통해서, 일반 설치의 경우 netsh 또는 고급 보안이 설정된 Windows 방화벽(시작>관리도구>고급 보안이 설정된 Windows 방화벽)을 통해서 설정할수 있습니다.
기본으로는 모두 비활성화 되어 있는데, 인바운드, 아웃바운드 규칙에서 WMI 관련된 것을 모두 활성화 시켜 주세요.
BS의 경우는 인아웃 합계 4개가 있군요.
여기에서는 방화벽 설정에 대한 것은 간단히 넘어가겠습니다.

 

3. DCOM 보안 설정
DCOMCNFG 를 실행하면 구성 요소 서비스 라는 창이 뜹니다.
왼쪽 트리에서 콘솔 루트>구성 요소 서비스>컴퓨터>내 컴퓨터 를 선택하고 우클릭하여 속성창을 엽니다.
COM 보안탭으로 가서 시작 및 활성화 권한 그룹의 제한 편집 버튼을 누릅니다.
여기에 원격 관리를 원하는 그룹/사용자를 추가하고 원격 시작, 원격 활성화 권한을 부여합니다.

 

4. WMI 권한 부여
WMI에 대한 설명은 생략하고, Hyper-V는 WMI를 사용하여 관리를 하므로 WMI에도 그룹/사용자 권한이 있어야 합니다.
컴퓨터 관리(시작>관리도구>컴퓨터 관리)를 실행합니다.
왼쪽 트리에서 컴퓨터 관리(로컬)>서비스 및 응용 프로그램>WMI 컨트롤 을 선택합니다.
WMI 컨트롤에서 우클릭으로 속성창을 엽니다.
속성창의 보안 탭에서 Root>CIMV2와 Root>virtualization 두 항목에 대해 아래와 같이 작업합니다.
트리에서 항목 선택
보안 버튼 클릭
보안 창에서 고급 클릭
고급 보안 설정 창에서 추가 클릭
원하는 그룹/사용자 입력
권한 항목에서 적용 대상은 이 네임스페이스와 하위 네임스페이스 선택
사용 권한은 원격으로부터 사용 가능 선택
이 컨테이너에 있는 개체 및/또는 컨테이너에 사용 권한 적용 체크 박스 선택
확인을 눌려 저장함
이렇게 해서 CIMV2와 virtualization 항목의 보안 옵션을 조정합니다.

 

5. Hyper-V 관리자 권한
요것도 그냥 Administrator 만 설명합니다.
다른 설정은 알아서 공부하세요…
(OS의 관리자가 아닌 Hyper-V의 Administraotr입니다. 혼동하지 마시길)
AZMAN.MSC를 실행합니다. (권한 부여 관리자)
왼쪽 트리에서 권한 부여 관리자 항목을 우클릭하여 권한 부여 저장소 열기 를 선택합니다.
Hyper-V 권한 부여 저장소 파일은 \Programdata\Microsoft\Windows\Hyper-V\InitialStore.xml 파일입니다.
찾아보기 눌려서 \Programdata 를 파일명으로 적으면 위에 리스트에 Microsoft 폴더 뜨니 그때부터 마우스로 선택~~~
열고 나면 왼쪽 트리에 Hyper-V에 관한 항목이 추가됩니다.
권한 부여 관리자>InitialStore.xml>Hyper-V services>역할 지정>Administrator 항목을 선택하면
왼쪽에 Hyper-V Administrator에 지정된 Windows 계정 정보가 나옵니다.
거기에 원하는 그룹/사용자를 추가합니다.

 

6. 재부팅~~~

이렇게 하면 원격에서 Hyper-V 관리자를 통해 접속됩니다.

 

그럼 클라이언트 설정을 해 보겠습니다.

MS 홈페이지의 다운로드 센터에서 아래를 검색합니다.
(물론 한글 기준~ 영문은 알아서~~~ BS 는 한국 사람~~~)
Hyper-V 원격 관리
요렇게 검색하면 x86 (32비트), x64 (64비트) 용 업데이트 (KB952627) 이 나옵니다. 원하시는 버전을 받아 설치하시면
Vista에 Hyper-V 관리자 가 설치되고
Hyper-V 관리자에 서버 연결 기능으로 원격 서버에 접근할 수 있습니다.
하지만 그냥은 안됩니다. 역시나 권한, 보안 옵션 설정이 필요합니다.

 

1. 방화벽 설정
역시 WMI 인아웃바운드 설정 해주시기 바랍니다.
클라이언트는 MMC.exe가 Hyper-V 관리자 mmc 를 가지고 관리하니깐 WMI 방화벽 설정에 추가로
mmc.exe가 방화벽에서 예외가 되는 프로그램으로 등록되어야 합니다.
방법은? 알아서 해주세요~ 지금은 방화벽 설정 설명이 아니니까요~

 

2. DCOM 설정
서버 또는 클라이언트가 모두 도메인 환경을 사용하지 않으면 DCOM이 익명으로 접근한다고 합니다.
그래서 DCOM 설정을 했습니다.
역시 DCOMCNFG 를 실행해서 내 컴퓨터 속성을 열고
COM 보안 탭으로 갑니다.
클라이언트는 액세스 권한 그룹의 제한 편집을 선택합니다.
ANONYMOUS LOGON 그룹의 원격 액세스를 허용하도록 설정하세요

 

3. 네트워크 암호 설정
클라이언트와 서버에서 Windows 계정 정보가 다른 경우 접속 불능…
그래서 이렇게 해야 합니다.
클라이언트 Vista의 시작 메뉴를 누릅니다.
그럼 유저 그림 뜨죠? 저는 강아지로 해 놓고 쓰는데 말이죠~ 축구공도 많이들 하시고… 하는 그 그림!!!
그거 누르시면 제어판>사용자 계정 누른 그 창이 뜹니다.
왼쪽 작업 항목에서 네트워크 암호 관리 를 선택합니다.
그리고 추가 누르시고 서버 이름에는 IP 주소 말고 서버 이름을 입력하시고~~
사용자는 <서버 이름>\<아무개> 이런 식으로 입력하시고
암호 입력하시면 됩니다.
CMDKEY 라는 명령어를 사용하셔도 됩니다. (클라이언트 설정인데 굳이 명령 프롬프트 사용하실 일이 있을까나?)

자 이제~~~ Hyper-V 관리자를 통해 확인합니다.
뭐라구요? 접속이 안된다구요? 혹시 관리자에서 서버 이름을 IP 주소가 아닌 서버 이름으로 입력하셨나요?
원격 서버에 설정을 하지 않으면 그렇게 접속이 안됩니다. 그건 원격지의 서버 방화벽 설정을 수정해 보세요.
뭐라구요? 접속은 되는데 권한 어쩌구가 나온다구요?
네 권한 설정이 안 된 것 맞습니다. BS의 경우 해당 계정이 Administrators 그룹에 있고,
위 서버 설정에서 권한 설정에 모두 Administrators 그룹이 있는데도 불구하고
접속하면 권한 없다고 나오는군요… 이유는? 모르겠습니다. 참고로 저는 서버 관리자가 아니고 서버 프로그래머 입니다…
그래서 직접 해당 계정을 권한 설정에 모두(WMI, DCOM, Hyper-V) 추가하니 음… 되네요…

 

그림 하나 없고 글이 길어 힘드시면…
http://blogs.technet.com/koalra (꼬알라의 하얀집)
여기 가셔서 “Hyper-V의 원격 관리”로 검색해 보세요

MagicDisc – 가상 CD/DVD-ROM 프로그램

http://www.magiciso.com/tutorials/miso-magicdisc-overview.htm


 


DaemonTools 라는 훌륭한 프로그램이 있지만 상업적 용도, 회사에서는 사용하려면 구매를 해야 하는 문제가 있어


찾다보니 나온 무료 프로그램 입니다.


 


각 버전별로 다운로드를 할 수 있으며


최신 OS 인 Windows 7 까지 지원합니다.


 


 

AutoHotKey – 키보드 핫키 유틸리티

http://www.autohotkey.com/


 


다양한 기능을 제공한다.
특정 키 입력을 다른 키로 user 단에서 리맵핑하거나
키보드의 입력을 스크립트로 코딩된 특정 동작으로 변경할 수도 있다.


 


심지어 웹에서 검색하다보니 Windows의 기본 입력을 Vi 스타일로 변경하는 스크립트도 있다.
(hjkl로 화살표 키 대신 사용, :wq로 저장 등등)


 


우리의 그 것 registry 를 변경하고 reboot 이 귀찮다면 이것을 사용하라….
대신에 user 단에서 실행되는 프로세스가 하나 떠 있어야 한다.
그리고 스크립트 공부도 조금 필요하고

Key Tweak – Keyboard Remapping 도구

원래 페이지는 사라짐: http://webpages.charter.net/krumsick/

Download from Major Geeks

다운로드: keytweak_2.30

Windows 환경에서 keyboard layout을 조정해주는 프로그램이다.
결과는 HKLM/SYSTEM/CurrentControlSet/Control/Keyboard Layout의
Scancode Map 이라는 데이터가 수정된다.

Windows Vista 32 bits에서 작동 확인하였고,
Vista의 경우 관리자권한으로 실행해야 registry 에 값을 변경할 수 있음을 주의할 것