VDI on OpenStack with Leostream Connection Broker Bosung Lee, Ph.D. (bs.lee@gotocloud.co.kr)
목차 1. 데스크탑가상화 (VDI) 개요 2. VDI 구현사례 3. OpenStack과 VDI 환경통합 4. VDI on OpenStack 환경구성 5. VDI 구성 6. Conclusions & Future Works
데스크탑가상화 (Virtual Desktop Infrastructure, VDI) 개요
가상화기술분류 가상화기술분류및특징 서버가상화 어플리케이션가상화 (SBC) 프리젠테이션가상화 데스크탑가상화 (VDI) 주요특징 여러대의물리적서버를고성능서버의가상머신 (Virtual Machine) 으로통합 서버에필요한소프트웨어와데이터가준비되고사용자의 PC 는입출력장치로사용됨 개인화된데스크탑을서버에서제공, 사용자의 PC 는입출력장치로사용됨 장점 자원활용률극대화 신속한서비스제공및백업 데이터센터비용절감 IT 의유연성증대 한대의서버에서여러개의사용자어플리케이션사용 신속한사용자환경전개 부하관리자동화 CPU, Memory, HDD, Network QoS 가상데스크탑스케쥴관리 사용자별개인화환경제공 유의점 데이터센터운영프로세스전환 가상화도입과정에서관리포인트증가 사용자개인환경의제약 (Active-X 등 ) 3D 환경등고성능자원제공방안 (GPU Pass-through 등 ) 필요 3D 환경등고성능시스템자원제공방안 (GPU Pass-through 등 ) 필요 적용업무 웹 / 포탈 / 데이터베이스 Task Worker 업무 Power & Knowledge Worker 업무 제품 Vmware vsphere Citrix XenServer Microsoft Hyper-V Red Hat RHEV Innogrid Cluoudit Citrix XenApp Microsoft RDS (Terminal Server) ThinApp (Vmware) Citrix XenDesktop / VDI-In-a-Box VMware Horizon View Microsoft RDS 3/31
데스크탑가상화 (VDI) 기본구성요소 데스크탑가상화 (VDI) 는 Connection Broker, Hypervisor, Delivery, Provisioning으로구성 사용자접속환경및할당된데스크탑으로연결 (Broker) 다수의데스크탑이실행되기위한 VM 환경 (Hypervisor) 사용자단말기와가상데스크탑을연결하는전송기술 (Delivery) 다수의데스크탑환경을보급, 관리 (Provisioning) 1 사용자접속및데스크탑연결 사용자에게할당된데스크탑을준비하고서버에실행준비 실제데스크탑에필요한사용자설정및어플리케이션, 운영체제를할당 Profiles 3 4 Apps 사용자단말기 사용자가접속하여원격의데스크탑에필요한정보를전달하고수신 2 Hypervisor 서버자원을할당하여가상데스크탑을실제로구동 O/S 4/31
VDI 시스템구성예시 (Citrix XenDesktop) 관리서버 : DDC, Active Directory, License Server 가상데스크탑호스팅서버 : XenServer, Hyper-V, ESXi 등 Hypervisor 구동 Shared Storage : 데스크탑이미지저장및사용자데이터저장 DataStore : 가상데스크탑정책 DB, 로그저장 Shared Storage : 가상데스크탑이미지, 사용자데이터저장 Citrix XenDesktop Server Farm 가상데스트탑호스팅서버 Citrix XenDesktop DataStore 사용자접속정책및접속로그관련 DB XenDesktop Operator - VDI Generation - Image Manage 관리자운영콘솔 Citrix License Server 사용자라이선스부여 XenDesktop DDC (Desktop Delivery Controller) 사용자접속웹페이지제공및가상데스크탑할당 Active Directory 인증및정책부여 사용자접속단말 ( 일반 PC 및 Mobile) 5/31
VDI 구성요소및역할 구성요소 역할 Citrix XenDesktop / VMware Horizon View OpenStack 에서의 VDI 구성요소 가상데스크탑호스팅 사용자가상데스크탑을구동하는서버 Hypervisor 위에 Windows Desktop VM 구동 가상네트워크구현 Citrix XenServer VMware ESXi Microsoft Hyper-V Nova Neutron 웹인터페이스 사용자가 Web browser 나전용클라이언트를통해배포된가상데스크탑을이용할수있는웹인터페이스제공 Web Interface 프로비저닝데스크탑전송 공통이미지를이용하여다량의가상데스크톱이미지생성 가상데스크탑사용자인증후사용자별로할당된가상데스크톱을중계하고세션정책을적용 관리자는중앙콘솔에서가상데스크톱할당정책및접속현황을실시간으로확인 VM Provisioning on Hypervisor Desktop Delivery Controller User/Policy Mgmt. ICA / PCoIP /RDP 3 rd Party Connection Broker OpenStack 에 VM Provisioning 3 rd Party Protocol User/Policy Mgmt. 데이터베이스 가상데스크탑관리자정책및가상데스크탑설정정보를저장하는데이터베이스 DataStore (MS-SQL) 3 rd Party DB for Connection Broker 인증서버 가상데스크탑사용자인증및 Windows 사용자정책 Active Directory AD, LDAP, RADIUS 등 Shared Storage 가상데스크탑이미지및사용자데이터를저장하는공유스토리지 SAN/NAS/iSCSI Windows File Server Scale-out Storage Cinder, Ceph Swift 6/31
VDI 구현사례
VDI 를통한사내업무망보안접속 VDI 를이용한사외에서사내업무망으로의보안접속구현 AS-IS TO-BE 장점 내부시스템의보안을위해내부업무망과인터넷망을분리하여운영중 사외에서내부의업무망에는 VPN 을통해접속이가능하나내부정보의다운로드방지가필요함 사내망에사외접속용가상데스크탑존을구축하고, 가상데스크탑을통해내부업무망접속허용 가상데스크탑을통해서만내부업무망으로접속이가능하도록가상데스크탑존과내부업무망사이에 ACL 적용 별도의물리적인네트워크재구축없이기존의네트워크구성을통해보안접속 가상데스크탑에대한사외접속은본사에서제어 사외에서내부업무망에접속후내부업무가능, 업무데이터는가상데스크탑내에만저장되므로데이터유출방지구현 VPN 통신 VPN SRC IP 가가상데스크탑인경우만라우팅하도록 ACL 설정 Router 사외사용자 가상데스크탑 가상 ` 데스크탑 가상데스크탑 업무서버 업무서버 업무서버 업무서버 가상데스크탑존에서만내부업무망에접속 내부업무망 8/31
VDI 를통한사내업무망보안접속 사내업무망보안접속개념도 사외 PC 1. 사외 PC 에서 VPN 을통해가상화서버팜의 Connection Broker 접속 2. Connection Broker 에서가상데스크탑계정서버에인증확인 인터넷망 5 3. 인증확인후사용자에게업무용가상데스크탑할당 4. 업무용가상데스크탑에서내부업무망서버에접속 5. 업무용가상데스크탑의화면이 VPN 을통해사외 PC 에전송 인터넷망방화벽 1 VPN 내부업무망 가상화서버팜방화벽 2 가상데스크탑계정서버 4 업무망서버 업무망서버 Connection Broker Active Directory 업무망방화벽 3 업무용가상데스크탑 9/31
VDI 를통한인터넷망분리 악성코드에의한내부망공격을방지하기위한인터넷용 VDI 구현 AS-IS TO-BE 장점 물리적인망분리의경우사용자당 2대의 PC 필요 사용자 PC의증가로인한데스크탑관리부하증가 전력및공간확보등망분리로인한시설투자증가 물리적인망분리를위한네트워크투자비용증가 사용률이낮은 PC의증가로인한 IT 자원비효율화 가상화를통한망분리로사용자당 1 대의 PC 유지 기존의 PC 를이용, 안터넷용가상데스크탑에연결 기존네트워크망을활용가상화서버에접속 물리적망분리에비해데스크탑관리부하감소 전력및공간확보불필요로인한시설투자비감소 논리적인망분리를통한네트워크투자비용절감 사용률이낮은 PC 에대한가상화로인한 IT 자원효율화추구 INTERNET 내부업무망 가상데스크탑인증서버 VPN 방화벽 내부망서버 가상데스크탑호스팅서버 Connection Broker 인터넷에서의해킹, 바이러스로부터내부업무망보호 내부업무망 PC 10/31
VDI 를통한인터넷망분리 인터넷망분리개념도 업무망 PC 업무망서버 업무망서버 1. 업무망 PC에서 VPN을통해가상화서버팜의 Connection Broker 접속 2. Connection Broker에서가상데스크탑계정서버에인증확인 내부업무망 5 3. 인증확인후사용자에게인터넷용가상데스크탑할당 4. 인터넷용가상데스크탑에서인터넷접속 5. 인터넷용가상데스크탑의화면이 VPN 을통해업무망 PC 에전송 업무망방화벽 1 VPN 가상화서버팜방화벽 2 가상데스크탑계정서버 4 인터넷 Connection Broker Active Directory 인터넷망방화벽 3 인터넷용가상데스크탑 11/31
OpenStack 과 VDI 환경통합
OpenStack 환경에서 VDI 구현필요성 기존데스크탑가상화솔루션의한계 특정 Hypervisor에종속 Citrix XenDesktop : XenServer / Microsoft Hyper-V / Vmware ESX Vmware Horizon View : VMware ESXi Microsoft RDS : Microsoft Hyper-V Red Hat VDI, Verde VirtualBridge : KVM 특정네트워크장비 (VPN) 에서최적의성능발휘 Citrix NetScalar / VMware Secure Gateway 데스크탑가상화인프라와 IaaS 클라우드와의통합어려움 IaaS 클라우드인프라와데스크탑가상화인프라별도운영으로인한인력, 투자비용, 리소스의낭비발생우려 OpenStack은 Linux 기반, VDI 솔루션은 Windows 서버기반 OpenStack 과는별도로 VDI 구축 OpenStack IaaS 클라우드가구축되어있다면? OpenStack 과 VDI 환경통합 13/31
OpenStack 과 VDI 환경통합 구성요소 역할 OpenStack 에서의 VDI 구성요소 요구사항 가상데스크탑호스팅 사용자가상데스크탑을구동하는서버 Hypervisor 위에 Windows Desktop VM 구동 가상네트워크구현 Nova Neutron 만족 웹인터페이스 프로비저닝 데스크탑전송 사용자가 Web browser 나전용클라이언트를통해배포된가상데스크탑을이용할수있는웹인터페이스제공 공통이미지를이용하여다량의가상데스크톱이미지생성 가상데스크탑사용자인증후사용자별로할당된가상데스크톱을중계하고세션정책을적용 관리자는중앙콘솔에서가상데스크톱할당정책및접속현황을실시간으로확인 3 rd Party Connection Broker OpenStack 에 VM Provisioning 3 rd Party Protocol User/Policy Mgmt. OpenStack Nova 에가상데스크탑생성및삭제지원 데이터베이스 가상데스크탑관리자정책및가상데스크탑설정정보를저장하는데이터베이스 3 rd Party DB for Connection Broker 인증서버 가상데스크탑사용자인증및 Windows 사용자정책 AD, LDAP, RADIUS 등 다양한 DB 지원 다양한사용자인증방식지원 Keystone 통합 Shared Storage 가상데스크탑이미지및사용자데이터를저장하는공유스토리지 Cinder, Ceph Swift 만족 14/31
Leostream Connection Broker Leostream 주요특징 Connection Broker 가상데스크탑및어플리케이션할당및관리 웹인터페이스를통한자원관리및사용자정책관리 OpenStack 가상데스크탑지원 Leostream Connect 가상데스크탑접속용클라이언트 Single Sign-on 지원 Windows / Linux / OS X 지원 Leostream Agent 가상데스크탑에설치 Connection Broker 와가상데스크탑간의정보교환 USB Redirection User idle time monitoring 출처 : http://www.leostream.com/product/how_it_works 15/31
VDI on OpenStack 환경구성
OpenStack 기반 VDI 를통한사내업무망보안접속구현 OpenStack 기반 VDI 사내업무망보안접속개념도 1. 사외 PC 에서 VPN 을통해가상화서버팜의 Connection Broker 접속 사외 PC (Leostream Connect) 인터넷망 5 2. Connection Broker에서가상데스크탑계정서버에인증확인 3. 인증확인후사용자에게업무용가상데스크탑할당 4. 업무용가상데스크탑에서내부업무망서버에접속 5. 업무용가상데스크탑의화면이 VPN을통해사외 PC에전송 인터넷망방화벽 1 VPN VM OpenStack IaaS Cloud 내부업무망 Key Concepts 가상화서버팜방화벽 Leostream Connection Broker VM 2 Active Directory VM 가상데스크탑계정서버 4 업무망방화벽 업무망서버 업무망서버 Leostream Connection Broker Active Directory 인증 VPN VM OpenStack Security Group 으로방화벽대체 Leostream Connect 로접속 3 업무용가상데스크탑 17/31
GotoCloud OpenStack Configuration 서버구성 1 Controller, 1 Compute + Network CentOS 7 64bit (KVM) OpenStack Kilo Controller에 OS HDD + Data HDD 설치 glance image, cinder volume service nova instance는 controller의 NFS volume에저장 네트워크구성 서버당 4개의 NIC 장착 enp1s0 : External Network 1 (internet) 연결 Controller 는 Internet 에서 Dashboard 접속용 enp3s0 : Management Network enp4s0 : Tunnel network와 NFS network Compute 노드가늘어날경우 Tunnel로사용 NFS Network는분리하는것을권장함 enp5s0 : External Network 2 (intranet) 연결 External network (Internet) enp3s0 (192.168.0.201) enp1s0 (180.180.180.180) Keystone Glance Horizon Cinder Controller Node Heat Telemetry NFS (nova instance) enp4s0 (10.0.1.1) External network2 (Intranet) enp1s0 (No IP) Nova Neutron enp3s0 (192.168.0.202) Tnnnel network + NFS enp4s0 (10.0.1.2) Compute + Network enp5s0 (No IP) Management network 18/31
External network2 추가 Intranet 연결용 External network2 추가 Neutron L3 Agent 설정 /etc/neutron/l3_agent.ini 수정 (Controller node Only!) external_network_bridge = gateway_external_network_id = Openvswitch Plugin 설정 /etc/neutron/plugin.ini (Controller+Compute node) [ml2] type_drivers = flat, vlan, gre, vxlan [ml2_type_flat] flat_networks = * [ovs] bridge_mappings = external:br-ex,intranet:br-intra network_vlan_range = external,intranet namespace-xxx namespace-yyy qr-xxx qg-xxx qr-yyy qg-yyy tap-xxx tap-xxx tap-yyy tap-yyy br-int ovs-bridge int-br-ex int-br-intra Bridge 추가 phy-br-ex phy-br-intra # ovs-vsctl add-br br-intra # ovs-vsctl add-port br-intra enp5s0 # ovs-vsctl add-port br-intra phy-by-intra br-ex enp1s0 br-intra enp5s0 # ovs-vsctl set interface phy-by-intra type=patch # ovs-vsctl set interface phy-by-intra options:peer=int-br-intra External network2 19/31
Multiple External Networks Internet & Intranet External Network2 (Intranet) External Network (Internet) 20/31
Default Security Group Rule Internet 에서 VM 접속 (Ingress) 172.16.100.0 내부의 VM 에대해서는 RDP(3389 tcp) 접속만허용 172.16.100.1 Router 를통해내부로연결 Default GW : 172.16.100.1 Internet (Ingress) (Egress) Intranet VM 에서 Intranet 접속 (Egress) 172.16.100.0 에서는 192.168.0.0 네트워크로만접속 192.168.0.0/24 GW : 172.16.100.254 (192.168.0.0/24) 21/31
Final Network Topology 1. 사외 PC 에서 VPN VM Public IP 로 VPN Tunnel 생성 2. Leostream Connection Broker 에로그인 3. Active Directory 에서사용자인증 Intranet Router Internet Router 4. 인증후 desktop-0 ~ desktop-2 VM 할당 5. Desktop VM 에서 Intranet (192.168.0.0/24) 접속 6. Desktop VM 의화면이사외 PC 에전송 VPN Tunnel (443 tcp) VPN VM (SoftEther VPN) Public IP Association Virtual Desktops (Windows 7 32 bit) Active Directory (DNS Server) Intranet (192.168.0.0/24) Internet VDI Subnet (172.16.100.0/24) Leostream Connection Broker 22/31
VDI 구성
Active Directory 서버설치 DNS 서비스설치 VDI Subnet 설정에서 DNS 주소를 Active Directory 로지정 DNS 가 AD 로지정되지않을경우 Desktop VM 의 AD Join 이실패함 외부 DNS 는 DNS 전달자에서설정 DNS 동적업데이트설정 ( 가상데스크탑자동추가 ) VDI User 생성 조직단위 (Organizational Unit) Active Directory IP Address DNS 전달자에외부 DNS 등록 Domain User Group Members Domain 방화벽정책설정 AD 의도메인방화벽정책가상데스크탑에적용 DNS 동적업데이트 24/31
가상데스크탑 Master Image 생성 VirtIO 드라이버를포함한가상데스크탑 OS 설치 OS Update 및필요한응용프로그램설치 가상데스크탑 OS 설정 Domain Join 및원격데스크탑허용설정 원격데스크탑사용자에 Domain User 추가 Leostream Agent 설치 Connection Broker 주소와 Port 지정 기존 IP 해제 DHCP 에서할당된 IP 주소해제 해제하지않을경우신규생성 VM 에서 IP 를할당받지못함 Cloudbase-Init 설치 Cloudbase-Init 설치및 Sysprep 초기화수행 Windows OS 를복제할경우 SID (Security Identifier) 가중복되면 Domain 에 Join 에실패 Glance Image 등록 가상데스크탑사용자원격허용 Connection Broker IP Address 25/31
Connection Broker 설정 Authentication Server 추가 Active Directory 서버인증서버로추가 AD 의사용자를 VDI 사용자로추가 Active Directory IP Address Domain Name OpenStack Center 추가 Auth URL 설정 Auth URL 을통해 Connection Broker 에서 OpenStack 에연결 OpenStack Project, User 설정 VDI subnet 추가 가상데스크탑이연결될 Subnet ID 26/31
Connection Broker 설정 가상데스크탑 Pool 설정 Pool에 OpenStack Center추가 Center 목록에서선택 생성되는가상데스크탑을 Domain 에추가 인증서버에추가한 AD의도메인지정 AD가먼저추가되어있어야함 OpenStack Center AD Domain Provisioning Parameter 설정 27/31
VDI 접속 Leostream Connect 또는웹인터페이스접속 28/31
Conclusions & Future Works
Conclusions & Future Works OpenStack 환경에서 VDI 구현 OpenStack 환경에서 VDI를구현함으로써특정 Hypervisor에종속해결 데스크탑가상화인프라와 IaaS 클라우드와의통합 IaaS 클라우드인프라와데스크탑가상화인프라통합운영으로인한인력, 투자비용, 리소스의낭비감소 OpenStack IaaS 클라우드가구축되어있다면? OpenStack 과 VDI 환경통합 Leostream Connection Broker OpenStack을지원하는 Connection Broker Future Works 가상데스크탑 Master Image 생성방식개선필요 Master Image 생성 : OS 설치 -> 가상데스크탑구성 -> 일반화 -> OpenStack Image 등록 Master Image 변경 : Master Image로부터 VM 생성 -> 변경작업 -> 일반화 -> OpenStack Image 등록 개선필요사항 : Connection Broker에서가상데스크탑복제실행 -> Agent 에서일반화명령전송 -> 새로운데스크탑복제 Swift 등 Object Storage 를가상데스크탑의사용자데이터저장공간으로활용 VDI 에서의 Storage 병목현상개선 VPN 연동, 모바일디바이스지원 Client 개발 30/31
Q & A Bosung Lee, Ph.D. e-mail: bs.lee@gotocloud.co.kr blog: http://gotocloud.co.kr 31/31