Openflow-based Server Load Balancing Gone WILD Richard Wang, Dana Butnariu, Jennifer Rexford José Alexandre de Lima ignácio
Openflow-based Server Load Balancing gone Wild Publicação : Hot-ICE ' - Março/2 Criação de um conjunto mínimo de regras-coringa para direcionar o tráfego cliente servidor Permite a mudança da política de balanceamento de carga sem derrubar as conexões abertas Apresenta algoritmos para alcançar a distribuição desejada do tráfego de rede
Openflow-based Server Load Balancing gone Wild Conceitos do OpenFlow: Regras de microfluxo Regras que utilizam o casamento de todos os campos para controlar o fluxo de pacotes ( um fluxo para cada cliente ) Regras-coringa Regras que utilizam coringas (agregação) em alguns campos para controlar o fluxo de pacotes
Tradeoffs. Rapidez 2. Escalável 3. Programável 4. Custo Balanceamento de Carga Popular Service C C3 C2C Replica Replica 2 Internet Replica 3 Data Center
Tradeoffs. Rapidez 2. Escalável 3. Programável 4. Custo BC via Software C C3 C2C Replica Replica 2 Internet Replica 3 Data Center
Tradeoffs. Rapidez 2. Escalável 3. Programável 4. Custo BC via HW dedicado C C3 C2C $ $ Replica Replica 2 Internet Replica 3 Data Center
BC via Openflow S S3 Replica 37.5% NOX Controller Replica 2 5% Internet S2 S4 Replica 3 2.5% Data Center
Desafios Solução ingênua. Nº regras Microfluxo 2. Carga Controlador S S3 Replica 37.5% C C2 NOX Controller Replica 2 5% Internet S2 S4 Replica 3 2.5% Data Center
Questões Instalar Regras Proativamente. Regras-coringa 2. Afinidade Conexão S S3 Replica 37.5% C C2 NOX Controller Replica 2 5% Internet S2 S4 Replica 3 2.5% Data Center
Openflow-based Server Load Balancing gone Wild Políticas de Balanceamento de Carga: Conjunto de servidores-réplica R j oferecendo o mesmo serviço Cada servidor-réplica R j tem um peso inteiro α j associado que determina a taxa de requisições que ele pode lidar Clientes acessam o serviço por um único endereço IP, disponível através de um Switch Gateway O switch de balanceamento de carga verifica cada pacote vindo de um cliente e reescreve o IP de destino para o IP de uma determinada réplica de acordo com as políticas de BC Gerar um pequeno conjunto de regras-coringa que divide todo o espaço de endereçamento IP dos clientes
Openflow-based Server Load Balancing gone Wild
Openflow-based Server Load Balancing gone Wild Algoritmo de particionamento: A representação dos prefixos IP dos clientes como uma árvore binária Cada nó-folha da árvore representa um cliente IP Cada réplica R j está associada com α j nós-folha
Regras-coringa nos IPs Cliente R * R * R * R2 * R2 * R2 * R2 * R3 * * R3 * R2 * R2 * R2 * R2 * R * R * R Switch 3 4 Replica 8 Replica 2 8 Replica 3 37.5% 5% 2.5% 8
Minimizando regras-coringa
Openflow-based Server Load Balancing gone Wild Minimizando regras-coringa: A representação binária dos pesos α j indica a melhor forma de atribuir nós-folha para uma determinada réplica O nº de bits igual a na representação binária de α j é o nº mínimo de regras-coringa para a réplica R j, onde cada bit na posição i representa a junção de 2 i nós-folha Algoritmo atribui nós-folha para réplicas ordenando-as na ordem do bit mais significativo igual a entre todos os valores α, para prevenir a fragmentação do espaço de endereçamento
Openflow-based Server Load Balancing gone Wild Algoritmo de Transiçao de fluxo: Deve esperar as conexões existentes se completarem para migrar a regra para outra réplica Dois tipos: Transição rápida com regras de microfluxo Envia pacotes para o controlador para verificar ocorrência de uma nova conexão ( flag TCP SYN ) Instala um microfluxo com alta prioridade e softtimeout de 6 segundos para cada conexão afetada pela transição e, em seguida, instala a regra-coringa anterior apontando para a outra réplica
Openflow-based Server Load Balancing gone Wild Algoritmo de Transiçao de fluxo: Transição sem enviar pacotes para o controlador Subdivide uma regra-coringa em regras-coringa de alta prioridade (ex. * R em *, *, *, * para R ), com soft-timeout de 6 segundos e encaminhando as conexões para a mesma réplica Recria a mesma regra-coringa anterior com baixa prioridade apontando para a outra réplica (ex: * R 2 )
Transição por afinidade de conexão
Avaliação 36 Clients, 6 MB File, WGET every s
Openflow-based Server Load Balancing gone Wild Trabalhos em curso: Tráfego cliente não-uniforme Regras-coringa não dividem a carga como esperado Para dividir tráfego com sucesso, o algoritmo deve medir o tráfego de cada regra usando os contadores OpenFlow Dividir regras-coringa em regras-coringa menores para coletar estatísticas mais refinadas Reagrupar regras-coringa de forma a dividir a carga como esperado Não gera um nº mínimo de regras
Tráfego cliente não-uniforme
Openflow-based Server Load Balancing gone Wild Trabalhos em curso: Rede com múltiplos switches Lidar com topologias de rede maiores Dividir tráfego de acordo com os pesos e depois descobrir o menor caminho para cada réplica Instalar regras que direcionem o tráfego pelo menor caminho para a cada réplica Switch de entrada modifica o IP de destino e encaminha o tráfego para o próximo salto do menor caminho
Rede com múltiplos switches
Perguntas?