
http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
Mcredit2: 동적 가중치 할당을 통한 고가용성 Xen 스케줄러
일반적으로 서버 하드웨어 성능의 증가로 인하여 서버 한 대에 호스트 하나만을 운영하게 되면 서버의 하드웨어를 전부 사용하지 못하는 경우가 발생할 수 있다. 이에 하나의 서버에 여러 개의 호스트가 동작할 수 있도록 하는 하이퍼바이저가 연구되고 있다. 연구되고 있는 하이퍼바이저 중의 하나로 Xen이 있다. Xen은 각 호스트들에게 프로세서를 할당하기 위해 프로세서 스케줄러를 제공해준다. Xen이 제공하는 스케줄러 중의 하나로 Credit2 스케줄러가 있다. Credit2 스케줄러는 각 도메인에게 공평하게 프로세서를 할당하고 지연 속도에 민감한 도메인에게 작업 보장성을 제공해주기 위하여 개발되었다. Credit2 스케줄러는 각 호스트마다 가중치 값을 지정할 수 있다. 호스트의 가중치 값이 높아질수록 해당 호스트는 다른 호스트보다 더 많은 시간동안 프로세서를 할당을 받을 수 있다. Credit2 스케줄러는 유휴 프로세서를 사용하지 못하여 유휴 프로세서가 있는 경우 유휴 프로세서를 활용하는 Credit 스케줄러보다 좋지 않은 성능을 보인다. 본 논문에서는 Credit2 스케줄러를 개선시킨 Mcredit2 스케줄러를 제안한다. Credit2 스케줄러의 경우 특정 도메인에 부하가 발생하여 프로세서 사용량이 증가하여도 아무런 조치가 취해지지 않는다. Mcredit2 스케줄러는 프로세서의 사용량이 많은 호스트에 일시적으로 더 많은 가중치 값을 할당하여 도메인이 부하를 빨리 처리할 수 있도록 한다. 추가적으로 본 논문에서는 프로세서 모니터링 도구를 소개한다. Xen에서 기본적으로 제공하는 프로세서를 모니터링 할 수 있는 도구로 xentop이 있다. xentop은 각 호스트들의 프로세서 정보를 숫자를 이용하여 표시해준다. 본 논문에서는 각 호스트가 사용하는 프로세서를 그래픽화 하여 표시해주는 모니터링 도구를 제안한다. Generally, when operating only one host on one server, the case of not being wholly unable to use the hardware of the server due to the functional increase of server hardware. Thus the hypervisor, which makes several servers on one server operate, is being researched. As for the hypervisor being researched, there is Xen. Xen provides each host with processor scheduler in order to assign processor. There is Credit2 scheduler as for one of schedulers provided by Xen. Credit2 scheduler has been developed in order to properly assign processor to each domain as well as provide work assurance to the domain sensitive to latency. Credit2 scheduler can assign the weight value in each host. The higher the value of weight in host, the longer time the relevant host can be assigned with processor than other host. Credit2 scheduler shows worse function than Credit scheduler which utilizes idle processor in case of having idle processor as it cannot use idle processor. This study suggest Mcredit2 scheduler which improved Credit2 scheduler. In case of Credit2 scheduler no measure would be taken no matter how much use amount is increased because load occurs on a specific domain. Mcredit2 scheduler makes domain deal with the load fast, by temporarily assigning more weight value to the host which has much use amount of processor. In addition this study introduces a processor monitoring tool. There is xentop as for a tool which can monitor processor that Xen basically provides. xentop indicates information of processor in each host by using numeric character. This study suggests a monitoring tool which indicates processor used by each host via graphic.
(A) dynamic allocation mechanism of virtual CPUs in Xen
민경윤 Graduate School, Yonsei University 2014 국내석사
Virtualization technology has been mainly developed for applications to large-scale server systems. However, virtualization technology is not limited to only server systems and has been developed in various forms, over time. Xen is the most widely used para-virtualization platform among the virtualization technologies. However, Xen has been developed primarily for server systems along with other virtualization technologies. Therefore, there are many issues yet to be solved to transplant Xen into others systems beyond server systems. Performance degradation has been reported for computationally-intensive multi-threaded workloads because the Credit scheduler, as a default scheduler in Xen, has a throughput-oriented policy. In addition, such issues become worse as the number of virtual-CPUs (VCPUs) increases. This thesis analyzes the characteristics of the Credit scheduler with multi-threaded applications and the performance degradation as the number of VCPUs increases in Xen. We present a dynamic VCPU allocation mechanism, which dynamically allocates the optimal number of VCPUs after profiling the characteristics of a running application on Xen. Our evaluation shows that the performance of the proposed dynamic VCPU allocation mechanism is superior to that of conventional static methods in various application environments.
XEN 기반 GPGPU을 이용한 라우팅 테이블 업데이트
오승훈 고려대학교 융합소프트웨어전문대학원 2014 국내석사
네트워크의 연결되는 장치의 개수가 늘어남에 따라서 라우팅 테이블의 크기가 증가 하고 있다. 그래서 전달 경로를 담고 있는 라우팅 테이블의 정보의 양이 증가하여 라우팅 테이블의 크기가 커지고 있다. 따라서 CPU는 많은 양의 데이터가 담겨있는 라우팅 테이블을 업데이트 하는데 상당한 시간을 소비하게 된다. 이로 인해 CPU는 다른 작업들을 처리하지 못하게 되는 현상이 발생한다. 이러한 문제는 native OS환경에서 보다 여러 개의 라우팅 테이블들을 가질 수 있는 XEN환경에서 더 심각하게 발생 할 수 있다. 본 논문에서는 XEN환경에서 코어가 병렬적으로 동작하는 GPU를 사용해서 라우팅 테이블을 효율적으로 관리하는 방법을 제시한다. 그리고 이를 XEN환경 소프트웨어 라우터에 GPGPU를 적용하여 라우팅 테이블 업데이트 할 때, 얻는 시스템 성능 향상에 대해 논한다.
Xen-ARM의 모바일폰 적용을 위한 실시간 인터럽트 처리 필요성 및 해결방안
현재 모바일 폰은 실시간 운영체제를 구동하는 CP(Communication Processor)와 범용 운영체제를 구동하는 AP(Application Processor), 두 개의 프로세서를 사용하고 있다. 임베디드 가상화는 하나의 칩 위에 실시간 운영체제와 범용 운영체제를 동시에 동작시킬 수 있는 솔루션을 제공하면서, 각각의 운영체제가 서로 고립되어 동작하도록 한다. 따라서 임베디드 가상화 솔루션을 모바일 폰에 적용하면 하나의 프로세서를 사용하여 비용을 절약하면서, 하이퍼바이저 위에 고립된 각각의 운영체제를 구동할 수 있기 때문에 각광을 받고 있다. Xen-ARM은 모바일 기기에서 가장 많이 사용되는 ARM 프로세서에서 동작하는 하이퍼바이저로 임베디드 기기의 탑재를 목적으로 개발되었다. 그러나 현재의 Xen-ARM의 크레딧 스케쥴러는 CPU 공평성에 포커스를 맞추고 있어 실시간 IO를 제한된 시간 안에 처리할 수 없기 때문에, 실시간 IO를 처리해야 하는 임베디드 기기에 적용하기 어렵다. 본 논문에서는 현재 Xen-ARM이 실시간 IO를 지원할 수 없는 것을 실험을 통해 보여주고, 실시간 IO를 지원하기 위한 방안을 제시한다. 또한 수정된 Xen-ARM을 모바일 폰에 적용하는 방안에 대해 제시한다.
Xen의 확장성과 효율성을 위한 메모리의 동적 할당 정책
이권용 서강대학교 일반대학원 2009 국내석사
The system virtualization is arrested attention to the server consolidation for utilization and efficiency of system resources recently. This system virtualization means the software technology that offers a number of virtualized environments through separating physical hardwares of one machine. A virtualized environment provide independent virtual hardwares to each server of virtual machine although shared hardware for real. The system virtualization is already in practical use level and makes cost reduction with much less spaces at many commercial fields. So, there are many researches to improve the resource utilization and efficiency through using the system virtualization technique. The system virtualization has two major types that are container-based and hypervisor-based virtualization. The container-based virtualization shares one kernel image and provides separated multiple user-space to each user. Because of the shared kernel, this type loads many virtual machines, but it can not support high-level resource isolation. Also, some fault tolerance of one virtual machine makes fatal fault to whole virtual machines due to shared resources. On the contrary, a virtualization layer of the hypervisor-based is on a physical hardware substrate so that supports high-level resource isolation to each virtualized environments. This type preoccupies resources to each virtual machine at creating virtual machine. Therefore a total resources of all virtual machine can not be over the real machine's resource capacity. This means the container-based type is able to load more virtual machine than hypervisor-based virtualization. And hypervisor-based type may product idle resources when some virtual machine needs more resource because of a characteristic of high-level resource isolation. This paper perceives these problems and develops a system for improving resource utilization with high-level resource isolation. Especially, a memory makes a system to disable high-level resource isolation to container-based virtualization. Furthermore, it limits a number of virtual machines and generates idle resource to hypervisor-based virtualization. In this paper, I focus on this memory resource. Finally, I suggest the policy which predicts next memory usage and allocates memory dynamically to virtual machines. 최근 서버의 통합을 통해 시스템 자원의 이용률과 효율성을 높이기 위한 방안으로 시스템 가상화가 많은 주목을 받고 있다. 시스템 가상화 기술이란 하나의 서버 기계를 마치 여러 독립적인 서버 기계로 느끼도록 가상으로 분리시켜 실제로는 하드웨어를 공유하더라도 가상화된 각각의 서버가 서로 다른 기계에서 동작하는 것처럼 만들어준다. 이 기술은 이미 실용화 단계에 있는 분야이며 하드웨어의 성능이 높아짐에 따라 더 많은 서버의 통합이 가능해지고 있다. 또한 이를 통하여 비용 절감 및 공간 축소의 효과를 얻고 있다. 현재 시스템 가상화 기술을 활용하여 자원의 이용률 또는 효율성을 향상시키기 위한 많은 연구들이 활발하게 이루어지고 있다. 시스템 가상화는 크게 컨테이너(Container) 기반과 하이퍼바이저(Hypervisor) 기반의 가상화 기법으로 나눌 수 있다. 컨테이너 기반의 가상화는 하나의 커널을 공유하여 다수의 사용자에게 각자의 사용자 공간을 제공하고 이 사용자 공간을 서로 분리시켜준다. 이 기법은 커널을 공유하기 때문에 가상머신을 생성하기 위한 추가적인 자원이 적어서 많은 가상머신을 동작시킬 수 있지만 이러한 특성으로 인하여 가상머신 간 고수준의 자원 분리를 제공할 수 없는 단점이 있다. 또한 고수준의 자원 분리가 불가능하기 때문에 한 가상머신의 내결함성(Fault tolerance)이 다른 가상머신들에게 영향을 미칠 위험이 있다. 이와는 반대로 하이퍼바이저 기반의 가상화는 물리적인 하드웨어 장비 위층에 존재하여 각 가상머신에게 고수준의 자원 분리를 제공할 수 있다. 이 가상화 기법은 가상머신의 생성 시 해당 자원을 미리 선점하여 할당해주므로 모든 가상머신들의 자원 총합이 실제 기계의 자원 총량을 넘을 수 없다. 따라서 컨테이너 기반의 가상화 기법만큼 다수의 가상머신을 제공하지는 못한다. 또한 한 가상머신에 할당된 자원을 다른 가상머신이 침범할 수 없으므로 자원이 부족한 가상머신이 존재하더라도 유휴자원이 발생할 수 있는 문제점이 있다. 본 논문에서는 이러한 가상화 기법들의 문제점에 착안하여 온전히 분리된 자원들을 가상머신에게 제공하고 발생할 수 있는 유휴자원을 최소화하여 자원 이용률 및 효율성을 향상시킬 수 있는 정책을 목표로 한다. 이 정책은 서버의 많은 자원들 중에서 컨테이너 기반의 가상화가 고수준의 자원 분리를 제공하지 못하고 하이퍼바이저 기반의 가상화에서 유휴자원이 많이 발생하는 메모리 자원에 초점을 맞추었다. 또한 메모리는 하이퍼바이저 기반의 가상화에서 더 많은 가상머신을 동작시키는데 큰 제약이 되는 자원이기도 하다. 따라서 메모리 자원의 사용량 예측과 배분 및 할당을 통해 실제 서버 기계 상의 가상머신들을 더욱 효과적으로 운용할 수 있는 메모리의 동적 할당 정책을 제안한다.
Xen credit scheduler에서 동적 weight 할당을 통한 성능 개선
Credit 스케줄러는 가상 머신 모니터인 Xen의 기본 스케줄러이다. Credit 스케줄러는 하나의 물리적인 CPU자원을 각 게스트 도메인에 공평하게 분배 해 주기 위해 weight 값을 사용한다. 이 값은 상대적인 값으로, 각 게스트 도메인은 생성시에 일정한 weight 값을 할당 받게 된다. 그리고 이 값의 비율만큼 CPU 자원을 할당 받게 된다. 그러나 이렇게 정적으로 할당된 weight 값에 의해 CPU bound 도메인은 상대적인 불이익을 받을 수 있게 된다. 이것은 Xen이 기본 IO 모델로서 Split-Driver 모델을 사용하고 있기 때문이다. Split-Driver 모델에서는 게스트 도메인의 IO처리는 IDD라는 별도의 도메인에서 처리 하게 된다. 그러나 이 때, 특정 도메인의 IO 처리를 위해서 사용되는 IDD의 CPU 사용량은 IO를 유발한 도메인의 weight 값에 포함되지 않는다. 따라서 IO 처리량이 많은 도메인은 IDD를 사용한 만큼 CPU 사용량에서 이익을 받게 된다. 또한 weight값은 상대적인 값이므로 CPU bound 도메인은 그만큼의 불이익을 받게 된다. 이러한 불평등을 개선하기 위해, 개선된 스케줄러에서는 각 도메인의 IDD사용 비율에 따라 weight를 동적으로 재 할당 한다. IDD의 사용 비율은 해당 도메인이 OVER 상태의 우선순위에 있을 때 받게 되는 wake() 함수의 카운팅 값으로부터 계산한다. OVER 상태는 해당 도메인이 자신의 credit을 다 소모한 상태를 의미한다. 따라서 각 도메인의 OVER 상태에서의 wake() 호출 수를 카운팅 함으로써 각 도메인의 IO intensive 정도를 측정할 수 있다. 스케줄러 내부의 함수인 wake() 카운팅 값을 사용함으로써 Xen이나 게스트 운영체제의 수정 없이 스케줄러의 수정만으로 IO 사용 비율을 측정할 수 있다. 이렇게 측정된 wake() 함수의 카운팅 값으로부터, 각 도메인에 일정 부분의 weight 값을 재 분배 해 준다. 이를 위해 각 도메인의 weight에 따라 사용할 수 있는 wake 값의 threshold를 정한다. 특정 도메인의 wake값이 자신에게 정해진 threshold를 초과한 경우 자신의 weight에서 초과한 비율 만큼을 적은 wake를 카운팅 한 도메인에게 양도해 준다. 이와 같은 방법으로 IDD의 사용량에 따라 weight를 동적으로 분배해 줌으로써 CPU bound 도메인의 상대적인 불이익을 해소시킨다.
Xen 가상화 환경에서의 I/O 전달 과정 개선을 통한 SSD 성능 향상
송창기 高麗大學校 融合소프트웨어專門大學院 2013 국내석사
가상화 기법은 엔터프라이즈 환경에서 중추적인 기술이며 블록 장치의 I/O 성능은 가상화 기법에서 중요한 평가 요소이다. VMM을 통해서 제공되는 가상화 기법은 대표적으로 L4ka, KVM, Xen 등이 있으며 대부분의 VMM에서 전가상화만을 지원하는 반면에 Xen은 전가상화 기법을 개선한 반가상화 기법도 제공하여 블록 장치의 I/O 성능을 개선하였다. 그러나 Xen에서는 블록 장치의 I/O 요청을 전달할 때 I/O요청 분할로 인한 문제가 존재한다. 각각의 가상 머신 간 블록 장치의 I/O 요청을 전달할 때, 작은 단위(44KB 요청 단위)로 I/O 요청이 분할되어 비가상화 시스템에 비해서 많은 I/O 요청이 발생하며, 특히 SSD와 같은 입출력 단위가 크면 클수록 성능이 향상되는 블록 디바이스에서 블록 장치의 I/O 성능이 저하됨을 발견하였다. 본 논문에서는 이 문제를 해결하기 위해서 개선된 I/O 전달 방식을 제안한다. 우리는 기존 I/O 링 메커니즘을 그대로 활용하면서 분할된 I/O 요청을 다시 합병하여 제공하는 구조를 설계하고 구현하였다. 이러한 구조로 설계한 목적은 기존 시스템에서 공통으로 사용하는 부분은 그대로 활용하면서 최소의 수정으로 이식성을 높이고, 부작용을 최소화하기 위함이다. 제안하는 기법의 성능 평가를 위해서 각각의 M-DomU, DomU, Dom0, Native 에서 SSD 블록 장치 대한 임의/순차 읽기와 쓰기 요청을 수행하였으며, 기존 기법에 비해 최대 40.45%의 성능향상이 있음을 확인하였다. 특히, 요청 단위에 비례해서 성능 향상이 되는 블록 장치의 특성을 반영함으로써 블록 I/O 성능을 개선하였다. 또한 블록 프런트 엔드와 백 엔드 드라이버의 수정만으로 목적을 달성할 수 있기 때문에 비용이 적은 장점이 있다. 따라서 본 기법의 사용으로 Xen 가상화 시스템에서 기존보다 효율적으로 블록 장치를 사용하여 I/O 요청 전달할 때에 블록 I/O의 성능을 향상 할 수 있다.
Evaluation of virtual machine monitor schedulers for embedded systems
이정우 Graduate School, Korea University 2010 국내석사
Increasing computing power of mobile devices, virtualization technology evolves, by combining virtualization technology for embedded devices that have been studied. In particular, the concern to apply a hypervisor is growing in order to ensure security or to use in heterogeneous environments. It is important for a hypervisor to schedule which domain executes effectively. It is handled by a Virtual Machine Monitor(VMM) scheduler, also called CPU scheduler. There are three CPU schedulers in Xen-server - BVT, SEDF, and Credit scheduler. In case of Xen-ARM, Xen for ARM processor includes just two schedulers - BVT and SEDF. Even though Credit scheduler is default scheduler in Xen-server, Xen-ARM does not support it. In this paper, we evaluated whether Credit scheduler is useful for embedded systems. In addition, since requirements for embedded systems are not same as the required features in desktop system, it is needed to analyze and evaluate three schedulers which is suitable for a embedded system, especially in a 3G mobile system. In this paper, in order to obtain reliable results we used benchmark suites that had proven through many studies - MiBench and iperf. After various testing such as network bandwidth and latency of CPU scheduler, we verified characteristics of each CPU scheduler in an embedded environment.
강민정 高麗大學校 融合소프트웨어專門大學院 2015 국내석사
최근 모든 산업에 있어서 정보의 저장과 정보의 활용 능력이 경쟁력이 되어감에 따라 가상화 기술이 함께 중요해 지고 있다. 하지만 가상화 기술에 대한 보안취약점이 발견될 경우 피해파급효과가 상당할 것임에도 불구하고, 가상화 기술은 보안취약점 분석의 범위에서 벗어나 있었다. 따라서, 본 논문에서는 개발자가 코딩단계에서 고려하지 못한 가상화 오픈소스의 보안약점을 검출하고 이를 통해 보안약점들을 미리 제거하기 위해, 대표적인 가상화 오픈소스 중 하나인 XEN과 국내에서 처음으로 개발 진행 중인 가상화 기술인 K-Hypervisor 를 대상으로 CERT C 시큐어 코딩 표준에 기반하여 정적분석을 수행하였다. 또한, 검출된 위반항목들 중 일부 항목에 대해서는 XEN과 K-Hypervisor 실제 코드를 사례로 들어 LDRA 코딩룰과 CERT C시큐어 코딩 표준에 기반하여 보안약점 분석 및 수정방향을 제시하였으며, 이들 중 연산자 평가순서와 관련된 LDRA 9S와 LDRA30S 코딩 룰 위반코드에 대해서는 실험을 통하여 이러한 보안약점이 XEN의 가상화 네트워크 동작에 미치는 영향을 확인하였다. 그 결과, 소켓버퍼데이터의 물리 주소가 저장되어 있는 그랜트 테이블의 엔트리를 잘못 가르키거나, I/O 링 연산에 필요한 정보를 잘못된 주소공간에 저장함으로 인해서 XEN의 네트워크가 정상적으로 동작하지 않는 심각한 문제가 발생함을 알 수 있었다. 본 논문에 기반하여 이러한 보안약점들을 모두 제거한다면 가상화 오픈소스의 보안성을 향상시킬 수 있을 것으로 기대한다.
실시간 스케줄링을 지원하는 멀티코어 가상 임베디드 머신 환경 하이퍼바이저
최재혁 高麗大學校 融合소프트웨어專門大學院 2011 국내석사
임베디드 환경에서 마이크로프로세서는 하드웨어 성능에서 가장 중요한 요소 중에 하나이다. 현재 임베디드 환경 마이크로프로세서의 큰 이슈 중에 하나는 다중 코어로서 이미 이중 코어를 탑재한 임베디드 기기들은 빠른 속도로 인해 사람들의 관심을 많이 받고 있다. 하드웨어의 성능이 증가하면서 임베디드 기기의 가상화에 대한 관심도 증가하고 있다. 임베디드 시스템에 가상화가 적용이 되면 범용적인 운영체제와 실시간 운영체제를 함께 지원할 수 있어, 실시간 특성이 요구되는 어플리케이션을 지원하는 범용적인 운영체제를 제공할 수 있다. 또한 운영체제를 격리시킬 수 있기 때문에 보안성이 높아지고, 오류가 발생하여도 전체 시스템에 영향을 주지 않아 신뢰성이 높아질 수 있다. 또한, 디바이스 드라이버를 수정하지 않고 사용할 수 있어 재사용성이 증가한다. 본 논문에서는 임베디드 머신 기반의 가상 하이퍼바이저에서 범용적인 운영체제와 실시간 운영체제를 다중 코어 기반에서 적합하게 실행시킬 수 있는 수정된 스케줄러를 제시하였다. 기존의 단일 코어에서 구현된 PARFAIT 스케줄러는 실시간 운영체제에 적합한 SEDF 스케줄러와 범용적인 운영체제에 적합한 BVT 스케줄러를 통합한 계층형 스케줄러로서 한 개의 하드웨어에서 다양한 목적의 운영체제가 함께 동작할 수 있다. 하지만 기존의 SEDF 스케줄러는 다중코어에 대한 고려가 되지 않아 다중코어에서는 비효율적으로 동작한다. 따라서 우리는 SEDF 스케줄러를 수정하여 CPU를 VCPU 단위가 아닌 도메인 단위로 하여 멀티 코어에서 좀 더 효율적으로 CPU 할당을 할 수 있게 하였다. 이어지는 실험에서는 이중 코어 CPU인 Tegra250에 이를 구현하였고 큰 성능의 저하 없이 실시간 운영체제의 실시간성을 좀 더 효율적으로 지원함을 보였다.