Balanceamento de Carga em Redes Virtuais com OpenFlow e NOX
1. Implementando Balanceamento de
Carga em Redes Virtuais utilizando
OpenFlow e NOX
Márcio Barbosa de Carvalho and
Wanderson Paim Jesus
Instituto de Informática – UFRGS
2. Introdução
• Redes
baseadas
em
so1ware
– OpenFlow
– Controladores
• NOX:
C++/Python
• NOX
DesAny:
mulA-‐threaded,
altamente
oAmizado,
C++.
• Beacon:
Java
• Maestro:
Java
– Possibilidades
de
novas
estratégias
para
problemas
anAgos
– Balanceamento
de
Carga
• Conhecimento
total
da
topologia
– DevoFlow,
FlowVisor
• EstaPsAcas
sobre
o
estado
atual
da
rede
2
3. Introdução
• Mecanismos
de
Balanceamento
de
Carga
– DNS
• Distribuído
• Centralizado
– Equipamentos
Dedicados
• HLD´s
3
4. Introdução
• PolíAcas
de
Balanceamento
de
Carga
– Localização
• DNS
– Outras
políAcas
• DNS
(round-‐robin)
• HLD´s
4
5. Estratégia
• Ponderado
por
localização
– Localização
• Prioriza
o
servidor
mais
próximo
• Tabela
com
pesos
– (
Servidor
x
Switch
)
=>
peso
– Ponderado
• Não
sobrecarrega
o
mais
próximo
• Contadores
para
medir
a
carga
distribuída
do
sistema
– Ou
seja,
não
“o
mais
próximo”
e
sim
“o
mais
próximo
e
menos
ocupado”
5
7. Algoritmo
• O
controlador
calcula
duas
razões:
– Custos:
custoServidor1
/
custoServidor2
– Carga
atual:
nReqServidor1
/
nReqServidor2
• Se
razão
da
carga
é
adequada
a
razão
dos
custos,
manda
para
o
servidor
1
(mais
próximo)
• Se
não,
manda
para
o
servidor
2
(
reduz
a
carga
de
dsitribuição
atual)
7
12. Conclusões
• Foi
implementado
um
Balanceamento
de
Carga
baseado
na
topologia
e
distribuição
de
carga
do
ambiente
• Possibilidades
de
implementação
em
um
Sistema
Autônomo
• Difcil
implementação
em
grande
escala
(
internet
)
12
13. Conclusões
• Trabalhos
Futuros
– Evoluir
o
algoritmo
para
atender
mais
servidores
• Para
cada
servidor:
índice
=
custo
*
nReq
• Escolher
o
servidor
com
menor
índice
Custo
nRequisições
Decisão
Servidor
1
4
1
Servidor
2
3
1
Servidor
3
2
1
X
– Melhorar
esAmaAva
de
custo
• Custo
baseado
não
apenas
na
topologia
– Por
exemplo,
tempo
de
resposta
de
um
caminho
13
14. Conclusões
• Trabalhos
Futuros
– Evoluir
o
algoritmo
para
atender
mais
servidores
• Para
cada
servidor:
índice
=
custo
*
nReq
• Escolher
o
servidor
com
menor
índice
Custo
nRequisições
Decisão
Servidor
1
4
1
Servidor
2
3
1
X
Servidor
3
2
1
2
– Melhorar
esAmaAva
de
custo
• Custo
baseado
não
apenas
na
topologia
– Por
exemplo,
tempo
de
resposta
de
um
caminho
14
15. Conclusões
• Trabalhos
Futuros
– Evoluir
o
algoritmo
para
atender
mais
servidores
• Para
cada
servidor:
índice
=
custo
*
nReq
• Escolher
o
servidor
com
menor
índice
Custo
nRequisições
Decisão
Servidor
1
4
1
Servidor
2
3
1
2
Servidor
3
2
1
2
X
– Melhorar
esAmaAva
de
custo
• Custo
baseado
não
apenas
na
topologia
– Por
exemplo,
tempo
de
resposta
de
um
caminho
15
16. Conclusões
• Trabalhos
Futuros
– Evoluir
o
algoritmo
para
atender
mais
servidores
• Para
cada
servidor:
índice
=
custo
*
nReq
• Escolher
o
servidor
com
menor
índice
Custo
nRequisições
Decisão
Servidor
1
4
1
X
Servidor
2
3
1
2
Servidor
3
2
1
2
3
– Melhorar
esAmaAva
de
custo
• Custo
baseado
não
apenas
na
topologia
– Por
exemplo,
tempo
de
resposta
de
um
caminho
16
17. Conclusões
• Trabalhos
Futuros
– Evoluir
o
algoritmo
para
atender
mais
servidores
• Para
cada
servidor:
índice
=
custo
*
nReq
• Escolher
o
servidor
com
menor
índice
Custo
nRequisições
Decisão
Servidor
1
4
1
2
Servidor
2
3
1
2
Servidor
3
2
1
2
3
X
– Melhorar
esAmaAva
de
custo
• Custo
baseado
não
apenas
na
topologia
– Por
exemplo,
tempo
de
resposta
de
um
caminho
17
18. Conclusões
• Trabalhos
Futuros
– Evoluir
o
algoritmo
para
atender
mais
servidores
• Para
cada
servidor:
índice
=
custo
*
nReq
• Escolher
o
servidor
com
menor
índice
Custo
nRequisições
Decisão
Servidor
1
4
1
2
Servidor
2
3
1
2
Servidor
3
2
1
2
3
4
X
– Melhorar
esAmaAva
de
custo
• Custo
baseado
não
apenas
na
topologia
– Por
exemplo,
tempo
de
resposta
de
um
caminho
18
19. Conclusões
• Trabalhos
Futuros
– Evoluir
o
algoritmo
para
atender
mais
servidores
• Para
cada
servidor:
índice
=
custo
*
nReq
• Escolher
o
servidor
com
menor
índice
Custo
nRequisições
Decisão
Servidor
1
4
1
2
Servidor
2
3
1
2
3
Servidor
3
2
1
2
3
4
X
– Melhorar
esAmaAva
de
custo
• Custo
baseado
não
apenas
na
topologia
– Por
exemplo,
tempo
de
resposta
de
um
caminho
19