Networking en Oracle VM 3

Comments Off
Posted in Misc by Sergio Ocón @ Apr 30, 2013

Traducido de Looking "Under the Hood" at Networking in Oracle VM Server for x86


by Gregory King and Suzanne Zorn


Entrada original:


http://www.oracle.com/technetwork/articles/servers-storage-admin/networking-ovm-x86-1873548.html


Este artículo mira "la lista interna" de Oracle VM Server para x86, explorando los componentes de la red lógica que crea Oracle VM

Manager.


se configura la red de Oracle VM Server para x86 desde el GUI de Oracle VM Manager. Este GUI simplifica la administración, acelera el despliegue, y reduce las equivocaciones en la configuración. Ocultar los detalles de implementación usando el GUI tiene beneficios, pero en la Oracle Technology Network, les gusta exponer el corazón de la máquina: no solo es interesante, sino que puede ayudar con la resolución de los problemas.


Nota:

Este artículo asume que el lector está familiarizado con los conceptos y terminología y conceptos genéricos de red, como bonding y VLAN. Para una visión de conjunto, mirar el capítulo2, "Introduction to Oracle VM," en Oracle VM User’s Guide.


El modelo de red Oracle VM x86


Oracle VM Server por x86 se basa en el kernel Xen y la tecnología del hipervisor por debajo, y utiliza el paradigma Xen para la gestión de los guests Oracle VM. La implementación de la red de Oracle VM Server para x86 sigue las líneas básicas de la red Xen, con algunas modificaciones, y soporta conceptos de red estandar como bonding de interfases de red y VLAN.


Las redes de Oracle VM Server para x86 son construcciones lógicas que crea el GUI de Oracle VM Manager combinando un conjunto de componentes individuales, o bloques constructivos, para conseguir la infraestructura de red necesaria. Los bloques básicos son los puertos físicos de Ethernet, los puertos bonded (opcional), segmentos VLAN (opcional), direcciones MAC virtuales (VNIC), y canales de red. Los servidores de Oracle VM y los guests utilizan estas redes para comunicarse entre sí.



Tipos de Redes (Channels)


Un concepto clave del modelo de red Oracle VM Server para x86 es el uso de papeles-roles (también canales-channels) que se asignan a cada red en un entorno virtualizado. Estos papeles se implementan como flags que le dicen al Oracle VM Manager como está configurado el pool de servidores y determinan qué tipo de tráfico de agente se envía en cada red individual. Los administradores pueden crear redes separadas para cada rol para aislar tráfico, o pueden configurar un red simple con varios roles. Los roles de red pueden ser los siguientes:



  • Gestión de Servidor (Server Management) – Utilizado por el Oracle VM Manager para controlar los servidores físicos en un pool determinado.

  • Latido de Cluster (Cluster Heartbeat) – Utilizado para enviar mensajes de heartbeat de Oracle Cluster File System 2 entre los servidores Oracle VM en un pool y comprobar que los servidores Oracle VM están presentes y corriendo.

  • Migración en vivo (Live Migration) – Utilizado durante la migración de máquinas virtuales de Oracle VM de un servidor a otros en el mismo pool

  • Almacenamiento – Reservado para uso futuro, en versiones 3.0 y 3.1 no tiene uso práctico. En 3.2, sin embargo, es la red utilizada para acceder a los almacenamientos basados en Ethernet.

  • Máquina Virtual – Utilizada para las comunicaciones entre guests Oracle VM en el pool de servidores y también entre Oracle VM guests y redes externas.


La Figura 1 muestra los canales de red utilizados por Oracle VM Server para x86 e ilustra los diferentes alcances de cada tipo de canal. El canal Server Management include comunicación entre el Oracle VM Manager y los servidores Oracle VM en el pool de servidores. Tanto el canal Cluster Heartbeat como el Live Migrate llevan tráfico solo entre servidores Oracle VM. Para esos canales, el tráfico puede estar en subredes privadas sin enrutamiento dado que las comunicaciones son solo entre los servidores del pool. El tráfico no requiere acceso a routers, tan solo a los switches que conectan los servidores y el manager. En cambio, un canal Virtual Machine incluye tráfico entre los guests Oracle VM así como las comunicaciones con redes públicas.

Figura 1

Figura 1. Tipos de Red en Oracle VM Server para x86.


Cuando se usa el interfaz de línea de comandos para explorar las redes configuradas por Oracle VM Manager, los comandos ejecutados en el Oracle VM server mostrarán los dispositivos de red para todos los tipos de canal. En cambio, los comandos ejecutados en los guests de Oracle VM muestran solo los dispositivos de red asignados al canal de Virtual Machine.


Nota: Oracle VM Server para x86 soporta un rango muy amplio de opciones de diseño de red, variando su complejidad desde redes sencillas hasta configuraciones que incluyen bonds de red, VLAN, puentes, y redes múltiples que conectan los servidores Oracle VM y los guests. El diseño de red depende de varios factores, incluyendo el número y tipo de las interfaces de red, los objetivos de rendimiento y fiabilidad, el número de servidores y gustes, y la carga prevista. La discusión de las mejores prácticas para el diseño de red de Oracle VM Server para x86 está fuera del alcance de este artículo.


Como Implementa Oracle VM Server para x86 la Infraestructura de Red Configurada


Durante la instalación inicial de Oracle VM Server para x86, se crea un interfaz lógico llamado bond0 usando un interfaz físico de red, típicamente el interfaz eth0 (se puede elegir cualquiera durante la instalación). Durante la fase de descubrimiento del servidor, se localiza el enlace y se asigna automáticamente tres roles de red: Server Management, Cluster Heartbeat, y Live Migrate. Más tarde se puede asignar un interfaz físico adicional a bond0,o se pueden crear otras redes para usarlas como Cluster Heatbeat y Live Migrate. (El rol de Server Management no puede ser reasignado tras la instalación)


La redes asignadas a Server Management, Cluster Heartbeat, y Live Migrate llevan tráfico entre los servidores de Oracle VM en un pool de servidores (pero no se comunican con otros guests Oracle VM). Como todas las redes de Oracle VM Server para x86, pueden crearse usando puertos de red, dispositivos enlazados, o segmentos VLAN. Oracle VM Manager se utiliza para crear cualquier dispositivo bonded o segmento VLAN necesario para una red; los dispositivos lógicos necesarios para implementar las redes se crean y configuran automáticamente en los servidores de Oracle VM.


Como Implementa Oracle VM Server para x86 la Infraestructura de Red Configurada


Durante la instalación inicial de Oracle VM Server para x86, se crea un interfaz lógico llamado bond0 usando un interfaz físico de red, típicamente el interfaz eth0 (se

puede elegir cualquiera durante la instalación). Durante la fase de

descubrimiento del servidor, se localiza el enlace y se asigna

automáticamente tres roles de red: Server Management, Cluster Heartbeat,

y Live Migrate. Más tarde se puede asignar un interfaz físico adicional

a bond0,o se pueden crear otras redes para usarlas como

Cluster Heatbeat y Live Migrate. (El rol de Server Management no puede

ser reasignado tras la instalación)


La redes asignadas a Server Management, Cluster Heartbeat, y Live

Migrate llevan tráfico entre los servidores de Oracle VM en un pool de

servidores (pero no se comunican con otros guests Oracle VM). Como todas

las redes de Oracle VM Server para x86, pueden crearse usando puertos

de red, dispositivos enlazados, o segmentos VLAN. Oracle VM Manager se

utiliza para crear cualquier cualquier dispositivo bonded o segmento

VLAN necesario en una red; los dispositivos lógicos necesarios para

implementar las redes se crean y configuran automáticamente en los

servidores Oracle VM.


Las redes asignadas al rol de Virtual

Machine llevan tráfico entre guests Oracle VM y desde/hacia redes

externas. Estas redes pueden construirse mediante puertos de red, bonds,

o segmentos VLAN, y Oracle VM Server para x86 creat los dispositivos de

red lógicos por debajo. Un puente (bridge) lógico se crear para cada

red con el rol de Virtual Machine. Además, Oracle VM Server para x86

(basado en el modelo Xen) utiliza un par de drivers (front-end y

back-end) para gestionar el tráfico de red entre los guests de Oracle VM

y los dispositivos físicos en el servidor Oracle VM. El driver

front-end (netfront) reside en el dominio del guest, mientras que el

driver del back-end (netback) reside en Dom0. Los dispositivos lógicos

necesarios se crean automáticamente desde el Oracle VM Server cuando un

dominiot guest se ejecuta en el servidor, y se borran cuando el dominio

se apaga.

Los dispositivos lógicos difieren un poco en los guest

virtualizados por hardware (que utiliza un kernel sin modificar y cuyas

instrucciones hacia los dispositivos de red son interceptadas y emulados

cuando se necesita) y en un guest paravirtualizado (cuyo kernel es

consciente del entorno virtualizado). Dispositivos lógicos adicionales

se crean también para soportan VLAN. Los ejemplos siguientes ilustran

estas diferencias.

Como Funciona Oracle VM Server for x86 Works con Guests

Paravirtualizados


El primer

ejemplo (ver Figura 2) ilustra la red con guests paravirtualizados o con guests

virtualizados por hardware con drivers de red paravirtualizados. Los

dispositivos de red como eth0 en los guests de Oracle VM se

comunican a través de un driver de dispositivo conocido como el netfront

driver. Unos dispositivos lógicos asociados a estos en Dom0 los netback

devices (por ejemplo vif23.0), cogen el tráfico del netfront

driver y pasan los paquetes a un puente Xen. El puente Xen tiene la tarea de

pasar el tráfico de red desde el dispositivo netback a los dispositivos de red

en el servidor Oracle VM, que puede ser un dispositivo lógico, como el

dispositivo bonded de la figura 2, o dispositivos lógicos, como un puerto

físico Ethernet. Un puente Xen comunica con todos los netback drivers que

pertenecen a esa red.

Figura 2

Figura 2. Dispositivos de

red usados para guests paravirtualizados (o guests virtualizados por hardware

con drivers paravirtualizados).


En el ejemplo de la figura 2, el servidor Oracle VM tiene dos interfaces de red físicos, eth2 y eth3, que se usan para esta red. Primero se utiliza Oracle VM Manager para crear un bond entre los dos interfaces físicos. Oracle VM Server para x86 crea el interfaz lógico bond y le asigna el nombre bond1. A continuación, se usa el Oracle VM Manager para crear una nueva red con el rol de Virtual Machine, y se usa el nuevo dispositivo bonded creado en el servidor Oracle VM. Como la red tiene asignado el rol de Virtual Machine, Oracle VM Server para x86 crea automáticamente un dispositivo puente. Los dispositivos netback se crean automáticamente para cada guest que se ejecuta en el Oracle VM Server. Los disposivitos netback creados para cada Oracle VM guest se denominan vifXX.Y, donde XX es el ID de dominio usado por ese guest e Y indica que dispositivo netfront (eth) se asocia con este dispositivo netback. Por ejempo, el dispositivo netback de nombre vif23.0 indica que el

interfaz virtual se asocial con eth0 en el guest que tiene el ID de dominio

23.


Puede haber más

de una red creada con el rol de Virtual Machine, y un guest en Oracle VM puede

pertenecer a más de una red, como se muestra en la Figura 3. Oracle VM Server

para x86 crea puentes lógicos separados para cada red. Cada puente recibe un

nombre que se corresponde con ID de red del Oracle VM Server. Este ID de red se

muestra en el Oracle VM Manager en la pestaña de Networking. La red creada en bond0 es la única

red que usa la dirección de la subred como el ID de red y, en consecuencia, el

nombre del bridge. Otras redes reciben un número aleatorio hexadecimal como su

ID de red. En el ejemplo de la Figura 3, el puente creado en bond0 se llama 10.11.12.0, el puente

creado en bond2 se llama 9ABCDEF.

Figure 3

Figura 3. Configuración

de varias redes para guests paravirtualizados (or virtualizados por hardware con

drivers paravirtualized).


Se crea un dispositivo netback para cada red. Los

interfaces de red en el sistema operativo guest se nombran secuencialmente, por

ejemplo, eth0, eth1, etc. Los dispositivos netback se nombran vifXX.Y (por ejemplo, los tres dispositivos netback se

llaman vif23.0, vif23.1, y vif23.2). Con esta convención, XX quiere decir el ID de dominio actual, e Y indica qué dispositivo netfront (eth) se asocia con el dispositivo netback. Por

ejemplo, un dispositivo netback de

nombre vif23.0 indica que el interfaz virtual se asocial con eth0 dentro del guest que tiene un ID de dominio de 23.

De manera similar, el nombre vif23.1 indica que el interfaz virtual está asociado con el dispositivo eth1 en el mismo dominio.


Como Funciona Oracle VM Server para x86 con Sistemas Operativos Virtualizados por Hardware


La Figura 4 muestra una configuración similar para guests virtualizados por hardware sin drivers paravirtualizados. Los dispositivos de red lógicos son os mismos que para un guest paravirtualizado, con un dispositivo adicional  tapio Quick EMUlator (QEMU) que se crea en Dom0. El dispositivo QEMU (tapio)

engaña al sistema operativo del guest virtualizado por hardware para que crea que la comunicación de red fluye directamente de y hacia hardware físico.


Este dispositivo tapio se comunica con el dispositivo de red vif, que a su vez se comunica con el dispositivo puente. Los dispositivos tapio reciben nombres del tipo tapXX.Y, donde XX es el ID de dominio actual e Y indica el interfaz de red correspondiente (eth) en el sistema operatio guest asociado al dispositivo netback. Por ejemplo, el dispositivo tap23.1 indica que el interfaz virtual se asocia con eth1 en el  guest con una ID de dominio de 23.

Figure 4

Figura 4.Configuración de red para guests virtualizados por hardware.


Como funciona Oracle VM Server para x86 con VLAN


Las redes de Oracle VM Server para x86 pueden configurarse usando segmentos VLAN en un puerto físico o en un interfaz bonded. VLAN proporcionan varias redes lógicas independientes que se usan típicamente para asilar tráfico en un interfaz único para mejorar la seguridad o el rendimiento.


Aunque Oracle VM Server para x86 puede usar VLAN, la creación de VLAN sucede fuera del servidor: Los administradores de red crean VLAN y asignan VLAN a puertos en switches Ethernet. Oracle VM puede beneficiarse de las VLAN creadas. Usando Oracle VM Manager, un administrador crea primero un grupo VLAN para un puerto de red o bond. A continuación, uno más segmentos VLAN pueden crearse en el grupo VLAN.


La Figura 5 muestra un ejemplo de configuración de red para  Oracle VM Server para x86 que incluye VLAN. En este ejemplo, hay seis dispositivos físicos de red en el servidor Oracle VM (eth0 a eth5). Estos dispositivos se usan para crear 3 interfaces de red bonded (bond0, bond1, y bond2). Se crean grupos de VLAN en cada uno de estos interfaces bonded.


Figura 5


Figura 5. Ejemplo de configuración de Oracle VM Server para x86 que incluye VLAN.


Se crean cuatro LAN en el primer grupo VLAN (bond0) mostrado en el Figura 5:



  • La primera (untagged) recibe el rol de Server Management.

  • La segunda (bond0.11) recibe el rol de Cluster Heartbeat.

  • La tercera (bond0.12) recibe el rol de Live Migrate.

  • La última (bond0.13) recibe el rol de Virtual Machine. Este segmento VLAN tiene un dispositivo bridge asociado para comunicarse con los guests.


De manera similar, se crean tres VLAN en el grupo VLAN creado para bond1, y una VLAN única se crea en bond2.

Las redes constriudias en estas VLAN reciben el rol de Virtual Machine. Debido a ello, todos estos segmentos VLAN tienen asociado un dispositivo bridge para comunicarse con los guests.


Uniéndolo todo


Esta última sección usa como ejemplo la configuración de red de Oracle VM Server para x86 e ilustra la relación entre las tres perspectivas de la misma: la vista de Oracel VM Manager, la vista lógica, y la vista en el interfaz de comandos.


La figura 6 muestra la red desde la perspectiva de Oracle VM Manager. Se crean redes separadas para los roles de

Server Management, Cluster Heartbeat, y Live Migrate, y se varias redes de Virtual Machine. Se usan VLAN para todas las redes de este ejemplo. Las etiquetas (en rojo) de este diagrama corresponden a las redes que se muestran en la perspectiva lógica de red de la Figura 7.

Figure 6

Figura 6. Perspectiva desde Oracle VM Manager.


La Figura 7 muestra la perspectiva lógica de los dispositivos de red que se crean en Oracle VM Server para x86. Por simplicidad, esta figura enfatiza sólo las redes asociadas a  bond0. Las etiquetas (en rojo) de este diagrama se corresponden con las redes mostradas en la perspectiva del Oracle VM Manager de la Figura 6.

Figure 7

Figura 7. Perspectiva lógica de los dispositivos de red.


La Figura 8 muestra las redes desde la perspectiva del interfaz de línea de comandos. Esta figura muestra una salida parcial del comando ifconfig ejecutado en el Oracle VM server. (Para simplificar, solo se muestran dispositivos relacionados con bond0) Las etiquteas (en rojo) de esta figura corresponden con las redes mostrada en la Figura 7 y la Figura 7.

Figure 8

Figura 8. Perspectiva desde el interfaz de línea de comandos.


Los dispositivos eth0 y eth1

que se muestran en la salida del comando de la Figura 8 se corresponden con los interfaces físicos de red en el servidor Oracle VM (Dom0). El dispositivo lógico bond0, creado de estos dos dispositivos físicos, tiene asignada la dirección IP 10.11.10.22. Los tres segmentos VLAN creados en este intefaz de red  bonded network se llaman bond0.11, bond0.12 y bond0.13, and tienen asignados las direcciones 10.11.11.22, 10.11.12.22, and 10.11.13.22,

respectivamente. La última VLAN tiene el rol de Virtual Machine. Debido a esto, se crea un dispostivio lógico bridge (etiquetado 4b).

Nótese que el bridge tiene asociada la misma IP que el segmento VLAN. El dispositivo netback es vif23.0 (etiquetado 4a ) corresponde al guest de Oracle VM ejecutándose con el ID de dominio 23. Si guests adicionales de Oracle VM se ejectuan en  esta red Virtual machine, se crearían dispositivos netback adicionales y aparecerían en la salida del comando con un nombre de dispositivo diferente (por ejemplo, vif34.0 o vif18.0).


Vea también


Otros recursos disponibles:



Sobre los autores:


Gregory

King joined the Oracle VM product management team as a senior best

practices technical consultant specializing in Oracle VM Server. Greg

has a significant amount of hands-on experience with high availability,

networking, storage, and storage networking, including SAN boot

technology and server automation in production data centers, since 1993.

His primary responsibility with the team is to develop and document

solutions including best practices as well as foster a deeper

understanding of the inner workings of Oracle VM with the goal of

helping people become more successful with the product.


Suzanne

Zorn has over 20 years of experience as a writer and editor of technical

documentation for the computer industry. Previously, Suzanne worked as a

consultant for Sun Microsystems’ Professional Services division

specializing in system configuration and planning. Suzanne has a BS in

computer science and engineering from Bucknell University and an MS in

computer science from Renssalaer Polytechnic Institute.

See original