페이지

2010년 10월 26일 화요일

DAS, SAS, NAS, SAN

DAS(direct attached storage)
 서버와 전용 케이블로 연결한 외장형 저장 장치. 서버/클라이언트 환경에서의 부족한 저장 공간을 가장 쉽게 확보하는 방법으로 서버 자체에 물리적으로 외부 저장 장치를 연결하는 것입니다.
 네트워크에 연결된 각 서버에 외부 저장 장치를 추가함으로서 필요한 데이터를 물리적으로 가까운 곳에서 접근할 수 있고 확장이 용이합니다.
 하지만 데이터의 증가에 따른 외부 저장 장치의 계속적인 추가는 서버의 효율성을 저하시키는 문제가 있습니다. 또 다른 문제는 네트워크상의 서버가 다운되는 경우에는 중지된 서버에 장착된 저장 장치도 사용할 수 없게 되어 중앙 집중식 시스템과 같은 취약점이 있습니다.
---------------------------------------------------------------------------
SAS(Serial Attached SCSI)
 SAS는 전통적인 SCSI(Small Computer System Inteface)보다 훨씬 더 빠른 속도로 데이터를 전송하기 위해 설계된 직접 연결 스토리지용 통신 프로토콜입니다.
 SAS는 병렬 방식(즉 SCSI 같은 것) 대신 직렬 통신 방식을 사용합니다. 즉 USB나 파이어와이어와 유사합니다. SCSI의 뒤를 잇는 기술로서 SAS는 기기와 대화하는 데 이용하는 SCSI 명령을 그대로 사용합니다.
 SAS 드라이브는 고성능/고가용성을 위해 만들어졌으며, 가격과 성능 면에서 엔터프라이즈급 스토리지에서 사용되는 FC(Fibre Channel) 드라이브에 견줄만합니다.
 1세대 SAS 인터페이스는 초당 3Gbps의 쓰루풋(throughput)을 내며, 2010년까지는 12Gbps가 나오게 될 것입니다.
---------------------------------------------------------------------------
NAS(Network Attached Storage)

사용자 삽입 이미지
1) 개요
* NAS는 Server와 Client가 Storage의 Network 에 의하여 원활한 접근을 할 수 있게 해 주는 Network 방식입니다.
2) 특징 및 장점
* Network에 연결된 NAS Server에 의해 데이터 서비스를 수행합니다.
* LAN, WAN등의 Data Network을 이용하여 접근합니다.
* 고성능, 고가용성을 위한 전용 OS가 탑제되어 있습니다.
* 이 기종간의 파일 공유가 가능합니다
* 경제적으로 용이하며 설치가 용이합니다
* 저장장치의 유지 및 관리가 편리하다.
* 시스템을 정지시키지 않고 데어터 백업, 복구를 할 수 있습니다
* 시스템 변경 및 확장이 용이합니다
3) NAS의 필요성
* 데이터 관리를 온라인 상에서 필요로 할때
* 웹 호스팅업체 (자료실, 게시판)
* 금융기관(문서 공유, Report공유)

--------------------------------------------------------------------------
SAN(Storage Area Network)

사용자 삽입 이미지
1)개요
* 현재 직면해 있는 대용량의 Data와 고속의 Data 전송을 필요로 하는 Server와 Storage간의 원활한 접속을 Fibre Cahnnel의 기술과 접목시킨 SAN에 의하여 신속한 업무 처리와 흐름을원활히 해줍니다.
2) SAN이란
* Storage Area network의 약어이며, Server나 Host들에게 사용되는 대용량의 Data를 집중시켜 보관하고, 이를 구성하는 장비들을 이용, 공유하여 사용할 수 있도록 하는기술을 의미합니다.
* Host와 Storage가 분리되어 구성되어지며, Fibre Channel을 이용하여 고속전송,장거리 (cpooer : 30m, FC-AL:10km) 데이터 전송이 가능합니다.
* 서로 다른 운영체제를 가진 Server들이 같은 Network상의 Storage Data를 공유할 수 있습니다
* SAN을 이기종간의 여러 Server에서 하나의 Storage를 구축하기 위해서는 SAN Managemeent Software가 별도로 필요하며 SAN Network을 별도로 구축해야 합니다.
3) SAN의 기능
* 용량의 확장성이 있고, Data 전송 속도가 빠르고 Data 전송거리를 늘릴 수 있으며, 장비와 Storage 공유로 인해 비용을 절감할 수 있습니다.
* 특정 Server에 제한 하지 않고 Data Backup 등 통합 관리가 용이합니다.
* SAN 환경에서 데이터 저장장치는 Host Server와의 기종에 관계없이 멀티 Server와 공유되며 Host Server와 관계없이 저장장치 운용
* Disk Array 나 Backup 장치의 공유, Backup 기능, Clustering 기능 지원


출처 : http://www.urinuri.net/55

Switch의 종류 및 role.

L2 스위치, L3 스위치, L4 스위치는 OSI7 layer중 어느 layer에서 수행되는가에 따라 결정

L2 스위치
2Layer(Datalink Layer)의 프로토콜인 이더넷, 프레임릴레이, ATM 등에서 스위칭 기능을 수행한다.
MAC Address

L3 스위치
3Layer(L3: Network layer)의 프로토콜인 IP, IPX등에서 스위칭 기능을 수행하여, 라우팅 기능을 스위치가 가지게 된다.
IP Address

L4 스위치
4Layer(L4: Transport Layer)의 프로토콜인 TCP, UDP등을 스위칭하며, 이때 TCP와 UDP 그리고 RTP(Real Time Protocol) 등의 헤더를 사용하여, FTP, HTTP, TFTP. SMTP 등의 프로토콜 중 어느 것에 대한 요구가 우선하는지 파악한 후 스위칭하게 된다.  주로 서버나 네트웍의 트래픽을 LoadBalancing하는데 이용된다.

L7스위치 
패킷의 헤더정보만 확인하는 L4에 비해 payload(e-mail제목/내용의 문자열, HTTP컨텐츠URL, FTP파일 제목, SSL ID, Cookie 정보, 특정 바이러스(e.g. CodeRed, Nimda)패턴등을 분석해 Packet을 처리하므로, 보안에 이용되어지는데 보다 높은 수준의 Intelligence를 갖춘 스위치일수록 더 정교한 패킷의 부하분산(Load Ballancing)및 Qos기능 구현이 가능함.
1) Dos/SYN Attack에 대한 방어
2) CodeRed/Nimda등 바이러스 감염 패킷의 필터링
3) 네트워크 자원의 독점 방지를 통한 네트워크 시스템의 보안성 강화가 가능함.




출처 : blog.daum.net/if93014/676269

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
이더넷 스위치가 널리 쓰임에 따라 다양한 기능과 성능을 보유한 이더넷 스위치들이 등장하고 있습니다. 이더넷 스위치의 발전 과정을 다양한 측면에서 바라볼 수 있으나, 아래의 그림과 같이 대역폭(Bandwidth), 기능(Function), 지능(Intelligence)을 큰 축으로 발전하고 있습니다.

대역폭 측면에서 이더넷 스위치는 초기의 CSMA-CD (10Mbps )방식에서 Fast Ethernet, Gigabit Ethernet, 10 Gigabit Ethernet으로 확장되고 있습니다. 한편 기능적 측면에서는 LAN (Local Area Network)안에서 네트워킹 유닛(호스트)간에 물리적인 연결을 목적으로 하였던 이더넷 L2 스위치는 지역망이 복잡해지고, 단일 LAN환경이 MAN (Metro Area Network) 영역으로 확대됨에 따라, VLAN과 QoS를 특징으로 하는 L3 스위치가 기업시장을 중심으로 광범위하게 사용되고 있습니다. 이더넷 스위치를 지능적인 측면에서 크게 OSI 참조 모델에 의한 7계층의 정의에 따라서, L2, L3, L4, L7 스위치로 구분이 가능합니다.



레이어 2 스위치는 OSI 참조 모델의 레이어 2 범주 (Ethernet Protocol 상에서 srouce MAC, destination MAC)에서 패킷의 경로를 제어하고, 레이어 3 스위치는OSI 참조 모델의 레이어 3 범주 (TCP/IP protocol 상에서는 source IP, destination IP)에서 패킷의 경로를 제어합니다. 

레이어 4 스위치는 기존의 이더넷 레이어 2스위치와 다른 차원의 스위치입니다. 레이어 4 스위치는 레이어 4 범주의 패킷을 분류하고 경로를 제어하는 것에서는 레이어 2 스위치 혹은 레이어 3 스위치와 동일하지만, 레이어 4 스위치의 독특한 기능은 레이어 4에서 발생하는 세션을 관리하고, 세션관리를 위한 패킷도 조작한다는 것 입니다.



OSI 참고모델의 주요 계층 널리 쓰이는 protocol

Layer 2 Ethernet II, IEEE 802.3/ 802.2 SNAP, NetWare 802.3 Raw
Layer 3 IP, ARP, IPX, Non IP/IPX, IPv6
Layer 4 TCP, UDP, ICMP
Layer 5 - Layer 7 HTTP, SNMP, Telnet, FTP, RTSP 

2010년 10월 24일 일요일

Proxy Server란?

프록시 서버(proxy server)
1) 정의
'프록시'란 말의 사전적인 의미는 '대리인'이다. 그렇다면 프록시 서버는 '어떤 작업을 대신해주는 서버'라는 의미가 된다. 즉, 클라이언트(웹 브라우저)와 서버(웹 서버) 사이에서 데이터를 중계하는 역할을 하는 서버가 바로 프록시 서버이다. 프록시 서버는 입장에 따라서 두 가지 측면을 갖는데, 웹 서버의 입장에서는 클라이언트와 같은 기능을, 클라이언트에서는 웹 서버와 같은 행동을 한다.

2) 동작 방식
프록시 서버는 클라이언트로부터 데이터를 요청 받으면 우선 자신의 캐쉬 영역에 해당 데이터가 존재하는지 살펴보고, 있으면 클라이언트에게 데이터를 전송한다. 그러나 자신의 캐쉬 영역에 데이터가 없으면 원격 서버(remote server)에게 데이터를 요청해서 데이터를 전송 받은 후에 자신의 캐쉬 영역에 저장한다. 이와 같은 중계 역할은 접속 빈도수가 많은 호스트의 데이터를 프록시 서버가 캐슁함으로써 네트워크의 트래픽을 줄일 수 있고, 데이터 접근 속도도 빨라지는 이중의 효과를 가져온다. 프록시 서버 내에 저장된 데이터는 시간과 용량, 그리고 사용 빈도에 따라 나중에 삭제되거나 유지된다.

3) 프록시 서버의 기능
① 캐쉬(cache) 기능 : 네트워크의 트래픽을 줄이고, 데이터 전송 시간을 향상
② 방화벽(firewall) 기능 : 네트워크 외부로부터 허가 받지 않은 접속을 제한

2010년 10월 22일 금요일

Morning Question_4

What is Distributed locking ?

  • Shared Storage에 접속된 여러 vm들을 관리하기 위한 방법으로 Master 만이 쓰고 읽을 수 있고 나머지 slaves는 읽기만 가능한 방법

Which member of the pool handles the distrubted locking ?

  • Master vm

How many master servers can we have in a pool ?

  • Only 1.

How many secondary servers ?

  • 15

WHen will a secondary automaticially become a master ?

  • when master server cannot be recovered.

What does Intel Felxmigration or AMD Extended Mirgation allow us to do in a hetrogenus pool ?

  • Intel과 AMD 사의 다른 CPU를 가지고도 Zen Motion을 할 수 있음. (live migration)

Why is NTP time syncronisation important to all the members of a pool ?

  • cus they use XML-RPC protocol to communicate with?

What happens to a VM if it has a local (internal only network) and you try to migrate it ?

  • Doesn't it depend on physical server's network? 

Xen Server_03

아아- 지금까지 배워온 바를 정리해보자. 많은 정보들이 스쳐지나갔더니, 뭐 남는게 많지 않다; 에라이.. 하지만 조금씩 큰 틀이 잡혀가는 게 도움이 많이 되고 있다. 그게 제일 큰 소득.

<Basic>

  • Zen Server는 linux기반의 가상화 툴로서 VMware나 Virtual Box와 같은 역할을 한다. 
  • Zen Server에서의 Hypervisor는 하드웨어 바로 위의 얇은 가상의 소프트웨어 층으로서 여러 개의 vm이 구동될 때, cpu 스케줄링과 ram 파티셔닝을 담당하며 vm이 Control Domain을 거치지 않고도 접근이 가능하도록 도와줌으로서 속도와 효율성에 향상을 가져 온다. 
  • 이 때, cpu와 ram을 제외한 vm을 구성하는 요소들, 즉 network, disk, drivers(music, video 등) 은 Domain 0 를 통해서만 Physical hardware에 접근이 가능하다. 
  • 각각의 Zen Server는 Zen Center를 통해 원격으로 접근하고 조정할 수 있다. 
  • Windows 버젼에는 paravirtualization을 위한 추가적인 커널과 드라이버를 Zen-tool을 통해 설치해 주어야 하지만, 대부분의 Linux버젼에는 이미 OS상에 포함이 되어있어 추가적인 설치가 꼭 필요하지 않다. 
  • Zen Server에서 OS의 설치는 Template를 통해 이루어 진다. Gold disk라는 각 os에 맞게 최적화가 이미 되어 있는 이미지를 사용하여 설치한다.
  • Zen Convert를 이용하여 P2V, V2V를 사용할 수 있다. P2V는 physical 서버나 desktop의 workload를  Zen Server의 vm이나 vDisk로 변환하는 것을 말한다. V2V는 virtual한 가상 머신을 또다른 포멧으로 변경할 수 있는 방법을 뜻한다. 
아악!!!!!!!!!!!!!!!!!!! 공부허기 실타~ ㅋㅋㅋㅋ 오늘은 7장까지만 할려. 
내일 인나서 해야지..

할랬는데. 걍 좀 더 하자. 
  • vm에게 virtual disk가 살아있는 상태에서 갯수를 추가하거나 제거하는게 가능하다. 하지만, 그 크기 자체를 줄이는 것은 할 수 없다. 
  • Virtual NIC 은 살아있는 상태에서 더하고 제거, 수정이 가능하다. 
  • Virtual CPU의 수를 수정하는 것은 커널의 변화가 전혀 없지만, wondows vm이라면 리붓이 필요하다. 
  • Memory의 management는 DMC를 이용해서 이루어진다. Dynamic Memory Control의 약자로, 정해진 크기의 메모리를 할당하는 것이 아니라 상황에 따라 ZenServer가 지정된 memory의 최대값과 최소값 사이에서 운영을 해준다. 
  • cpu는 Vcpu의 숫자와 균등하게 스케줄러를 실행하게 된다. 하지만 이때에도 priority를 각 vm마다 할당 할 수 있어 resource optimization을 행할 수 있다. 
  • Storage의 입출력은 0~7까지의 piority를 지정해서 조정하고 이때, 0이 가장 높은 priority를 가진다. 
쉬밤. 9장까지 했다. 흐허- 세세한 내용은 빠져있겠지만, 그래도 좀 복습도 되고 정리도 되는구만. 이제 남은 부분은 오늘 배운 부분. ㅅㅂ. 

2010년 10월 21일 목요일

Afternoon_Question_02

1. What are the types of pool members?
2. What must the XenServers have in common to be members of a pool?
3. What does the Master use to communicate with other members of the pool?

4. What is a heterogeneous pool ?
5. What are the normal tasks done in pool administration ?
6. What license is needed for a server to be part of a resource pool ?
7. What must you do before adding a server to a pool ?

8. What happens when you remove/eject 7a server from a pool and reboot ?

Morning Question_3

1. What is a storage repository?
2. What is a logical volume?
3. What is NFS?

  • Network File system.으로 네트웍을 통한 파일관리. 전송. 등

4. Why do we use logical volumes with hardware/physical RAID?

  • to allow give it to vms.어떤 vm들은 한 xen서버에서 실행시키는 것이 SR을 사용하는 것보다 나을 수 있다. 

5. Why do I use local storage for some VM's?

  • let's say u make a security vm. and don't want to share ur files. that's why. 

6. What is XenMotion?



7. What do I need to do to make XenMotion work?

  • Servers parkt of same resource pool
  • VHD need to be on shared storage repository
  • XenXervers need to ne configured to access shared SR
  • VM properties need to be modified to use the shared SR VHD file

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

Basic Linux Command

   퍼미션(권한)이란?
Owner
Group
Other
Owner와 Group은 파일소유자자신과 자신이 속한그룹. Other은 제3자, 웹사이트 방문객은 제3자로 nobody로 취급.
r
w
x
r
w
x
r
w
x
r은 파일 읽기(4), w는 파일 쓰기(2), x는 파일 실행(1)
7
5
5
파일소유자는 그것을 읽고 쓰고 실행시킬 수 있지만, 제3자는 읽고 실행만 시킬 수 있다.
7
7
7
제3자도 쓰기 권한이 주어진다.
*.html  *.cgi, *.pl *.txt등의 파일은 업로드시 반드시 ascii로 하고 나머지 그림(*.gif *.jpg)이나 자바 애플릿(*.class), 실행파일(*.exe *.zip *.rar)등은 binary mode로 업로드 할 것.
   리눅스 기본명령어
명령어
사 용 법
login
사용자 인증과정
리눅스 시스템은 기본적으로 multi-user 개념에서 시작하였기 때문에 시스템을 이용하기 위해서는 반드시 로그인을 하여야 합니 다. 로그인은 PC 통신에서도 많이 사용되어져 왔기 때문에 그 개 념  설정에 그다지 어려움이 없을 것입니다. 흔히 말하는 ID를 입력하는 과정입니다. 
passwd
패스워드 변경
리눅스, 특히 인터넷의 세계에서는 일반 컴퓨팅 상황에 비하여 훨씬 해킹에 대한 위험이 높습니다. 패스워드는 완성된 단어 보다는 단어 중간에 숫자나 키보드의 ^, #, ' 등과 같은 쉽게 연상 할 수 없는 기호를 삽입하여 만들어 주는 것이 좋습니다
du
하드사용량 체크(chkdsk)
자신의 하드공간을 알려면
# du 
특정 디렉토리의 사용량을 알려면
# du -s diretory_name
ls
파일 리스트 보기(dir)
F : 파일 유형을 나타내는 기호를 파일명 끝에 표시
    (디렉토리는 '/', 실행파일은 '*', 심볼릭 링크는 '@'가 나타남).
l  : 파일에 관한 상세 정보를 나타냅니다.
a : dot 파일(.access 등)을 포함한 모든 파일 표시.
t  : 파일이 생성된 시간별로 표시
C : 도스의 dir/w명령과 같 이 한줄에 여러개의 정보를 표시
R : 도스의 dir/s 명령과 같이 서브디렉토리 내용까지.
(예)
# ls -al  
# ls -aC
# ls -R
cd
디렉토리를 변경
# cd cgi-bin     : 하부 디렉토리인 cgi-bin으로 들어감.
# cd  ..             : 상위디렉토리로 이동
# cd 또는 cd ~  : 어느곳에서든지 자기 홈디렉토리로 바로 이동
# cd /webker     : 현재 작업중인 디렉토리의 하위나 상위 디렉토리가
                          아닌 다른 디렉토리(webker)로 이동하려면 /로 
                          시작해서 경로이름을 입력하면 된다.
cp
화일 복사(copy)
# cp index.html index.old 
     : index.html 화일을 index.old 란 이름으로 복사.

# cp /home/test/*.*  . 
     : test 디렉토리내의 모든 화일을 현 디렉토리로 복사.
mv
파일이름(rename) / 위치(move)변경
# mv index.htm index.html
     : index.htm 화일을 index.html 로 이름 변경
$ mv file  ../main/new_file 
     : 파일의 위치변경
mkdir
디렉토리 생성
# mkdir download  : download 디렉토리 생성
rm
화일삭제
# rm test.html : test.html 화일 삭제
# rm -r <디렉토리> : 디렉토리 전체를 삭제
# rm -i a.* 
     : a로 시작하는 모든 파일을 일일이 삭제할 것인지 확인하면서 삭제 
rmdir
디렉토리 삭제
# rmdir cgi-bin : cgi-bin 디렉토리 삭제
pwd
현재의 디렉토리 경로를 보여주기
pico
리눅스용 에디터
put
ftp 상태에서 화일 업로드
> put  guestbook.tar.gz
get
ftp 상태에서 화일 다운로드
> get  guestbook.tar.gz
mput 또는 mget
여러개의 화일을 올리고 내릴때 (put,get과 사용법동일)
chmod
화일 permission 변경
리눅스에서는 각 화일과 디렉토리에 사용권한을 부여.
예) -rwxr-xr-x   guestbookt.html
rwx  :처음 3개 문자 = 사용자 자신의 사용 권한
r-x  :그다음 3개 문자 = 그룹 사용자의 사용 권한
r-x  :마지막 3개 문자 = 전체 사용자의 사용 권한
읽기(read)---------- 화일 읽기 권한
쓰기(write)---------- 화일 쓰기 권한
실행(execution)---------- 화일 실행 권한
없음(-)---------- 사용권한 없음
명령어 사용법
chmod [변경모드] [파일]
# chmod 666  guestbook.html
     : test.html 화일을 자신에게만 r,w,x 권한을 줌
# chmod 766  guestbook.html
     : 자신은 모든 권한을 그룹사용자와,전체사용자에게는 
       읽기와 쓰기 권한만 줌
alias
" doskey alias" 와 비슷하게 이용할 수 있는 쉘 명령어 alias는 말그대로 별명입니다. 사용자는 alias를 이용하여 긴 유 닉스 명령어를 간단하게 줄여서 사용할 수도 있습니다. 
이들 앨리어스는 [alias ls 'ls -al'] 같이 사용하시면 되는데, 한 번 지정한 alias를 계속해서 이용하시려면, 자신의 홈디렉토리에 있는 
.cshrc(Hidden 속성)을 pico등의 에디터를 이용하여 변경시 키면 됩니다.
cat
파일의 내용을 화면에 출력하거나 파일을 만드는 명령( 도스의 TYPE명령)

# cat filename
more
cat 명령어는 실행을 시키면 한 화면을 넘기는 파일일 경우 그 내용을 모두 볼수가 없다. 하지만 more 명령어를 사용하면 한 화면 단위로 보여줄 수 있어 유용.
# more <옵션>
옵션은 다음과 같습니다.

Space bar : 다음 페이지
Return(enter) key : 다음 줄
v : vi 편집기로 전환
/str : str 문자를 찾음
b : 이전 페이지
q : more 상태를 빠져나감
h : 도움말
= : 현재 line number를 보여줌
who
현재 시스템에 login 하고 있는 사용자의 리스트를 보여줍니다.
# who
whereis
소스, 실행파일, 메뉴얼 등의 위치를 알려줍니다
# whereis perl : perl의 위치를 알려준다
vi,
touch,
cat
새로운 파일을 만드는 방법
# vi newfile :  vi 편집기 상태로 들어감
# touch newfile : 빈 파일만 생성됨
# cat > newfile  : vi 편집기 상태로 들어감, 문서 작성후 Ctrl+D로 빠져나옴
cat,
head,
tail
파일 내용만 보기
# cat filename         : 파일의 내용을 모두 보여줌
# head -n filename : n줄 만큼 위세서부터 보여줌
# tail -n filename     : n줄 만큼 아래에서부터 보여줌

   압축명령어 사용법
압축 명령어
사 용 법
tar.tar, _tar로 된 파일을 묶거나 풀때 사용하는 명령어
(압축파일이 아님)

# tar cvf [파일명(.tar, _tar)] 압축할 파일(또는 디렉토리): 묶을때
# tar xvf [파일명(.tar, _tar)]  :  풀 때
   (cf) cvfp/xvfp 로 하면 퍼미션 부동 
compress확장자 .Z 형태의 압축파일 생성

# compress    [파일명]     : 압축시 
# uncompress [파일명]    : 해제시
gzip확장자  .gz, .z 형태의 압축파일 생성

#  gzip     [파일명]    : 압축시
#  gzip -d [파일명]   : 해제시
기타.tar.Z 
이것은 tar로 묶은 후에 compress를 사용하여 압축한 것으로 uncompress를 사용해서 압축을 푼 다음, 
다시 tar를 사용해서 원래의 파일들을 만들어내면 됩니다. 
아니면 다음과 같이 한 번에 풀 수도 있다.
# zcat  [파일명].tar.Z  : 해제시
.tar.gz또는 .tar.z
# gzip -cd [파일명]    : 해제시
.tar.gz 또는 .tar.z .tgz
gzip을 사용해서 푼 다음 다시 tar를 사용해서 원래 파일을 만들어 낼 수 있으나,
하지만 다음과 같이 하면 한 번에 처리를 할 수 있다.

# gzip -cd 파일.tar.gz | tar xvf -  또는
# tar xvzf 파일.tar.gz
# tar xvzf 파일.tgz

   리눅스 필수명령어
Linux/Unix 명령어
설 명
MS-DOS 비교
./x
x 프로그램 실행
(현재 디렉토리에 있는 것)
x
/ ↓
이전에(↑) / 다음에(↓) 입력했던 명령어
doskey
cd (또는 cd /x)
디렉토리 X로 가기
cd
cd .. (또는 cd ../ 또는 cd /..)
한 디렉토리 위로 가기
cd..
다음 [tab] [tab]
x 로 시작하는 모든 명령어 보기
-
adduser
시스템에 사용자 추가
/
ls (또는 dir)
디렉토리 내부 보여주기
dir
cat
터미널 상의 텍스트 파일 보기
type
mv x y
파일 x를 파일 y로 바꾸거나 옮기기
move
cp x y
파일 x를 파일 y로 복사하기
copy
rm x
파일 지우기
del
mkdir x
디렉토리 만들기
md
rmdir x
디렉토리 지우기
rd
rm -r x
디렉토리 x를 지우고 하위도 다 지우기
deltree
rm p
패키지 지우기
-
df (또는 df x)
장치 x의 남은 공간 보여주기
chkdsk ?
top
메모리 상태 보여주기(q는 종료)
mem
man x
명령어 x에 관한 매뉴얼 페이지 얻기
/
less x
 텍스트 파일 x 보기
(리눅스에서는 더 많은 필터 적용 가능)
type x | more
echo
어떤 것을  echo 화면에 인쇄한다.
echo
mc
UNIX를 위한 노턴 커맨더
nc
mount
장치 연결(예: CD-ROM, 연결을 해제하려면 umount)
-
halt
시스템 종료
-
reboot ([ctrl] + [alt] +[del])
시스템  다시 시작하기
[ctrl] + [del] + [del]
    고급명령어
 고급 명령어

chmod <권한> <파일>
파일 권한(permissions) 변경
ls -l x
파일 x의 자세한 상황을 보여줌
ln -s x y
 x에서 y로 심볼릭 링크를 만들어 줌
find x -name y -print
디렉토리 x안에서 파일 y를 찾아서 화면에 그 결과를 보여줌
ps
지금 작동중인 모든 프로세스들을 보여줌
kill x
 프로세스 x를 종료 (x는 ps 명령으로 알 게 된 PID)
[alt] + F1 - F7
 터미널 1-7까지 바꾸기 (텍스트 터미널에서; F7은 X-윈도우(시작될때))
lilo
 부트 디스크를 만듦

용어

symlink
다른 파일이나 디렉토리로 심볼릭 링크. 윈도유98의 바로가기 같은 것
shell script
여러 명령어들을 차례로 수행하게 한 것. MS-DOS의 배치 파일 같은 것
     팁!!
 - 웹에서 생성한 노바디파일 삭제 하는방법..
기본적으로 웹서버는 nobody 권한으로 동작이 되게 됩니다.
고객님께서 FTP 로 접속하여 전송한 파일이 아니라 웹상에서 사용자들이 파일을 업로드 한 경우나 웹상에서 생성된 파일의 경우 삭제가 되지 않는 경우가 있을 수 있습니다.
웹서버의 동작 권한은 nobody 이고 웹상에서 생성된 파일이므로 해당 파일이 nobody 소유권으로 시스템에 생성이 되게 됩니다.
아래와 같이 웹상에서 실행시키면 됩니다.
1. 메모장을 열어 아래 소스를 붙여넣기 하신후..
<?
//폴더/파일 삭제시
$cmd = `rm -rf 노버디로된파일혹은폴더명`;
echo "$cmd";
echo "폴더가 삭제 되었습니다.";
?>
-- 위에까지..
-- **위에서 수정할 사항은 "노버디로된파일혹은폴더명"을 삭제하시고자 하는 파일명으로 바꿔주세요..
2. 파일 -> 다른이름으로저장 -> 아래 탭에서 파일형식을 "모든파일"로 선택후
   -> "원하는파일명.php" 로 저장 (ex: del.php)
3. ftp를 통해 고객계정에 파일업로드를 하시고 웹에서 파일을 불러주시면 됩니다
   ex: html폴더안에/temp 안에 삭제하고자하는 파일이 있을경우 / html폴더/temp안에 del.php를 업로드하고..
       브라우저에서 http://고객도메인/temp/del.php 를 하면 됩니다
4. 실행하시면 삭제되고 nobody 권한의 폴더만 남습니다.(폴더안의화일들만 지워짐)
   그후 ftp 접속후 폴더를 삭제하시면 됩니다.
ex)
<?
퍼미션 변경시
$cmd = `chmod -R 777 노버디로된파일혹은폴더명`;
echo "$cmd";
echo "퍼미션 변경되었습니다.";
?>