Virtual Machine Manager in Ubuntu

HYEONG HWAN, MUN/ 10월 18, 2014/ 미분류/ 2 comments

https://blog.lael.be/post/242

이 글은 : https://blog.lael.be/post/57 (오픈소스 클라우드 구축하기)

에 이어서 작성된 글입니다.

Ubuntu 12.04 LTS Desktop 기준으로 작성되었습니다. (정확히 이 버전에서만 동작합니다.)

 

Virtual Machine Manager 사용 메뉴얼

 

v1

 

(libvirt) 채널을 오른쪽클릭 > New

 

v2

 

Local

 

v3

 

미리 받아둔 iso 파일 선택.

OS type 및 Version 은 선택하나마나 별차이 없는것 같다.

 

v4

 

 

가상서버의 사양선택. HOST 서버의 사양에 따라 최대 선택의 제한이 있으므로 적당히 잘 하도록 한다.

 


 

v5

 

4번째 단계는 HDD 이미지 선택인데 라엘이는 미리 HDD 이미지를 만들어두었다.

 

v6

 

선택한다.

 

Browse 를 해서 선택한 파일이 있다면 그 이미지를 사용하고, 없다면 상단의 옵션으로 HDD 이미지를 생성한다.

HDD 이미지 생성에는 매우 많은 시간이 소비되며 반드시 Allocate entire disk now 를 체크하도록 한다. (안하고 했더니 설치가 매우 느림. 가장 좋은 방법은 라엘이 처럼 하드 이미지 하나 생성한 후 여러개 복사해서 준비해뒀다가 사용하는 것임.)

 

설치는 무난하게 진행될겁니다.

 

그 후에는 CPU 코어 수를 결정해야 하는데

 

v7

 

1) 먼저 Topology 를 설정하세요. 실제 CPU와 같게.

2) Cpu current allocation 으로 가상서버에 CPU를 할당하세요.

한도내에서 설정하는데 모든 값이 동작하지는 않습니다.

저는 1, 2, 4, 6, 8, 10, 12, 16, 24 의 코어가 할당가능하더군요. 미리 테스트 해서 어떤게 할당가능할지 파악해두세요.

 

3) Pinning 설정.

실제 CPU와 매칭을 시켜주는 겁니다.

예를 들어서 위와 같이

6 core 할당, Pinning 1-10 이라면

가상PC 가 켜질때 실제PC의 인덱스번호 1~10 에서 6개를 추출해서 바인딩 합니다. (위 그림 참조)

- 이 기술로써 가능한 것이 특정 VM에 CPU를 단독할당 할 수 있다. - 6core 할당시에 Pinning 을 1-6 으로 하고 다른 VM에서 Pinning 을 1-6 외의 범위를 사용하면 됨.

- 코어를 공유할 수 있다. - 4core 할당하고 모든 vm 의 Pinning 을 1-4 로 하면 모든 VM에 4core 로 동작.

예를들어서 위의 서버는 24cpu 할당한 가상머신을 여러개 돌릴 수 있다.

- 악의적으로 core 성능을 낮출수도 있다. - 24core 할당시키고 Pinning 을 1 로 지정하면 모든 core의 동작을 실제CPU의 1 혼자 수행한다.

 

아마 대다수의 VPS 회사에

Thread 를 core로 포장해서 판매할 것이고 (뭐 이건 나쁘다고 말하기 어렵다. 실제 CPU와 동일한 동작을 하니까)

core 표시가 없는 곳은 core share 로 운영할 것이다. (cafe 24 vps, phps vps)

 

 

v8

 

이해를 돕기위해 16 core 할당 Pinning 을 1 로 설정해보았다.

 

v9

 

네이버 메인을 띄우면서 확인해 보았다.

 

클라이언트 PC에서는 16 core 로 인식한다. CPU 부하량도 그리 높지 않다.

실제 CPU 부하량 계산법 : 평균부하량 * core 수 / 호스트서버의 실제 CPU수.

16% * 16개 / 1실제CPU = 256 % (윈도우는 100%가 최고인데, 리눅스는 그 이상도 있다. load average(CPU요구량) 라는 용어참조)

CPU는 100까지 처리가 가능한데, 프로세스 요구량은 256임.

v10

그러나 Host PC 에서는 CPU 하나가 16core 가 넘겨주는 모든일을 다 하므로 부하가 상당하다.

웹페이지만 열었는데도 100% 대에 육박한다.

 

이래서 VPS 장애는 뽑기운

(cafe 24가 예전부터 한서버에 서비스를 여러개 두는 걸로 유명했다. cafe 24 가상서버호스팅을 쓰다보면 전혀 빠르지 않음을 느낄 수 있는데 이렇게 구성되지 않았나 추측해본다.)

이며 신뢰된 스마일서브(Cloudv) 같은곳에 신청하도록 하자.

 

참고로 가상머신 세팅시 메모리 공유는 불가능하기 때문에 메모리 많은 호스팅이 좋은 곳이다.

(이 역시 리눅스는 swap 파티션을, 윈도우는 가상메모리 파일을 크게 잡아서 이것을 메모리로 할당하는 꼼수도 있다. 정말 가상화라는 것이 마음먹고 사기치면 알수 없는듯.)

 

무튼 테스트겸 최상의 설정을 해보았다.

v11

 

골고루 쓰면 CPU 들이 이런 파형을 이룬다. (Host PC에서 체크)

v12

 

마지막으로 올바른 운영을 하기 위해서는 서버마다 최소의 자원만을 할당한 후 요구사항이 늘어났을때

늘리는 것으로 해야한다.

 

이 후에 VM에 포트포워딩을 하기 위해서는

https://blog.lael.be/post/231 을 참조하길 바란다.

 

조금더 고급 포트포워딩을 하기 위해서는

https://blog.lael.be/post/69 을 참조하길 바란다.

 

 

이상 이 글이 도움이 되길바라며, 저는 라엘이었습니당

2 Comments

  1. 호스팅 서버 구축 하는 작업을 해야 하는데 많은 참조가 되고 있습니다.

    감사히 잘 보고 갑니다.

    1. 학생이시라면 DreamSpark 도 검토해보세요.
      https://www.dreamspark.com/
      인증 후에 MS 서버군 라이센스를 무료로 사용해 볼 수(라이센스 키 발급) 있습니다.

Leave a Comment

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*