Computer >> 컴퓨터 >  >> 소프트웨어 >> 가상 기기

Xen 반가상화 이해하기

시작하기 전에 경고하겠습니다. 하드웨어 가상화 없이 Xen을 사용하려고 하면 여정에 문제가 생길 것입니다. 이것은 가상화 확장 기능이 있는 최신 CPU가 없는 경우 Xen을 사용하지 말아야 한다는 미묘한 힌트가 아닙니다. VirtualBox 또는 VMware Player와 같은 가정용 솔루션과는 거리가 멀지만 Xen은 완전히 다른 시장 부문을 목표로 합니다.

하지만 저처럼 고집이 세고 튜토리얼로 세상을 정복하고 싶다고 해보세요. 그런 다음 Xen 반가상화를 시도하고 실패합니다. 가장 큰 장애물은 설치를 시작할 수 있도록 Xen 게스트가 CD 및 CD 이미지에서 부팅되도록 하는 것입니다. 반가상화 네트워킹도 즐겁지 않습니다. 자, 오늘은 일을 더 간단하게 하려고 합니다. 시도에 중점을 둡니다.

우리가 직면한 문제, 증상, 해결 방법, 반가상화 커널 및 initrd 파일로 작업하는 방법, 게스트를 위해 브리지된 네트워크 어댑터를 구성하는 방법을 배웁니다. 이 모든 것이 불확실성에 싸여 있습니다. 나를 따르라.

Xen 반가상화 이해하기

반가상화가 어려운 이유

공식 설명은 다음과 같습니다.

반가상화는 Xen에서 도입한 효율적이고 가벼운 가상화 기술로 나중에 다른 가상화 솔루션에서도 채택되었습니다. 반가상화에는 호스트 CPU의 가상화 확장이 필요하지 않습니다. 그러나 반가상화 게스트에는 Xen에서 기본적으로 실행되도록 포팅된 특수 커널이 필요하므로 게스트는 하이퍼바이저를 인식하고 에뮬레이션이나 가상 에뮬레이트 하드웨어 없이 효율적으로 실행할 수 있습니다.

게스트가 특수 커널을 필요로 한다는 단어에 중점을 둡니다. 이것이 무엇인지 또는 얻는 방법을 모른다면 일을 진행하기 위해 열심히 노력해야 합니다. 특히 시스템 설치의 첫 번째 단계인 라이브 CD 이미지에서 부팅을 시도할 때 문제가 발생합니다.

CD 또는 ISO 이미지에서 부팅

새 가상 머신을 설정하려고 하면 문제가 시작됩니다. 이전에 백만 번 했던 것처럼 먼저 CD에서 게스트 부팅을 원합니다.

Xen 반가상화 이해하기

Xen 반가상화 이해하기

그러나 ISO를 사용하려고 해도 이런 종류의 보기 흉한 오류가 발생합니다.

Xen 반가상화 이해하기

Xen 반가상화 이해하기

Intertubes를 누르면 어떻게 이것이 가능한지 또는 불가능한지 알려주는 700만 개의 레시피를 찾을 수 있습니다. 그러나 결코 한 줄짜리가 아니며 플러그 앤 플레이가 아닙니다. 가장 일반적인 솔루션은 이미지를 추출하여 HTTP 서버에 업로드하는 것과 이미지를 루프백 장치로 마운트하는 것 사이에 다릅니다.

추신 더 많은 읽기 섹션도 살펴보십시오. 참조 자료는 위의 테스트를 위해 선택한 Ubuntu가 추가 노력과 수정 없이는 반가상화 게스트로 부팅되지 않는 이유를 설명합니다.

그럼 어떻게 해야 할까요?

우선, 아무것도 없습니다. 제안된 방법 중 일부는 쉽게 구현됩니다. 그리고 그들은 실제로 작동하지 않습니다. 당신이 해야 할 일은 오류 메시지를 조사하는 것입니다. 세부정보를 클릭하고 최선을 다하기를 바랍니다. 설명이 유용할 수 있습니다.

가능한 모든 경우에 대해 자세히 설명하지 않고 반가상화의 주요 문제는 두 가지 핵심 문제로 좁혀집니다. 1) 게스트 시스템을 부팅하려면 올바른 커널과 initrd가 필요합니다. 2) 반가상화 네트워크 인터페이스는 좋지 않습니다. 그리고 이 두 가지가 결합되면 CD/DVD에서 가상 머신을 부팅할 수 없게 됩니다.

커널 및 초기화 이미지

전체 가상화를 사용하면 매우 간단합니다. 가상 머신 구성 파일에서 빌더, 커널 및 부팅 지시문을 올바르게 지정해야 합니다. hvmloader 커널은 항상 사용 가능하므로 문제가 없습니다.

Xen 반가상화 이해하기

반가상화 게스트를 위한 커널이나 initrd는 없습니다. 따라서 약간의 즉흥 연주가 필요합니다. GUI 마법사로 가상 머신을 만든 후 시작하려고 하면 CD-ROM 오류가 발생합니다. 그러나 구성 파일은 디스크에 기록됩니다.

/etc/xen/vm 디렉토리로 이동하여 텍스트 편집기에서 파일을 엽니다. /tmp 아래의 임시 커널 및 initrd 이미지를 가리키는 kernel 및 initrd 행에 주목하십시오. 영구 Xen 커널 및 initrd 파일을 가리키도록 이 두 항목을 변경할 수 있지만, 이를 별도로 다운로드하거나 직접 빌드해야 할 수 있으므로 번거로울 수 있습니다. 또한 CD 이미지의 내용을 확인하고 xen 관련 내용을 찾은 다음 복사하여 게스트를 부팅하는 데 사용할 수 있습니다. 샘플은 다음과 같습니다.

Xen 반가상화 이해하기

적절한 인수와 함께 부트로더 지시문을 사용할 수도 있지만 모든 가상 머신에는 서로 다른 하위 집합이 필요하기 때문에 이 프로세스도 소진됩니다. 그러나 대부분의 Linux 게스트의 경우 다음과 같이 크고 묵시적으로 작동해야 합니다.

부트로더 ='/usr/lib/xen/boot/domUloader.py'
bootentry ='--entry-=xvda1:/boot/vmlinuz-xen,/boot/initrd-xen'

물론 xvda1의 가상 장치를 설정에서 사용 중인 장치로 조정해야 합니다. 이것은 못생긴 해킹이며 반드시 작동하지는 않습니다.

반가상화 네트워크 인터페이스

또 다른 장애물은 vif 지시어입니다. Xen 반가상화 게스트는 설정을 좋아하지 않을 수 있습니다. 그 이유는 네트워크 어댑터를 브리징하지 않고는 직접 사용할 수 없기 때문입니다. eth0 또는 wlan0과 같은 장치를 사용할 수 없으며 xenbr0 또는 br0 등을 사용해야 합니다. 명령줄에서 가상 머신을 시작하려고 하면 크고 명확한 오류 메시지가 나타납니다.

Xen 반가상화 이해하기

임시 해결 방법으로 지시문을 삭제하거나 주석을 추가하면 가상 머신이 부팅됩니다. 다시 말하지만, 긍정적이고 명확한 예를 사용하는 대부분의 자습서와 달리 여기서는 실망스러운 가능성을 다루고 있습니다. 일반 vif를 구성 파일에 있을 수 있는 모든 종류의 지시문으로 바꿉니다.

#vif=['',]

그런 다음 매직 콘솔:

Xen 반가상화 이해하기

Xen 반가상화 이해하기

조만간 네트워크 걸림돌에 부딪히게 될 것입니다.

일반적으로 네트워크가 없는 상태에서 벗어날 수 있지만 게스트를 위한 연결을 원하기 때문에 이것은 거의 유용하지 않습니다. 따라서 어댑터를 브리지해야 합니다. 일부 네트워크 인터페이스는 브리징을 지원하지 않을 수 있으므로 이를 고려하십시오.

Xen 반가상화 이해하기

Xen 반가상화 이해하기

다시 말하지만 이것은 도움이 될 수도 있고 그렇지 않을 수도 있습니다. 사실상 보장이 없습니다. 예를 들어, 운이 좋지 않아 지금 종료해야 한다는 메시지가 표시될 수 있습니다. 또는 brctl 유틸리티를 사용하여 브리지를 수동으로 만들 수 있습니다.

여기에 무엇이 있습니까?

이 가이드는 약간 혼란스럽기 때문에 지금까지의 내용을 살펴보겠습니다. 두 가지 핵심 문제가 있습니다. 하나는 게스트용 부트로더 슬래시 커널입니다. 2, 네트워크 인터페이스. 반가상화 모드에서 실행되는 Xen에는 게스트가 디스크 어딘가에 위치하도록 올바른 커널 및 initrd 파일이 필요합니다. 또한 브리지된 네트워크 어댑터가 필요합니다.

You can solve the first by letting the virtual machine wizard create temporary entries for you on the hard disk, but this works only for some types of guest operating systems. For instance, Scientific Linux 6, which is based on RedHat 6, explicitly supports this kind of thing, so you're lucky. See below for more details. Alternatively, you can manually place the proper Xen kernel and initrd somewhere on your hard disk. As a last option, you can also use the bootloader directly, again with the right files.

The second issue takes an extra step; you must configure a network bridge. You can bridge both wired and Wireless adapters, however some hardware may not support this.

Even so, things may not work. And they probably won't. Bottom line, Xen paravirtualization is a pain; best avoided. If you compare the difficulty in getting your virtual machines running this way when pitted against pretty much any alternative, the answer is quite obvious.

더 읽어보기

If you're still brave after this guide, then you may want to consider reading a few more articles presenting possible solutions to booting your guests from CD-ROM. Or rather, showing you why it doesn't work and why you shouldn't bother.

Xen domU support - Popular choices like Ubuntu and Fedora are a no-go, yet

How to boot SLES para-virtual domU as a rescue system

결론

Working with Xen in paravirtualized mode is not a pleasant task. Depending on how advanced your guest systems are in supporting para-domU, you may get lucky and boot from a CD or an ISO image. But you will also require bridged networking, which may not always work, especially with Wireless adapters.

Moreover, you may need to hunt for Xen kernel and initrd files for your guest system, including even compiling your own custom version. This kind of work is too much for most people, both in terms of skill, patience and administrative overhead, especially since other virtualization solutions offer as much without breaking into sweat.

Hopefully, this guide clears the fog a little. Web server, loopback device, physical drive, it makes no difference. You need special kernel and initrd images and bridged networking. You may be lucky and have guests that support domU paravirtualization. If not, you're in for a lot of trouble. My warmest advice is, avoid if you can, go for alternative solutions. However, in its full hardware virtualization mode, Xen is rather cool.

건배.