Virtualization 문서 원본 보기
←
Virtualization
둘러보기로 가기
검색하러 가기
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
이 문서는 편집하거나 다른 명령을 할 수 없도록 보호되어 있습니다.
문서의 원본을 보거나 복사할 수 있습니다.
Virtualization(가상화)을 정리 합니다. == 가상화 인프라 == *CPU 가상화 :*VT (Virtualization Technology)를 지원하는 CPU :*Intel-VT, AMD-V *Windows에서 CPU가 VT를 지원하는지 확인하는 방법 :*[http://www.intel.com/support/kr/processors/tools/piu/sb/cs-014921.htm Windows*용 인텔® 프로세서 식별 유틸리티 다운로드]에서 프로그램을 다운로드 합니다. :*프로그램 실행 후, 아래 붉은 칸으로 표시된 부분을 확인 합니다. [[File:VirtualizationIntel.png|700px|VirtualizationIntel.png]] *Linux에서 CPU가 VT를 지원하는지 확인하는 방법 grep --color vmx /proc/cpuinfo grep --color svm /proc/cpuinfo egrep '(vmx|svm)' --color=always /proc/cpuinfo *CPU가 VT를 지원하는데 활성화 되어 있지 않은 경우 :*Windows를 새로 기동하면서 F2 키를 눌러 BIOS 설정 화면을 표시 합니다. :*SysInfo 탭에서 CPU VT (VT-X) Supported :*Advanced 탭에서 Intel vPro Configuration MEBx Entry Hot-Key [Disabled] CPU VT (VT-x) [Enabled] Intel VT-d [Enabled] Intel TxT [Disabled] == 가상화 기술의 종류 == <span style="color:#008000;"><span style="font-size:larger;">'''가상화 기술의 종류'''</span></span> {| border="1" cellspacing="0" cellpadding="2" style="width: 100%;" |- | style="text-align: center; background-color: rgb(241, 241, 241);" rowspan="1" colspan="2" | 가상화 기술 | style="text-align: center; background-color: rgb(241, 241, 241);" | 상세 |- | style="text-align: center;" rowspan="4" | 서버 가상화 | Bare-metal Virtualization | *하드웨어와 호스트 운영체제 사이에 Hypervisor가 위치 *Hypervisor : 물리적 서버 위에 존재하는 가상화 레이어를 통해 운영체제가 수행하는데 필요한 하드웨어 환경을 가상으로 생성. VMM (Virtual Machine Monitor) |- | - Full Virtualization<br/> (전 가상화) | *CPU, Memory, Storage, Network 등 모든 자원을 Hypervisor가 직접 제어, 관리하기 때문에 어떤 운영체제라도 수정하지 않고 설치 가능 |- | - Para Virtualization<br/> (반 가상화)<br/> | *Privileged 명령어(Hypercall)는 Hypervisor가 하드웨어로 명령을 수행 *I/O call 등은 Hypervisor를 거쳐 driver를 사용하여 수행 **Monolithic 방식 : Driver가 Hypervisor에 있음 **Microkernel 방식 : Driver가 각 Guest에 있음 *20% 정도 Guest 운영체제 수정 |- | Hosted Virtualization | *Host와 Guest 사이에 Hypervisor가 위치 |- | style="text-align: center;" | 데스크탑 가상화 | <br/> | *VDI (Virtual Desktop Infrastructure) |- | style="text-align: center;" | 애플리케이션 가상화 | <br/> | *가상 운영 환경 (Virtual Server Environment)을 추가하여 운영체제 가상화 |- | style="text-align: center;" rowspan="2" | 리소스 가상화 | <br/> | *스토리지 : 가상 디스크 어댑터 |- | <br/> | *네트워크 : 가상 이더넷, 공유 이더넷 어댑터 |} <span style="color:#008000;"><span style="font-size:larger;">'''Hypervisor별 가상화 방식'''</span></span> {| border="1" cellspacing="0" cellpadding="2" style="width: 100%;" |- | style="text-align: center; background-color: rgb(241, 241, 241);" | Hypervisor | style="text-align: center; background-color: rgb(241, 241, 241);" | 상세 |- | style="text-align: center;" | KVM VMware | *Full Virtualization *VT (Virtualization Technology)를 지원하는 CPU가 필요함 **HVM (Hardware Virtual Machine) **Intel-VT, AMD-V **ARM (Cortex-A 15 이후) *현재는 Para Virtualization도 지원함 |- | style="text-align: center;" | Xen | *Para Virtualization *현재는 Full Virtualization도 지원함 |} == Linux Namespace == Linux에서 제공하는 lightweight 가상화 기술로 격리된 환경을 제공 합니다. <span style="color:#006400;">'''Namespace 분류'''</span> {| border="1" cellspacing="0" cellpadding="2" style="width:100%;" |- | style="text-align: center; width: 126px; background-color: rgb(153, 153, 153);" | <font color="#ffffff">분류</font> | style="text-align: center; width: 640px; background-color: rgb(153, 153, 153);" | <span style="color:#FFFFFF;">상세</span> |- | style="text-align: center; width: 126px;" | UTS | style="width: 640px;" | Hostname 분할 |- | style="text-align: center; width: 126px;" | IPC | style="width: 640px;" | Process 분할 |- | style="text-align: center; width: 126px;" | PID | style="width: 640px;" | PID (Process ID) 분할 |- | style="text-align: center; width: 126px;" | NS | style="width: 640px;" | File system의 mount 지점 분할 |- | style="text-align: center; width: 126px;" | NET | style="width: 640px;" | Network resource 분할<br/>사례) Global namespace에 veth0를 zzns namespace에 veth1을 만들어 통신을 합니다.<br/>ip netns add zzns #--- zzns Namespace 생성<br/>ip netns list zzna<br/>ip link add veth0 type veth peer name veth1 #--- veth0, veth1 Veth (Virtual Ethernet) 생성<br/>ip link list<br/>ip link set veth1 netns zzns #--- veth1을 zzns namespace에 추가<br/><span style="color:#0000CD;">'''ip netns exec'''</span> zzns ip link list<br/> |- | style="text-align: center; width: 126px;" | USER | style="width: 640px;" | User와 Group ID 분할 |} <span style="color:#006400;">'''참고 문헌'''</span> *[http://bluese05.tistory.com/11 http://bluese05.tistory.com/11] *[http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/NetworkNamespace http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/NetworkNamespace] *[[Docker|Docker]] : LXC (LinuX Container) == Cgroups == Linux Resource의 독점을 방지<br/>CPU, Memory, Block I/O, Network 등을 할당 <span style="color:#006400;">'''Subsystem'''</span> blkio – control/limit IO from block devices<br/>cpu - uses the kernels scheduler to control access to cpu resource<br/>cpuacct – reporting of cpu usage<br/>cpuset – assignment of cpu and memory nodes *cpusets.cpus (mandatory) *cpusets.mems (mandatory) *others optional devices – allow or deny device access<br/>freezer – suspend or resume tasks<br/>hugetlb – controls and reporting on hugepages<br/>memory – limit and report on memory usage by tasks<br/>net_cls – tags network packets with class id<br/>net_prio – by network interface set priority of network traffic<br/>ns – namespace subsystem vi /etc/cgconfig.conf <pre>mount { cpuset = /cgroup/~; } group zzgroup { cpu { ~ } memory { ~ } }</pre> vi /etc/cgrules.conf <pre>mount { cpuset = /cgroup/cpuset; cpu = /cgroup/cpu; cpuacct = /cgroup/cpuacct; memory = /cgroup/memory; devices = /cgroup/devices; freezer = /cgroup/freezer; net_cls = /cgroup/net_cls; blkio = /cgroup/blkio; }</pre> vi /usr/lib/systemd/system/~.service<br/>systemctl daemon-reload<br/>systemctl restart ~.service service cgconfig start<br/>chkconfig cgconfig on <span style="color:#006400;">'''Sample'''</span> <pre>yum -y install libcgroup mkdir -p /service_group mount -t cgroup -o cpu,memory,nodev /service_group cd /service_group #--- cgcreate -g subsystem: path cgcreate -g cpu,memory /service_group/web #--- cgroup 생성 cgset -r cpuset.cpus='0,2,4,6,8,10,12,14' web #--- cgroup parameter 설정 cgset -r cpuset.mems = '0' httpd #--- cgset -r parm=value cgroup_path cgcreate -g cpu,memory /service_group/db cgset -r cpuset.cpus='1,3,5,7,9,11,13,15' db cgset -r cpuset.mems = '1' db lscgroup -g cpu:/docker #--- Group 조회 lssubsys ~ #--- Sussystem 조회 cgget ~ #--- cgroup parameter 조회 #--- cgexec -g subsystem:cgroup command cgexec ~ #--- cgroup 정보를 가지고 process 시작 #--- cgdelete [-r] subsystem: path cgdelete #--- cgclassify -g subsystem:cgroup pid cgclassify #--- process를 cgroup에 할당 cgsnapshot systemd-cgls systemd-cgtop ps -eO cgroup </pre> <span style="color:#006400;">'''참고 문헌'''</span> *[http://www.slideshare.net/sprdd/linux-performan-tuning-part-1 http://www.slideshare.net/sprdd/linux-performan-tuning-part-1] *[https://share.confex.com/share/125/webprogram/Handout/Session17308/Managing%20Resources%20with%20cgroups.pdf https://share.confex.com/share/125/webprogram/Handout/Session17308/Managing%20Resources%20with%20cgroups.pdf] == VLAN == Virtual LAN LAN : Local Area Network, L2 Switch로 연결된 network <span style="color:#006400;">'''Switch 장비에서 VLAN 설정'''</span> untagged (VLAN Tage 없이) network이 가능 합니다. <pre>conf t int range fa0/1-3 #--- port 1번에서 3번 지정 switchport mode access switchport access vlan 10 #--- VLAN Tag 지정 exit int range fa0/4-6 switchport mode access switchport access vlan 20 exit end show vlan brief</pre> <span style="color:#006400;">'''참고 문헌'''</span> *[http://m.blog.naver.com/goduck2/220218907545 http://m.blog.naver.com/goduck2/220218907545] == VDI == VDI (<span style="color: rgb(37, 37, 37); font-family: sans-serif; font-size: 13.3000001907349px; line-height: 21px;">Virtual Desktop Infrastructure)의 display protocol</span> *<span style="color: rgb(37, 37, 37); font-family: sans-serif; font-size: 13.3000001907349px; line-height: 21px;">RDP, RDP 7/8 for windows</span> *<font color="#252525" face="sans-serif"><span style="font-size: 13.3000001907349px; line-height: 21px;">NX : for linux</span></font> *<font color="#252525" face="sans-serif"><span style="font-size: 13.3000001907349px; line-height: 21px;">SPICE for linux, windows</span></font> *<font color="#252525" face="sans-serif"><span style="font-size: 13.3000001907349px; line-height: 21px;">VNC</span></font> == 참고 문헌 == *[[Virtual Appliance|Virtual Appliance]] *[http://pat.im/479 내 CPU가 가상화 기술(VT)을 지원하는지 알아보기, 2009.07] *[http://searchservervirtualization.techtarget.com/photostory/2240211915/Top-10-virtualization-companies-emerging-in-2014/2/CloudPhysics-infrastructure-analytics-defines-a-new-category#contentCompress Top 10 virtualization companies emerging in 2014] *[https://ovirtkorea.wordpress.com/ oVirt Korea User Group] [[Category:Virtual Appliance|Category: Virtual Appliance]]<br/>[[Category:Cloud|Category: Cloud]]
Virtualization
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
변수
보기
읽기
원본 보기
역사 보기
더 보기
검색
주요 메뉴
오픈소스 컨설팅
오픈소스
오픈소스 라이선스
오픈소스 커뮤니티
오픈소스 종류
오픈소스 현황
오픈소스 한글화
문자셋과 인코딩
Storage
Network
보안
고가용성
모니터링
오픈 API
오픈 서비스
Cloud
BigData
Android
산사랑 노트
둘러보기
인기 문서
최근 수정 문서
모든 문서
모든 분류
임의 문서
위키 사용법
자매 사이트
CMS
오비컨 홈페이지
오비컨 CMS
블로그
데모 - SuiteCRM
산사랑의 Twitter
산사랑의 Facebook
친구 사이트
공개SW 포털
OLIS
한국공개소프트웨어협회
AppCenter 지원본부
OLC
PSEG
개발자 블로그
블로터
개인 메뉴
메뉴 수정
양식함
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보