vSphere (구 VMWare ESXi)는 하나의 물리 서버에 여러개의 가상서버를 설치하고 운영하는데 최적화 된 가상화 솔루션이다. 요즘에는 도커(Docker)와 같이 보다 효율적으로 하나의 서버에서 응용프로그램(컨테이너)+파일시스템을 가상화하는 방법도 있는데 두 가상화 기법은 서로 배타적인 것이 아니라 상호 보완적인 것으로써 서버 가상화가 필요한 경우와 응용프로그램 가상화가 필요한 경우를 구분하여 적절히 사용하면 보다 효율적으로 가상화를 구현할 수 있다.
회사에 재직하지 않다보니 때때로 서버 기반의 테스트가 필요할 때 테스트 환경이 무척 아쉬울 때가 많다. 그래서 이번에 가상서버 환경을 구축하려고 마음먹고 60만원 정도의 조립 PC 하나를 구입했다.
- CPU : Intel 8세대 i3
- RAM : DDR4 16G
- SSD : 256G
- HDD : 놀고 있던 330G HDD (SATA)
- CASE : Slim PC (MicroATX)
- LAN : 내장 RealTek RTL8111H Gigabit Ethernet
문제는 어떤 가상화 솔루션을 설치하느냐다. 그냥 CentOS를 설치하고 VirtualBox나 VMWare를 설치하는 일반적인 방법도 있고 가상서버 전용 서버인 Microsoft의 Hyper-V Server나 VMWare의 vSphere를 설치하는 방법도 있다.
가장 좋은 방법..그리고 가장 선호하는 것은 vSphere를 설치하는 것이다. 하지만 일반 조립PC에 vSphere를 설치할 때는 한가지 고려할 점이 있다. 바로 조립PC의 부품 중 하나인 랜카드를 조금 좋은 것으로 장만해야 한다는 것이다. 조립PC 견적을 낼 때 메인보드에 일체형으로 제공되는 리얼텍(RealTek) 랜카드는 vSphere에서 지원하지 않아 설치 도중에 에러가 나면서 설치가 중단된다. 이 문제를 회피하는 가장 쉬운 방법은 3Com 등 vSphere에서 기본적으로 지원하는 랜카드를 하나 더 구입해 장착하는 것이다. 하지만 쓸데없는 엔지니어의 도전정신(?)이 발동해 SW적으로 문제를 해결해 보기로 했다.
vSphere 설치 용 iso 파일에 RealTek 랜카드 드라이버를 통합하여 리패키징(?)하는 방법을 써보기로 했다.
역시나 기본적으로 제공되는 vSphere 6.5의 iso 파일을 다운받고 부팅 USB를 만들어 설치를 시도하니 다음과 같은 에러가 발생하며 설치가 중단되었다. 몇 년 전 재직중일 때 서버를 한 대 조립하여 교육환경을 만들면서 처음 경험했던 바로 그 에러다. 그때나 지금이나 마찬가지라니…. (그 땐 시간이 없어 그냥 3Com 랜카드를 추가로 구입하여 설치했었다.)
vSphere 6.5를 설치하는 중에 No Network Adapters 에러 메시지. 이 에러 메시지가 발생하지 않게 하려면 다운로드 받은 iso 파일에 리얼텍 랜카드 드라이버를 포함시켜 다시 iso 파일을 리패키징해야 한다.
vSphere 6.5 iso 파일과 함께 다음 URL에서 다운로드 한 RealTek 랜카드 드라이버 파일을 함께 위치 시킨다.
다운로드는 맨 아래의 “VIB File of version 8.0.45a” 라는 다운로드 링크를 클릭하면 다운로드 된다. 사이즈는 1M 남짓으로 매우 작은 사이즈다. 파일명은 net55-r8168-8.045a-napi.x86_64.vib 이다.
이 드라이버와 호환되는 RealTek 랜카드는 다음과 같다.
(Realtek RTL8111B / RTL8168B / RTL8111/RTL8168 / RTL8111C / RTL8111CP / RTL8111D(L) / RTL8168C / RTL8111DP / RTL8111E / RTL8168E / RTL8111F / RTL8411 / RTL8111G / RTL8111GUS / RTL8411B(N) / RTL8118AS / D-Link DGE-528T)
만약 설치하고자 하는 PC에 장착된 랜카드 종류와 모델명을 모른다면 위의 에러 화면에서 [Alt]+[F1] 키를 동시에 누르면 콘솔 로그인 화면으로 전환되고 ID에 root, 비밀번호는 입력하지 않고 엔터키를 누른다.
정상적으로 수행되면 쉘 프롬프트가 실행되며 다음의 명령어를 실행하여 랜카드의 모델명을 확인할 수 있다.
뒤의 화면이 잘렸는데 그 잘린 부분에 모델명이 출력되었다.
내장 랜카드의 드라이버 파일(.vib)과 vSphere 설치 iso파일(6.5)이 준비되었다면 이제 두 파일을 병합해 새로운 vSphere 6.5 설치 iso 파일을 만들 수 있게 해주는 파워쉘(PowerShell) 스크립트를 다운로드 받아야 한다. 이 스크립트의 이름은 “ESXi-Customizer-PS” 이다.
다음의 주소에서 다운로드 받을 수 있다.
이 ESXi-Customizer-PS 스크립트를 다운로드 받아 vSphere 6.5 설치파일과 앞에서 다운받은 RealTek 랜카드 드라이버 .vib 파일을 같은 디렉토리에 저장한다. 참고로 이 세개 파일 이외의 파일은 없도록 한다.
ESXi-Customizer-PS 스크립트는 Microsoft의 PowerShell로 작성된 스크립트다. 파워쉘은 Windows 8, 10 등과 Server 운영체제에 기본으로 탑재되어 있는데 보안 문제로 인해 ESXi-Customizer-PS와 같은 스크립트는 실행이 차단되어 있다. 스크립트 실행을 허용하기 위해서는 다음과 같은 과정을 거쳐야 한다.
먼저 파워쉘을 관리자 권한으로 실행한다.
하지만 파워쉘에서 ESXi-Customizer-PS 스크립트를 실행하면 다음과 같이 에러가 발생한다.
“이 시스템에서 스크립트를 실행할 수 없으므로 …. 파일을 로드할 수 없습니다.” 라는 에러가 발생하는데 에러 메시지의 하단부를 보면 “보안 오류”라고 되어 있다. 파워쉘은 기본적으로 PS> 프롬프트에서 명령어만 실행할 수 있고 스크립트를 통한 일괄 실행은 차단되어 있다. 보안성이 검증되지 않은 악성 스크립트의 실행을 차단하기 위해서다. 하지만 강력한 스크립팅을 지원하면서 스크립트 실행을 차단하는 모순은 보안을 고려하지 않고 설계된 Windows 운영체제의 숙명이다.
스크립트의 허용을 위해서는 다음과 같은 절차를 거친다.
“executionpolicy” 명령은 현재 스크립트의 실행이 가능한지 여부를 확인할 수 있는 명령어다. “Restricted” 라는 응답이 오는 것은 실행이 차단되어 있기 때문이다.
“set-executionpolicy unrestricted” 명령을 실행하여 스크립트의 실행을 허용하도록 변경한다. 다시 “executionpolicy”를 실행하면 “Unrestricted”라고 출력되는 것을 볼 수 있다. 이제 ESXi-Customizer-PS 스크립트를 실행할 수 있다.
하지만 이 상태에서 ESXi-Customizer-PS 스크립트를 실행하면 다음과 같은 에러메시지가 출력된다.
“FATAL ERROR: VMware. … is not available as a module or snapin! ….” 에러메시자가 출력되며 실행이 되지 않는다. 즉 ESXi-Customizer-PS 스크립트는 VMWare에서 제공하는 별도의 파워쉘 모듈이나 스냅인의 설치를 필요로 하는 것이다. 이 모듈을 설치하면 다음모듈에서 또 에러가 나고…를 반복한다. 모두 설치가 완료되어야 한다. 관련 모듈을 한번에 모두 설치하면 편하겠지만 그런 정보는 찾지 못했다. 귀찮지만 그냥 하나 하나 설치하면 된다.
이런 파워쉘의 추가 모듈 또는 스냅인은 인터넷에서 간단한 명령으로 설치할 수 있다. 파워쉘에서 사용가능한 모듈은 다음의 웹페이지에서 확인할 수 있다. (http://www.powershellgallery.com)
각각의 모듈에 대한 정보를 들여다 보면 어떤 명령으로 설치할 수 있는지가 친절하게 설명되어 있다. 파워쉘 프롬프트에서 다음과 같이 설치되는 것을 확인할 수 있다. 원격의 리포지토리에서 VMWare 관련 파워쉘 모듈을 다운로드 받고 설치가 진행된다.
“Save-Module -Name VMWare.[모듈명] -Path [다운로드경로]” 명령과 “Install-Module -Name VMWare.[모듈명]” 명령으로 설치한다. 이 두 명령은 파워쉘의 리포지토리에서 필요한 모듈을 검색, 설치하는 명령어 같은데… 처음 사용해보는 명령어 였다. -.- 하나 하나 꼼꼼히 공부하고 사용하면 좋겠지만 지금은 vSphere 6.5를 설치하는 것이 목적이므로 자세한 공부는 나중에 하기로… ^^
하여튼 이 두 명령어를 이용하면 VMWare에서 제공하는 파워쉘 모듈을 설치할 수 있다. 하나를 설치하면 또 하나의 모듈이 없어 에러가 나고… 에러난 모듈을 또 설치하고 나면 다른 모듈이 없다고 징징거리고… 서너번?? 반복 작업을 하니 드디어 ESXi-Customizer-PS 스크립트가 정상 실행된다.
위에서는 D:\vmware에 vSphere 6.5 iso 원본파일과 RealTek 랜카드 드라이버 .vib 파일 그리고 ESXi-Customizer-PS 스크립트(버전2.6.0)을 함께 저장한 뒤 실행한 화면이다. 작업이 완료되면 아래 처럼 새로운 iso 파일이 생성되어 있다. 파일명은 ESXi-6.5.0-20180804001-standard-customized.iso 이다.
이 파일(ESXi-6.5.0-20180804001-standard-customized.iso)을 이용해 설치 부팅 USB를 만들고 설치를 진행하니 RealTek 랜카드를 인식하고 오류없이 설치단계로 진행이 되었다. 그리고 설치가 완료된 뒤 브라우저를 통해 접속하니 다음과 같이 잘 접속되고 로그인 가상머신의 생성과 실행이 잘 되었다.