CloudStack 2.2.13 가상화 기반에서 테스트 가능하네요... 물론 KVM은 불가... XenServer를 사용한다면 HVM이 필요 없음에도, CloudStack은 HVM을 기본으로 체크해서 Computing Node 등록이 불가했었는데, 이걸 페이크 처리 하는 팁이 CloudStack Knowledge Base에 공개되었네요.. Citrix가 인수 하다보니 그런건지... 작년에 이부분때문에 한동안 이슈가 많이 올라오던데 별 진전이 없더만.... MySQL DB의 configuration테이블에 Advanced 속성 하나를 수작업으로 만들어 주니 되는군요... VMware ESXi에서 확인 했습니다~ 설치 문서는 기존 2.2 퀵인스톨 PDF 대충 참조.....
http://docs.cloud.com/Knowledge_Base/How_to_use_CloudStack_without_Hardware_Virtualization
물리 인프라 때문에 이것저것 테스트에 제약이 많았는데~ 이제 맘놓고 Advanced Networking도 실컷 내맘대로 테스트 해볼 수 있을듯~ 야호~
Posted by 사랑줍는거지
,

Introduction

Puppet is a Ruby based Configuration Management System with client/server model,  licensed under GPLv2 .It has one Master server puppetmasterd  and all other machines are configured as puppet clients . We set configurations at the puppet server and then push them to all clients which are connected to the master. The client puppet correctly applies the corresponding configurations on the client machine regardless of their platform difference.

Puppet is a gift to the server administrators who need to manage a large number of systems with different flavor of Gnu/Linux, Mac, Solaris and other Unix Based systems.If we are managing systems via remote administration then it would be a headache to the administrator and if the systems are different then the complexity will increase. Some accidental configuration changes may cause inconsistent working of the server. If we are using the Puppet for the configuration management then it will be a one time implementation of these configuration changes only at puppet server, then we just apply them to different puppet clients without any delay.

Another power of the puppet is it uses a Declarative Language to define configuration settings at the puppet master server. This language includes all major high level language features like Functions, Conditional Statements, Inheritance and other OOPs concepts. This feature makes for more readable , reusable and consistent Puppet configurations settings, when we compared with other configuration management tools like Cfengine.

Working

Puppet master server stores all client configurations, and  each client will contact the server via port 8140 (by default). The connection between server and client is encrypted. The client will generate a self-signed key before it connects to server and will submit this self-signed key to the master server and get the verified key back. Here master server acts like a Certification Authority. After this process, the client will establish a encrypted session with the server and get the configuration settings, then compile and apply it on client system. When the client compiles the configurations from server it may rise error messages if  there are any syntax errors in the configuration definitions. We can verify this on the puppet server and client log file.

Here is the outline of puppet server and client Architecture

Puppet Architecture

Puppet Architecture

Installation

Before installing Puppet, we need to setup some dependencies. First we need ruby with common library files(xml,ssl,etc.) installed, and facter, which is another ruby project that gathers all system information. Facter will be installed in all puppet clients. The puppet server retrieves the client configuration settings and other system-specific details from facter.

You can use the ruby’s built-in library management tool rubygem(rake) (similar to CPAN for Perl) to solve the dependency problems with libraries.

Facter installation :-

Get latest version from www.reductivelabs.com

1 tar -zvf facter-<version>.tar.gz
2  
3 cd facter
4  
5 ruby install.rb
6  
7 facter --version

Puppet installation :-

If we are installing from the package manager, there will be two packages: puppetd as the client and puppet-master as the Puppet server. We need to install both to setup the client and server, and both can be installed from the source code.

Download latest package from the www.puppetlabs.com, then similar to facter installation:

1 tar -xzvf puppet-<latest version>;
2  
3 cd puppet-<latest-version>;
4  
5 ruby install.rb
6  
7 #Create user and group for puppet
8 groupadd puppet
9 useradd -g puppet puppet

This step will install the required packages for the Puppet client and server. If you have any dependency problems then it might be due to a version mismatch problem between ruby/puppet/facter, so select correct the versions.

By default, the configuration files are listed under /etc/puppet and all others are in the /var/lib/puppet  folder (including log files).

Currently Puppet support all major Unix like systems but not Windows.The latest versions of the Puppet has introduced support for the Windows operating system by developing Windows specificfacter tool.

How to configure Puppet server :-

After  successful installation of the Puppet master server and client, there is a set of daemons associate with this package as well as command line utilities to manage these daemons. They are:

1 puppetmasted       #Puppet Master Server
2  
3 puppetd            #puppet Client.
4  
5 puppetca           #Key management daemon
6  
7 #and Set of other Utility commands.

Puppet  work without creating configuration files explicitly; they are already pre-configured. But to start the interaction with clients we need to make some changes. First, we can check the structure of the puppet configuration file.

It’s a good practice maintaining an explicit puppet configuration file;the latest versions of puppet use single configuration file to manage every daemons. By default, configuration files are stored under /etc/puppet. We save  all the configuration details of major daemons at /etc/puppet/puppet.conf.The puppet.conf use a special type of configuration structure to include every daemon’s configuration details,described below:

01 #Cat /etc/puppet/puppet.conf
02  
03 [main]
04  
05 Here We specify a set of configuration details common to all daemons.
06  
07 [puppetmasterd]
08  
09 Here comes the Puppet master server configuration details.
10  
11 [puppetd]
12  
13 To include the Puppet client configurations.
14  
15 [puppetca]
16  
17 Configuration details of puppet key management tool.

To get all the parameters under each daemons and main section with its functional details, please refer this page

How to Connect Puppet Client with Puppet Server

To set up a client we  just have to install the puppet client version or every package in another system.Your master server is now capable to work as a puppet client also. At the master server we need to specify the set of configuration that will guide how to change the configurations at clients.

Puppet server and client use Hostname to communicate with each other and also used to generate ssh key and key verification etc.., so we need a stable hostname resolution system (DNS or Local settings) in our network to ensure the proper connection between clients and server.So select proper hostnames to your server and clients like:

puppet-server.com #For your Master Server

puppet-client1.com,puppet-client2.com,etc... #Your clients.

After the hostname allocation we need to start the server and client daemons.Use command line options now to know the more about the interactions between client and server.

To start the master server :-

1 puppetmasterd --no-daemonize --logdest console

Then Start the puppet Client, specify the server name

1 puppetd --server puppet-server.com --verbose --waitforcert 30

On the client side we will get the message regarding the creation of a self signed key and waiting for server verification.

1 Creating a new SSL key for puppet-client.com
2 Creating a new SSL certificate request for puppet-client.com
3 Certificate Request fingerprint (md5): 37:89:4E:86:C0:A7:5B:24:1A:E2:9B:85:83:90:0F:CE
4 Did not receive certificate

At the same time server side we will get the following message.

1 notice: Starting Puppet master version 2.6.0
2 notice: puppet-client.com has a waiting certificate request

To proceed further , at server side we need to verify this key from the puppet-client.com. For that we can use the key management tool puppetca.

1 puppetca --list  #To list the unverified requests.
2  
3 puppetca --sign puppet-client.com  # To complete the verification process.

Now If we are restarting the puppet client with following command, you can see the client will immediately apply the configurations. You can check this from the log file or from the console if you are running the client in none daemonize mode.

1 puppetd --server puppet-server.com

Note:- If we are specify these settings at puppet.conf then you can just type the commands without any parameters to start appropriate daemons.

The Configuration Management

Last and very powerful feature of the puppet is the way Puppet server define the Client configurations. For that Puppet use one declarative language which support most of the high level language constructs like OOPs. So lets try one simple configuration which change the permission of /etc/passwd file at all the clients connected with server to 640 and check Apache webserver installed or not , if not, puppet client will install it automatically.

These configuration specifications are defined under a file “/etc/puppet/manifests/site.pp” by default, we can split this file in to several files then include them at sites.pp.

Here is the sample site.pp file.

01 file { "password":
02 name => "/etc/passwd",
03  owner => "root",
04  group => "bin",
05  mode => 644,
06 }
07  
08 class apache {
09  
10 package {       httpd: ensure => installed  }
11  
12 service { "httpd":
13  
14 name => $operatingsystem ? {
15 debian  => "apache2",
16 redhat  => "httpd",
17 default => "apache",
18 CentOS  => "httpd",
19 },
20 ensure => running,
21 require => Package["httpd"],
22 }
23 }
24  
25 node 'puppet-client.com' {
26 include apache
27 }
28 #All other nodes they don't have definitions associated with them will use the following node definition.
29  
30 node default {
31 case $operatingsystem {
32 CentOS: {include apache }
33 default: {}
34 }
35 }

The above file is the Puppet client configuration specification written in puppet declarative language on puppet master server.

This language has a lot of constructs to define the resource and its properties.Using these constructs we manage the resources on client systems. The types of resources that puppet manages are listed bellow, plus we can add our own customized resources to mange.

Type of Resources that puppet can manage, by default:-

  • Files
  • Packages
  • Services
  • Corn Jobs
  • Users and Groups
  • To run Shell Commands
  • And User defined resource types

Each of the above resources has a set of attributes or properties and values. Using the puppet configuration language, we can set the corresponding property values. The resource can defined by providing three main parameters: Resource type name, then inside braces({}) title of the resource and set of property values. From the above example, take the resource of type Filewith title name “password” inside that we have set of property values like name,owner,groups etc… so if a client successfully connect to server,the client puppet will apply these setting on client machine. If we change this property values, after next interval we can see the client will successfully apply it.

In this way we can control the resource configurations. On our networks there should be  different types of systems (Redhat,Debian,etc..),and they have some changes in the structure of the files and other package names, so here we need to apply the configurations based on the type of clients.Puppet provide Conditional statements (if and case ) to check and apply configurations depending on client architecture. For that we need some system information from the client andfacter will provide these details. We can use that information in the puppet configuration specifications like a variable, for example: $operatingsystem (You can see all the details that facter will provide by just typing the command facter at command prompt.)

Similarly, we can specify the rules based on the client name, and using the OPPs constructs we can define the classes and reuse them with other client definitions. You can find some of them from  above example site.pp file.You can do a high level configuration design using puppet language. To learn more about the language constructs, please check the puppet online wiki or a nice book  which describe everything associated with Puppet by James Turnbull(Pulling Strings with Puppet.)

Posted by 사랑줍는거지
,
1. 메모리에서(in-memory) 처리하기 어렵다.
2. 디스크가 매우 느리다.
3. 분산이 쉽지 않다. 
Posted by 사랑줍는거지
,

Partition tolerance refers to the ability for a system to continue to operate in the presence of a network partitions.  For example, if I have a database running on 80 nodes across 2 racks and the interconnect between the racks is lost, my database is now partitioned.  If the system is tolerant of it, then the database will still be able to perform read and write operations while partitioned.  If not, often times the cluster is completely unusable or is read-only.



Consistency : all nodes see the same data at the same time
Availability : node failures do not prevent survivors from continuing to operate
Partition Tolerance : the system continues to operate despite arbitrary message loss


Posted by 사랑줍는거지
,
  우선 금번 포스팅은 지극히 개인적인 생각이다. 나만의 시각일 뿐임... 특히 MR같은 특수한 기능 측면 보다는 기존 RDB에 비춰 NoSQL의 일반적 특성이 뭘까 고민 해본 정도??

  작년엔 IaaS로 후끈~ 달아 오르더니 딱 1년 지나니... 조용.......... 뭔가 모든걸 해결해 줄듯~ 기세등등한 "Oral-Clouder"들의 천국(전부가 다 그렇단 이야긴 아니니 오해 없길...)이었던 것 같다... 한 1년 겪어보니 이게 장난이 아니구나~ 싶었던걸까...... 그러던 "IT깡국 대한민국"이... 올해는NoSQL, Big-Data로 난리도 아닐것 같다... 뭐가 됐든, 붐이 이는건 좋다... 다만, 걱정되는건 작년 IaaS 처럼... 반짝~ 하고 말게 되지나 않을까 하는거.....

  NoSQL의 개념이나, 등장 하게된 배경...등은 위키피디아를 참고 하시고... 여기서 하고 싶은 이야기는 그것의 본질적 목적이 무엇인가~에 대한 것이다...

 
  같은 값이면 다홍치마~ 라고 했던가? NoSQL이면서, RDB의 기능을 커버할 수 있다면 오죽 좋으련만... 세상에 겁나 싸면서, 기름 열라 작게 먹고, 그런데 승차감은 죽이는데, 속도는 마하급.. 그리고 실내는 버스만큼 넓은~ 그런차는... 몰라 훗날엔 존재할지도 모르겠지만, 당장은 절대로 없다... 무슨 말이냐... RDB의 특징을 유지하면서는, 대용량(기존의 전통적 시스템으로 커버 불가능한 용량) 서비스가 불가능 하기에, 일정 부분 불편함이나, 기능 포기를 감수하고서라도 그러한 대용량 서비스에 대해 탄력적으로 대응이 가능하고 원활한 서비스가 가능케 할 수 있는 방법이 뭘까~ 고민, 고민 하다 나온게(어쩌면 울며 겨자먹기식 차선책일지도 모른다) NoSQL 아닐까.. 싶다.

급조된(?) 아래 그림을 보자...


  가로축은 서비스 이용자 규모다.... 가운데 즈음의 회색 점선을 기준으로 과거 RDB가 커버 가능한 사용자 규모와, 불가능한 규모를 가정하여 잘라둔것...
  세로축은 성능이다... 단, 이 "성능"이라는 말에는 퍼포먼스 뿐만이 아니라, 기능, 그외 사용자가 느끼는 모든 것들을 포괄한 넓은 개념의 그 무엇이라고 보면된다... 그게 일관성이든, 트랜잭션이든, 응답성이든, 기능이든 뭐든...

   다음으로, 파란선은 기존의 RDB를 가정하여 그린 곡선이다. 과거의 전통적인 시스템에서는 하이엔드급 단일 시스템 또는 역할이 분리된 서버군으로 처리가 가능하였다.. 그러나 사용자수가 일정규모를 넘어서는 시점(요즘 말하는 대용량..)부터는 성능이 급감하게 된다... 소위 동적 수평 확장이 어려워 증가하는 사용자 규모에 대해 탄력적 대응이 어렵다..

  반면 빨간선 그래프는 요즘 뜨고 있는 NoSQL이라 생각하고 그려 본 것이다.. 딱 보면, 성능이 사용자 규모의 증가에 적절히 대처 하고 있을 것이라 예상되어 저렇게 그렸던 것이다... 왜? 동적 수평 확장이 가능하기에... 뭐 어디까지나 이론적이지만,,, 아쉽게도 수백대의 NoSQL로 그러한 규모의 사용자에 대한 서비스 처리를 직접 경험해본 적은 없다... 

  여기까진 개략적인 설명이고, 이 그림에서 주목할 부분은 왼쪽의 그래프 시작부분의 빨간선과 파란선의 초기 "성능"값이 다르다는 것이다. 즉, RDB가 NoSQL에 비해, 성능(사용자가 느끼는 모든 부분의...)에서는 월등하다.. 그게 편리함이건, 퍼포먼스건 뭐건... 이 부분에서 사람들이 착각하기 쉬운게 아닐까? 그런 손해를 감수 하고서라도, 그래프의 오른쪽의 대규모 사용자 영역에서 빛을 발하도록 고안된게 NoSQL일 것이다.

  그런 NoSQL을 왼쪽, 다시 말해 전통적인 규모에서 RDB의 기능들을 어설프게 따라 가려 하다가는, 진짜 자기 영역인 오른쪽 영역에서 RDB만도 못한 기대치를 보여줄 가능성이 매우 높을 것이라는 것이다...

  앞서도 언급했지만, "같은 값이면 다홍치마"면 얼마나 좋으려나~ 그러나 절대로 RDB와 NoSQL이 같은 "값"이 아니다.. 그 목적하는 바와 규모, 용도가 전혀 다르다...적어도 현재는... 수년이 지나면 RDB가 NoSQL의 장점을 일부 흡수하게되고(지금도 그런 움직임이 오라클이나, MySQL쪽에서 일고 있다..), NoSQL도 허용가능한 범위에서 RDB의 편리한 점은 흡수하려 할것이다.. 그러나 태생적으로 그 둘 모두의 장점을 결합한 그 무엇은 단기간 내에 보기는 힘들 것이다...

  저 그래프가 시간이 지났을 때를 예측한다면, RDB 입장에선 성능이 급감하는 시점(사용자 규모)을 더 오른쪽으로 최대한 옮길려고 할테고, 그에 대항해 NoSQL은 전체적인 성능을 올리는, 즉 그래프를 조금씩이라도 위쪽으로 옮기려 할 것이다... 뭐 NoSQL이나 Big-Data보다는 Virtualization에 훨씬 관심이 많지만, 이 분야도 앞으로 어떻게 전개될지 흥미는 있을것 같다...


Posted by 사랑줍는거지
,
정말 궁금하다... AWS가 클라우드의 표준일까?? SKT클라우드 기사 검색하면서 다시 느낀게... "S3 100%호환 스토리지~ 어쩌고~ 블라블라~~"..... AWS는 충분히 훌륭한 레퍼런스이고 독보적임은 분명하다. 그러나 호환은 옵셔널 한 것일뿐이다. 단지 그게 전부고 그기에 의존적이라는 건....... 최근의 DynamoDB의 출현만 봐도 그렇다. 결과론적이지만, SimpleDB는 DynamoDB의 전신? 테스트베드? 그정도가 된게 아닌가? 이런 상황에서의 오버헤드는 어떻게 할 것인지... 휘둘릴 수 밖에 없지 않나... 대한민국IT의 창의성이 부족한건 아닌거 같다...어떤 민족인데... 단지, 당장에 뭐라도 안하면 뒤쳐지는 것만 같아 조급해하고 있는 것 같다.... SKT클라우드 기사 내용도 참~... 지금으로선 딱히 내세울게 없었던지... 10g광케이블, 냉각시스템, 센터 평수, 전기요금.. 뭐 그런 식상한 내용들이 9할... 아무리 시작단계지만.. 중요한 먼가가 퍽~ 하고 빠져 있다는 느낌?? 뭐 마침 기사 검색하다 본내용이라 SKT가 언급했지만... 다른곳도 50보100보 같다... 비관은 아니다... 현재를 좀 냉정히 볼필요는 있을것 같다... 물론 틀린 판단일 수도 있다... 뭣도 모르는 놈이라~ 이런 저런 공상을 해보는 것일뿐...

SKT 기사 링크 : 
http://www.kbench.com/digital/?no=106196&sc=1 
[케이벤치-SK텔레콤, 국내 최고 수준 B2B 클라우드 서비스 개시] 
Posted by 사랑줍는거지
,
http://www.datanet.co.kr/news/articleView.html?idxno=58809
"웹하드·ASP 발달한 국내, 퍼블릭 클라우드 성공할까"

이 기사에 대한 개인적인 소감은... "역시,,, 그닥 희망적이진 않군~" 이다. 그래도 국내에서 가장 화끈하게(?) 추진한 KT도 요즘은 별 진전이 없는지 조용~하고... 로컬 클라우드?? 헐... 이건 또 몬 말장난인지... 중요한건 규모... 이전의 방식으론 커버가 안되는 규모다... Amazon이나 Google의 가장큰 무기는 실전에서만 얻을 수 있는 '시행착오'와 '경험치'다.... 책상위에서, 회의실에서 어떻게 가능한 것이 아니다... 흉내만 낼려고 하지 말고 부딧히고, 깨지고, 망가져 봤을 때에만 얻을 수 있는게 있는데... 그러면서 점점 키워 나가야... 클라우드... 'Beta'는 없는것 같다.. 아니 끝까지 'Beta'여야 하지 않을까 싶다... 뭐 지금의 막강한(?) SI구조에서는 꿈같은 이야기겠지만....

Posted by 사랑줍는거지
,

작년 한해를 가장 뜨겁게 달군 IT 키워드는 과연 무엇이었을까요?

그 정답은 아마도 클라우드가 아닐까 생각됩니다가상화와 클라우드정말 한해 동안 폭풍적인 성장과 이를 둘러싼 이슈들로 가득했던 한 해가 아니었나 싶습니다.

 

오늘 이 시간에는 과연 클라우드가 현재까지 올바른 방향으로 흘러가고 있는지 또한 클라우드가 제공하는 진정한 가치는 무엇인가에 대해 생각해 보는 시간을 갖도록 하겠습니다.

 

이를 위해 시트릭스시스템스코리아 클라우드 및 젠서버 부문 조동규 부장의 기고문을 여러분들과 함께 공유하고자 합니다.

 

[기고클라우드 자체가 목적지는 아니다

시트릭스시스템스코리아 조동규 부장

 

대학때 많은 수업을 들었지만 정말 손에 꼽을 정도로 남는 이야기가  가지 있습니다  하나가 교통개론을 배우면서 교수님이 목청을 높여서 이야기 하신 내용이 "누구도 도로를 목적으로 하지 않는다 도로는 어디로 가기 위한 수단이고 얼마나 빨리  갈수 있느냐가 중요한 잣대이지 도로 자체가 목적인 사람은 아무도 없다라는 내용을 배웠습니다 사용자가 목적지에 다다를  있도록 도와주는 도구라는 것입니다생각해보면 도로공사나 도로 자체에 관심이 많지 누구도 도로에 관심이 많지는 않습니다도로로 인한 기대 효과를 생각하지 도로 자체가 목적인 사람은 없기 때문입니다.

 

현재 돌아가는 클라우드를 보면 마치 클라우드 자체가 무슨  대단한 비지니스 성공의 잣대인 것처럼  목소리를 높이고 있는 실정이 마치 목적을 상실한  도로를 방황하는 것과 비슷한 상황이 아닌가 생각해 봅니다

 

그렇다면 클라우드를 제대로 구축하고 활용하려면 어떤 점들이 고려 되어야 할까요?

 

1. 클라우드 인프라 구축을 위한 분명한 목표가 있어야 한다

마치 도로를 만들기 위해서는 도로가 필요한 이유와 향후 주변 도시간의 인구성장인구이동도시 소득 등 뒷받침이 되야 도로 계획설계 그리고 구축에 들어갑니다클라우드 역시도 비지니스에 부합하는 그리고 향후 회사의 비지니스를 가능하게 하는 도구로서 분명한 목표와 방향이 있어야 합니다그냥 현재의 이슈를 풀어볼까또는 비용이 절약 된다는데등등의 지엽적이고 작은 부분들로 클라우드를 생각하면 오히려 빈대잡으려고 초가산간  태우는 상황이 발생하게 됩니다분명히  클라우드 아니면 안 되는가에 대한 명확한 이유와 비지니스 목표가 있어야 합니다.

 

2. ROI 대한 명확하되 유연한 규정이 필요하다

가상화 까지는 대부분 ROI 분명합니다상면을 줄이고 노후서버를 재활용하고 전력을 줄이는 등의 비교적 명확한 ROI 나오면서 가상화를 일부 또는 전면 도입하고 운영하는 수준까지는 그리 어렵지 않은 거 같습니다다만 클라우드로 넘어가게 되면 빌링미터링자원관리자동화빠른 서비스 지원 등등 가상화 보다 진전된 수준의 서비스 등은 모두 업무 프로세스나 비지니스를 좀더 명확하게 하는 부분이라 일반적인 ROI 잣대를 대기보다는 실제로 얻어지는 개선에 대한 내부 동의가 필요하고 특별히  클라우드 여야 하는 부분이 결정권자와 실무자간의 강한 동의가 있어야 성공할  있습니다.

 

3. 걸음마 부터 차근차근

여러 고객 분들을 만나면서 가장 아쉬운  중에 하나가 시간의 개념이 상대적으로 약하다는 것입니다클라우드는 마케팅적으로도 훌륭한 도구임에는 분명하지만 기술적으로는 그리 쉽지만은 않으면 실제로 구현해서 비지니스와 결합된 형태의 서비스로 정착되기 까지는 상당히 오랜 시간이 걸리게 됩니다물론 가상화를 대규모로 운영해본 경험이 있다면 이러한 시행착오 시간들을 줄여줄 수는 있겠지만 가상화+클라우드를 동시에 진행한다는 것은 실로 어려운 것이 현실입니다 걸음마를 제대로 하기 전에 뛰는 것과 마찬가지로 매우 위험하고 실패할 가능성이 농후 합니다따라서 급하더라도 가상화에 대한 충분한 노하우와 안정화 시간이 필요하며 가상화 프로젝트와 클라우드 프로젝트를 같이 하기 보다는 별로도 검토해서 진행하는 것이 좋다고 생각합니다.

 

4. 시간의 중요성을 생각해야 한다

최근 들어 오픈소스소프트웨어(OSS : Open Source Software) 대한 인기가 급등하면서 여러 개발자 커뮤니티들이 활 황기에 있습니다기업들도 비싼 상용보다는 내부적으로 오픈소스를 지원하고 활용하는 형태로 발전을 해나가고 있습니다주의 해야 할 것은 향후 관련 분야의 기술습득이나 개발에 대한 명분은 있지만 자칫 기술소유에만 몰두 하다 보면 실제로 비지니스에서 필요한 기능이나 요구사항을 제때 반영하지 못하는 경우도 생길  있습니다클라우드 분야는 아직 관련 개발자나 전문가가 부족하기 때문에 실제로 광범위한 프로젝트를 하다 보면 상당한 인력난에 부딪치게 됩니다비지니스는 시간의 개념이 매우 중요합니다언제 제품과 서비스를 출시하느냐 얼마의 인원이 어느 시간 동안 투입을 하느냐 개발 또는 외부 지원을 받을 때  비용의 함수관계를  따져야 하며 단순히 오픈소스가 도입비용이 저렴하거나 개발 또는 일부 개발을 기술을 내재화 하겠다는 것이 너무 우선시되어 적시에 시장에 진출하지 못함에 따라 아예 비지니스 기회를 잃어 버릴 수도 있습니다내부 인력과 또는 외부 인력 그리고 이에 따른 개발 시간의 관계를  검토 해야 합니다.

 

5. 선택과 집중이 필요하다

위의 내용과도 비슷하지만 클라우드는 단순한 한두 가지의 기술이 아닌 여러 기술들의 복합체이며 이러한 기술들이 단순히 IT 연계된 것이 아니라 회사 내부의 프로세스와도 연동이 되어 있습니다클라우드 인프라를 구성하는 솔루션들이 요즘 계속 발전하고 쉽게 되어 있어서 간단하게 구성하는 것은 그리 어렵지 않습니다마치 클라우드가 고속도로라면 고속도로를 쭈욱 구축하는 것은 문제가 아니나 정작 고속도로에 접근하기 위한 톨게이트요금정산주변도로신호체계구호체계 등등도 역시도 같이 구비가 되어야 합니다 역시도 상당한 시간과 비용이 들어가는 작업이며 오히려 주변 부속도로나 장치들은 외부 벤더가 개발하는데 한계가 있고 내부 프로세스를 모르기 때문에 대부분이 고객사에서 준비하고 개발합니다그러다 보니 정작 주객이 전도되어 클라우드 솔루션을 설치는 했는데  이상 진보가  되는 경우도 상당히 많습니다기술의 문제가 아니라 실제로 회사 프로세스와 연동돼서 운영을 하려다 보니 발생되는 문제 입니다시간과 비용과 인력의 선택과 집중이 어느 프로젝트 보다 중요한 상황입니다.

 

도입에 말씀 드린 것처럼 클라우드는 마치 도로와 같습니다도로를 만드는 것도 중요하지만 실제로 도로가 제대로  구실을 하려면 도로의 목적이 분명해야 하며 차근차근 그러나 느리지 않게 하되 선택과 집중을 통해서 목표한 바를 이루어야 합니다실제로 지방에 수천억을 쓰고도 제대로 사용 못하는 공항들을 보면 구축이 목적이 아니라 비즈니스 니즈에 정확히 부합해야 하며 제대로 쓰기 위한부속시설이나 내부 프로세스와 연동하기 위한 개발 부분도 간과해서는  되는 부분입니다

 

클라우드는 기존의 IT문제를 해결하고  나아가 기업의 비지니스를 가능하게 하는 역할을 수행합니다최근 들어 여러 기업들이 클라우드 구축에 몰두할 정도로 인기이지만 자칫 기업의 실패를 가져올 정도로  책임도 막중해 지면서 좀더 신중하자는 의견들도 나오고 있습니다그렇기에 좀더 비지니스 중심적이면서도  클라우드를 해야 하는지를 명확히 해야 성공적인 클라우드가 되지 않을까 합니다.


http://m.blog.naver.com/citrixblog/90133552072
Posted by 사랑줍는거지
,
http://www.itworld.co.kr/techlibrary/72742


서버 가상화 : 비용, 트렌드 등에 관한 전문가 개요

2011.11.21

가상화 전략을 성공으로 이끌려면IT 전문가는 필요한 재해복구 작업뿐만 아니라 관련된 소프트웨어 비용과 하드웨어 비용을 모두 포괄적으로 이해하고 있어야 합니다. SearchServerVirtualization.com과Dell이 제공하는 본 전문가E-Guide에서는 가상화와 관련된 비용 개요를 제공하고, 2010년 예상 가상 서버 트렌드를 설명하고 있습니다. 가상화와 관련된 유형 비용(Tangible Cost)에 대한 통찰력을 얻고 변화하는 서버 가상화 시장의 흐름에 발맞추는 방법에 대해 알아보십시오. 그리고 귀사에서 가상 하드웨어 플랫폼이 담당하게 될 중추적 역할에 대해 살펴보십시오.
 
주요 내용
가상화 비용에 포함되는 소프트웨어, 하드웨어 및 인건 비용
2010년부터 진화하게 될 가상 재해복구
가상 하드웨어 플랫폼 설명
Dell과Intel의 리소스

 
Posted by 사랑줍는거지
,

데스크톱 가상화 : VDI로 도약하기

2010.10.12

우아하며 쉽게 관리할 수 있는 데스크톱 인프라에 대한 유토피아적인 비전은 데스크톱 시대의 개막과 함께 IT 주위를 맴돌아 왔다. 히드라와 같은 데스크톱을 길들이기 위한 시도는 많았으나, 어느 것도 보편적인 솔루션은 제공하지 못해왔다. 마이크로소프트 터미널 서비스(Terminal Service), 시트릭스 젠앱(XenApp)을 비롯한 수많은 기업들이 나름대로의 시장은 확보했으나, 데스크톱 구원에 대한 탐구는 계속되고 있다.

 

가장 최근의 유망주  : VDI

단순하게 말하면, VDI(Virtual Desktop Infrastructure)는 하이퍼바이저 상에서 구동하는 사용자당 한 개의 데스크톱 가상머신에 지나지 않는다. 서버 가상화와 마찬가지로, 각 데스크톱 가상머신에는 RAM, 디스크, 그리고 입출력 자원이 할당되고, 운영체제 전체 설치본은 가상 디스크에 저장된다.

 

사용자는 마이크로소프트의 RDP(Remote Desktop Protocol)나 시트릭스의 ICA(Independent Computing Architecture) 같은 원격 디스플레이 프로토콜을 사용해서 데스크톱 가상머신과 상호작용한다. 클라이언트는 대개 디스크가 없는 저성능 씬 클라이언트 시스템으로, VDI 인프라에 연결하는 것 외에는 하는 것이 거의 없거나 어떤 작업도 하지 않는다.

 

VDI를 비롯한 다른 서버 기반 데스크톱 컴퓨팅 솔루션의 결과, 핵심 기능성, 그리고 모든 소중한 기업 데이터가 수 많은 칸막이 사무실이나 몇 Km나 떨어져 있는 원격지 사이트에 멀리 그리고 폭넓게 퍼져있는 것이 아니라 데이터센터 내부에 들어가게 되었다.

 

데스크톱을 중앙 집중화시킴으로써, 관리와 보안이 간단해졌고 결함 있는 전원 공급장치, 하드 드라이브 등의 교체 같은 기본적인 데스크톱 유지보수 필요성이 없어졌다. 전력 소비도 감소되었고, 어떤 경우에는 모든 팻(Fat) 클라이언트 시스템과 250와트의 전원 공급장치를 제거한 덕분에 밀집된 사무실 공간의 냉각 비용이 급격하게 줄었다. 긍정적인 면이 상당하다.

 

VDI 세부사항에 숨어있는 골칫거리들

하지만, VDI에도 확실히 단점이 있다. 이런 문제 중 몇 가지는 다른 서버 기반 데스크톱 컴퓨팅 솔루션에서 찾아볼 수 있으며 VDI 구현에도 영향을 준다.

 

그 중에서도 가장 중요한 문제부터 살펴보기로 하자.

 

사용자의 수용도와 전반적인 성능. 각각의 VDI 인스턴스(Instance)는 문서 작성, 이메일 작성, 또는 스프레드시트 공식 실행 같은 상대적으로 평범한 작업을 수행할 때는 빠르고 뭐든지 척척 해내지만, 플래시 애플리케이션, 비디오, 또는 다른 멀티미디어 애플리케이션 같은 리치 콘텐츠와 맞닥뜨리면 상당히 영향을 받을 수 있다. 이는 대체로 VM의 성능보다는 데스크톱 디스플레이 전송 프로토콜 때문이지만, 바로 그 점 때문에 문제 해결이 더 어려워졌다. 사용자 수용도는 아주 공개적인 문제가 생길 수 있으며, 이 문제가 발생하면 어떤 대형 프로젝트라도 종말을 고하는 경우가 많다.

 

이 문제에 대한 솔루션은 비용이 많이 들 수 있다. 몇몇 공급업체는 서버와 클라이언트 측의 노력을 결합해서 디스플레이 프로토콜과 함께 오디오와 비디오 스트림을 전송하여, 클라이언트 단에서 일치시키고 클라이언트의 처리 능력을 사용해서 비디오를 렌더링(Rendering)한다. 그 결과 훨씬 더 깔끔한 재생을 할 수 있으나, 늘어난 작업부하를 처리하기 위해서 더 강력하고 비싼 씬 클라이언트가 필요하다.

 

그런 솔루션은 표준 비디오 재생에 대해서는 잘 동작하지만, 플래시 비디오나 플래시 애플리케이션과는 문제가 남아있다. VDI나 표준 RDP 프로토콜을 사용하고 있는 다른 서버 기반 데스크톱 컴퓨팅 솔루션의 성능을 테스트하기는 쉽다. 그저 마이크로소프트 RDC(Remote Desktop Connection: 원격 데스크톱 연결) 클라이언트를 사용해서 서버나 데스크톱 시스템 연결한 다음에, 유튜브를 보기만 하면 된다.

 

100Mbps 이상의 LAN을 사용하고 있다면 재생이 상당히 잘 되겠지만, 그 이하에서는 한마디로 그럴 가능성이 없다. 일반적으로 말해서, RDP 접속을 경유해서 비디오를 보기 위해서는 3.5Mbps의 지속적인 대역폭이 필요하다.

 

대역폭에 대한 우려는 WAN 회선(높은 지연편차 및 낮은 대역폭이라는 고전적인 시나리오)을 통한 데스크톱 세션 제공 같은 어떤 형태의 서버 기반 데스크톱 컴퓨팅에 대해서도 문제를 일으킬 것이다. USB 기기에 대한 인쇄와 적절한 매핑(Mapping)도 문제가 많다. 이런 문제는 도구와 예산을 제대로 조합하기만 하면 정리할 수 있고, VID 고유의 문제도 아니지만 VDI 계획 단계에서는 고민할 필요가 있다.

 

VDI 고유의 문제 : 스토리지

다른 문제들은 전적으로 VDI 고유의 문제이다. 가장 중요한 첫 번째 문제는 스토리지 요구조건이다. 몇몇 VDI 실행 환경은 다른 VM과 마찬가지로 모든 데스크톱 시스템이 반드시 가상 디스크를 가질 것을 필요로 하고 있다. 데스크톱 가상머신당 8GB나 10GB를 고려하고 있다면, 이를 예상 VDI 사용자 수로 곱하면, 곧 바로 스토리지가 고가의 문제가 돼버린다.

 

또한, 각각의 가상머신은 다른 데스크톱 시스템처럼 개별적으로 관리되어야만 하는 섬이므로, VDI는 데스크톱 소프트웨어 관리 요구조건을 줄여주기 위해서 거의 하는 일이 없다는 사실도 명심하기 바란다. 이는 업데이트를 배포하고, 소프트웨어를 설치하거나, 변경을 하기 위해서는 서드파티 툴을 사용해야 함을 의미한다.

 

그리고 그 다음에는 가격도 문제다. 한편으로는, VDI가 기존 가상화 인프라를 활용하므로, 다른 서버 기반 데스크톱 솔루션보다 초기 하드웨어 비용을 더 낮춰줄 가능성도 있어 보인다. 하지만, 일단 VDI에 필수적인 여러 단계의 소프트웨어 라이선싱 계층을 하나하나 벗겨나가다 보면, 결국에는 마찬가지라는 사실을 알게 될 것이다.

 

선택한 솔루션에 따라서, ROI는 이미 저 멀리 가버린 상태에서 기존의 팻 데스크톱 클라이언트 시스템 보다 더 많은 비용을 데스크톱 VM별로 지불하게 되고 말 수도 있다. 어떤 형태의 VDI이건, 뛰어들기 전에 이 모든 숫자들을 계산해 보는 것이 극히 중요하다. 씬 클라이언트 비용, 구현 비용, 라이센싱, 그리고 기존 가상 인프라의 확장 비용들을 감안하라.

 

VDI 대 터미널 서비스

VDI와 기존의 마이크로소프트 터미널 서비스 간에는 명확한 평행선을 그을 수 있다. 이 두 가지는 다수의 데스크톱 세션을 한 대의 서버나 서버 세트 상에 둘 수 있으며 세션을 동일한 씬 클라이언트에게 전달하기 위해서 같은 프로토콜을 사용한다. 두 가지 모두 중앙집중형 관리 도구를 제공한다. 하지만, 유사성은 거기까지다.

 

터미널 서비스 환경에서는 서버에 대한 모든 사용자 세션을 서버 운영체제에 둔다. 이는 윈도우 서버 2003이나 윈도우 서버 2008에 대한 한 개의 인스턴스만이 베어 메탈(Bare-metal) 서버에 설치되고, 모든 사용자가 해당 서버 인스턴스에 로그인 한다. 개개 사용자 세션은 자체 데스크톱이 있는 것처럼 표시되지만, 해당 특정 서버 상에서 다른 모든 세션들과 함께 구동한다.

 

이 시나리오의 이점은 확장성에 있다. 일반적으로 말해서, 물론 애플리케이션 세트에 따라서 다르기는 하겠지만 아마도 한 대의 물리적인 서버에 VDI 세션보다 더 많은 수의 터미널 서버 세션을 밀어 넣을 수 있을 것이다. 한편, VDI 환경에서는 간단하게 데스크톱 가상머신의 자원을 정의하기만 하면, 어떤 사용자 세션의 자원에 대해서도 신속하고 확실한 제한을 둘 수 있다.

 

VDI 실행 환경에서는 서버가 전체 운영체제가 아니라 하이퍼바이저를 구동하고 있으며, 몇 개의 데스크톱 가상머신을 호스팅하고 있다. 그 결과, 각 방법이 여러 개의 데스크톱 세션을 동일한 서버에 두기는 하지만, 그런 세션들의 관리성은 크게 다르다.

 

예를 들어, 터미널 서비스에서는 가상머신을 스냅샷(Snapshot)하듯이 세션을 스냅샷할 수 있는 방법이 없으며, 활성 세션을 한 서버에서 다른 서버로 이전시킬 수 있는 방법도 전혀 없다. 이는 유지보수를 위해서 해당 서버를 다운시키기 위해서는, 모든 사용자가 반드시 로그오프 해야만 함을 의미한다.

 

관리성에서 확연한 차이 보이는 VDI

VDI에서는 해당 서버 성의 모든 활성 데스크톱 세션을 서버 팜의 다른 서버로 중단 없이 이전시킬 수 있다. 통상 이 모든 VM을 호스팅 하는 서버는 누구도 알아차리지 못하게 유지보수를 위해 다운시킬 수 있다.

 

실제로, 어떤 고급 가상화 인프라에 대해서도, 단 한 개의 애플리케이션을 오프라인으로 만들거나 단 한 명의 사용자도 방해하지 않은 채, 전체 물리 서버 기반 구조를 완전히 재구축할 수도 있다.

 

더 나가서, 제대로 구현된 VDI 솔루션에서는 부하 분산도 기본적으로 제공된다. 한 개 이상의 데스크톱 VM이 한 호스트 시스템 상의 자원을 많이 사용하고 있다면, 그 시스템의 다른 VM들을 순식간에 다른 물리 호스트로 이전해서, 모든 데스크톱이 돌아가기 위해서 충분한 자원을 확실하게 가질 수 있게 할 수 있다. 기존 터미널 서버 환경에서는 이것이 불가능하다. 한 개의 대형 사용자 세션이 어떤 자동 해결 방안도 없이 동일 서버 상의 다른 세션에 부정적인 영향을 줄 수 있다.

 

하지만, 터미널 서비스도 한 가지 커다란 관리 상의 장점이 있다. 호스트 서버에 대한 변경 사항을 모든 사용자 세션에서 사용할 수 있다. 애플리케이션 설치가 상당히 간단해지고 글로벌한 수정 작업도 상대적으로 쉽다.

 

VDI에서는 항상 그렇지는 못하다. 데스크톱 가상머신의 배포 방식에 따라, 업데이트나 변경을 위해서 각각을 일일이 수작업으로 해야만 하거나, 서드파티 관리 도구를 사용하거나,  또는 데스크톱 가상머신 템플릿을 작동시켜서 수정 작업을 한 다음에, 템플릿을 저장해야 할 필요가 있을 수 있다. 마스터 템플릿에 연결된 데스크톱 가상머신은 사용자가 다음에 로그인할 때 변경 사항이 반영된다.

 

그렇기는 하지만, 터미널 서비스에 비해 VID의 애플리케이션 처리는 커다란 장점 중 한가지로 작용한다. 많은 애플리케이션이 터미널 서비스 환경에서는 동작을 무조건 거부한다. 다른 애플리케이션은 제한된 기능만을 제공하거나 터미널 서버 환경에서는 해당 애플리케이션 공급업체의 지원을 받지 못할 수도 있다. 이는 어떤 터미널 서버 기반의 인프라에서도 실질적인 문제로 대두되고 있지만, VDI에서는 문제가 아니다.

 

VDI는 사용자 별로 한 개의 전용 데스크톱 인스턴스를 구현해서, 운영체제 수준에서 실제 데스크톱과 분간할 수 없다. 팻 클라이언트 상에서 구동되는 어떤 애플리케이션도 VDI VM 상에서 구동된다 (비디오나 그래픽 성능에 대해서는 약간의 예외를 두고). 바로 이것이 일부 조직이 터미널 서버 대신에 VDI를 밀고 있는 중요한 이유이다.

원문 : http://itworld.co.kr/news/62797/%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1+%EA%B0%80%EC%83%81%ED%99%94+:+VDI%EB%A1%9C+%EB%8F%84%EC%95%BD%ED%95%98%EA%B8%B0 

Posted by 사랑줍는거지
,