Anais do V Workshop de Pesquisa Experimental da Internet do Futuro - WPEIF 2014
Balanceamento de Carga em SDN
Provido por Comutadores Estocásticos de Prateleira
Alextian Liberato1 2 , Diego Mafioletti1 , Eros Spalla1 ,
Magnos Martinello1 , Rodolfo Villaça1
1
Programa de Pós-Graduação em Informática (PPGI)
Universidade Federal do Espı́rito Santo (UFES) – Vitória, ES
2
Grupo de Pesquisa em Informática Aplicada – Departamento de Informática
Instituto Federal do Espı́rito Santo (IFES) – Colatina, ES
[email protected], [email protected], [email protected]
[email protected], [email protected]
Abstract. The network load balancing allows you to share traffic in order to
reduce congestion the links. Existing products make use of routing algorithms
that have not been designed for local networks or require costly proprietary solutions. Our proposal presented in this paper reveals an open platform that uses
low-cost hardware and SDN technology to make the stochastic load balancing.
The results show a very satisfactory performance.
Resumo. O balanceamento de carga em rede permite dividir o tráfego de modo
a reduzir o congestionamento nos enlaces. Os produtos existentes fazem uso de
algoritmos de roteamento que não foram projetados para redes locais ou exigem
soluções proprietárias de alto custo. A proposta apresentada nesse artigo revela
uma plataforma aberta que utiliza hardware de baixo custo e a tecnologia SDN
para realizar o balanceamento de carga estocástico. Os resultados apresentam
um desempenho bastante satisfatório.
1. Introdução
As Redes Definidas por Software (SDN - Software-Defined Networking) surgiram como
um promissor conceito para o projeto de novas arquiteturas para a Internet. SDN é uma
proposta baseada na separação dos planos de dados e de controle, em uma interface
uniforme independente de fornecedor para o mecanismo de encaminhamento (ex: (OF)
[McKeown et al. 2008]) e em um plano de controle logicamente centralizado.
O OpenFlow é um padrão aberto que permite a programação dos elementos ativos
da rede, tais como roteadores, switches ou pontos de acesso sem fio. Trata-se de uma
proposta pragmática com grande potencial para suportar o grau de programabilidade que
as SDN necessitam.
Os equipamentos habilitados com Openflow têm sido projetados pelos fabricantes como um sistema fechado no qual o projetista de redes torna-se dependente da
implementação do fabricante (e.g. RouterBoard Mikrotik). Se a inovação do projetista
requer modificação no plano de dados, por exemplo, encaminhar para uma porta com
uma certa probabilidade, então o equipamento não permite tal operação e impede sua
validação experimental. Esses fatos limitam significativamente o potencial de inovação
13
Anais do V Workshop de Pesquisa Experimental da Internet do Futuro - WPEIF 2014
na arquitetura SDN, tanto pela restrição imposta pelo modelo de encaminhamento quanto
pelo sistema fechado pelo fabricante.
O balanceamento de carga em uma rede permite o encaminhamento do tráfego por
diversos caminhos. No entanto, as soluções proprietárias que implementam o balanceamento de carga na rede apoiam-se em protocolos de roteamento (OSPF ou EIGRP) para
equilibrar a carga de tráfego entre os switches da rede, o que gera uma enorme sobrecarga
de configuração, além de exigir equipamentos com custos elevados.
Nossa proposta neste trabalho, é utilizar equipamentos não especializados de prateleira para demonstrar a viabilidade de habilitar o protocolo Openflow na sua versão
mais recente, Openflow 1.3, permitindo assim que novas caracterı́sticas possam ser incorporadas pelo projetista de rede. Como prova de conceito, projetamos um comutador estocástico com desempenho similar às plataformas fechadas, em um cenário
flexı́vel utilizando nossa proposta de plataforma aberta. A plataforma foi projetada
sobre o sistema operacional OpenWRT [OpenWRT 2014] com Open vSwitch (OvS)
[Subramanian et al. 2009] compilado para os equipamentos RouterBoard RB2011UASIN, RB433 e RB450G.
O restante deste artigo está organizado da seguinte forma: na Seção 2 são apresentados os conceitos de tabela de grupos no OF 1.3 e a plataforma utilizada; na Seção 3
são apresentado os resultados experimentais; na Seção 4 é apresentada a conclusão e os
trabalhos futuros.
2. Plataforma Aberta em Equipamentos Reais
O projeto da plataforma aberta iniciou-se pela substituição do sistema operacional originalmente RouterOS que suporta apenas OF 1.0 (Plataforma Fechada) pelo OpenWRT
(Plataforma Aberta) que permite a instalação dos switches virtuais (OvS e Softswitch13
[CPqD 2014]) que suportam OF 1.3.
Na arquitetura do OpenFlow, o switch executa apenas a lógica de encaminhamento. A lógica de controle é executada no controlador e a comunicação entre elas se dá
através do protocolo OpenFlow. Na recente versão do Openflow 1.3, uma determinada
entrada em uma tabela de fluxo pode apontar para um grupo constituı́do por entradas
previamente definidas. O objetivo é estender o comportamento do switch para suportar
diferentes métodos de encaminhamento, por exemplo tipos de grupos [ONF 2012].
Figura 1. Recurso de tabela de grupos OF 1.3 – método select
Na Figura 1 ilustramos o método Select, como um tipo de grupo com sua própria
semântica. Note que o valor do peso (“Weight”) que é atribuı́do ao fluxo determina a
14
Anais do V Workshop de Pesquisa Experimental da Internet do Futuro - WPEIF 2014
probabilidade de execução da respectiva ação. Existem ainda outros três métodos, que
não serão discuticos nesse artigo: All que executa todos os buckets do grupo; Indirect
que executa o bucket definido no grupo; e o Fast Failover que executa o primeiro bucket
“vivo”.
O ambiente experimental utilizado está descrito na Figura 2, sendo dois
RB2011UAS-IN (S1 e S5), dois RB433 (S2 e S4) e um RB450G (S3). Para realizar
um balanceamento de carga, modificamos o software do OvS para permitir o encaminhamento dos pacotes de forma estocástica, alterando a função xlate select group no arquivo
“ofproto-dpif-xlate.c”, de modo a gerar um número aleatório que representa a probabilidade de escolha de um bucket. Essa probabilidade é usada para selecionar uma porta de
saı́da. Já o Softswitch13 não precisou ser alterado, pois já possuı́a o algoritmo weighted
round-robin (WRR) implementado na função select from select group.
Figura 2. Topologia experimental
3. Balanceamento Estocástico
Avaliamos o balanceamento estocástico através da transmissão de dados (TCP) com a
ferramenta Iperf 3.0.3 entre h1 e h2 (Figura 2), inserindo no S1 a seguinte regra: 50% de
todo tráfego de h1 para h2 sairá pela porta 4, devido ao enlace ser Gigabit Ethernet, 30%
sairá pela porta 3, menor caminho via Fast Ethernet, o restante 20% sairá pela porta 2.
(a) Balanceamento estocástico no OvS
(b) Balanceamento estocástico no Softswitch13
Figura 3. Balanceamento estocástico utilizando semântica select – OF 1.3
15
Anais do V Workshop de Pesquisa Experimental da Internet do Futuro - WPEIF 2014
A Figura 3(a) apresenta o gráfico do OvS com a utilização das portas no S1 durante o tempo de 60 segundos. Em virtude da aleatoriedade, a utilização das portas varia
consideravelmente. No entanto, na média, a escolha do bucket é respeitada conforme os
pesos atribuı́dos. No Softswitch13 (Figura 3(b)) o gráfico é uniforme, caracterı́stica do
algoritmo WRR presente na função de seleção do bucket, em contrapartida o desempenho
médio (Mbits) é inferior ao OvS.
Aferimos que no OvS sem o balanceador estocástico apresentou valor médio de
122,48 Mbits/seg, contra 44 Mbits/seg com o select, e no Softswitch13 o valor médio foi
de 32,54 Mbits/seg contra 24,89 Mbits/seg com o select.
4. Conclusões e Trabalhos Futuros
A proposta do trabalho foi utilizar equipamentos não especializados de prateleira para
demonstrar a viabilidade de habilitar o protocolo Openflow na sua versão mais recente
Openflow 1.3. A ideia é permitir que novas caracterı́sticas possam ser incorporadas livremente pelos projetistas de rede e customizáveis. Como prova de conceito, projetamos um
comutador estocástico com desempenho similar às plataformas fechadas.
Os resultados obtidos demonstram que existe um grande potencial no uso dos
recursos disponı́veis no switches OpenFlow 1.3. A operação de Select pode ser usada
dinamicamente ajustando os pesos, e também tomar decisões em nı́vel de plano de dados
sem a ajuda do controlador (de forma pró-ativa). A diferença de desempenho, principalmente no OvS, foi causada pela limitação de processamento do hardware utilizado. Como
trabalhos futuros pretendemos modificar o OvS para usar o select em modo Kernel.
Agradecimentos: aos parceiros Christian Esteve Rothenberg (UNICAMP) e Eder
Leão Fernandes (CPqD) pelas orientações com o Softswitch13 e ao professor Ali Mohammad Salahuddin (Western Michigan University) no OvS.
Referências
CPqD, F. (2014). Openflow 1.3 software switch. Website. https://github.com/
CPqD/ofsoftswitch13.
McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G. M., Peterson, L. L., Rexford,
J., Shenker, S., and Turner, J. S. (2008). Openflow: enabling innovation in campus
networks. Computer Communication Review, 38(2):69–74.
ONF, O. N. F. (2012). Openflow switch specification version 1.3.0 (wire protocol 0x04).
Website.
https://www.opennetworking.org/images/stories/
downloads/sdn-resources/onf-specifications/openflow/
openflow-spec-v1.3.0.pdf.
OpenWRT (2014). Openwrt. Website. "http://www.openwrt.org".
Subramanian, L., Leland, W. E., and Mahajan, R., editors (2009). Eight ACM Workshop
on Hot Topics in Networks (HotNets-VIII), HOTNETS ’09, New York City, NY, USA,
October 22-23, 2009. ACM SIGCOMM.
16
Download

Balanceamento de Carga em SDN Provido por