Networking en Oracle VM 3

Comments Off on Networking en Oracle VM 3
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