'가상화'에 관한 글 7건

  1. 2011.12.19 rdesktop과 ClearType
  2. 2010.07.28 클컴 시대, OS 사업자의 효과적 접근방식
  3. 2009.11.13 OpenNebula: 클라우드 컴퓨팅을 위한 오픈소스 도구
  4. 2009.11.13 Enomalism2, Open Source Virtualization Platform
  5. 2008.12.13 우분투 8.10에서 kvm을 이용한 가상서버 설정
  6. 2008.02.16 "Sun Microsystems Announces Agreement to Acquire innotek"
  7. 2007.05.07 "Comcast picks Zimbra for online e-mail"

rdesktop과 ClearType

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브

요즘 회사에서는 업무 환경에 VDI를 구축하겠다고 난리다. 뭐 난리는 아니겠지만 그냥 그렇게 표현했다. 오늘은 POC를 한다고 VMware View Client를 설치하라고... 주문이 들어왔는데... POC 사이트에 접속을 했건만, 이건 무슨 90년대식 깨진 글꼴? 그래서 잠깐 이것 저것 시도를 해봤다.

1. VMware View Open Client

꽤 오래 전에 공개되었던 VMware View Client의 오픈소스 버전을 찾아서 Google Code에 방문, 프로젝트 사이트에서 최근의 버전을 다운받아 설치했다.
(http://code.google.com/p/vmware-view-open-client/)

amd64용 deb 패키지를 받았더니 Ubuntu에서 무리 없이 설치가 되었고, "프로그램-인터넷-VMware View Open Client" 메뉴를 이용하여 화면을 볼 수 있었다.

그런데 이게 무슨 꼴? 글씨가 삐뚤 빼뚤... 확~ 창을 닫을려다가 잠깐 IP와 접속 정보(Domain과 계정명)만 확인하고는 다음 시도에 들어갔다.

2. tsclient... "프로그램-인터넷-터미널 서버 클라이언트"

우분투에는 메뉴에 "터미널 서버 클라이언트"라는 제목으로 뜨는 프로그램이 있다. 아마도 rdesktop의 프론트엔드겠지. 이 녀석을 이용하여 다시 시도했다. 프로토콜에서 RDP 버전을 5로 설정하고 앞서 확인한 VM의 IP와 계정을 이용해서 접속. 그런데...

  1. 바탕화면 글꼴은 ClearType 적용이 잘 되어 있다.
  2. 그런데 바탕화면 배경 이미지는 없네...
  3. IE 브라우져의 URL 창은 ClearType이 적용된데 반해, Tab은 깨져 보인다. 뭐지? :-(

3. 다시 rdesktop, 손으로.

웹을 좀 뒤져봤더니, -x 옵션을 이용하여 좀 세세한 설정을 할 수 있었다. 그래서,

$ rdesktop -u xxx -p xxx -d xxx -g 1360x768 -x 0x80 10.10.10.10

이렇게, ... 그랬더니...

  1. 이제 ClearType도 완전해졌고(IE Tab 포함)
  2. 바탕화면도 보인다. ㅋ

그냥 -x 옵션을 기록으로 남기기 위해 좀 끄적였는데... 갑자기 예전에 s3c6400 기반 800x480 화면의 디바이스에 rdesktop 포팅하던 기억이 새록 새록 떠오르네... 그게 값이 쌀지는 모르겠으나... VDI라고 한다면 그렇게 가야 하지 않을까... :-)

클컴 시대, OS 사업자의 효과적 접근방식

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브

지난 주에, 우분투 리눅스(Ubuntu Linux)의 제작사인 캐노니컬은 IBM DB2의 구동을 위한 가상 어플라이언스를 발표했다. 뭐... 별 일이 아닐 수도 있지만, 가상화/클라우드 컴퓨팅 시대의 시스템 구성/배치 방식, 소프트웨어 배포 방식, 기존 OS의 발전 방향을 놓고 봤을 때 숨은 의미가 크다고 생각한다. 어쩌면 클라우드 컴퓨팅 시대를 향한 OS 기반 사업자의 효과적인 접근 방식일 수도...

클라우드 컴퓨팅과 시스템 구성/배치

클라우드 컴퓨팅의 한 영역인 IaaS(Infrastructure as a Service) 환경은 기존의 물리적 시스템 구성/배치 방식을 가상머신을 이용한 시스템 구성/배치 형태로 바꿔놓고 있다. 가상화를 통한 시스템 추상화를 바탕으로 하여 다수의 시스템 구성을 단순히 "미리 구성된 시스템 이미지의 복제"로 해결할 수 있게 되었고, 기존의 시스템 프로비져닝을 괭장히 단순화시킬 수 있게 되었으며, 괭장히 유연한 시스템 배치가 가능하게 되었다. 사용자는, 하드웨어 설치 및 구성부터 OS 설치 및 환경 설정, 어플리케이션 설치 및 구동 환경 최적화 등의 복잡한 과정을 모두 생략하고, 전문가에 의하여 미리 구성된 "사용 가능한 시스템"을 "서비스 카탈로그"에서 골라서 단지 사용만 하면 되는 것이다. 이를 위하여,

  • 잘 구성된 가상화 인프라와 자동화된 안정적 운영 환경
  • 전문가의 손때가 묻은 미리 구성된 시스템 이미지 또는 가상 어플라이언스
  • 셀프서비스가 가능한 사용자 환경과 서비스 환경, 서비스 카탈로그 시스템

등의 조건이 갖춰져야 한다.

가상 어플라이언스

가상 어플라이언스란 일종의 소프트웨어/어플리케이션 배포 형태로 볼 수 있는데, 어플리케이션을 단일 패키지 형태로 배포하는 것이 아니라 그것이 구동하기 위한 기반 구성을 미리 조립, 설정하여 목적 어플리케이션 만을 위한 전용의 팩을 만들어 배포하는 것을 말한다. 이러한 (가상) 어플라이언스는 다음과 같은 조건과 특성을 갖는다.

  • 운영체제, 라이브러리를 포함하여 시스템의 구동 목적에 맞는 모든 구성요소가 설치/설정/최적화되어 있다.
  • 개념적으로, 지정된 목적 이외의 기능은 사용되지 않거나 접근할 수 없다. (OS의 다른 기능 등)
  • 기반 OS 지식이 없는 것으로 가정하여, 지정된 목적을 수행하기 위한 특화된 관리 기능을 제공한다.
  • 마치, OS+환경+어플리케이션이 아닌 단독 어플리케이션/시스템처럼 보일 수 있다.
  • 임베디드 OS를 기반으로 한 PMP, Kiosk Box를 떠올려보면 된다.

특히, 시스템 가상화 기술을 활용한 가상 어플라이언스는,

  • 이렇게 구성된 어플라이언스 이미지를 가상화 플랫폼 위에서 구동하게 된다.
  • 시스템 가상화를 통하여 추상화된 환경을 사용하기 때문에 하드웨어 호환성 이슈에 대한 고려가 줄어든다.
  • 호환되는 가상화 환경이 제공되면 쉽게 설치 및 운용이 가능하다.
  • 소프트웨어 배포에 있어서, 메뉴얼 위의 "Requirement" 항목이 단순해진다. (호환 가상 플랫폼만 필요)
  • 설치 메뉴얼, 설정 메뉴얼 등도 얇아진다.
  • 특히, TestDrive를 위한 영업전 엔지니어링 공수가 현저하게 줄어들게 되므로...
  • 독립 소프트웨어 공급자에겐 획기적인 소프트웨어 배포 방식이 될 수 있다.
  • 가상 어플라이언스 구성을 돕는 특화된 OS 배포 방식도 존재한다. (rPath, Turnkey Linux, JumpBox 등)

이러한 가상 어플라이언스라는 개념이 등장한 것은 이미 오래된 얘기지만, 앞서 이야기한 조건의 클라우드 컴퓨팅 시대에 와서 그 존재 가치와 의미가 한층 강해지고 있다.

그렇다면... Red Hat, Canonical 등의 리눅스 OS 공급자들이 취할 수 있는 현명한 행보는?


IDG - 캐노니컬, “IBM DB2를 리눅스 클라우드로”

캐노니컬이 IBM DB2 데이터베이스 소프트웨어의 인스턴스를 구동하는 가상 어플라이언스를 발표했다.
이번에 발표한 소프트웨어 어플라이언스는 IBM의 DB2 익스프레스-C를 포함하게 되는데, 이를 캐노니컬의 리눅스 기반 서버 배포판인 우분투 10.04 롱텀 서포트 서버 에디션 상에서 구동한다.
캐노니컬의 상용 서비스 담당 부사장 네일 레빈은 “우분투와 DB2 익스프레이스-C로 구성된 가상 클라우드 어플라이언스를 이용하면 퍼블릭 및 프라이빗 클라우드 환경에서 빠르고 쉽게 DB2를 구성할 수 있다”고 밝혔다.


OpenNebula: 클라우드 컴퓨팅을 위한 오픈소스 도구

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브

"조금 복잡해 보인다"는 알량한 이유로 시험을 위해 설치만 한 후 방치해버린 서버 가상화/클라우드 컴퓨팅 솔루션이 하나 있는데, 그 "알량한 이유"가 합당치 않으므로... 다시 기억을 되새긴다. 물건일 것 같다. 언제든 꼭 확인하라.

.:: OpenNebula: The Open Source Toolkit for Cloud Computing ::.
OpenNebula is an open and flexible tool that fits into existing data center environments to build any type of Cloud deployment. OpenNebula can be primarily used as a virtualization tool to manage your virtual infrastructure in the data-center or cluster, which is usually referred as Private Cloud. OpenNebula supports Hybrid Cloud to combine local infrastructure with public cloud-based infrastructure, enabling highly scalable hosting environments. OpenNebula also supports Public Clouds by providing Cloud interfaces to expose its functionality for virtual machine, storage and network management.


Enomalism2, Open Source Virtualization Platform

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브

이것은 산뜻한 디자인의 Web UI가 돋보이는 오픈소스 가상화/클라우드 컴퓨팅 플렛폼이다. 상용 서포트 회사도 있고... Lab에서 얼마간 시험을 해봤는데, 단일 머신 환경이라서 썩 재미있는 실험을 하지는 못했다. 어쨌든 괜찮았던 기억.

Enomaly: Elastic / Cloud Computing Platform: Home
Enomaly's Elastic Computing Platform (ECP) is the answer for service providers and enterprises that want to benefit from the power, flexibility, and compelling economics of cloud computing.
Enomaly Developers Wiki
Enomaly's Elastic Computing Platform (ECP) is a programmable virtual cloud infrastructure for small, medium and large businesses. ECP can help you design, deploy and manage virtual applications in the cloud and in the process significantly reduce administrative and systems workload. Our browser-based dashboard enables IT personnel to simply and efficiently plan deployments, automate VM scaling and load-balancing, and analyze, configure and optimize cloud capacity in an easy to use utility. We've designed the ECP platform to work alongside your current virtual data center, providing additional value and cost saving.


우분투 8.10에서 kvm을 이용한 가상서버 설정

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브

개요

가물가물한 기억인데, kvm과의 첫 만남은 아마도 2007년 늦은 봄 정도였던 것 같다. 그 무렵이 드디어! kvm이 메인스트림 커널에 포함되고 그것을 기반으로 한 배포본이 등장하기 시작했던 무렵이기 때문이다. (요즘 가끔씩 깜짝 놀라기도 하는데, 되돌아보니 근 몇 년간 배포본에서 지원하지 않는 최신의 뭔가를 스스로 노력해서 써본 기억이 없다! 이럴수가!)

이런 저런 정황으로 봤을 때, 앞으로 리눅스 기반 가상화의 중심에 자리 잡을 것으로 예상했던 kvm의 첫 느낌은, (애써 감추려고 노력했지만) 사실 실망이었다. 너무 느리고 까다롭고... 하지만, 신생아라는 점을 고려하면, 그냥 "와~ 추카추카~ 이쁘네~~~ 잘키워~" 하고 호응해줄 수 밖에!

그로부터 채 1 년도 지나기 전에, kvm을 프로젝트에서 개발 플랫폼으로써 활용할 수 있었다는 것이, 기쁘지 않을 수 없다. :-) 그래서, 이번에는 내부 업무 시스템에 kvm을 적용해보기로 맘먹었다. (말이 길었는데,) 이 글은 그 과정에 대한 기록이다.

설치 및 설정 - 기본 설정

한 두 번도 아닌데, kvm은 설치할 때 마다 새로운 느낌이 있다. 아직 활발히 성장하고 있는 중이어서일까? 어쨌든, 이번 설치의 플랫폼은 우분투 8.10이다. 먼저, 다음 명령을 사용하여 kvm 관련 패키지를 설치했다.

$ sudo apt-get install ubuntu-virt-server

8.10 버전부터 새로 추가된 ubuntu-virt-server 패키지는 kvm, libvirt-bin, openssh-server 등의 세 패키지를 잡고 있는 가상화 서버 구성을 위한 메타패키지이다. 이와 함께 추가된 ubuntu-virt-mgmt 패키지는 virt-manager, python-vm-builder, virt-viewer 등의 관리용 패키지를 잡고 있는 메타 패키지인데, 이 번 작업 내용에는 포함되지 않았다. (현재 랩탑에서 사용중인 7.10 버전에서는 지원되지 않아서 일단 관련된 작업 및 시험은 보류했다.)

네트워킹 등의 일부 기능은 적절한 권한이 있어야 사용할 수 있다. 다음 명령을 이용하여 사용자를 libvirtd 그룹에 추가시켜준다. (물론, 다시 로그인을 해야 변경된 그룹 권한이 적용된다.)

$ sudo adduser `id -un` libvirtd

위의 과정이 정상적으로 수행되었다면, 다음과 같은 방식으로 작동 여부를 확인할 수 있다.

$ virsh -c qemu:///system list
Connecting to uri: qemu:///system
Id Name                 State
----------------------------------
$

가상머신 설치하기 - 가상 콘솔

이런! 가상머신을 설치하려고 보니 어쩔 수 없이 최소한의 클라이언트 기능을 설치할 수 밖에 없겠네... 애초의 계획은 클라이언트는 완전히 독립된 기계에서 운용하고 서버는 말 그대로 "가상화 기반"으로써만 활용하는 것이었다. 그런데... 랩탑 환경을 지금 바꾸기는 좀 무리가 있고 일단은 서버에 최소한의 관리 환경을 설치하도록 한다.

다음과 같은 방식으로 가상 콘솔 프로그램인 virt-viewer를 설치한다.

$ sudo apt-get install virt-viewer
[...]
다음 새 꾸러미를 설치할 것입니다:
  defoma fontconfig fontconfig-config hicolor-icon-theme libatk1.0-0
  libatk1.0-data libcairo2 libcups2 libdatrie0 libdrm2 libfontconfig1
  libfontenc1 libfreetype6 libgl1-mesa-glx libglu1-mesa libgtk-vnc-1.0-0
  libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libgtkglext1 libice6 libjpeg62
  libpango1.0-0 libpango1.0-common libpixman-1-0 libpng12-0 libsm6
  libthai-data libthai0 libtiff4 libxcb-render-util0 libxcb-render0
  libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxfont1 libxft2 libxi6
  libxinerama1 libxmu6 libxrandr2 libxrender1 libxt6 libxxf86vm1 ttf-dejavu
  ttf-dejavu-core ttf-dejavu-extra virt-viewer x-ttcidfont-conf
  xfonts-encodings xfonts-utils
[...]

virt-viewer는 말 그대로 가상머신 뷰어이다. 이 프로그램을 통하여 가상머신의 가상 콘솔에 접속할 수 있고, OS 설치 등의 현장에서만 실행할 수 있는 작업을 진행할 수 있다.

이것으로 준비는 거의 끝난 것 같다.

가상머신 설치하기 - 가상머신 생성

virt-install 이나 우분투 고유의 python-vm-builder (예전의 ubuntu-vm-builder) 등의, 설치 전용 유틸리티를 활용하여 생성과 동시에 설치를 진행하는 방식도 있고, 또는 virt-manager에서 적절한 생성을 마친 후, 가상머신을 기동시키고 설치를 진행할 수도 있다. 예전에는 virt-manager 방식이나 virt-install 방식을 시도해봤었는데, virt-manager 방식의 경우, 설치 속도 문제로 고생을 좀 했던 기억이 있다. virt-install의 경우, 설치 후 재부팅이 필요한 환경 등에서 좀 모자라다는 느낌을 받았었던 것 같은데 역시 기억이 살짝 희미해져 있다. 더욱 중요한 것은, virt-install의 경우, 여러 디스크를 붙이고 싶은 경우 등의 상세한 작업을 할 수 없었던 것으로 기억한다. 그래서 이번에는 다른 방식을 도입해 보았다.

이름하여 가상머신 생성기. genxml.sh라는 스크립트를 급조했다. 처음에는 조금 보편적인 설정이 가능하도록 하려다가, 시간도 없고. 또한 그렇게 까지 할 필요성을 느끼지도 못해서 내 스타일의 가상머신을 만들어내는 정도로 목표 수준을 낮췄다. 다음은 스크립트의 내용이다.

#!/bin/sh

VM_ROOT=/box/vms

vm_name=mercury
vm_mem=1024
vm_cpu=2
vm_mac=`echo "52:54:00$(hexdump -e '/1 ":%02x"' -n 3 /dev/urandom)"`

echo -n "name of vm: "; read vm_name
vm_home=$VM_ROOT/$vm_name
mkdir -p $vm_home

echo -n "size of ram: "; read vm_mem
echo -n "number of cpus: "; read vm_cpu
echo -n "path of cdrom: "; read vm_cdrom
echo -n "disk size of sys: "; read size
qemu-img create $vm_home/$vm_name-sys.qcow2 -f qcow2 ${size}G
echo -n "disk size of tmp: "; read size
qemu-img create $vm_home/$vm_name-tmp.qcow2 -f qcow2 ${size}G
echo -n "disk size of opt: "; read size
qemu-img create $vm_home/$vm_name-opt.qcow2 -f qcow2 ${size}G

cat < $vm_name.xml >>EOF
<domain type="kvm">
  <name>$vm_name</name>
  <uuid>`uuidgen`</uuid>
  <memory>$(( $vm_mem * 1024 ))</memory>
  <currentmemory>$(( $vm_mem * 1024 ))</currentmemory>
  <vcpu>$vm_cpu</vcpu>
  <os>
    <type>hvm</type>
    <boot dev="hd"/>
  </os>
  </boot>
  <features>
    <acpi/>
  </features>
  <clock offset="utc" />
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type="file" device="disk">
      <source file="/$vm_home/$vm_name-sys.qcow2"/>
      <target dev="hda" bus="ide"/>
    </disk>
    <disk type="file" device="disk">
      <source file="/$vm_home/$vm_name-tmp.qcow2"/>
      <target dev="hdb" bus="ide"/>
    </disk>
    <disk type="file" device="disk">
      <source file="/$vm_home/$vm_name-opt.qcow2"/>
      <target dev="hdd" bus="ide"/>
    </disk>
    <disk type="file" device="cdrom">
      <source file="/$vm_cdrom"/>
      <target dev="hdc" bus="ide"/>
    </disk>
    <interface type="network">
      <mac address="$vm_mac"/>
      <source network="default"/>
    </interface>
    <input bus="ps2" type="mouse"/>
    <graphics type="vnc" port="-1" listen="127.0.0.1"/>
  </devices>
</domain>
EOF

이 스크립트를 이용하면 디스크 세 개를 달고 있는 가상머신 설정을 단숨에 만들어낼 수 있고 해당 디스크 이미지 역시 스크립트 내부에서 만들어낸다. 가상머신이 생성되는 위치는 스크립트 내부에 지정되어 있으며, 가상머신 이름을 이용한 디렉토리 안에 관련된 디스크 파일을 모아두는 방식으로 되어있다. 다만, 가상머신의 설정이 담긴 xml은 스크립트를 실행한 현재디렉토리에 떨어지게 되며, 다음 명령을 이용하여 이 xml 파일을 읽어들여 가상머신 설정을 완료하도록 할 수 있다.

$ ./genxml.sh
name of vm: u810si
size of ram: 512
number of cpus: 2
path of cdrom: /box/isos/ubuntu-8.10-server-i386.iso
disk size of sys: 6
Formatting '/box/vms/u810si/u810si-sys.qcow2', fmt=qcow2, size=6291456 kB
disk size of tmp: 1
Formatting '/box/vms/u810si/u810si-tmp.qcow2', fmt=qcow2, size=1048576 kB
disk size of opt: 2
Formatting '/box/vms/u810si/u810si-opt.qcow2', fmt=qcow2, size=2097152 kB
$ virsh -c qemu:///system define u810si.xml

이렇게, 우분투 8.10 서버용 i386 버전을 위한 가상머신 설정과 디스크 준비를 끝냈고, 마지막으로 virsh 쉘의 define 명령을 이용하여 만들어진 설정을 적용하였다. 이제 생성된 가상머신을 실행해보자.

$ virsh -c qemu:///system start u810si
Connecting to uri: qemu:///system

$ virt-viewer -c qemu:///system u810si

어라? 부팅에 실패했다! 왜냐하면, 기본 부팅 설정이 'hd' 즉, 하드디스크로 되어있기 때문. xml 파일을 열어서 다음의 내용을 수정해주고 다시 define 명령을 내려줘야 cdrom으로의 부팅이 가능하다. (그런데 왜 hd를 기본값으로 했을까? cdrom으로 바꿀까?)

9c9
<    <boot dev="hd">
---
>    <boot dev="cdrom">

어쨌든, cdrom으로 부팅을 하도록 설정하고, define 명령을 내려주고, 다시 start 명령을 내린 후 접속을 해보면 설치 화면이 떠 있는 것을 볼 수 있다. 이후의 과정은 일반적인 설치 과정이며, 최종적으로 재부팅. 어라? 그러면 다시 CD로 부팅할 줄 알았은데 그렇지가 않다. 그냥 부팅 오류가 발생했네? 이유는 모르겠지만 어차피 다시 부팅 설정을 바꿨어야 했으므로, 다음의 방식으로 설정을 바꿔주고 다시 시작해보자.

$ virsh -c qemu:///system destroy u810si
$ vi u810si.xml  (boot 부분 편집)
$ virsh -c qemu:///system define u810si.xml
$ virsh -c qemu:///system start u810si

휴, 이제 설치가 모두 끝났다.

아참, 이렇게 재부팅 하기 직전의 상태를 백업해 두는 것도 좋겠네.

가상머신 복제

이렇게 생성, 설정 및 설치를 마친 후, 늘 그렇듯이 설치 원본의 백업 및 복제 방안 마련에 들어간다. 백업은 간단한게, xml 파일과 디스크 이미지 파일을 tar 명령으로 묶어서 저장해두면 그 뿐. 그럼 복제는? 다음의 방식을 도입해봤다.

먼저, 간단한 스크립트를 하나 짰다. 이름은 copyvm.sh.

#!/bin/sh

src_vm=$1
dst_vm=$2

[ "$src_vm" = "" -o "$dst_vm" = "" ] && {
        echo "usage: copyvm.sh src dst"
        exit 1
}

[ ! -d "$src_vm" ] && { echo "source vm is not exist. abort!"; exit 1; }
[ -e "$dst_vm" ] && { echo "destination vm is already exist. abort!"; exit 1; }

vm_mac=`echo "52:54:00$(hexdump -e '/1 ":%02x"' -n 3 /dev/urandom)"`
vm_uuid=`uuidgen`

cp -a $src_vm $dst_vm
cd $dst_vm
rename "s/$src_vm/$dst_vm/" *
sed -i "s/$src_vm/$dst_vm/g" $dst_vm.xml
sed -i "s,<uuid>.*</uuid>,<uuid>$vm_uuid</uuid>," $dst_vm.xml
sed -i "s,<mac address=".*/">,<mac address="$vm_mac">," $dst_vm.xml

ls
cat $dst_vm.xml

내용은 간단하다. 인수 두 개를 받아서 첫 번째 인수로 받은 기존 VM을 두 번째 인수로 받은 이름의 새 VM으로 복사하고 설정 차원에서 중복되어서는 안되는 값만 바꿔주는 것이다.(MAC 주소와 UUID) 물론, OS 내부의 설정은 아직 변경하지 못한다. 불가능할 것 같지는 않은데... 현재로써는 복제 원본과 복제된 가상머신의 hostname, sshkey 등의 값이 같다는 한계가 있지만, 어쨌든 쓸만은 하다. 또한 복제 원본을 위한 템플릿 작업을 조금 한다면 더 좋겠지.

$ copyvm.sh u810si rails

이제 우분투 8.10 서버 i386 버전 기반의 rails 환경 복제 완료. 프로비저닝 시간? 한 10초?

새로운 가상머신을 시작시킨 후, 다음의 명령으로 필요한 추가 패키지를 설치해줬다.

$ sudo apt-get install vim
$ sudo apt-get install subversion
$ sudo apt-get install rails
$ sudo apt-get install rubygems

마치기

푸하하... 여기까지, 우분투 8.10 최신버전을 기반으로 한 가상 인프라 구축의 초기 단계와 가상머신 생성 및 복제 과정을 정리해봤다.

"Sun Microsystems Announces Agreement to Acquire innotek"

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브
얼마전, 오픈소스 데이터베이스 벤더인 MySQL AB를 흡수하여 날 놀라게 했던 Sun Microsystems가 다시 오픈소스 가상화 솔루션 벤더인 Innotek을 인수했다. 계속해서 깜짝 놀랄 인수합병 소식의 릴레이인데, 정말 더 이상 IT에서 자체적인 성장은 없는 것일까?

Innotek은, 한 일년 전쯤부터 사용해오고 있는, 상당한 수준의 완성도를 갖춘 오픈소스 데스크탑 솔루션인 VirtualBox를 만든 회사이다.

(내게 가상머신이 필요한 이유는 리눅스 데스크탑의 부족한 0.2%를 채워줄 뭔가이다.)


Sun Microsystems Announces Agreement to Acquire innotek, Expanding Sun xVM Reach to the Developer Desktop
Sun Microsystems Announces Agreement to Acquire innotek, Expanding Sun xVM Reach to the Developer Desktop

Free and Open Source VirtualBox Desktop Virtualization Available for All Major Operating Systems

SANTA CLARA, CA February 12, 2008 Sun Microsystems, Inc. (NASDAQ: JAVA) today announced that it has entered into a stock purchase agreement to acquire innotek, the provider of the leading edge, open source virtualization software called VirtualBox. By enabling developers to more efficiently build, test and run applications on multiple platforms, VirtualBox will extend the Sun xVM platform onto the desktop and strengthen Sun's leadership in the virtualization market. This software is available for all major operating systems at www.virtualbox.org and www.openxvm.org.

VirtualBox
innotek VirtualBox is a family of powerful x86 virtualization products for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software under the terms of the GNU General Public License (GPL). See "About VirtualBox" for an introduction; see "innotek" for more about our company.

'오픈소스' 카테고리의 다른 글

CELF Korea Tech Jamboree  (0) 2008.02.25
Sun to Acquire MySQL  (0) 2008.01.18
엘림넷 대 하이온넷 사건  (1) 2007.06.07

"Comcast picks Zimbra for online e-mail"

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브
오라... 대세는 역시 오픈소스?

Comcast picks Zimbra for online e-mail | CNET News.com
Broadband and cable TV company Comcast has hired open-source software company Zimbra to power a service called SmartZone that provides subscribers with e-mail and other online services.
한참 전부터 살펴보고 싶었던 솔루션인데, 나의 게으름도 이제 수준급이어서... 도통 시간을 내고 있지 않다. 분명 VMWare Appliance로 다운받은 기억이 나는데, 지금의 웹에서는 찾을 수 없다. 오픈소스 솔루션이면서 돈이 되는 방법이 바로 이런 "어플라이언스화"가 아닐까?

그렇다면 대세는...
  • 오픈소스
    • 종속이 아닌 호환, 자유
    • 기술 의존이 아닌 서비스 지향
    • 결국, 고객이 왕이다!
  • 소프트웨어 어플라이언스?
    • 왜 복잡한 설치 메뉴얼을 읽어야 하나요?
    • 플러그 면 플레이
    • 내가 왕이라니까...
  • 가상화?
    • 간단화
    • 강력화
    • 감동 of 고객
아니면 말고...


'오픈소스' 카테고리의 다른 글

오픈소스, 사람들  (0) 2007.05.09
patch for udp socket reuse for rtp multicast.  (0) 2007.05.08
Adobe to Open Source Flex  (0) 2007.04.27