페이지

2010년 10월 21일 목요일

Resource Management

ZenCenter를 통하여 각 vm의 Resources를 설정할 수 있다.

  • Virtual Disks
  • Vitrual NICs
  • Virtual CPUs
  • Memory
1. Virtual Disk
  • reboot없이 디스크 자체를 더하고 제거할 수 있다. 디스크 사이즈의 추가는 가능하지만, 줄이는 것은 허용되지 않는다.
2. Virtual NICs
  • add, removed, edited 가 vm이 offline, online 상관없이 가능하다.
3. Virtual CPUs
  • vCPU 숫자의 추가는 아무런 kernal상의 변화를 요구하지 않는다. 하지만 OS가 Windows라면 HAL을 바꾸기 위해 reboot을 해줘야 한다. 
4. Memory
  • DMC(Dynamic memory Control) 을 이용하여 vm간의 다이나믹한 메모리 관리를 가능케 한다. 
  • DMC의 기본구조는 초기에 vm에 메모리를 할당 시, 정해진 값을 지정하는 것이 아닌 최소값과 최대값을 지정하여, 상황에 따라 Xenxerver가 메모리를 할당하고 회수할 수 있게끔 한 것이다. 
  • 초기에 메모리가 충분하다면 ZenServer는 최대값의 메모리를 각 vm에 할당하고 차후 새로운 vm의 추가 시, 메모리가 부족하다면 현재 vm에 할당되어 있는 메모리 중에서 여유분을 회수하여 새로운 vm의 생성을 가능케 한다. 

2010년 10월 20일 수요일

Afternoon_Question_01

1. What is P2V & V2V
  • P2V는 physical한 machine을 XenServer에서 쓸 수 있도록 virtual하게 바꾸는 것을 말한다. V2V는 virtual한 machine의 이미지 포멧을 여타 다른 포멧으로 변경 할 때, 쓰이는 것이다.
2. What formats of Virtual Disks are supported in XenServer
  • XVA(Xen Virtual Appliance)
  • OVF(Open Virtual Format)  -OVA(Open Virtualization Appliance), VHD(Virtual HardDisk)
3. What is Dynamic Memory Control (DMC) ?
  • XenServer 5.6의 새로운 기능으로 메모리 할당을 정해놓지 않고 가변적으로 정할 수 있게 한 것이다. 이를 젠서버는 workload에 따라 메모리의 사용량을 결정하고 바꾼다.
  • Dynamic Memory Control. This feature can increase the number of VMs per host by permitting the memory utilization of existing VMs to be compressed so that additional VMs can boot on the host. Once VMs on that host are later shut down or migrated to other hosts, running VMs can reclaim unused physical host memory. Dynamic Memory Control is enabled by defining minimum and maximum memory settings for virtual machines."
  • Memory can be added or removed without restarting the VM,  providing a seamless experience to the user.
  • When host servers are full, DMC allows you to start more VMs on these servers, reducing the amount of memory allocated to the running VMs proportionally.
  • As memory requirements on the host change, DMC will auto-adjust the memory of running VMs, but will keep the memory within a range specified by the administrator.
4. What happens if my memory is overcommited and DMC is set to disbable ?
  • Fail to start new vm with an 'out of memory' error.
5. What does the Virtual Switch do ?
  • 버추얼 스위치는 하나의 물리적인 nic를 여러 개로 가상화 해줌으로서 다수의 vm이 하나의 물리적인 nic를 공유해서 쓸 수 있도록 해준다. 뿐만 아니라, vlan 설정으로 네트워크의 성능을 보다 높이고 효율성있는 운영이 될 수 있도록 해준다. 
6. What does the Virtual Interface do ?
  • Every virtual machine connect to a virtual interface
7. What is VLAN Tagging ?
  • To set the VLAN trunking, VLAN ID is attached to every packet.
8. Why does XenServer want a dedicated management interface ?
  • 매니징 인터페이스가 있어야 각 인터페이스를 조정할 수 잇으니까. 
9. What is bonding ?
  • having multiple network cards working together for fail over and sharing of bandwidth for 1) management, 2) access to shared storage, 3) to communicate on network.
10. Why is bonding a good idea ?
  • failure 시에 재빠른 복구 및 대처가 가능하기 때문이다. 
11. What is load balancing ?
  • bonding을 통해 같이 일을 처리하게 함으로써, 처리량이 많아져도 처리할 수 있도록 나눌 수 있게 하는 것.
12. How is bonding and aggregation different ?
  • bonding은 두개가 같이 일하는 것. aggregation은 따로 일함. 
13. How is using Roles a good thing for administration ?
  • easy access to control domain??
14. What is the name of the windows command I can use for managing my XenServer ?
  • type 'xsconsole'
15. How do I get help for the command "xe vm-list"
  • type 'xe help vm-list'
16. How do I get the common help commands for "xe"
  • type 'xe help'

Morning Question_2

1. What is the purpose of a template?
  • 각 os에 맞는 환경을 최적화된 세팅값으로 vm을 설치할 수 있다. 
  • eg - ram, nic, vhd all resources
2. What are the three types of templates?
  • Full, Custom, Basic
  • citrix는 full, basic을 제공한다. 
3. Why does a linux virtual machine with the Xen kernal not need our virtualization drivers?
  • 이미 대부분의 리눅스들은 xen kernal을 가지고 hypervisor의 역할을 수행할 수 있기 때문에
4. What are the benifits of adding our virtualization drivers to Linux if is does not need it?
  • 다양한 드라이버에 맞는 paravirtualization drivers를 설치함으로서 성능향상 기대
  • XenConsole이 vm을 매니지 할 수 있게 해줌.
5. What is VNC?
  • VNC: Virtual Network Computing is a desktop sharing system which uses theRemote FrameBuffer) protocol to remotely control another computer.
6. When can i use VNC with a linux virtual machine? (What needs to be done first?)
  • vnc server, x-display가 설치 되어 있어야 함.
  • install linux >>> configure x Server >>> install VNC
7. What is VM importing & Exporting?
  • snapshot과 유사하게 vm의 현재 상태를 저장, 및 불러올 수 있게 함
8. How is importing and exporting different to using a template?
  • importing이나 exporting은 처음부터 설치하는 template와는 다르게 현재 workload까지도 같이 저장하고 불러올 수 있다. 
  • 임포팅, 익스포팅은 카피임. template는 만드는거임. 
9. What is snapshot?
  • 현재의 상태를 그대로 저장. 차후 불러오기가 가능하도록 // vm을 끄지 않아도 가능
10. Can u convert a VM to a Template? 
  • 일방향 임. vm 템플릿은 vm에 더이상 쓰일 수 없음.
11 . Can u convert a Template to a VM?

12. With Xen Convert, what is P2V and V2V? 
  • P2V는 online상의 물리적 머신을 vm으로 변환, V2V는 offline상의 물리적 머신을 vm으로 변환???
  • P2V는 물리적 머신을 vm으로. V2V는 vm을 다른 vm 타입으로 바꿈.(카피와 차이점이 타입이 바뀐다는 것)
13. What is the maximum number of VCPU for a windows vm?
  • 8
14. What is the maximum number of VCPU for a linux vm?
  • 32, but I can only configure 8 in the GUI.
15. How do u need to configure a linux vm to have the max number of VCPU?
  • set to highest CPU priority?? 젠센타에서 숫자바꾸기;;

2010년 10월 19일 화요일

Xen Server_02

들어가기에 앞서.. 사실 오늘 배운 부분은 그렇게 많지 않다. 예제와 실습이 많았을 뿐, 새로운 내용을 나간 부분은 적었다.(아니면 내가 이해를 못했거나ㅋㅋ) 암튼, 오늘도 Shane으로 부터 배워 본 내용을 정리해보자.

윈도우 / 리눅스 vm 만들기.

  • 윈도우는 vm을 설치 후에, xen tool을 설치해 줘야만, paravirtualization이 이루어 지지만, 리눅스는 이미 xen커널을 가지고 있기 때문에 따로 xen툴을 설치할 필요가 없다. 다만, 조금의 효율성을 높이기 위해 linux paravirtualization drivers를 깔아준다. 
Templates and Life-cycle operation
  • Xen에서의 template란 각 운영체제(Windows server 2003, Redhat, Centos etc)에 최적화 되어있는 설정값을 미리 지정해 둔, 틀을 말한다. 사용자는 새로운 vm을 추가할 때, 이런 template에서 전에 설정해 둔 설정들로 빠르고 쉽게 생성할 수 있다. 
Xen Convert (추가 공부 필요)
  • Xen Convert는 Physical to Virtual, Virtual to Virtual 두가지의 기능을 할 수 있다. 
  • P2V는 online에 있는 Physical적인 server나 desktop을 vm으로 만들 수 있는 것?
  • V2V는 offline에 있는 Physical적인 server나 desktop을vm으로 만들 수 있는 것?
  • 이해한 바로는 현재 백업을 위한 Ghost와 비슷하지 않나.. 하는 생각을 했음.
Resource Management(추가 공부 필요)
  • vm의 start option 중, autu-start는 어떠한 server가 시작할 때, 같이 시작한다는 것인지?

Morning Question

1. What is purpose of the hypervisor?

  • 하이퍼바이져는 하드웨어의 바로 위에 위치한 얇은 층으로 hardware 상에서 여러 개의 vm을 run할 수 있게 해 준다. 또한 vm이 cpu와 ram에 대한 직접적인 접근을 할 수 있게 해줌으로서 빠른 속도를 보장함. 
  • 하드웨어와 vm사이에서 작동

2. What is the difference between full virtualization and paravirtualization?

  • full virtualization은 dom0가 모든 자원(network, ram, cpu, disk)을 관리하지만 paravirtualization은 hypervisor가 vm에서의 cpu와 ram에 대한 직접적인 접근을 할 수 있게 해주고 나머지를(disk, network, drivers) dom0가 관리하고 할당해 준다.

3. What is a VM templates?

  • VM template는 vm을 만들 때, 각 os에 최적화된 설정값을 미리 만들어 둔것을 말한다. 예를 들면, windows server 2003이나 windows server 2008, windows xp, redhat 등의 OS에 맞는 설정값을 미리 지정해두고 설치할 때 이를 적용하는 것.

4. What purpose does the AMD-v/Intel-vt chip server in Xen?

  • Xen의 hypervisor를 통해 vm이 cpu나 ram에 대한 직접적인 접근을 할 수 있게 해준다.

5. What is needed for windows to be paravirtualised?

  • amd-v inter-vt칩이 있어야한다!!

6. Explain what the control domain does?

  • Xen 상에서의 Control Domain은 disk, network, drivers을 각 vm에 알맞게 할당하는 역할을 한다.

7. What is the difference between the software included with the free version of XenServer and the Platinum?

  • 비싼거일수록 세세한 기능을 조정할 수 있음

8. What is the Xen Control interface used for?

  • xen center와 통신할 수 있게끔 한다. 그래서 resources를 분배할 수 있게해줌.

Xen Server_01

++시작하기에 앞서. 이 글은 xen center의 직원 분인 교육을 하루 하고 정리한 내용이라. 사실 알고보면 구라일 수도 있고, 정확하지 않을 수도 있음; 차차 배우면서 새로운 정보는 업데이트 및 수정을 가할 것임.


Citrix사의 Xen Server는 여타 vmware와 유사하지만, 차이점이 있다.


  • Hypervisor를 이용하여 cpu와 ram은 따로 할당, 및 vm에서 직접적인 접근이 가능
  • 나머지 network, storage, drivers는 control domain(dom0) 만이 할당 가능.
* Hypervisor = 하드웨어 바로 위에서 실행되는 얇은 소프트웨어 층으로 각각의 물리적인 서버 위에서 여러 개의 vm들이 돌아갈 수 있게 추상적인 층을 제공한다. 모든 CPU 명령어를 조정.

이런 차이점은 Xen Server가 Vmware나 Virtual Box보다 빠른 작업을 가능케 한다. 타 Vmware나 Virtual Box에서는 물리적 Hardware위에 OS가 올라가고 그 "위"에 Hypervisor가 올라가는데 반해 XenServer에서는 Hardware 위에 "바로" Hypervisor가 올라가 있음으로 해서 이것을 가능케 한다. 

이런 방법의 가상화를 Paravirtualization이라고 한다. 

이러한 Xen Server를 여러 대 설치하고 난 뒤에는 Xen Center를 사용한다. Xen Center는 각 가상화된 vm들을 GUI환경에서 관리 할 수 있게 해준다. 


2010년 10월 16일 토요일

CentOS 설치 및 Chef 운영 환경 조성

(들어가기에 앞서, 이 글은 http://kerberosj.tistory.com/tag/%EC%89%90%ED%94%84 을 참조하고 거진 대부분을 따라하고 조금만 덧붙인 상태의 글이다.)

Cloud Computing System을 위하여 서버를 구축하고 Chef란 Tool을 이용하여 수 많은 서버를 관리하고 조직할 수 있다.

첫번째로, 리눅스 환경 중의 하나인 CentOS를 설치, 그 위에 Chef을 구동시키는 과정 설명이다.

기본지식이 워낙 없어서 그런지 개삽질에 삽질을 연거푸 하면서 조금씩 실력을 늘여가고 있다. 
뭐 진짜 쉬운게 하나도 없다만; 순서하나, 폴더하나, 글자하나만 틀려도 에러를 툭툭 뱉어내는 컴퓨터 ㅅㅂ 던지고 싶었네..ㅋㅋ 

잡설을 줄이고 암튼, Chef의 구동하기 위한 환경을 이제 설정해보자. 


1. chef을 구동하면서 opscode란 회사를 이용하였다.  뭐 회사에서 정해줘서 그런 것도 있겠지만, 이 회사가 경험이 참 많다. Chef를 기반으로 해서 갖가지 오픈소스로 자동화된 infrastructure를 여러 번 설계하였다.  - 암튼 그래서 cookbook의 개발 및 배포에 사용할 vm을 준비하고 이 vm을 opscode에 등록한다.
- http://www.opscode.com/users/new
 가입 후,  우측 상단의 자신의 ID를 클릭, key를 받아 둔다.

ID 선택

자신의 키를 받는다.

2. 자신의 private key값을 받았다면 이제 Organization 키값을 받아야 한다. http://manage.opscode.com 으로 이동, 우측 상단의 Organization을 클릭, 적당한 이름으로 하나를 생성한다. 이후, 조직명 옆에 있는 조직의 키와 knife configuration 파일도 클릭하여 저장한다. 


validation key & knife config

3. 총 저장한 파일은 3개, id.pem // organizationname-validation.pem // knife.rb 이다. 

4. CentOS로 돌아와 chef가 구동될 수 있도록 설정을 해준다. 
  • # sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
  • # sudo rpm -Uvh http://download.elff.bravenet.com/5/i386/elff-release-5-3.noarch.rpm
위는 chef을 운영할 수 있게끔 Ruby을 설치해주는 것이다. 

5. git을 설치. 
  • #yum install git chef -y

6. chef을 실행하기 위한 기본패키지를 설치하였고, 이제는 기본 chef-repo를 opscode의 github로부터 가져온다. 
  • git clone git://github.com/opscode/chef-repo.git ~/chef-repo
7. 일전에 저장해둔 3개 파일을 다음의 위치에 저장한다. 
  • mkdir -p ~/chef-repo/.chef
  • cp -r ID.pem VALIDATION.pem knife.rb ~/chef-repo/.chef
8. 다음의 command을 실행시켜 지금까지의 step이 정확한지 확인한다. 
  • knife node list
  • [
  • ]
이렇게 나온다면, 사용자 인증에는 문제가 없는것. 

9. 이제 내 vm을 노드의 하나로서 등록을 위해 다음을 실행한다. 
  • cd ~/chef-repo
  • knife configure client ./client-config
  • sudo mkdir -p /etc/chef
  • sudo cp -r ./client-config/* /etc/chef
위 커맨드는 client등록을 위해 validation.pem 과 client.rb를 생성, chef-client의 기본 참조 위치인 /etc/chef 위치로 복사하여 주는 것이다. 

10. 이제 준비는 다 된 것이고, 다음의 커맨드를 쳐서 정상 노드 등록이 되는지 확인한다. 
  • sudo chef-client
정상적으로 실행이 된다면, report handlers complete라는 메시지를 확인 할 수 있다. 

11. 모든 설정이 완료되었다면 다음의 커맨드를 실행, 자신의 vm내용이 나타나는지 확인한다.
  • knife node list 
  • knife client list 
커맨드의 실행값에 자신의 이름이 속해 있다면 정상작동 된 것이다. 


이상으로 CentOS에서의 Chef 구동을 위한 환경조성을 해보았다. 이게 사실은 존나. 간단한 듯 하면서도, 뭐 하나만 틀리면 다 에러를 줄줄 뱉는다. 어쨌든 중요한 건, 키값을 제대로 지정했는가, 전에 키값이 남아있는 건 아닌가, 정확한 위치에 가 있는가, 시간대가 다르지 않은가 등의 사항들이 있을 수 있는데, 하다보면 다 한다;