+ All Categories
Home > Documents > Uso de Processamento Paralelo e Distribuído no Plano de ...

Uso de Processamento Paralelo e Distribuído no Plano de ...

Date post: 23-Apr-2023
Category:
Upload: khangminh22
View: 0 times
Download: 0 times
Share this document with a friend
110
UNIVERSIDADE DO RIO GRANDE DO NORTE FEDERAL UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO Uso de Processamento Paralelo e Distribuído no Plano de Controle de Redes Definidas por Software para Aumento da Eficiência Energética em Redes de Datacenters Tadeu Ferreira Oliveira Orientador: Prof. Dr. Luiz Felipe de Queiroz Silveira Tese de Doutorado apresentada ao Pro- grama de Pós-Graduação em Engenharia Elétrica e de Computação da UFRN (área de concentração: Engenharia de Computação) como parte dos requisitos para obtenção do título de Doutor em Ciências. Natal, RN, Julho de 2021
Transcript

UNIVERSIDADE DO RIO GRANDE DO NORTEFEDERAL

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

CENTRO DE TECNOLOGIA

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

E DE COMPUTAÇÃO

Uso de Processamento Paralelo e Distribuído noPlano de Controle de Redes Definidas por

Software para Aumento da EficiênciaEnergética em Redes de Datacenters

Tadeu Ferreira Oliveira

Orientador: Prof. Dr. Luiz Felipe de Queiroz Silveira

Tese de Doutorado apresentada ao Pro-grama de Pós-Graduação em EngenhariaElétrica e de Computação da UFRN (área deconcentração: Engenharia de Computação)como parte dos requisitos para obtenção dotítulo de Doutor em Ciências.

Natal, RN, Julho de 2021

Oliveira, Tadeu Ferreira. Uso de processamento paralelo e distribuído no plano decontrole de redes definidas por software para aumento daeficiência energética em redes de datacenters / Tadeu FerreiraOliveira. - 2021. 109 f.: il.

Tese (doutorado) - Universidade Federal do Rio Grande doNorte, Centro de Tecnologia, Programa de Pós-Graduação emEngenharia Elétrica e de Computação, Natal, RN, 2021. Orientador: Prof. Dr. Luiz Felipe de Queiroz Silveira.

1. Processamento paralelo - Tese. 2. Eficiência energética -Tese. 3. Redes de computadores - Tese. 4. Redes definidas porsoftware - Tese. I. Silveira, Luiz Felipe de Queiroz. II.Título.

RN/UF/BCZM CDU 004.7:620.91

Universidade Federal do Rio Grande do Norte - UFRNSistema de Bibliotecas - SISBI

Catalogação de Publicação na Fonte. UFRN - Biblioteca Central Zila Mamede

Elaborado por Ana Cristina Cavalcanti Tinôco - CRB-15/262

Uso de Processamento Paralelo e Distribuído noPlano de Controle de Redes Definidas por

Software para Aumento da EficiênciaEnergética em Redes de Datacenters

Tadeu Ferreira Oliveira

Tese de Doutorado aprovada em 30 de julho de 2021 pela banca examinadora compostapelos seguintes membros:

Prof. Dr. Luiz Felipe de Queiroz SilveiraOrientador

Prof. Dr. Agostinho de Medeiros Brito JuniorExaminador Externo - UFRN

Prof. Dr. Andrey Elísio Monteiro BritoExaminador Externo - UFCG

Prof. Dr. Carlos Avelino de BarrosExaminador Externo - IFRN

Prof. Dr. Samuel Xavier de SouzaExaminador Interno - UFRN

A Soraya e Davi que foram aomesmo tempo porto seguro e vento

amigo nessa tão árdua jornada.

Agradecimentos

Aos meus pais, Dilma e Augusto, que sempre apoiaram minha formação, mesmo quandoisso significou abrir mão das suas.

A Soraya e Davi pelo companheirismo e alegria.

Ao IFRN e os colegas de trabalho por investirem no fortalecimento da formação docente.

Ao professor Luiz Felipe pela confiança especialmente nesses momentos de trabalho re-moto.

For it is far better to know somethingabout everything than to know all

about one thing.(Blaise Pascal)

Resumo

As redes definidas por software têm como principal característica a separação entre a

função de tomada de decisão, que define o plano de controle, da função de encaminha-

mento dos pacotes, que define o plano de dados. Essa separação permitiu que se intro-

duzisse o conceito de programabilidade da rede. Com isto, novas aplicações puderam

ser implementadas para interagir diretamente com o funcionamento das redes. Hoje, es-

sas aplicações permitem que ambientes de datacenters adaptem-se à demanda de maneira

elástica, viabilizando os serviços de computação em nuvem. Neste cenário, os datacen-

ters são os grandes provedores de serviços, e um de seus principais custos é o consumo de

energia na infraestrutra de servidores e de equipamentos de rede. Muitos trabalhos indi-

cam que o uso da SDN em redes de datacenter permite uma melhor eficiência energética,

especialmente no plano de dados. Neste trabalho, apresenta-se uma estratégia de uso do

processamento paralelo e processamento distribuído, com diminuição de frequência dos

elementos processadores, com o objetivo de diminuir o consumo de energia nos controla-

dores de redes definidas por software. A implementação de um controlador paralelo para

uso em um ambiente multi-core homogêneo, bem como uma implementação distribuída

que oferece maior tolerância a falha são apresentadas com foco na eficiência energética.

Foi possível obter um ganho em eficiência energética nos cenários multicore de até 31%

quando comparados com cenários single-core.

Palavras-chave: Redes de computadores, paralelismo, redes definidas por software,

eficiência energética, datacenter.

Abstract

The main feature of the software-defined networks is the separation of the role of

decision-making, known as control-plane, and the role of routing of the packages, known

as data-plane. This separation allowed the introduction of the concept of network pro-

grammability, with which new applications could be implemented to interact directly with

the operation of the networks. Today, these applications enable data center environments

to match demand elastically, enabling cloud computing services. In this scenario, the

datacenters became the prominent service providers, and one of its main costs is the con-

sumption of energy in the infrastructure of servers and network equipment. Many papers

indicate that software-defined network in datacenter networks allows for better energy

efficiency, especially in the data plane. In this work, we present a strategy to – using

parallel processing and distributed processing with lower operating frequency on the pro-

cessing elements – reduce the energy consumption of the controllers on a software-defined

network. The implementation of parallel and distributed versions of an SDN controller

offers a fault-tolerant energy-aware solution to the presented problem. This new multicore

implementation achived up to 31% improvement on energy efficiency when compared to

a singlecore version.

Keywords: Computer Networks, Paralellism, Software Defined Network, Energy Efi-

ciency, Datacenter.

Sumário

Sumário i

Lista de Figuras iv

Lista de Tabelas vi

Lista de Símbolos e Abreviaturas vii

1 Introdução 1

1.1 Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 O problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Delimitação da pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.5 Objetivo geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.6 Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.7 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Fundamentação Teórica 10

2.1 Redes em Datacenter (DCN) . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2 Redes definidas por software . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3 Controladores SDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.3.1 Problema da localização do controlador . . . . . . . . . . . . . . 20

2.4 Medição de consumo e eficiência em DCN . . . . . . . . . . . . . . . . . 20

2.5 Processamento paralelo: Dispatcher/Workers . . . . . . . . . . . . . . . 22

i

2.6 Redução de consumo por redução de frequência de processamento . . . . 24

2.7 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3 Estado da arte 28

3.1 Métricas de consumo em DCN . . . . . . . . . . . . . . . . . . . . . . . 28

3.2 Eficiência energética no plano de dados . . . . . . . . . . . . . . . . . . 30

3.2.1 Eficiência energética baseada em roteamento . . . . . . . . . . . 31

3.2.2 Eficiência energética baseada em alocação de recursos . . . . . . 34

3.3 Eficiência energética no plano de controle . . . . . . . . . . . . . . . . . 35

3.3.1 Plano de Controle distribuído e multi-domínio . . . . . . . . . . 37

3.4 Modelo energético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.4.1 O algoritmo ERAS (Efficient Routing Algorithm Selection) . . . . 40

3.5 Soluções comerciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.6 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4 Experimentos em um controlador SDN multicore 44

4.1 Controladores SDN paralelos . . . . . . . . . . . . . . . . . . . . . . . . 44

4.2 Método proposto de Paralelismo no controlador Ryu . . . . . . . . . . . 46

4.3 Controle da frequência de operação . . . . . . . . . . . . . . . . . . . . 49

4.4 Métodos de medição de consumo do processador . . . . . . . . . . . . . 50

4.4.1 Turbostat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.4.2 Interface sysfs do Kernel Linux . . . . . . . . . . . . . . . . . . 51

4.5 Erro em medições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.6 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.6.1 Cenário 1: Vazão constante . . . . . . . . . . . . . . . . . . . . . 56

4.6.2 Cenário 2: Latência limite . . . . . . . . . . . . . . . . . . . . . 60

4.7 Discussão dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4.8 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5 Experimentos em controladores SDN distribuídos 67

5.1 Novo controlador proposto para múltiplas instâncias . . . . . . . . . . . . 68

5.1.1 Conhecimento da estrutura da rede . . . . . . . . . . . . . . . . . 68

5.2 Estrutura de hardware dos experimentos . . . . . . . . . . . . . . . . . . 69

5.3 Medições de consumo dos controladores . . . . . . . . . . . . . . . . . . 71

5.3.1 Integrated Lights-Out (HP-iLO) . . . . . . . . . . . . . . . . . . 71

5.3.2 Amperímetro Arduino . . . . . . . . . . . . . . . . . . . . . . . 72

5.4 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

5.5 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.5.1 Medições de consumo de processamento . . . . . . . . . . . . . 74

5.5.2 Medições de consumo integral . . . . . . . . . . . . . . . . . . . 76

5.6 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6 Conclusão e trabalhos futuros 79

6.1 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

6.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

6.3 Publicações Relacionadas . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Referências bibliográficas 83

Lista de Figuras

1.1 Arquitetura de uma Rede Definida por Software . . . . . . . . . . . . . . 3

2.1 Arquitetura de datacenter 3-Tier . . . . . . . . . . . . . . . . . . . . . . 11

2.2 Arquitetura de datacenter 4-Fat-Tree . . . . . . . . . . . . . . . . . . . . 12

2.3 Arquitetura do protocolo OpenFlow . . . . . . . . . . . . . . . . . . . . 15

2.4 Interfaces SDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5 Modelo Dispatcher Worker . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.1 (A)Implementação original (B)Implementação Ryu multi-core . . . . . . 48

4.2 Tempo real da amostragem . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.3 Servidor Dell PowerEdge R230 instalado no rack . . . . . . . . . . . . . 55

4.4 Notebook Inspiron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.5 Diagrama de blocos dos experimento multi-core. . . . . . . . . . . . . . 57

4.6 Interface Mininet rede simples . . . . . . . . . . . . . . . . . . . . . . . 57

4.7 Potência Média, para diferentes números de núcleos com tráfego de rede

constante a 30 Mbps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.8 Potência Média, para diferentes números de núcleos com tráfego de rede

constante a 40 Mbps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.9 Potência Média, para diferentes números de núcleos com tráfego de rede

constante a 50 Mbps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.10 Eficiência Energética do processamento de um bit nas várias configura-

ções multicore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

iv

4.11 Potência Média, para diferentes configurações de números de núcleos

com latência máxima de 5ms. . . . . . . . . . . . . . . . . . . . . . . . . 62

4.12 Potência Média, para diferentes configurações de números de núcleos

com latência máxima de 6ms. . . . . . . . . . . . . . . . . . . . . . . . . 63

5.1 Novo controlador com múltiplas instâncias. . . . . . . . . . . . . . . . . 68

5.2 Servidor HP Proliant Gen 8 . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.3 Diagrama do experimento distribuído com múltiplos controladores. . . . . 70

5.4 Ligação do sensor de corrente SCT-013 com a placa arduino. . . . . . . . 73

5.5 Layout da rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.6 Consumo do processador do servidor Dell . . . . . . . . . . . . . . . . . 75

5.7 Consumo do processador do servidor HP . . . . . . . . . . . . . . . . . . 76

5.8 Consumo em Watts do servidor Dell . . . . . . . . . . . . . . . . . . . . 76

5.9 Consumo em Watts do servidor HP . . . . . . . . . . . . . . . . . . . . . 77

Lista de Tabelas

3.1 Posicionamento da nossa proposta . . . . . . . . . . . . . . . . . . . . . 42

4.1 Comparação de controladores SDN . . . . . . . . . . . . . . . . . . . . . 45

4.2 Resumo dos tempos reais de amostragem . . . . . . . . . . . . . . . . . 54

4.3 Consumo total durante o teste com latência máxima de 5 ms . . . . . . . 62

4.4 Consumo total durante o teste com latência máxima de 6 ms . . . . . . . 63

4.5 Estatísticas, em milissegundos, dos resultados para Latência a 5 ms . . . . 64

4.6 Estatísticas, em milissegundos, dos resultados para Latência a 6 ms . . . . 64

vi

Lista de Símbolos e Abreviaturas

API: Application Program Interface, página 14

BPP: Bin-packing problem, página 36

CapEX: Capital Expenditure, página 3

CNEE: Communication Network Energy Efficiency, página 29

CPP: Controller Placement Problem, página 9

DCiE: Data Center Infrastructure Efficiency, página 29

DCN: Datacenter Network, página 9

EUE: Energy Usage Effectviness, página 29

GIL: Global Interperter Lock, página 46

IaaS: Infrastructure-as-a-Service, página 1

MSR: Model Specific Registers, página 51

NAS: Network Attached Storage, página 55

NoC Network-on-Chip, página 6

NPU: Network Processing Unit, página 24

NPUE: Network Power Usage Effectiveness, página 21

OpEX: Operational Expenditure, página 3

vii

PaaS: Platform-as-a-Service, página 1

PUE: Power Usage Effectiveness, página 29

QoE: Quality of Experience, página 34

RAPL: Running Average Power Limit, página 51

SaaS: Software-as-a-Service, página 1

SDN: Software Defined Network, página 2

SLA Service Level Agreement, página 8

TIC: Tecnologia da Informação e Comunicação, página 21

ToR: Top of Rack, página 11

XaaS: Everything as a Service, página 1

Capítulo 1

Introdução

1.1 Contextualização

As redes de computadores vêm evoluindo desde sua criação, nos primeiros centros de

pesquisa, através de mudanças constantes de tecnologia e adaptação às novas demandas de

seus usuários. Com a introdução de novas aplicações de rede, estes ambientes se tornaram

cada vez mais complexos, tanto para sua manutenção e gerência, como na adaptação a

falhas e novas demandas.

Com a disseminação dos serviços de redes em todo o globo através da Internet, mui-

tos datacenters passaram a concentrar grande capacidade de processamento e comunica-

ção, permitindo a entrega desses recursos como serviços, nos modelos conhecidos como:

Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS) e Infrastructure-as-a-Service

(IaaS). Essas abordagens compõem o paradigma de computação em nuvem, que permite

o uso mais racional de recursos computacionais, se comparado ao provisionamento local.

Muitas aplicações de redes, como os serviços web, têm demandas que variam no

tempo. O pico de utilização dessas aplicações pode ser ordens de grandeza maior que

seu estado médio. Exemplos desse cenário são as demandas de eventos artísticos ou

esportivos transmitidos online, inscrições e resultados de atividades governamentais, entre

outros.

A computação em nuvem, que disponibiliza recursos como serviços (Everything as a

CAPÍTULO 1. INTRODUÇÃO 2

Service XaaS) (Banerjee et al. 2011), permitiu que usuários paguem de acordo com a de-

manda usada, aumentando e diminuindo elasticamente os recursos alocados no datacenter

para cada usuário. Um administrador de rede pode contratar recursos de acordo com a

carga eventual, economizando na aquisição e manutenção de equipamentos.

Sem o uso de computação elástica, o administrador seria obrigado a adquirir equipa-

mentos capazes de suportar o pico de uso, mas que ficariam subutilizados durante a maior

parte da vida útil destes. Essa vantagem da computação elástica, porém, vem acompa-

nhada de desafios como: automação de provisionamento, tolerância a falhas, concentra-

ção e alteração do modelo de consumo energético destes provedores e sua capacidade de

evolução e adaptação a novas demandas.

Redes tradicionais são compostas de equipamentos ativos e passivos onde as funções

de controle/gerenciamento (control-plane) estão atreladas fisicamente às funções de en-

caminhamento dos dados (data-plane), esse acoplamento dificulta a introdução de novas

tecnologias ou substituição da tecnologia existente. Um exemplo desta dificuldade na in-

trodução de uma nova tecnologia em redes tradicionais é a implantação da nova versão do

Internet Protocol (IP), o IPv6. Apesar deste estar aos poucos substituindo o IPv4, sua am-

pla adoção ainda esbarra na imutabilidade de um conjunto de equipamentos legados, que

terão de ser substituídos, normalmente devido a problemas de suporte com novas versões.

Outro problema trazido para as redes tradicionais pelo avanço da computação em nu-

vem e a crescente escala de serviços de redes em datacenters é a complexidade da manu-

tenção e gerenciamento destas redes. Um datacenter composto por centenas ou milhares

de servidores e equipamentos de rede, por vezes de fabricantes diferentes, implica na ne-

cessidade de gerenciamento centralizado. Mas isto só é possível utilizando ferramentas

específicas dos fabricantes dos equipamentos (o que leva a uma dependência forte do for-

necedor) ou utilizando várias ferramentas, frequentemente uma para cada fabricante, o

que torna mais complexa a gerência centralizada de recursos.

As Redes Definidas por Software (SDN) trazem uma mudança importante com a se-

CAPÍTULO 1. INTRODUÇÃO 3

paração entre o control-plane e o data-plane, como ilustrado na Figura 1.1.

Figura 1.1: Arquitetura de uma Rede Definida por Software

A separação de control-plane e data-plane permitiu a introdução do conceito de pro-

gramabilidade da rede, assim, novas funcionalidades e automação puderam ser mais fa-

cilmente inseridas nas SDN em comparação com as redes tradicionais.

Os novos desafios inseridos pela computação em nuvem e elástica vêm sendo estuda-

dos e várias propostas (Kreutz et al. 2015) utilizam a capacidade de automação e adapta-

ção das SDN na sua solução. A programabilidade do control-plane permite a automação

de provisionamento de recursos de rede (Son & Buyya 2018) e uma tolerância a falhas

mais inteligente e menos custosa do ponto de vista do custo de capital (CapEX) e do custo

operacional (OpEX) (Fonseca & Mota 2017).

A introdução da SDN, apesar de buscar resolver as questões de gerenciamento e adap-

tabilidade da rede, acabou por introduzir novos desafios que precisam ser tratados pela

academia e pela indústria. Um destes desafios está relacionado ao uso de energia nas re-

des definidas por software. Ao mover parte do processamento do hardware especializado

para software, o modelo energético sofreu também mudanças e as técnicas usadas para

CAPÍTULO 1. INTRODUÇÃO 4

redução de consumo em redes convencionais (desligar equipamentos, alterações de topo-

logia) continuam a ser aplicadas ao data-plane, mas passam a ter sua validade questionada

e novas técnicas precisam ser desenvolvidas.

1.2 Motivação

Os datacenters são o ponto central da arquitetura em nuvem, segundo Masanet et al.

(2020) em 2018 existiam mais de 300.000.000 de servidores instalados mundialmente,

variando entre servidores de pequeno, médio e grande porte. Além da base de servidores,

a rede que interliga estes equipamentos é responsável por até 15% do consumo de energia

em um datacenter (Heddeghem et al. 2014).

Outra preocupação comum nestes grandes provedores é o consumo energético das es-

truturas de rede e processamento (Popoola & Pranggono 2018). Estima-se que a partici-

pação dos dispositivos de Tecnologia da Informação e Comunicação no consumo mundial

de energia cresceu de 3,9% para 4,6% entre 2007 e 2012 (Heddeghem et al. 2014). Em

um reavaliação deste impacto, Masanet et al. (2020) considera que novos equipamentos de

comunicação têm se tornado mais eficientes energeticamente. No entanto, ainda estima-

se que o consumo de energia em datacenters no mundo aumentou de 95 TWh em 2010

para 130 TWh em 2018, devendo alcançar 155 TWh em 2023, apenas com os servidores,

equipamentos de armazenamento e comunicação.

Nas redes SDN, a separação de control-plane e data-plane criou uma nova camada de

software e hardware, o que implicou em mudanças no perfil de consumo dos datacenters.

Estratégias para aumentar a eficiência energética neste ambiente ainda são alvo de estudos

(Rawat & Reddy 2017, Lis et al. 2020). Muitos trabalhos aplicam técnicas de eficiência

energética, já consolidadas nas redes tradicionais, no novo contexto das SDN. Mas essas

técnicas se aplicam ao data-plane e ainda são poucos os trabalhos que se preocupam em

mapear e melhorar o consumo do control-plane das SDN.

CAPÍTULO 1. INTRODUÇÃO 5

A separação do control-plane e data-plane implica que os switches no data-plane têm

como tarefa apenas armazenar tabelas de regras de encaminhamento e realizar o encami-

nhamento próprio dos pacotes. Todo o processamento mais complexo desloca-se de um

hardware, que era construído especificamente para esta tarefa, para um hardware de pro-

pósito geral, comum em servidores de datacenters (Ferguson et al. 2021), e muitas vezes

virtualizado (Cisco 2021).

Nas redes tradicionais, os equipamentos ativos (switches e roteadores) são construídos

com software e hardware integrados, comumente pelo mesmo fabricante. Esses fabrican-

tes buscam projetar o hardware para o melhor desempenho no menor custo de produção

e com o menor consumo de energia por bit tratado.

Fabricantes oferecem linhas diferentes de equipamentos, desenhadas para camadas di-

ferentes da rede, seja no núcleo da rede ou na camada de acesso. Com as SDN, o hardware

do switch ainda é definido pelo fabricante, mas comumente o hardware do controlador é

constituído por vários servidores espalhados pelo datacenter. Ao utilizar servidores de

propósito geral, e principalmente ao oferecer uma interface northbound, os controladores

SDN permitem que aplicações executem dentro da rede.

As duas principais diferenças apontadas implicam em um consumo maior de energia,

ou seja: (i) utilizar hardware de propósito geral não otimizado implica em um consumo

maior de energia por bit tratado (se não forem aplicadas técnicas de melhoria); (ii) novas

aplicações executando nos controladores da rede irão consumir mais recursos (processa-

mento, memória, etc) o que implica em maior consumo de energia.

1.3 O problema

Processadores de propósito específico, também chamados ASIC (Application Speci-

fic Integrated Circuit) ou NPU (Network Processing Unit), para redes de computadores

vêm sendo utilizados em equipamentos de rede há muitos anos. Técnicas de paralelismo

CAPÍTULO 1. INTRODUÇÃO 6

também são aplicadas nesses equipamentos, em especial nos processadores da chamada

era many-core, em que se utilizam as Network-on-Chip (NoC) para interligar centenas de

núcleos de processamento em um único chip (Majumder et al. 2013).

Apesar de existirem controladores como appliances que podem utilizar ASIC ou

NPU, a adaptabilidade das SDN emerge da capacidade de provisionar serviços em hard-

ware comum (Son & Buyya 2018) ou mesmo em nuvem, de acordo com a demanda

(Cisco 2021).

Em um datacenter, Heddeghem et al. (2014) afirma que a maior parte do consumo de

energia, descontado o consumo da infraestrutura, é devido aos servidores. O paradigma

SDN move parte de seu processamento executado em switches e roteadores dedicados

para os controladores virtualizados em servidores, aumentando a parcela de consumo

destes equipamentos no datacenter. A busca então por redes mais energeticamente efi-

cientes impacta também nesses servidores, que agora abrigam o software que é parte da

rede.

A capacidade de entregar e processar pacotes em uma SDN está diretamente ligada

à capacidade de processamento do controlador. Como apresentado em Intel (2018) para

aplicações de roteamento na borda da rede, desenvolvedores devem priorizar o número de

núcleos e a frequência de operação destes núcleos.

Os processadores de propósito geral, utilizados em servidores, aplicam técnicas para

economia de energia que podem colocar os núcleos em diferentes estados de execução,

modificando a tensão e frequência de operação. Nos processadores Intel, esses estados

são conhecidos como estados de performance (P-states), e a interface ACPI (Advanced

Configuration and Power Interface) permite o controle dos estados a partir do sistema

operacional (Intel 2019b).

Enquanto muitos trabalhos buscam melhorar a eficiência das SDN no data-plane

(Priyadarsini et al. 2018, Tran Hoang Vu et al. 2012, Assefa & Ozkasap 2020, Younus

et al. 2019), o control-plane acaba por ser negligenciado no quesito de eficiência energé-

CAPÍTULO 1. INTRODUÇÃO 7

tica (Assefa & Özkasap 2019). É preciso tratar a eficiência energética das redes definidas

por software de maneira abrangente, incluindo o control-plane com suas peculiaridades,

pois neste paradigma essa parte da rede assemelha-se mais aos servidores do que aos

ASICs de transmissão de dados presentes nas redes tradicionais.

Um controlador SDN é o responsável minimamente pelas decisões de encaminha-

mento da rede, em camada 2 e camada 3. No entanto a sua programabilidade permite que

aplicações externas à rede comuniquem-se com o controlador mudando o comportamento

da rede de acordo com regras complexas. As regras são implementadas em software e são

executadas e avaliadas pelos controladores cuja função final será aplicá-las e traduzindo-

as para comandos de controle de fluxo enviados aos switches SDN.

1.4 Delimitação da pesquisa

As SDN podem ser aplicadas no amplo contexto em que redes tradicionais são utili-

zadas. Nesta tese, no entanto, o foco é sua utilização nos ambientes de datacenter. Hoje,

os serviços de datacenter são oferecidos ao usuário final como serviços no modelo XaaS

(Everything as a Service), justificando o fato do provisionamento de recursos, tolerância

a falha e automação das redes serem de vital importância.

As questões, hipóteses e técnicas apresentadas nos próximos capítulos aplicam-se ao

contexto de SDN aplicada a DCN (Datacenter Network). As premissas incluem o fato de

que controladores executam em equipamentos distintos dos switches e com processadores

de múltiplos núcleos. Esses processadores podem ter seus núcleos configurados para

operar em frequências diferentes e inclusive ser parcialmente desativados de acordo com

a carga da rede.

CAPÍTULO 1. INTRODUÇÃO 8

1.5 Objetivo geral

O objetivo geral deste trabalho é a avaliação e redução do consumo energético de

controladores de redes definidas por software em cenários de múltiplos núcleos de pro-

cessamento. Dividir tarefas e reduzir a frequência de operação com objetivo de reduzir o

consumo, mantendo um limiar de operação pré-determinado como os definidos em acor-

dos de prestação de serviço SLA (Service Level Agreement) de provedores de nuvem.

Neste cenário de um controlador centralizado multicore os experimentos desenvolvidos

demonstram ganhos de performance com a paralelização. A versão multicore chega a um

ganho na eficiência de até 31% em alguns cenários, apresentados em mais detalhes nos

Capítulos 4 e 5.

Além do cenário multi-core é apresentado o uso de técnica semelhante de paraleliza-

ção para um cenário com múltiplos controladores físicos que busca aumentar a tolerância

a falha com o mínimo de aumento do consumo no plano de controle.

1.6 Objetivos específicos

São objetivos específicos deste trabalho:

• Implementação de um controlador SDN paralelo multicore

• Comparação da eficiência energética de controladores SDN single-core e multi-core

• Implementação de um controlador SDN paralelo multicore e distribuído

• Comparação da eficiência energética de controladores SDN distribuídos com o uso

de paralelismo

CAPÍTULO 1. INTRODUÇÃO 9

1.7 Organização do trabalho

O restante do trabalho está organizado como segue: o Capítulo 2 apresenta os fun-

damentos teóricos das redes definidas por software (SDN), os aspectos mais relevantes

do problema da localização dos controladores (CPP), o consumo de energia em redes de

datacenter (DCN) e estratégias de medição e eficiência energética em datacenters. O Ca-

pítulo 3 apresenta um conjunto de trabalhos recentes no domínio de eficiência energética

em DCN e SDN. A implementação paralela de um controlador SDN é descrita no Capí-

tulo 4, assim como os resultados obtidos. No Capítulo 5 a versão distribuída é discutida e

são apresentadas as medições e resultados. Por fim, o Capítulo 6 apresenta uma discussão

destes resultados, bem como as contribuições e novas linhas de pesquisa e expansão da

tese.

Capítulo 2

Fundamentação Teórica

Este capítulo realiza um apanhado das bases teóricas utilizadas neste trabalho. Inici-

almente é apresentado o cenário atual das redes de datacenter (DCN) e o surgimento das

redes definidas por software, a motivação da separação entre control-plane e data-plane,

as vantagens do seu uso e cenários comuns.

Na Seção 2.3 é apresentado em detalhes o uso dos controladores SDN e o problema

da localização de controladores. A localização de controladores além de influenciar na

vazão da rede, i.e., na sua capacidade de transportar dados, também tem impacto sobre

outras características da rede, como: tolerância a falhas, custos de instalação e operação, e

a eficiência energética, sendo este último em especial, o foco deste trabalho. As métricas

de consumo de datacenters são apresentadas na Seção 2.4.

A solução apresentada nesta tese baseia-se no uso de múltiplos controladores exe-

cutando em paralelo, portanto, as técnicas de paralelismo e sua influência na eficiência

energética são detalhadas nas Seções 2.5 e 2.6.

2.1 Redes em Datacenter (DCN)

As redes de datacenter (DCN) formam a estrutura onde estão apoiados todos os servi-

ços de nuvem. Popoola & Pranggono (2018) apontam que os componentes de comunica-

ção são responsáveis por até 40% do consumo de um datacenter. A cada dia estes centros

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 11

crescem em número e capacidade instalada, para obter um crescimento sustentável é pre-

ciso garantir eficiência no consumo de energia de cada componente destas instalações.

A arquitetura mais comum para redes de datacenter (DCN) está organizada em 3 ca-

madas (3-Tier): core, aggregation, edge, conforme ilustrado na Figura 2.1. Os equipa-

mentos finais, como servidores e storages, estão conectados à camada edge composta por

switches conhecidos como Top-of-Rack (ToR), cuja principal característica é a alta densi-

dade de portas, que por sua vez estão conectados aos switches da camada aggregation, que

permitem uma divisão de tráfego implementando mecanismos de camada 3 (router-switch

ou switch layer 3), que se ligam a um número menor de switches com alta capacidade de

vazão e processamento, classificados como switches core.

Figura 2.1: Arquitetura de datacenter 3-Tier

Uma segunda arquitetura comum em DCN é chamada Fat-Tree (Al-Fares et al. 2008),

composta por switches mais simples (commodity-switch) o que a torna mais barata em ter-

mos de CapEx (Capital Expenditure). Além disto, esta arquitetura, segundo seus autores,

tem capacidade de entregar largura de banda maior, evitando o problema da limitação da

camada core da arquitetura 3-Tier.

Nesse modelo, uma k-fat-tree é montada como ilustrado na Figura 2.2. Na camada

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 12

mais baixa existem conjuntos de switches denominados k pods, cada um contém k/2

switches de k portas conectadas a k/2 hosts. As portas restantes desses switches são

conectadas aos switches da camada de agregação. Na camada superior (core), (k/2)2

switches tem uma porta conectada a cada pod, a i-ésima porta de um switch core está

conectada ao pod-i de modo que as portas na camada de agregação dos switches de cada

pod estão conectadas a um switch do core a cada k/2 portas. Nesse modelo, a arquitetura

suporta até k3/4 hosts.

Pod 1 Pod 2 Pod 3 Pod 4

Figura 2.2: Arquitetura de datacenter 4-Fat-Tree

Essas arquiteturas de datacenter impactam diretamente no consumo desses centros

como demonstrado por (Al-Fares et al. 2008). Enquanto nossa proposta busca melhorar a

eficiência energética a estratégia selecionada deve ser adaptável às diferentes arquiteturas

aqui apresentadas. A estratégia de redução de consumo por paralelismo pode ser aplicada

tanto a arquiteturas 3-Tier como Fat-Tree pois a localização dos switches não impactará

no desempenho da solução, como apresentado na Seção 4.6.

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 13

2.2 Redes definidas por software

Redes de computadores são abstratamente entendidas como um conjunto de cinco

camadas: aplicação, transporte, rede, enlace e física no modelo conhecido como TCP/IP

(Ross & Kurose 2013). Comumente, a camada de rede e enlace no núcleo da rede são

compostas por switches 1 e roteadores. Enquanto switches tem o objetivo de realizar

encaminhamento de camada de enlace (baseado em endereços físicos), os roteadores são

responsáveis por encontrar os melhores caminhos entre as diversas redes (baseado em

endereços lógicos IPv4 e IPv6).

Com o aumento no número de elementos e complexidade das redes, os equipamentos

que a compõem também passaram a incluir funções de gerenciamento, como por exem-

plo: protocolos de monitoramento (SNMP, SFlow), segurança (SSH, criptografia, VPN),

Authentication-Authorization-Accountability (AAA) (Scott-Hayward et al. 2016), entre

outros. Essas funcionalidades são implementadas por um conjunto de softwares sendo

executados em um hardware dedicado. Cada fabricante implementa, portanto, seu con-

junto de funcionalidades de acordo com seu público alvo e estratégias de marketing e

custo. De fato, muito do custo de um equipamento de rede hoje está atrelado a estas

funções extras implementadas em software.

Essas funcionalidades permitiram muitos avanços na confiabilidade, segurança, resi-

liência, e aplicações das redes, mas por serem implementadas apenas pelos fabricantes,

comumente no hardware dedicado, não há espaço para customização destas funções. A

justificativa para este engessamento das plataformas de hardware dedicado é que assim

pode-se obter mais velocidade no encaminhamento dos pacotes e nas decisões de rotea-

mento.

Em 2008 McKeown et al. (2008) publicam um dos primeiros trabalhos na área de

redes definidas por software definindo uma primeira versão do protocolo OpenFlow. Ba-1O termo switch é usado neste trabalho para referir-se a equipamentos que fazem rotea-

mento/encaminhamento de camadas 2 ou 3.

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 14

seado em switches Ethernet que usam uma tabela interna e uma interface padrão para

adicionar e remover entradas nesta tabela de fluxos. O objetivo inicial dos autores era

permitir que pesquisadores executassem protocolos experimentais em equipamentos de

rede comuns. Na prática, este trabalho separou as decisões de encaminhamento (control-

plane) do equipamento usado no encaminhamento em si (data-plane).

Na definição do protocolo OpenFlow os autores descrevem-no como uma solução

para o problema da falta de flexibilidade das arquiteturas fechadas dos equipamentos de

rede. O uso do OpenFlow permitiria maior facilidade nos experimentos, especialmente

de pesquisadores da área. Não tardou para que a indústria também percebesse a utilidade

desta flexibilidade para o mercado e para o valor agregado de seus produtos (Kreutz et al.

2015).

Esta separação entre control-plane e data-plane, como visto na Figura 2.3, permitiu

a programabilidade da rede. As decisões podem ser tomadas externamente usando um

outro equipamento, denominado controlador, que utiliza processadores de propósito geral.

Esses controladores passam então a poder executar mais do que a simples avaliação de

encaminhamento; um desenvolvedor pode usar uma Application Program Interface (API)

para acessar os dados de rede e tomar decisões de encaminhamento baseado em dados em

tempo real.

Uma vez que ocorra a separação dos planos de controle e de dados, é possível usar

equipamentos simples no plano de dados, responsáveis apenas por enviar e receber men-

sagens OpenFlow. Toda a inteligência pode ser centralizada no controlador. Além do

controle centralizado e independente do fabricante, a capacidade de extensão de funcio-

nalidades do controlador está limitada apenas ao hardware usado.

As redes definidas por software tem um conjunto padronizado de interfaces que per-

mite a programabilidade da rede, conforme ilustrado na Figura-2.4. A interface South-

bound, que liga o plano de dados ao plano de controle, é dominada pelo protocolo Open-

Flow, apesar de haver outros protocolos concorrentes (ForCES, POF, NCP, RCP, entre

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 15

Figura 2.3: Arquitetura do protocolo OpenFlow

outros) (Kreutz et al. 2015). Já a interface denominada Northbound, que liga o plano de

controle às aplicações de rede, é oferecida pelos controladores para que outras aplica-

ções tenham acesso de leitura e alteração do estado da rede, sendo normalmente uma API

aberta, definida pelo controlador. Outras estratégias existem para a interface Northbound

como: FML, Frenetic, NetKAT, Procera, NetCore, entre outras (Latif et al. 2020).

Uma outra interface importante na arquitetura SDN é chamada East/Westbound essa

interface trata da comunicação entre controladores, especialmente controladores distribuí-

dos e replicados. Essa interface transporta informações sobre o estado da rede, sincronia

de controladores, estados dos controladores (online, offline), distribuição de carga etc.

Nesse domínio, as APIs são muito diversas e não há interoperabilidade entre controla-

dores diferentes, apesar de haver esforços no sentido de padronização destas mensagens

como o protocolo SDNi (Yin et al. 2012).

Apesar de vantajosa, a arquitetura da SDN trouxe também novos desafios para os

pesquisadores e administradores de rede. Ameaças à segurança como: (i) ataques à co-

municação com o control-plane; (ii) ataques a novas vulnerabilidades introduzidas pelos

controladores; (iii) ausência de um mecanismo claro de confiança entre as aplicações

de gerenciamento e os controladores (Yan et al. 2016); (iv) resiliência do control-plane

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 16

Figura 2.4: Interfaces SDN

(Oktian et al. 2017); (v) uso de switches mais inteligentes (stateful) para a divisão de ta-

refas entre controlador/switch (Bi et al. 2016); (vi) eficiência energética dos elementos de

rede, entre outras (Rawat & Reddy 2017).

Diferente das redes tradicionais, o consumo energético de uma rede SDN está mais

distribuído, enquanto que em uma rede comum o consumo energético dos equipamentos

de rede se concentra nos roteadores e switches. Na SDN, este consumo está disperso

em vários equipamentos diferentes, já que o processamento necessário para realizar o

encaminhamento está fisicamente separado no(s) controlador(es).

O trabalho de Priyadarsini et al. (2018), discutido na Seção 3.4, apresenta-se um mo-

delo detalhado do consumo de redes SDN. Nele os autores separam o consumo da rede

entre: consumo dos switches; consumo dos controladores; consumo dos links usados; e

um fator relacionado à latência da rede.

Uma das decisões iniciais na implantação de SDN é o número e localização dos con-

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 17

troladores. Apesar da centralização de controle ser uma vantagem do ponto de vista do

gerenciamento da rede, um único controlador para toda a rede representará um ponto-

único-de-falha. Então, um administrador de redes implantando uma SDN deve considerar

o fator resiliência e tolerância a falha da rede, aumentando o número de controladores,

sejam eles distribuídos ou replicados.

2.3 Controladores SDN

Em uma SDN, o papel principal do controlador é o recebimento de requisições dos

switches e a resposta de como estes devem tratar os pacotes que chegam às suas portas.

A aplicação mais simples do controlador é a de um switch Ethernet camada 2, que segue

a descrição apresentada no Algoritmo 1. O controlador pode efetuar uma série de outras

funções com os dados recebidos, como descrito na Seção 2.2.

Algoritmo 1: Switch simples/* Essa tabela contém endereço destino e porta do switch */

1 cria tabela de encaminhamento vazia;2 enquanto ativo faça3 recebe pacote;4 adiciona origem à tabela de encaminhamento;5 se destino está na tabela então6 encaminha pacote pela porta de destino;7 senão8 encaminha pacote a todas as portas exceto a de origem (FLOOD)9 fim

10 fim

A implementação do Algoritmo 1 em redes SDN está separada entre o controlador e

o switch. Nesse cenário, a implementação fica detalhada no Algoritmo 2.

O controlador irá tomar a decisão de encaminhamento segundo o Algoritmo 3. Em

primeiro lugar é necessário manter um registro de quais switches estão associados ao

controlador Isso é feito armazenando uma identificação do switch e fazendo uma confi-

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 18

Algoritmo 2: Switch simples SDN/* Essa tabela contém vários campos e porta de saída do switch

*/1 cria tabela de fluxos vazia;2 enquanto ativo faça3 recebe pacote;4 se há match do pacote com uma linha da tabela de fluxos então5 encaminha pacote pela porta de destino;6 senão7 encaminha mensagem (PACKET_IN) ao controlador;8 fim9 fim

guração inicial enviando a mensagem FLOW_MOD que cria a tabela inicial no switch e o

configura para enviar os pacotes para o controlador.

Caso o controlador receba um pacote, que necessita de encaminhamento, deve avaliar

se o destino já é conhecido, sendo conhecido deve configurar o switch para que os novos

pacotes sejam sempre encaminhados pelo destino conhecido. Caso o destino não seja

conhecido é necessário fazer flood na camada 2 da rede o que é obtido devolvendo o

pacote para o switch de origem com a mensagem PACKET_OUT e destino FLOOD.

Algoritmo 3: Controlador SDN1 enquanto ativo faça2 se novo switch então3 envia msg FLOW_MOD ao switch criando uma entrada padrão na tabela

de fluxos;4 fim5 recebe PACKET_IN do switch;6 se endereço destino é conhecido então7 envia msg FLOW_MOD ao switch criando uma entrada na tabela de

fluxos;8 envia msg PACKET_OUT ao switch para que este encaminhe o pacote;9 senão

10 envia msg PACKET_OUT ao switch para que este encaminhe o pacotepor todas as portas (FLOOD);

11 fim12 fim

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 19

É importante entender que o controlador não executa apenas a função descrita no

Algoritmo 3 de learning switch, mas também pode executar uma série de atividades que

oferecem serviços às aplicações de redes usando a interface Northbound definida pelo

desenvolvedor do controlador.

Percebe-se que sempre que o switch encontra uma situação para a qual não está pre-

viamente configurado (não há uma entrada na tabela de fluxos), a decisão de encaminha-

mento é adiada e uma mensagem do tipo PACKET_IN é enviada ao controlador, que deve

decidir o que fazer com o pacote e informar ao switch, usando uma mensagem do tipo

PACKET_OUT.

Outro aspecto importante é que o switch não necessita de grande capacidade de pro-

cessamento, já que sua função mais custosa computacionalmente é a busca na tabela de

fluxos. Esta tabela pode ser implementada em hardware para aumentar a eficiência da

busca nos switches.

Uma variação deste modelo, proposta por Dargahi et al. (2017) e Bi et al. (2016), é

o uso de um data-plane stateful. A ideia neste caso é desafogar algumas decisões do

controlador, e com isso permitir a implementação de aplicações que dependem de tempos

de resposta próximos dos tempos de chegada dos pacotes. Essa nova abordagem vai na

contramão da separação do control-plane e data-plane, já que leva de volta ao data-plane

algumas funções de controle. A justificativa para este retorno parcial às redes tradicionais

é que segundo os autores, apenas neste modelo é possível implementar aplicações de

tempo-real estrito, desde que estas não dependam do conhecimento do estado geral da

rede (Dargahi et al. 2017).s

As implementações de switches stateful se preocupam, essencialmente, em evitar o

problema da latência da comunicação com o controlador. Uma outra área de pesquisa

busca diminuir esta latência, sem alterar a arquitetura da SDN, através do estudo da me-

lhor localização dos controladores e da correta distribuição de carga e switches alocados

a cada controlador. Esta área concentra-se na resolução do problema conhecido como

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 20

Problema da localização do Controlador Controller Placement Problem (CPP). Em geral

Wang et al. (2017) busca posicionar os controladores em uma SDN e associá-los aos swit-

ches de modo a obter um ou mais objetivos que incluem: diminuir a latência, aumentar a

confiabilidade, aumentar a eficiência energética entre outros.

2.3.1 Problema da localização do controlador

O CPP pode ser dividido em duas categorias: online ou offline, a diferença destes está

no fato de levar em consideração o tráfego da rede em tempo real na alocação dos switches

para os controladores. Além da divisão entre online e offline, os objetivos do CPP podem

ser variados.

As entradas para um CPP são as possíveis localizações dos controladores, localização

dos switches e, no caso do CPP online, o fluxo da rede em tempo real. A saída é composta

pela localização dos controladores e a alocação dos switches a controladores.

A abordagem adotada por (Chen et al. 2017) foi modelar o CPP como um problema de

empacotamento (Bin-packing problem) (Cormen et al. 2001), no qual temos como entrada

um conjunto de objetos de diferentes volumes Oi que precisam ser armazenados em caixas

de volume fixo V , minimizando o número de caixas. Nesta modelagem, os switches com

diferentes demandas de fluxo de rede são representados pelos objetos de volume variável,

enquanto os controladores com sua capacidade fixa de processamento são representados

pelas caixas de volume fixo. Com essa modelagem, os autores afirmam por redução, que

o CPP é também um problema NP-Hard. Soluções para o CPP que se relacionam com o

consumo de energia estão detalhadas na Seção 3.3.

2.4 Medição de consumo e eficiência em DCN

Heddeghem et al. (2014) e Shuja et al. (2016) já apresentam estimativas de consumo

dos datacenters atuais na ordem de centenas de TWh, com taxa de crescimento da or-

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 21

dem de 10% ao ano. Os provedores de nuvem utilizam os datacenters para oferecer seus

serviços, e seu lucro está diretamente relacionado ao custo operacional (OpEx), que é

largamente composto pelo custo da energia consumida nestes centros.

Portanto os provedores buscam ao máximo otimizar o uso de energia nestes centros.

No entanto, não é possível controlar o que não é medido. Um conjunto de políticas

para medição de consumo em datacenters é usado para avaliar não apenas o consumo em

Watts-hora, mas principalmente a eficiência deste consumo. A principal métrica usada na

avaliação de eficiência em datacenters é o Power Usage Effectiveness (PUE) que busca

comparar o consumo de energia de toda a instalação do datacenter em relação ao valor

consumido exclusivamente por equipamentos de Tecnologia da Informação e Comunica-

ção (TIC) .

PUE =Energia total da fonte do datacenter

Energia total da fonte de equipamentos de TIC(2.1)

Observando a Equação (2.1), entende-se que um valor PUE igual a 1 implica que todo

o consumo do datacenter é direcionado aos equipamentos de TIC. Para um PUE igual,

por exemplo, a 2, para cada 2 watts gastos pelo datacenter, 1 é usado pelos equipamentos

de TIC.

A partir do PUE não é possível estimar valores de eficiência de partes do datacen-

ter, já que o consumo de todos os equipamentos de TI está representado por uma única

variável. Apesar do PUE ser usada amplamente, inclusive por recomendações internacio-

nais (Energy Star 2011), outras métricas mais detalhadas são propostas por vários autores,

entre eles Fiandrino et al. (2017), que apresenta um conjunto de métricas que focam na efi-

ciência de cada componente do datacenter. Em especial a métrica Network Power Usage

Effectiveness (NPUE) é detalhada na Seção 3.1.

As unidades de medida de eficiência energética em datacenters são importantes na

avaliação dos resultados apresentados nos Capítulos 4 e 5. A compreensão do impacto

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 22

dos elementos de rede no PUE e sua sub-divisão NPUE motiva este trabalho. O CNEE

foi adaptado na seção 5.5 para apresentar uma avaliação equivalente mas focada nos con-

troladores SDN.

2.5 Processamento paralelo: Dispatcher/Workers

A conhecida lei de Amdahl (Amdahl 1967), que trata do ganho de desempenho em

processamento paralelo, divide problemas em duas frações: Uma parte infinitamente pa-

ralelizável P e uma fração S = 1�P que é estritamente serial. Assim, o ganho de desem-

penho R obtido pela adição de capacidade de paralelismo é limitado pela fração serial S,

como definido por:

R = RS ⇤S+PS+ P

M(2.2)

em que RS é o desempenho de um computador que executa o problema de maneira total-

mente serial, e M é o número de unidades de execução paralelas (em nosso caso, núcleos

de processamento).

A lei de Amdahl assume um tamanho fixo do problema a ser tratado, o que não é o

caso para controladores SDN já que a carga de trabalho de um controlador SDN está li-

gada ao tráfego e às condições de funcionamento das aplicações na interface northbound

e portanto, mudam constantemente. Para este tipo de problema onde o tamanho da parte

paralelizável cresce à medida que novos recursos estão disponíveis é possível aplicar a

lei de Gustafson (1988). Esta lei afirma que problemas maiores se beneficiam, para além

dos limites da lei de Amdahl, se a fração paralela também cresce de acordo com a dispo-

nibilidade de recursos. Isto implica em uma relação de tempo de execução serial sobre

o tempo de execução em paralelo, denominada speedup, mais otimista, pois com a par-

cela paralela crescente o impacto da parcela serial é cada vez menos relevante. Esta nova

lei vem sendo aplicada e provou-se verdadeira em vários problemas reais, ratificada pela

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 23

prevalência dos processadores multi-core nos computadores atuais.

A proposta apresentada neste trabalho busca melhorar a eficiência energética do con-

trolador. Neste escopo a Lei de Gustafson é aplicada buscando a divisão da parte paraleli-

zável entre os vários núcleos de processamento disponíveis. Com o aumento dos recursos

disponíveis (número de núcleos) cada processador terá uma parcela menor a ser executada

e poderá operar em uma frequência menor, diminuindo o consumo geral do controlador.

Na implementação dos experimentos apresentados nos Capítulos 4 e 5, o problema

do controlador SDN é implementado de forma paralela utilizando o modelo Dispat-

cher/Worker (Tanenbaum & Bos 2014). Neste modelo, ilustrado na Figura 2.5, a parte

serial do problema é chamada Dispatcher, sua função é aguardar requisições e distribuí-

las entre os Workers, que executam suas tarefas em paralelo. Uma instância do Dispatcher

aguarda que novos pacotes cheguem à interface de rede. Quando isto ocorre, o Dispatcher

não realiza processamento sobre os dados recebidos, apenas seleciona um dos vários Wor-

kers e encaminha os pacotes para que este execute o processamento necessário, voltando

imediatamente ao estado de aguardar novo pacote.

Figura 2.5: Modelo Dispatcher Worker

Neste modelo, quanto mais pacotes chegarem ao controlador, mais Workers serão ne-

cessários e poderão se beneficiar de mais núcleos de processamento, seguindo um com-

portamento mais próximo do descrito por (Gustafson 1988). A medida que novos recursos

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 24

são adicionados ao sistema menor é a carga de trabalho dos Workers, se mantido o fluxo

constante de pacotes de rede, com a redução da carga em cada Worker é possível reduzir

sua frequência de operação obtendo um ganho de eficiência energética como apresentado

na seção seguinte.

2.6 Redução de consumo por redução de frequência de

processamento

A principal função de um controlador SDN é a tomada de decisões de roteamento

e/ou encaminhamento. Essa tarefa, no mais simples dos cenários (switch padrão layer 2),

depende exclusivamente da consulta a um conjunto de regras implementadas em software.

A capacidade do controlador em atender à demanda está relacionada a sua capacidade de

executar rapidamente o software de decisão de encaminhamento.

Switches SDN podem ser baseados em processadores de propósito específico (Network

Processing Unit) (Kreutz et al. 2015) ou em processadores de propósito-geral. Diferente

dos switches, que compõe o data-plane, para utilizar a principal vantagem de um contro-

lador SDN, sua programabilidade, o software do controlador será comumente executado

em um processador de propósito geral.

Barros (2016) apresenta uma abordagem para a redução do consumo de energia por

meio do processamento de tarefas em arquiteturas multi-core. Especificamente, o autor

considera uma mesma tarefa executada em um processador singlecore comparada com

uma implementação paralela, executando no mesmo intervalo de tempo em um processa-

dor multicore. Neste modelo, o autor não considera o fator A, que representa o nível de

atividade do processador, mas afirma que é possível desconsiderar este fator para tarefas

que sejam altamente demandantes de processamento (cpu-bound), por aproximar-se de 1

para um determinado intervalo de tempo pequeno em que o consumo está sendo medido.

Inicialmente, o autor define um modelo de potência associado ao processador, que

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 25

considera apenas a sua parcela de potência dinâmica, denominado M1, como sendo:

PM1tot ⇡ k0 ·g(F)2 ·A ·F, (2.3)

em que PM1tot é a potência dissipada pelo processador; k0 é uma constante de proporci-

onalidade; F é a frequência de operação e g(F) é uma função que relaciona tensão de

alimentação e frequência, A é o fator de atividade do processador.

A Equação (2.4) apresenta uma relação entre a tensão V , a tensão de threshold Vth e a

frequência F , onde k1 é uma constante de proporcionalidade:

F = k1 ·(V �Vth)h

V. (2.4)

No modelo da equação (2.3) denominado M1, considerando a tensão threshold Vth⇡ 0

e h = 2, a função g(F) é dada por (1/k1) ·F e portanto, a Equação (2.3) pode ser reescrita

como:

PM1tot ⇡ a ·A ·F3, (2.5)

em que a é uma constante equivalente a (k0/k21).

A partir deste modelo, o autor encontra uma relação entre o consumo de energia de

processadores single-core e multi-core homogêneo, no cenário em que estes executam no

mesmo intervalo de tempo uma determinada tarefa.

Essa relação é dada por: Er =Pho

Psc, em que Pho é a potência no processador multi-core

homogêneo e Psc é a potência no processador single-core. Considerando a Equação (2.3),

e que por simetria Pho = p ·P1(Fho), em que p é o número de núcleos do processador

multi-core e P1 é a potência de um dos núcleos, pode-se escrever:

Er = p ·F3

hoF3

sc. (2.6)

O Speedup da aplicação denominado Sp, definido como a relação entre o tempo de

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 26

execução serial e o tempo de execução paralela, para uma mesma frequência, ou seja:

Sp =Ts

Tp. (2.7)

Pode-se observar que a relação entre o consumo de energia do processador multi-

core homogêneo e o consumo de energia do processador single-core, com o modelo de

potência M1, é dada por:

Er =p

S3p, (2.8)

considerando o caso específico em que ambos os processadores executam a tarefa no

mesmo intervalo de tempo.

A Equação (2.8) demonstra que para um speedup linear, há sempre economia de ener-

gia ao utilizar-se um processador multi-core, desde que o tempo total da execução paralela

seja igual ao tempo de execução single-core. É importante ressaltar que a variável de Spe-

edup já representa em sua formulação elementos da qualidade da paralelização, overheads

como o memory-wall e questões relacionadas a escalonamento do sistema operacional,

entre outros.

Em última instância, o autor aponta um valor limite para o Speedup a partir do qual

há economia de energia em processadores multi-core homogêneos, dado por:

SLIMp = p1/3. (2.9)

Um segundo modelo de potência para processadores, denotado M2, também é apre-

sentado em (Barros 2016), o qual passa a considerar em adição à potência dinâmica, a

parcela de potência devida a corrente de fuga no processador Pleak, assim: PM2 = PM1 +

Pleak. Esse modelo mais completo considera especialmente a fuga de corrente devido ao

efeito de Sub-threshold nos transistores do processador.

Sabendo-se possível paralelizar a tarefa de decisão de encaminhamento em controla-

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 27

dores SDN, este trabalho busca portanto determinar a melhor relação entre os fatores de

paralelização/tolerância-a-falhas e consumo de energia em controladores de redes defini-

das por software em um datacenter.

Ao observar a Equação (2.8) observa-se que a relação entre o número de processadores

e o Speedup de uma aplicação permite a redução do consumo. Assim este trabalho busca

aumentar o Speedup da aplicação executada em controladores SDN, através de uma nova

implmentação paralela.

2.7 Resumo

As topologias mais comuns e usos das redes em datacenters (DCN) foram apresen-

tadas neste capítulo. A implementação, características, vantagens e desafios das SDN

também foram apresentadas. Foi discutida a separação do plano de controle e de dados

e como esta separação resolve problemas e cria novos desafios de segurança, gerência e

impacta na eficiência energética das redes.

O problema da localização e número ideal de controladores é apresentado com uma

descrição breve de soluções atuais. As maneiras de medir eficiência energética nas DCN

são a base para a justificativa do uso de processamento paralelo para redução de consumo,

conforme descrito na Seção 2.6.

No Capítulo 3 serão apresentadas as soluções da literatura para os problemas aqui

apresentados e a localização desta tese no cenário científico mais recente.

Capítulo 3

Estado da arte

Neste capítulo são apresentados alguns trabalhos presentes na literatura relacionados

ao domínio abordado nesta pesquisa, com o objetivo posicionar o problema e a solução

encontrada nesta tese no contexto científico.

Inicialmente, a maneira como a eficiência energética de DCN é medida é discu-

tida na Seção 3.1. Muitos dos trabalhos relacionados à eficiência energética em SDN

concentram-se no data-plane, no entanto alguns trabalhos vêm margeando as questões de

consumo e otimização do control-plane. Apesar do foco no plano de dados, as técnicas

utilizadas em alguns trabalhos apresentados na Seção 3.2 podem ser utilizadas em para-

lelo à técnica desenvolvida nesta tese. Um conjunto de trabalhos focados no plano de

controle também é apresentado na Seção 3.3. A Seção 3.4 discute um modelo energético

mais completo que inclui o consumo dos switches e dos controladores. Uma breve apre-

sentação de redes SDN em datacenters comerciais de larga escala é apresentada na Seção

3.5.

3.1 Métricas de consumo em DCN

Tradicionalmente, a principal métrica de eficiência energética em um DC é a PUE,

apresentada na Equação 2.1, e definida como a relação entre a energia consumida pelas

instalações do datacenter como um todo em relação à energia efetivamente consumida

CAPÍTULO 3. ESTADO DA ARTE 29

pelos equipamentos de TIC.

A principal contribuição de (Fiandrino et al. 2017) é um conjunto mais granular de

métricas sobre eficiência energética em datacenters. Os autores afirmam que as métricas

existentes são muito genéricas e não permitem diferenciar uma melhoria na eficiência

da rede de uma melhoria na eficiência dos servidores de um datacenter, já que todos os

equipamentos são tratados genericamente como ETIC (Equipamentos de Tecnologia de

Informação e Comunicação).

Inicialmente, os autores discutem as limitações das duas métricas mais comuns em

eficiência energética para datacenters: PUE (Power Usage Effectiveness) e DCiE (Data

Center Infrastructure Efficiency). PUE é definida como a relação entre a potência con-

sumida pelas instalações do datacenter e a potência consumida pelos equipamentos de

TI, enquanto DCiE é o recíproco do PUE. Outra métrica é o EUE (Energy Usage Ef-

fectiviness) que é nada mais que o PUE substituindo potência por energia. Os autores

também tratam brevemente de outras métricas, como por exemplo, Energy Reuse Effecti-

viness, Energy Reuse Factor, UPS Load Factor, Data Center Energy Productivity, entre

outras. Métricas de resfriamento e para equipamentos condicionadores de ar também são

definidas pelos autores.

Os autores propõem no total 17 novas métricas relacionadas a eficiência em redes e

comunicação em datacenters, das quais duas estão relacionadas a eficiência energética

de redes: CNEE (Communication Network Energy Efficiency), NPUE (Network Power

Usage Effectiveness).

As definições dessas métricas são:

• CNEE: Energia necessária para entregar 1 bit de dados;

• NPUE: Relação entre o total da energia consumida por TI e energia consumida por

equipamentos de rede;

CAPÍTULO 3. ESTADO DA ARTE 30

As métricas estão definidas formalmente como segue:

CNEE =Potência consumida por equipamentos de rede

Capacidade de Throughput efetiva. (3.1)

Assim a CNEE é medida em watts/bit/segundo que é equivalente a joules/bit, ou a

quantidade de energia necessária para transmitir 1 bit na rede.

NPUE =Potência consumida pelos equipamentos de TICPotência consumida pelos equipamentos de rede

. (3.2)

NPUE é a razão da potência consumida por todos os equipamento de TI e a potên-

cia consumida pelos equipamentos de rede. Na prática esta métrica é uma sub-divisão

mais granular da métrica PUE definida na Seção 2.4 enquanto a PUE trata da eficiência

energética de todo o datacenter o NPUE é focado nos equipamentos de rede.

O valor do NPUE vai de 1 a infinito, um NPUE de valor 1 significaria um cenário

em que toda potência está sendo usada pelos equipamentos de rede, nenhuma potência

consumida por servidores e storage. Um NPUE muito alto pode significar que o consumo

dos equipamentos de rede neste datacenter é desprezível se comparado com o consumo

dos servidores e storage. Um NPUE igual a 6, por exemplo, indica que a cada 6 watts de

potência dissipada pelos equipamentos de TI, 1 watt é dissipado pelos equipamentos de

rede.

3.2 Eficiência energética no plano de dados

Os estudos em eficiência energética de redes de computadores apresentam muitos

exemplos de algoritmos aplicados a redes sem fio definidas por software e mais recente-

mente, aplicados a SDN em DCN, provedores de cloud, 5G e edge-computing.

CAPÍTULO 3. ESTADO DA ARTE 31

3.2.1 Eficiência energética baseada em roteamento

Há mais de duas décadas, Heinzelman et al. (2000) apresentaram o algoritmo LEACH

(Low-Energy Adaptive Clustering Hierarchy), sendo um dos primeiros trabalhos a utilizar

técnicas de roteamento buscando a eficiência energética. O LEACH realiza um balance-

amento do uso de energia em nós de uma rede de sensores sem fio dividindo a rede em

clusters e alternando os heads de cada cluster, evitando que um único caminho consuma

toda a energia dos nós. Isto distribui a carga dos vários nós em vários caminhos que po-

dem ser usados pelos pacotes para alcançar a estação base. Hoje, este algoritmo ainda é

usado como benchmark por vários trabalhos que utilizam roteamento para economia de

energia. Variações desta estratégia são usadas para reduzir o consumo em redes SDN, já

que esta permite que as regras de roteamento sejam alteradas dinamicamente, usando a

capacidade de processamento do controlador e o contato com as aplicações na interface

northbound. A abordagem desta tese busca assim como Heinzelman et al. (2000) balan-

cear a carga entre os controladores de rede, porém, isto é feito em nível de processador

aproveitando os vários núcleos disponíveis nos processadores atuais.

O poder de processamento dos controladores e a programabilidade das SDN são ex-

plorados por (Aujla et al. 2018) para mudar as regras de roteamento de acordo com a

localização das aplicações dentro de um mesmo datacenter. Para isso, os autores utili-

zam informações das aplicações como deadline e demanda por recursos, que precisam

ser conhecidos antes da execução. A partir destas informações, um modelo é construído

para avaliar onde a tarefa deve ser alocada na DCN ou em um dispositivo de borda (edge-

computing). Aplicando o modelo, a solução é dividida em dois passos: (i) O modelo

migrará as tarefas das máquinas virtuais (VM) considerando os prazos e necessidade de

recursos; (ii) O controlador SDN decidirá o conjunto de rotas com a melhor eficiência

energética. A solução de agendamento energeticamente eficiente dos fluxos depende da

capacidade de processamento do controlador, o que implica em um aumento de consumo

deste. Porém, segundo os autores, a economia de energia no plano de dados compensa

CAPÍTULO 3. ESTADO DA ARTE 32

o consumo do controlador. Esta solução necessita de conhecimento completo de toda a

topologia da rede intra-DCN e dos dispositivos de borda (edge). Para diminuir esta limi-

tação, os autores utilizam vários controladores virtuais que tem conhecimento parcial da

rede e um controlador principal com conhecimento de toda a rede. Outra limitação desta

abordagem é a necessidade de conhecimento prévio das demandas e prazos das aplicações

em execução.

A solução apresentada no Capítulo 4 relaciona-se com esta por buscar redução de

consumo alterando o funcionamento do controlador. Considerando as limitações da rede

de datacenter como: garantias de deadline para entregas de pacotes e tolerância a falha.

Como apresentado anteriormente, a maioria dos trabalhos utiliza o plano de dados

como métrica para a melhoria do consumo de energia em SDN. Seguindo essa tendência,

Xu et al. (2017) observa o uso dos links do plano de dados como a métrica para seu

algoritmo de roteamento. Os autores observam que o consumo de energia em um switch

SDN não é proporcional ao tráfego, mas está relacionado ao número de portas ativas. A

solução busca então concentrar tráfego no menor número de links ativos, mantendo um

tempo máximo de entrega dos pacotes.

Nas redes SDN 5G, que incluem entre outras as redes com alto número de dispositivos

IoT, Fernández-Fernández et al. (2017) definem o problema de roteamento energetica-

mente eficiente como um problema NP-Hard, assim, o tempo de cálculo da solução ótima

cresce de maneira exponencial com o tamanho da rede. Para tratar este problema, os auto-

res propõem duas heurísticas, uma online e uma offline. A heurística offline, denominada

Static Network Configuration Algorithm (SNetCA) apresenta um modelo da rede com

controladores e switches como um grafo conexo com um número mínimo de links com

alguma redundância. A heurística online, denominada Dynamic Energy Saving Routing

Algorithm (DESRA), busca reduzir o número de links usados no encaminhamento dos

pacotes a medida que novos fluxos chegam à rede, assim quando um fluxo desconhecido

chega a um switch, o controlador buscará o caminho com o mínimo de links (reduzindo

CAPÍTULO 3. ESTADO DA ARTE 33

consumo) e definirá este caminho no switch para os próximos fluxos equivalentes.

Redes de sensores sem fio definidas por software (SDWSN) comumente apresentam

restrições de disponibilidade de energia devido à sua própria natureza e aplicações, em

especial, quando compostas de equipamentos que utilizam baterias. O trabalho de You-

nus et al. (2019) propõe um algoritmo para as SDWSN. O objetivo é aumentar o tempo

de vida da rede melhorando o atraso médio dos pacotes. O algoritmo Energy-Aware Soft-

ware Defined Network (EASDN) é dividido em três fases: (i) descoberta dos vizinhos,

através de um pacote HELLO em broadcast; (ii) cada nó envia aos vizinhos os seus da-

dos de status (bateria, localização, outros vizinhos) colhidos na fase 1; (iii) o controlador

define as tabelas de rotas mínimas de cada nó na rede. Durante a fase operacional, se o

controlador detecta que algum nó está com energia abaixo de um limiar, este gera uma

nova tabela que é repassada aos nós da rede. Essa abordagem concentra no controlador

único a gerência da rede e implica que este precisa de conhecimento prévio de toda a rede

para o funcionamento adequado.

Uma das abordagens mais recentes em eficiência energética para SDN é apresentada

em (Assefa & Ozkasap 2020). Neste trabalho, os autores apresentam uma nova métrica

para eficiência energética, denominada Ratio for Energy Saving in SDN (RESDN), que

considera o uso dos links no plano de dados em um intervalo de tempo definido. Assim,

a métrica permite identificar links subutilizados, com o objetivo de migrar os fluxos que

passariam por estes links para outros links, desligando os primeiros. Usando esta métrica,

os autores propõem o método Maximizing Ratio for Energy Saving in SDN (MaxRESDN),

buscando diminuir o número de saltos para desativar links e reduzir o consumo. O algo-

ritmo MAXRESDN é executado em um controlador único que precisa ter conhecimento

completo da topologia da rede.

No contexto desta tese os trabalhos de eficiência energética do plano de dados apontam

as limitações de soluções baseadas unicamente no plano de dados. No entanto, as técnicas

apresentadas nesta seção podem ser associadas às desenvolvidas em nossos experimentos,

CAPÍTULO 3. ESTADO DA ARTE 34

como indicado na no Capítulo 6.

3.2.2 Eficiência energética baseada em alocação de recursos

Uma estratégia diferente é usada por Son et al. (2017). Os autores usam a capacidade

de migração de máquinas virtuais e das Virtual Network Functions (VNF) para conso-

lidar tráfego em alguns switches, buscando desativar links pouco usados, diminuindo o

consumo e buscando minimizar possíveis violações do SLA. Diferente da abordagem de

Aujla et al. (2018), esta solução pode funcionar de forma online, inferindo a carga futura

a partir da informação disponível sobre a carga atual da rede. A estratégia é baseada na

interface northbound e considera que o controlador tem acesso a todas as informações de

recursos usados pelas aplicações em execução na DCN, e que estas podem ser movidas

para diferentes servidores físicos usando uma estratégia de sobre-alocação (overbooking).

Esta solução implica que o controlador esteja ativo e avaliando a demanda da rede cons-

tantemente, os autores não consideram esta demanda aumentada nos cálculos de consumo.

Um estratégia semelhante é usada por Zhao et al. (2018) para uma avaliação da aloca-

ção de máquinas virtuais em um ambiente de provedor de cloud computing. Este trabalho

relaciona-se com o nosso no sentido que um controlador de SDN pode ser implementado

totalmente em software em uma máquina virtual (VM - Virtual Machine). Portanto, as

técnicas apresentadas podem ser aplicadas a um controlador. A decisão de migração con-

sidera o aspecto do desempenho da máquina virtual. Os autores afirmam que este aspecto

é um dos principais na visão de qualidade de experiência (QoE) do usuário de serviços de

nuvem. Ao migrar VMs entre máquinas físicas os autores buscam diminuir o consumo

desligando máquinas físicas, ou colocando-as em modo de baixa energia.

Esse refinamento no consumo energético será feito, portanto, de forma a garantir o

desempenho para o usuário final. Os autores apresentam um novo modelo (não-linear) de

consumo de energia da máquina física (PM - Physical Machine). Também é desenvol-

vido um modelo de degradação de desempenho das VMs que compartilham uma mesma

CAPÍTULO 3. ESTADO DA ARTE 35

PM. O algoritmo denominado Power-aware and Performance-guaranteed Virtual Ma-

chine Placement (PPVMP), apresentado no trabalho, utiliza a heurística de colônia de

formigas para encontrar a melhor localização das VMs nas PMs disponíveis. O objetivo

do algoritmo apresentado é diminuir o consumo das máquinas físicas, enquanto garante o

desempenho esperado das VMs instanciadas. Como demonstração e avaliação, o trabalho

utiliza transcoding de vídeo em uma plataforma OpenStack.

3.3 Eficiência energética no plano de controle

O problema de alocação do controlador (CPP), discutido na Seção 2.3, vem sendo

tratado por vários trabalhos, os quais, em geral, buscam a localização ótima dos contro-

ladores na rede de modo a balancear requisitos como: tolerância a falha, latência, vazão,

tempo de recuperação entre falhas, menor consumo energético (Wang et al. 2017, Hu

et al. 2017, Killi & Rao 2016, Yao et al. 2014).

Apesar da maioria dos trabalhos buscarem avanços no sentido da latência e vazão,

há trabalhos cujo foco é também a eficiência energética. Um exemplo desta abordagem

é o trabalho de Hu et al. (2017), onde os autores utilizam a eficiência energética como

métrica para o CPP. O CPP é modelado como um Binary Integer Program (BIP) cujo

objetivo é minimizar o consumo de energia. Devido à complexidade computacional da

busca pela solução ótima, este modelo não é viável para redes grandes. Neste caso, uma

solução heurística é aplicada usando um algoritmo genético denominado Improved Ge-

netic Controller Placement Algorithm (IGCPA), que busca uma solução sub-ótima para

redes grandes. A combinação das duas soluções, BIP e IGCPA, determina a localização

dos controladores, e a abordagem GreCo (Ruiz-Rivera et al. 2015) é usada para associar

os switches aos controladores. Importante observar que BIP e IGCPA são estratégias

offline, já que ambos os algoritmos necessitam de conhecimento prévio da rede, dos con-

troladores e das aplicações que serão executadas para determinar a melhor localização

CAPÍTULO 3. ESTADO DA ARTE 36

dos controladores, visando a eficiência energética.

Um dos trabalhos relacionados a eficiência energética do plano de controle foi desen-

volvido por Chen et al. (2017). Neste trabalho, o objetivo geral é apresentar um algoritmo

online para o balanceamento dos controladores, minimizando o número de controladores.

O trabalho relaciona-se com o nosso no sentido que descreve um algoritmo de alocação

ótima dos controladores que leva em consideração a minimização do número de contro-

ladores, respeitando o tempo de resposta esperado. Os autores apresentam ainda uma

demonstração de que este é um problema NP-Hard e deve, para instâncias grandes do

problema, ser resolvido com uma heurística.

A prova de que o problema de localização de controlador é de fato NP-Hard é feita

através da comparação entre este e o problema da mochila (BPP - bin-packing problem).

Os autores atribuem a cada objeto do problema clássico do BPP, com peso W , um switch

com demanda de tráfego F . Cada mochila (bin no problema clássico) refere-se a um

controlador que pode receber um ou mais switches. Desse modo, o problema CPP é

análogo ao problema do BPP, e portanto no mínimo NP-Hard.

Os autores observam que é possível concentrar switches em um mesmo roteador bus-

cando desligar controladores, reduzindo o consumo no plano de controle. Esse ganho de

eficiência energética é obtido mantendo o tempo de resposta esperado, mas sacrificando

a resiliência da rede, já que menos controladores implica que uma falha afetará um bloco

maior da rede, enquanto nossa abordagem busca aumentar a resiliência junto com a efi-

ciência energética, mantendo o tempo de resposta definido. Ao introduzir mais de um

controlador multi-core é possível dividir a tarefa de encaminhamento de pacotes entre os

novos controladores, assim, em caso de falha o novo controlador poderá assumir a parte

da rede do controlador que falhou. Esta é a abordagem apresentada no Capítulo 5.

Para tratar o problema da alocação de maneira energeticamente eficiente Chen et al.

(2017) propõe um algoritmo que busca minimizar o número de controladores ativos em

função da fração de tráfego alocada a um determinado link entre switch e controlador.

CAPÍTULO 3. ESTADO DA ARTE 37

Há uma versão online e outra offline que se propõe a resolver de forma quase-ótima o

problema da alocação de controladores.

O sistema é dividido em 4 módulos: Measure, Monitor, Action e Distributed Control-

ler Plane. O módulo Distributed Controller Plane é formado pelo conjunto dos próprios

controladores. Os outros módulos são definidos como segue: (i) o módulo denominado

Monitor observa constantemente a demanda de tráfego observando as estatísticas de ba-

lanceamento de carga quando acionado; (ii) o módulo denominado Measure recebe os

dados do Monitor e toma decisões de ajustes para balancear a rede; (iii) o módulo Action

toma as ações necessárias a executar as decisões do Measure. Essas ações são novamente

reportadas ao Measure para que o novo estado da rede seja conhecido, e novas ações

sejam tomadas até que o estado alcançado seja o desejado por Measure.

Os resultados indicam que a variação no número de controladores tem impacto real

no consumo da rede. Este fato reforça a tese de que controladores distribuídos podem

ser importantes não apenas na tolerância a falhas, mas também na eficiência energética.

Os autores ainda apresentam um aumento do número de controladores de acordo com a

variação da demanda de fluxo de forma linear. Em nossas avaliações de controladores

distribuídos apresentadas no Capítulo 5 é possível observar que mesmo com o aumento

de controladores é possível obter melhoria da eficiência, se comparado ao cenário single-

core.

3.3.1 Plano de Controle distribuído e multi-domínio

Como já discutido na Seção 2.3, os controladores SDN representam pontos únicos de

falha em uma rede SDN. Uma solução poderia ser o uso de estratégias de replicação de

controladores para evitar a paralisação de blocos grandes das redes. Apesar da replicação

do controlador ser eficaz no quesito de backup, esta solução não é eficiente quanto ao

uso de recursos. Por isso, a estratégia distribuída apresenta-se como a mais aceita para

cenários de redes mais complexas.

CAPÍTULO 3. ESTADO DA ARTE 38

As implementações distribuídas são exploradas em (Wibowo et al. 2017). Neste traba-

lho, os autores justificam a implementação de controladores distribuídos em função de um

conjunto de requisitos que devem ser atendidos pelas redes SDN, são eles: escalabilidade,

localidade e confiabilidade, segurança e finalmente disponibilidade.

A primeira estratégia de escalabilidade usa apenas um único controlador, onde o foco

é reduzir o overhead associado ao controlador, transportando tarefas para o data-plane por

meio de switches stateful. Essa estratégia vai de encontro à característica de centralização

do controle da SDN.

A segunda estratégia de escalabilidade é relacionada à distribuição dos controladores.

Nesta estratégia, as soluções podem ser classificadas em duas categorias: replicadas e

distribuídas. Na solução distribuída, cada controlador fica responsável por uma parte da

rede, enquanto que na solução baseada no conceito de replicação, todos os controladores

precisam conhecer o estado total da rede. Portanto, a solução distribuída é capaz de en-

tregar mais robustez e desempenho que a replicada (Wibowo et al. 2017). Neste trabalho

a estratégia aplicada é distribuir partes da rede entre os controladores buscando diminuir

a comunicação entre eles como descrito no Capítulo 5.

No item localidade e confiabilidade, os autores afirmam que a localização de um ou

mais controladores deve ser definida considerando que esta escolha impacta no custo

da rede e em seu desempenho como um todo. Algumas métricas são importantes na

decisão da localização dos controladores: latência no caso médio e no pior caso, latência

inter-controladores e latência em caso de falha. A melhor localização busca aumentar

a confiabilidade e diminuir a latência controlador-switch. Alguns trabalhos modelam as

redes e apresentam algoritmos para determinar a melhor localização.

Em relação à segurança, os autores separam os ataques em três categorias: ataques à

camada de aplicação, à camada de encaminhamento e à camada de controle. São mencio-

nadas estratégias para mitigar os vários tipos de ataques, dentre elas: atribuição dinâmica

de controlador master, uso de cache nos switches e aggregation das regras, replicação dos

CAPÍTULO 3. ESTADO DA ARTE 39

controladores, entre outras.

As estratégias para aumentar a disponibilidade baseiam-se na capacidade de se recu-

perar de falhas. Uma dessas estratégias é permitir que um sistema em tempo de execução

monitore falhas de controladores e instancie um novo controlador em caso de falha. Em

cenários com multi-controladores é possível também realizar o balanceamento de carga.

Um detalhe a ser observado no balanceamento de carga é que a comunicação do estado de

carga de cada controlador (usando a interface East/Westbound) não deve consumir muito

da banda alocada para o plano de controle.

No cenário distribuído utilizado nesta tese, apresentado no Capítulo 5, utilizamos uma

implementação distribuída em que a comunicação East/Westbound é reduzida, uma vez

que, os controladores são responsáveis por partições distintas das redes.

3.4 Modelo energético

Em (Priyadarsini et al. 2018), os autores apresentam duas contribuições principais ao

problema da eficiência energética em redes SDN: (i) um modelo de consumo de energia

em SDN; (ii) um algoritmo denominado Efficient Routing Algorithm Selection (ERAS),

cujo objetivo é obter eficiência energética em SDN, selecionando entre 6 protocolos de

roteamento conhecidos, o mais eficiente em função do consumo geral da rede.

O modelo de consumo de energia de uma SDN proposto em (Priyadarsini et al. 2018)

considera a parcela de potência dissipada que é devida ao uso de CPU do controlador. A

potência integral da SDN é modelada por:

P =n

Âi=1

(k1i ⇤Pswi + k2i ⇤Pci + k3i ⇤LTi)+Plink. (3.3)

Essa equação pode ser dividida em 4 partes: (i) Pswi é a potência de cada switch i; (ii)

Pci é a potência de cada controlador i; (iii) LT é a latência total da rede e está relacionada

CAPÍTULO 3. ESTADO DA ARTE 40

ao tamanho das filas na rede; (iv) Plink modela a potência devida às portas dos switches e

controladores que estão ativos.

O foco do nosso trabalho está na equação que define o componente Pci, pois este des-

creve o consumo de energia do controlador. Esse componente é modelado pelas equações

Pci = b⇤PAC +(1�b)⇤PN

C (3.4)

onde b é uma variável binária sendo 1 quando o controlador está executando (awake),

ou 0 quando está inativo. O parâmetro PNC indica a potência consumida pelo controlador

(para detecção de pacotes) enquanto não é ativado por um controlador vizinho.

PAC = PSA +

n

Âi=1

Wi ⇤CPUutili + f (T )⇤Ps. (3.5)

O termo PAC (awake) contém a potência relacionada ao processamento necessário para

cada pacote, representado pelo parâmetro constante CPUutili, relacionado à natureza do

processador sendo usado. Este parâmetro é ponderado por Wi que varia de acordo com

o tipo de pacote e também em função de outras aplicações que estejam em execução no

controlador. O termo f (T ) é uma função que representa o número de pacotes que chegam

à interface do controlador no instante de tempo T . Finalmente, Ps representa a potência

consumida para detectar os pacotes (sensing energy).

3.4.1 O algoritmo ERAS (Efficient Routing Algorithm Selection)

A entrada do algoritmo é o modelo da rede e duas pilhas de protocolos de roteamento,

uma com protocolos de roteamento hierárquico: Leach (Heinzelman et al. 2000), Teen

(Manjeshwar & Agrawal 2002) e Apteen (Manjeshwar & Agrawal n.d.), e uma segunda

usando protocolos híbridos: EIGRP, CEDAR (IETF, 1998) e ZRP (IETF, 1997). A partir

dessas entradas o algoritmo ERAS retorna o melhor protocolo, o consumo de energia dos

CAPÍTULO 3. ESTADO DA ARTE 41

controladores (Pci) e dos links (Plink).

Importante notar que este trabalho atua de forma offline, avaliando toda a topologia

da rede apresentada e definindo, segundo o modelo, qual o algoritmo de roteamento mais

eficiente quanto ao consumo de energia. Por outro lado, a abordagem apresentada nesta

tese busca obter eficiência energética independente da topologia da rede, podendo ser

implementado de forma online.

3.5 Soluções comerciais

Em publicação recente (Ferguson et al. 2021), Google apresentou uma visão geral do

plano de controle denominado Orion em sua WANSDN B4 nos datacenters Jupiter usados

globalmente pela companhia. Cada instância do Orion executa em um equipamento servi-

dor de até 23 núcleos com 24 GB de memória. Cada datacenter Jupiter executa múltiplas

instâncias do Orion para o controle da rede.

A solução de SDN da CISCO descrita em (Cisco 2021) utiliza o controlador virtual

Application Policy Infrastructure Controller (APIC). Por ser um controlador virtual, ele

pode ser comercializado em um equipamento da CISCO ou pode ser instanciado em um

provedor de nuvem como Amazon ou Azure. O hardware necessário é equivalente ao

utilizado em uma instância do controlador Orion, em uma plataforma de servidor comum.

A empresa disponibiliza duas configurações L3 e M3, que utilizam processadores Xeon

de 1.7 GHz a 2.1 GHz, sempre em configurações redundantes de múltiplos controladores.

Esses produtos comerciais usam as plataformas equivalentes às aplicadas nos expe-

rimentos apresentados nos Capítulos 4 e 5, o que indica que os resultados obtidos nesta

tese podem ser expandidos para redes de maior porte.

CAPÍTULO 3. ESTADO DA ARTE 42

3.6 Resumo

Neste capítulo foi apresentada uma revisão dos principais trabalhos no contexto da efi-

ciência energética para SDN em DCN. Muitos trabalhos buscam aplicar técnicas conhe-

cidas das redes tradicionais (Fernández-Fernández et al. 2017, Younus et al. 2019, Assefa

& Ozkasap 2020) , e conseguem obter resultados interessantes. Porém, com a capacidade

de adaptação das SDN é possível mudar dinamicamente o comportamento da rede e tra-

balhos como (Priyadarsini et al. 2018, Aujla et al. 2018) exploram esta capacidade para

alternar entre os melhores algoritmos de roteamento para cada cenário.

Foram apresentadas as métricas de eficiência energética NPUE e CNEE utilizadas

especificamente para medir eficiência em redes de datacenter. Apesar de pouco explorada,

a eficiência energética do plano de controle também é foco de alguns trabalhos, como em

(Hu et al. 2017, Chen et al. 2017). Por fim, soluções de SDN comerciais e de larga escala

foram brevemente apresentadas.

A seguir, apresentamos a Tabela 3.1 que resume um comparativo entre os principais

trabalhos atuais da literatura quanto à eficiência energética em SDNs.

Tabela 3.1: Posicionamento da nossa proposta

Autores A B C D E Estratégia(Aujla et al. 2018) 7 3 7 3 7 Balanceamento(Xu et al. 2017) 7 7 3 7 7 Agendamento(Fernández-Fernández et al. 2017) 7 3 7 3 7 Roteamento(Younus et al. 2019) 7 3 3 7 7 Roteamento(Assefa & Ozkasap 2020) 7 3 7 3 7 Roteamento(Son et al. 2017) 7 7 7 3 7 Migração de tarefas(Zhao et al. 2018) 3 7 3 3 7 Migração de tarefas(Hu et al. 2017) 3 3 3 3 7 Balanceamento(Chen et al. 2017) 3 3 3 3 7 Balanceamento(Priyadarsini et al. 2018) 7 3 3 3 7 RoteamentoNossa proposta 3 3 3 3 3 Paralelismo

A=Eficiência no control-plane; B=Tolerância a falhas;C=Energia do Controlador; D=Multi-Controlador;E=Topologia Parcial.

As características apresentadas na Tabela 3.1 buscam orientar a comparação dos tra-

CAPÍTULO 3. ESTADO DA ARTE 43

balhos com esta tese segundo os seguintes critérios:

• (A) Eficiência no control-plane: O trabalho apresenta alguma melhora na eficiência

energética no plano de controle da SDN;

• (B) Tolerância a falhas: O trabalho permite que mais de um controlador esteja

disponível para o caso de falha de um ou mais controladores outro possa assumir,

evitando o ponto único de falha;

• (C) Energia do Controlador: O trabalho considera o consumo dos controladores do

plano de controle no cálculo de eficiência;

• (D) Multi-Controlador: O trabalho permite que mais de um controlador execute a

solução de maneira distribuída ou replicada;

• (E) Topologia Parcial: O trabalho permite que os controladores da rede tenham

apenas uma visão parcial da rede, não necessitando de conhecimento de todos os

links e dispositivos da rede.

Ao utilizar o processamento paralelo é possível reduzir a frequência de operação dos

núcleos para o cenário de um controlador multi-core ou múltiplos controladores multi-

core. Essa alternativa também preenche uma lacuna na pesquisa de controladores SDN

energeticamente eficientes em que o controlador não precisa necessariamente ter conhe-

cimento de toda a topologia previamente para obter ganhos de eficiência energética.

Importante notar que o trabalho de Hu et al. (2017) é aplicável apenas a redes que já se

conhece o padrão de tráfego e topologia previamente, já que este é executado offline. Além

disso, o trabalho de Chen et al. (2017), descrito na Seção 3.3, busca diminuir ao máximo

o número de controladores, o que diminui também a tolerância a falhas. Porém, nossa

proposta considera que um número maior de controladores operando em uma frequência

mais baixa pode ser energeticamente mais eficiente, aumentando a tolerância a falhas e

mantendo o SLA definido, conforme demonstrado nos Capítulos 4 e 5.

Capítulo 4

Experimentos em um controlador SDN

multicore

Neste capítulo é apresentado o método proposto de paralelismo no controlador SDN.

O modelo Dispatcher and Workers (Tanenbaum & Bos 2014) discutido na seção 2.5 é

implementado em um controlador Ryu e seu desempenho é aferido usando diferentes

métricas: vazão (throughput) e latência. Um avaliação do consumo energético dos mo-

delos single-core e multi-core é apresentada, demonstrando melhor eficiência do modelo

paralelo com diminuição da frequência de operação.

4.1 Controladores SDN paralelos

Como descrito na Seção 1.1, redes definidas por software são compostas minima-

mente por uma camada de controle (plano de controle) e uma camada de encaminha-

mento de dados (plano de dados). A camada de controle é responsável por muitas ativi-

dades paralelas relacionadas a decisões de encaminhamento, mas também a novas fun-

ções de rede, como: segurança, contabilidade, alocação de recursos, entre outras. Mui-

tos controladores existem no mercado (Kreutz et al. 2015), alguns de código proprietá-

rio como (Cisco 2021, Ferguson et al. 2021), outros baseados em código aberto como

(Ryu 2021a, ONF 2021, ODL 2021).

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 45

Para os experimentos aqui descritos, foi selecionado o controlador Ryu (Ryu 2021a).

Essa escolha é baseada nos critérios apresentados na Tabela 4.1. O primeiro critério foi a

seleção de controladores de código aberto, de modo que fosse possível analisar a imple-

mentação de paralelismo nestes. Apesar de vários controladores terem seu código aberto,

nem todos oferecem uma documentação clara e abrangente da implementação, focando

mais em tutoriais de uso ou descrições de funcionalidades, como é o caso do Pox e do

Cisco ACI. Também foi considerado importante que o controlador estivesse ativamente

em desenvolvimento e em atualização contínua, o que excluiu o controlador Nox, cuja

última atualização ocorreu em 2014, sendo posteriormente substituído pelo Pox. Como

último critério, buscou-se um controlador modular com o mínimo de funcionalidades

obrigatórias, ou seja, de baixa complexidade para que fosse possível avaliar em detalhes

o funcionamento interno do controlador.

Tabela 4.1: Comparação de controladores SDN

CódigoAberto Documentação Última

Atualização Complexidade Linguagem

Onos Sim Abrangente 2021 Alta JavaNox Sim Abrangente 2014 Baixa C++Pox Sim Limitada 2020 Baixa PythonOpenDayLight Sim Abrangente 2021 Alta JavaRyu Sim Abrangente 2021 Baixa PythonCisco ACI Não Limitada 2021 Alta N/A

Ryu é um framework escrito em Python, modular, que implementa uma camada de

abstração para o protocolo Openflow. O framework oferece um módulo central (ryu-

manager) e aplicações podem ser executadas por este. Exemplos de aplicações incluem:

switch layer 2, monitor de rede, provedor de uma API REST, entre outras. Assim, o

administrador de rede pode carregar apenas a aplicação necessária ao cenário em uso.

Uma aplicação comum estende a classe RyuApplication e implementa métodos para tratar

eventos como: o cadastro de um novo switch, a chegada de um pacote ao controlador,

mudanças de topologia, entre outros.

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 46

4.2 Método proposto de Paralelismo no controlador Ryu

Segundo (Ryu 2021b), as aplicações são single-thread apesar do framework ser multi-

threaded, usando para isso Greenlet Event Lib (GEvent 2021) que permite programação

concorrente intra-processo. Apesar de ser efetiva para o tratamento de eventos paralelos

pertencentes à mesma aplicação, essa implementação limita o uso de múltiplos processa-

dores pela natureza das threads leves. Outra limitação deste modelo está no interpretador

da linguagem Python; a versão oficial do Python inclui um mecanismo de controle de

concorrência que permite o fácil isolamento de threads, mas com o contraponto de blo-

quear acessos de outras threads que poderiam executar em paralelo. Este controle do

interpretador Python, chamado de Global Interpreter Lock (GIL), oferece simplicidade

no desenvolvimento, mas cria um mutex que restringe a apenas uma thread em execução

a cada instante de tempo, o que é muito prejudicial para tarefas paralelas associadas a

múltiplos núcleos de processamento.

A documentação oficial apresenta diferentes implementações da linguagem Python

(Python 2021b). Várias implementações existem com objetivos variados, buscando pa-

ralelismo (Python 2021), velocidade (Pypy 2021) ou uso em sistemas com restrições de

recursos como os sistemas embarcados (CircuitPython 2021). Nem todas as implemen-

tações suportam todo o conjunto de instruções da implementação de referência chamada

de CPython. Como Jython e IronPython são implementações sobre outras plataformas,

Java e .Net respectivamente, o objetivo destas não está no desempenho ou economia de

recursos, mas na facilidade para os desenvolvedores e integração com as outras platafor-

mas. Entre as alternativas a Pypy é conhecida por seus ganhos de velocidade, por usar um

compilador do tipo just-in-time (JIT). Durante os teste realizados o uso do Pypy exigiria

uma reimplementação de muitas partes do núcleo do framework Ryu o que foge ao escopo

deste trabalho.

Para evitar o mutex do GIL uma estratégia é substituir a implementação multi-thread

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 47

por uma multi-processos. Com o uso de multi-processos uma aplicação Python (neste

caso uma aplicação Ryu) dispara múltiplos processos concorrentes e cada processo en-

tão poderá ser alocado a um núcleo de processamento, de acordo com o escalonador do

sistema operacional em execução. Essa foi a estratégia usada para garantir que o con-

trolador Ryu utilizasse ao máximo a capacidade de paralelização do hardware usado no

experimento.

Uma nova versão da aplicação de exemplo que acompanha o Ryu chamada sim-

ple_switch_13 foi implementada usando o mecanismo multi-processos com a biblioteca

multiprocesing (Python 2021a) da linguagem Python, de forma a garantir que múltiplos

processos filhos pudessem utilizar os vários núcleos de processamento disponíveis. A

Figura 4.1 ilustra um comparativo da versão original e da nova versão.

No tipo (A), foi utilizada a biblioteca disponibilizada pelo controlador Ryu, baseada

em greenThreads e eventlets. A vantagem desta abordagem é sua facilidade de implemen-

tação já que o framewrok Ryu disponibiliza métodos diretos para a criação de threads de

usuário. Porém, como o Sistema Operacional não tem controle sobre estas threads, o

escalonamento entre os diferentes núcleos fica prejudicado.

No tipo (B), a biblioteca multiprocessing do Python foi utilizada para permitir a cri-

ação de processos separados a partir do controlador Ryu. Apesar de incluir o overhead

das trocas de contexto, essa abordagem permite o uso dos N núcleos disponíveis, es-

calonando segundo a política do Sistema Operacional. Nesta versão, apenas o próprio

framework Ryu passa a ser um gargalo na distribuição das tarefas. Este gargalo foi con-

tornado dividindo tarefas de cada pacote de rede entre os vários processos criados no

início da aplicação.

O Algoritmo 4 apresenta a implementação padrão de um switch Ryu, enquanto o

Algoritmo 5 apresenta a implementação multi-processos. Apesar do controlador Ryu

utilizar várias threads internamente para leitura e processamento de pacotes quando um

pacote chega e precisa ser tratado, como na função encontraRota(), apenas um núcleo

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 48

RYU

O.S.

RYU

O.S.

Process Thread

(A) (B)

Figura 4.1: (A)Implementação original (B)Implementação Ryu multi-core

de processamento será usado, o que implica em um gargalo caso esta função tome muito

tempo de CPU. Na nova implementação, o processo pai recebe um novo pacote e delega o

processamento para um dos processos filhos, que pode estar executando em outro núcleo,

o processo pai fica livre para obter mais pacotes da interface de rede e distribuí-los aos

vários processos filhos distribuídos nos vários núcleos, como ilustrado na Figura 2.5.

Importante notar que o centro das operações a ser executadas para cada pacote (re-

presentado pelas funções encontraRota() e outrasOperações()) são executadas pelos pro-

cessos Workers desde a escolha das rotas até o envio final da instrução de configuração

OpenFlow para o switch em questão.

Algoritmo 4: Switch Single Ryu1 function Main:2 while controladorLigado() do3 obtemPacote;

/* Bloqueia o controlador até finalizar processamentodeste pacote */

4 encontraRota();5 outrasOperações();6 aguardarNovoPacote();7 end8 return

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 49

Algoritmo 5: Switch Multicore Ryu1 def processoFilho(pacote):2 while controladorLigado() do3 obtemPacote;4 encontraRota();5 outrasOperações();6 end

7 function Main:8 criarProcessoPai();9 i � 0 ;

10 while i < Número de Núcleos do11 criarProcessoFilho(i);12 i++;13 end14 while controladorLigado do15 aguardarNovoPacote();16 selecionarProcessoFilho;

/* libera o processo pai (dispatcher) para obter opróximo pacote */

17 copiarPacoteParaProcessoFilho();18 end19 return

4.3 Controle da frequência de operação

Em sistema Linux, a frequência de operação dos núcleos de processamento pode ser

ajustada individualmente utilizando ferramentas como o cpupower (CPUPower 2021). O

processador (Intel Xeon E31220 ) utilizado nos experimentos, apresentados aqui, permite

frequências que variam de 1.6 GHz a 3.0 GHz. O ajuste de frequência dos núcleos pode

ser definido de forma automática utilizando os cpu-governors. Esses reguladores definem

o modo de operação e o balanceamento entre performance e consumo (Linux 2021b).

O kernel Linux oferece quatro reguladores padrão: userspace, performance, schedutil e

ondemand.

O performance ajusta as frequência ao valor máximo de operação disponível, indepen-

dente de fatores externos como a demanda ou a ociosidade. É uma política que compro-

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 50

mete o consumo em função de uma garantia de entrega de performance máxima constante.

O schedutil utiliza informações do escalonador do kernel para medir a carga atual

do sistema como um todo e ajustar a frequência de operação em linha com a demanda.

Assim o schedutil age em reação ao aumento ou diminuição da carga no sistema, aumen-

tando a frequência de operação em sistema com uma carga alta e diminuindo a frequência

quando o sistema está mais ocioso, economizando energia nestes momentos. Este re-

gulador também pode aumentar a frequência de operação de núcleos em que estejam

executando processos que passaram muito tempo bloqueados aguardando operações de

entrada e saída.

O terceiro modelo, denominado onDemand, usa dados obtidos de seu próprio contexto

(não vindos do kernel) para estimar a carga à qual a CPU está submetida. Um processo

leve é invocado a cada 10 ms para computar o tempo que a CPU ficou ociosa desde a

última execução. Essa métrica é então usada para calcular a frequência adequada para a

CPU nos próximos milissegundos.

O último modelo, denominado userSpace, permite que um usuário administrador

ajuste a frequência individual dos núcleos manualmente para um valor estático; este foi

o regulador utilizado nos experimentos de modo a ter controle preciso da frequência de

operação.

Além da frequência de operação, é possível desativar os núcleos de processamento

em tempo de execução utlizando o subsistema do kernel conhecido como CPU Hotplug

(Linux 2021a). O controle dos núcleos em execução é feito através de uma interface sysfs

em /sys/devices/system/cpu.

4.4 Métodos de medição de consumo do processador

O consumo de energia em processadores modernos passou a ter grande importância

com o aumento do número destes equipamentos em grandes datacenters. Assim, fabri-

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 51

cantes de processadores incluíram em seus chips sensores e métricas específicos para a

medição dessa grandeza. Os processadores Intel de famílias posteriores à Sandybridge

incluem um conjunto de registradores model specific registers (MSR) capazes de arma-

zenar informação sobre o consumo do núcleo de processamento (core), do processador

como um todo (package) e do acesso à memória (DRAM). Esses registradores, em pro-

cessadores Intel, fazem parte de uma interface conhecida como Running Average Power

Limit (RAPL) . Essa funcionalidade também está presente em processadores AMD, mas

até o momento é pouco consistente, como aponta (Weaver 2015). As avaliações aqui

apresentadas ocorrem em processadores com suporte a Intel RAPL.

4.4.1 Turbostat

Um dos softwares utilizados na medição de consumo de aplicações em ambiente Li-

nux é o Turbostat (Linux 2021c). Este software, desenvolvido e disponibilizado no kernel

Linux, permite obter informações de tecnologia, frequência e estatísticas de consumo de

processadores x86. O software pode ser usado para medir o consumo de um determinado

software ou medir o status do sistema, a cada intervalo de tempo.

Para apresentar as informações de consumo, o turbostat precisa de acesso aos regis-

tradores específicos do processador (MSR). Para acesso a esses registradores é necessário

utilizar o módulo msr1 do kernel linux. O módulo msr permite acesso a informações espe-

cíficas do modelo do processador através de arquivos especiais disponibilizados na pasta

/dev/cpu/[numero]/msr.

4.4.2 Interface sysfs do Kernel Linux

Por ser uma ferramenta de fácil utilização, o Turbostat é útil em uma avaliação pre-

liminar do consumo do processador em diferentes cenários de carga e frequência. Para1usando o comando insmod msr

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 52

medições mais frequentes e precisas e para ser possível utilizar como uma interface direta

com os dados de consumo nos experimentos, optou-se por acessar os dados diretamente

da interface sysfs do kernel Linux.

As medições de consumo para os experimentos com um controlador multi-core são

feitas diretamente da interface, do tipo ramfs, conhecida como sysfs do kernel Linux dis-

ponível em: /sys/class/powercap/intel-rapl. Este diretório é uma interface para a estrutura

RAPL do processador, e apresenta, no arquivo energy_uj, o consumo acumulado de cada

processador em µJoules.

4.5 Erro em medições

Os resultados apresentados nas Seções 4.6.1, 4.6.2 e 5.5.1 foram obtidos através da

interface sysfs para o Intel RAPL. O uso desta interface permite a realização de leituras

sequenciais muito rapidamente já que o sysfs é um RAMFS, um sistema de arquivos virtual

que reside em memória de trabalho.

Apesar da interface RAPL apresentar uma resolução em µJoules, as operações neces-

sárias para a leitura deste dado presente no processador consomem tempo, o que implica

na inserção de um erro no tempo de amostragem.

Os registradores MSR do RAPL "report the actual energy use for the respective power

plane domains. These MSRs are updated every 1msec."(Intel 2019b). O que em teoria

permitiria medições precisas na faixa dos milissegundos. No entanto como apresentado

no Algoritmo 6 as operações de leitura e registro não são atômicas tampouco podem ser

consideradas instantâneas.

No 6 a instrução leituraSysfs() na verdade é divida em um conjunto de chamadas ao

Sistema Operacional que permitem a leitura e cópia do valor do registrador MSR do Intel

RAPL (representado pelo arquivo energy_uj) para uma variável do programa, esse tempo

de execução atrasa a leitura em frações de segundo.

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 53

A segunda linha, comando sleep, é uma chamada ao Sistema Operacional que coloca

o processo em estado de suspensão por pelo menos 1 segundo. Esse estado pode ser um

pouco maior considerando o tempo para processar a chamada ao Sistema Operacional ou

pelo próprio scheduler.

Ao executar a segunda leitura, presumivelmente 1 segundo após a primeira, subtraí-

mos as leituras e obtemos o resultado da medição de consumo na amostragem de 1 se-

gundo. Porém, esse resultado será adicionado dos erros de tempo de leitura e cópia men-

cionados anteriormente, além do possível erro de tempo comando usleep.

Algoritmo 6: Leitura de Energia RAPL Sysfs1 abrirArquivoSysfs();2 while TRUE do3 start = leituraSysfs();4 usleep(1)5 end = leituraSysfs();6 print(end - start);7 end

Para avaliar o impacto deste erro de tempo de amostragem, inserido pelos tempos de

execução das instruções experimentos foram realizados onde mede-se o tempo decorrido

entre a primeira leitura e a segunda leitura. Desse modo o erro será a diferença entre o

tempo pretendido, 1 segundo, e o tempo medido.

A Figura 4.2 apresenta os valores de tempo real obtidos neste experimento, percebe-se

que o erro no tempo será sempre adicional pois este corresponde aos tempos de execução

das instruções. O gráfico permite observar que o erro varia não uniformemente, mas está

limitado a uma região pequena, entre 1,000097769 e 1,000183288.

Um resumo das informações da amostragem está na Tabela 4.2. O valor máximo da

amostragem 1,000183288 representa um erro de 0,018% e o valor médio do tempo de

amostragem real é de 1,00015700 o que representa um erro de 0,016% se comparados ao

valor esperado de amostragem de 1 segundo. Desse modo, o erro inserido pelo método

de medição pode ser considerado aceitável para os cenários usados nos experimentos.

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 54

0.99999

1.00004

1.00009

1.00014

1.00019

1.000241 13 25 37 49 61 73 85 97 109

121

133

145

157

169

181

193

205

217

229

241

253

265

277

289

301

313

325

337

349

361

373

385

397

409

421

433

445

457

469

481

493

505

517

529

541

553

565

577

589

601

Tempo Real de Cada Amostra

Máximo

Tempo Real

Mínimo

1 segundo

Figura 4.2: Tempo real da amostragem

Tabela 4.2: Resumo dos tempos reais de amostragem

Mínimo Médio Máximo Variância1,000097769 1,000156996 1,000183288 0,43*10�10

4.6 Experimentos

Nesta seção, um conjunto de experimentos são apresentados de forma a se avaliar

o consumo de um processador multi-core que executa o controlador SDN desenvolvido

conforme descrito no Algoritmo 5. Para avaliar este consumo, o controlador é colocado

em cenários de alta demanda de rede com diferentes tipos de padrão de tráfego.

Todos os experimentos desta seção foram conduzidos utilizando dois hosts físicos co-

nectados por um cabo Ethernet categoria 5e 1000baseT-FD. O servidor é um Dell Powe-

rEdge R230 (Figura 4.3) equipado com um processador Intel Xeon E31220 quad-core,

enquanto o cliente é um notebook Dell Inspiron com um processador Intel T6670 Core2

Duo (Figura 4.4).

Todos os hosts físicos executam o Sistema Operacional Debian 9.0. A Figura 4.5

ilustra o hardware e o diagrama de conexão física dos equipamentos físicos.

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 55

Figura 4.3: Servidor Dell PowerEdge R230 instalado no rack

Os padrões de tráfego de rede mudam durante o dia e durante a semana, essas mudan-

ças são fortemente relacionadas com a demanda dos usuários finais das aplicações. Parte

do tráfego em uma DCN ocorre entre elementos internos ao datacenter este é o tráfego

intra-datacenter. Como apresentado por (Popoola & Pranggono 2018), nos últimos anos

há um crescimento acelerado no tráfego intra-datacenter, devido ao uso de micro-serviços

e virtualização de aplicações e por redes permitirem dividir demandas entre vários equi-

pamentos diferentes, aumentando a resiliência das aplicações. Assim, podemos dividir

o tráfego em duas categorias: (i) vários hosts na mesma rede com requisições do tipo

request-response. Neste trabalho, este tipo de tráfego foi simulado considerando um ce-

nário de avaliação de desempenho orientado a latência limite, descrito na Seção 4.6.2;

ou (ii) grandes blocos de dados transferidos de, ou para equipamentos de armazenamento

(NAS) Network Attached Storage. Este tipo de tráfego foi simulado aqui considerando um

cenário de avaliação de desempenho orientado a alta vazão constante, descrito na Seção

4.6.1.

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 56

Figura 4.4: Notebook Inspiron

4.6.1 Cenário 1: Vazão constante

No primeiro cenário, o controlador multi-core implementado foi colocado sob cons-

tante fluxo de pacotes, gerando uma carga de processamento aproximadamente constante.

O utilitário Iperf (Iperf3 2021) foi usado para criar o tráfego constante na rede, simulando

aplicações que exigem grandes transferências de arquivos, como streamings de vídeo. O

Iperf foi selecionado como gerador do tráfego por ser amplamente utilizado para medi-

ções de vazão de rede, e também por ser considerado um bom modelo na avaliação de

desempenho de redes (Li et al. 2014, Najm et al. 2017, Sahay et al. 2017), mesmo em

cenários de redes definidas por software (Li et al. 2014).

O Mininet (Lantz et al. 2010) é uma biblioteca e um conjunto de utilitários para si-

mulação de SDN que utiliza dos control groups do kernel Linux. O funcionamento desta

ferramenta assemelha-se aos dos contêineres. O Mininet é amplamente utilizado tanto na

indústria como na academia por ser capaz de simular os componentes básicos da SDN

(hosts, vswitch e controladores) a Figura 4.6 apresenta seu uso como simulador simples

de uma rede linear de 6 hosts e 2 switches. Nesta tese o Mininet foi usado como biblioteca

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 57

Framework RYU

Kernel Linux

Mininet

ControladorMulti-core

Open Virtual Switch Hosts

Kernel Linux

Host Servidor(Controlador SDN) Host Cliente (vSwitches e end-hosts)

Ethernet 1000baseT-FD

Figura 4.5: Diagrama de blocos dos experimento multi-core.

Python para melhor controle da simulação.

Figura 4.6: Interface Mininet rede simples

O controlador utilizado, baseado no Ryu e apresentado na Seção 4.2, foi executado

no servidor (Dell R230), enquanto os switches SDN (vSwitch) e os hosts finais da rede

foram simulados no computador cliente (Dell Inspiron), utilizando o Mininet (Lantz et al.

2010). As medições de consumo foram realizadas no controlador isoladamente dos outros

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 58

elementos da rede simulada.

As medições foram realizada em diferentes níveis de carga da rede, a primeira delas a

30 Mbps por um período de 600 segundos. O mesmo experimento foi realizado para 1, 2,

3 e 4 núcleos. A versão single-core mantém um consumo médio de 10,2 W enquanto as

versões multi-core tem em média 7,1 W. Na Figura 4.7, o consumo2 apresentado a cada

segundo corresponde ao valor medido durante o intervalo de tempo anterior, constante,

com 1 segundo de duração, através da interface RAPL do sysfs descrita na Seção 4.4.

4.0

5.0

6.0

7.0

8.0

9.0

10.0

11.0

2 20 38 56 74 92 110

128

146

164

182

200

218

236

254

272

290

308

326

344

362

380

398

416

434

452

470

488

506

524

542

560

578

596

Potê

ncia

Méd

ia (W

)

Tempo (s)

Consumo para vazão de 30 Mbps

1 Core a 3.0 GHz

2 Cores a 1.9 GHz

3 Cores a 1.6 GHz

4 Cores a 1.6 GHz

Figura 4.7: Potência Média, para diferentes números de núcleos com tráfego de redeconstante a 30 Mbps.

Pode-se observar que o consumo é praticamente constante, associado à demanda ge-

rada pela carga de tráfego também constante. Os pequenos vales presentes indicam mo-

mentos em que o processador ficou ocioso, aguardando por atividades de entrada e saída.

Outros dois experimentos foram executados aumentando-se a carga no controlador

para: 40 Mbps, com resultado ilustrado na Figura 4.8 e 50 Mbps, com resultado ilustrado

na Figura 4.9. Nestes dois experimentos, apenas instâncias de 2, 3 e 4 cores foram uti-

lizadas, pois a instância single-core não alcançou a vazão mínima mesmo na frequência

mais alta disponível (3 GHz).2Neste caso em que o intervalo de medição utilizado é constante, com um segundo de duração, o valor

de energia medido em Joules, obtido do sysfs, é equivalente a potência-média dissipada em Watts.

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 59

4.0

5.0

6.0

7.0

8.0

9.0

10.0

11.0

2 20 38 56 74 92 110

128

146

164

182

200

218

236

254

272

290

308

326

344

362

380

398

416

434

452

470

488

506

524

542

560

578

596

Potê

ncia

Méd

ia (W

)

Tempo (s)

Consumo para vazão de 40 Mbps

2 Cores a 2.5 GHz

3 Cores a 1.9 GHz

4 Cores a 1.9 GHz

Figura 4.8: Potência Média, para diferentes números de núcleos com tráfego de redeconstante a 40 Mbps.

O valor médio medido no experimento de 40 Mbps, ilustrado pela Figura 4.8, foi de

9,67 W usando 2 núcleos operando em uma frequência 2,4 GHz. O consumo cai para

8,09 W usando 3 núcleos com frequência de operação de 1,9 GHz. Outro fato importante

é que os vales discutidos anteriormente são menos frequentes nas situações de vazão

maior, o que significa que o processador esteve menos tempo ocioso, o que aumenta o

consumo total.

4.0

5.0

6.0

7.0

8.0

9.0

10.0

11.0

12.0

13.0

14.0

2 20 38 56 74 92 110

128

146

164

182

200

218

236

254

272

290

308

326

344

362

380

398

416

434

452

470

488

506

524

542

560

578

596

Potê

ncia

Méd

ia (W

)

Tempo (s)

Consumo para vazão de 50 Mbps

2 Cores a 3.0 GHz

3 Cores a 2.4 GHz

4 Cores a 2.4 GHz

Figura 4.9: Potência Média, para diferentes números de núcleos com tráfego de redeconstante a 50 Mbps.

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 60

A métrica CNEE definida na Seção 3.1 - Equação (3.1) apresenta a energia consumida

por todos os equipamentos de rede para entregar um único bit de dados. Como o foco dos

experimentos desta tese é o impacto do processamento nos controladores SDN, a Figura

4.10 ilustra uma variação da métrica CNEE, mais granular, que exibe a energia consumida

exclusivamente no processamento de um único bit de dados nos controladores para os

diferentes cenários.

0.000

0.020

0.040

0.060

0.080

0.100

0.120

0.140

0.160

0.180

30Mbps 40Mbps 50Mbps

µJou

le/b

it

Eficiência energética do processamento de rede

1 Core2 Cores

3 Cores4 Cores

Figura 4.10: Eficiência Energética do processamento de um bit nas várias configuraçõesmulticore

Pode-se observar que para um SLA fixo de 30 Mbps, o cenário single-core consome

muito mais energia por bit transportado do que os cenários multi-core. Por outro lado, há

limitações no quanto a eficiência energética pode ser melhorada aumentando-se a parale-

lização da execução de uma aplicação e diminuindo-se a frequência de operação (Barros

et al. 2015). Este ganho está intimamente ligado ao tamanho da parcela serial da aplicação

usada no controlador, conforme enunciado pela lei de Amdahl (Seção 2.5).

4.6.2 Cenário 2: Latência limite

O segundo cenário utiliza o mesmo hardware descrito na Seção 4.6, ilustrado na Fi-

gura 4.5, porém para uma rede com 30 hosts divididos em 2 vSwitches. Para simular um

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 61

tráfego como o caracterizado por pequenos pacotes de request-response, foi utilizado o

protocolo ICMP com echo requests, observando o comportamento do consumo do pro-

cessador em uma rede com muitas requisições e respostas simultâneas, mas com pacotes

menores que os gerados pelo simulador Iperf. Cada host envia requisições a todos os

outros hosts. Este procedimento é repetido 100 vezes, com o tempo de resposta (latência)

médio sendo calculado.

Para executar este experimento a função pingFull do simulador Mininet foi alterada

para permitir a parametrização do número de requisições. Internamente, o Mininet em-

prega o utilitário nativo ping. As alterações permitiram parametrizar quantos pacotes

seriam enviados, além de permitir o uso do ping no modo flood. Neste modo, o utilitário

emite as requisições tão rápido quanto possível, sem esperar a resposta de uma requisição

para enviar a próxima. O experimento foi então realizado no modo ping flood com 100

medições para cada par dos 30 hosts na rede, e nas várias configurações de número de

núcleos e frequências de operação disponíveis no servidor Dell R230.

O objetivo deste cenário é observar o comportamento do consumo do processador em

uma rede com muitas requisições e respostas, mas com pacotes pequenos. Cada host en-

via 100 pacotes e aguarda a resposta de cada um dos outros 29 hosts da rede. Importante

notar que a resposta pode ser enviada em um tempo arbitrário, que depende da capaci-

dade do host de destino de responder de acordo com a disponibilidade dos seus recursos,

simulando assim um tráfego intra-datacenter entre aplicações independentes.

Para definir o comportamento mínimo esperado da rede durante a redução de frequên-

cia com aumento do número de núcleos de processamento, foram definidas duas linhas

limite para a latência média medida. Essas linhas limites comportam-se como SLA de

latência para os experimentos, limitando a redução de frequência a níveis em que seja

possível manter a latência média dentro do limiar.

Na Figura 4.11 está ilustrado o consumo do controlador durante o teste de latência

máxima de 5 ms. Adicionalmente, o acumulado de toda a energia consumida durante este

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 62

teste é ilustrado na Tabela 4.3.

4.0

4.5

5.0

5.5

6.0

6.5

7.0

7.5

8.0

8.5

9.0

9.5

2 18 34 50 66 82 98 114

130

146

162

178

194

210

226

242

258

274

290

306

322

338

354

370

386

402

418

434

450

466

482

498

514

530

546

562

578

594

Potê

ncia

méd

ia (W

)

Tempo(s)

Potência para latência máxima de 5ms

1 Core a 3 GHz2 Cores a 1.9 GHz3 Cores a 1.9 GHz4 Cores a 1.9 GHz

Figura 4.11: Potência Média, para diferentes configurações de números de núcleos comlatência máxima de 5ms.

Tabela 4.3: Consumo total durante o teste com latência máxima de 5 ms

Cores Frequência Consumo (J)1 3,0 4144,202 1,9 3383,553 1,9 3409,124 1,9 3460,31

A Figura 4.12 ilustra a curva de consumo do controlador durante o teste de latência

máxima de 6 ms, enquanto que o respectivo consumo acumulado neste teste está ilustrado

na Tabela 4.4.

Comparando o perfil do consumo de energia, observado nos testes com ICMP, Figu-

ras 4.11, e 4.12, observa-se que no cenário em que pacotes pequenos são entregues em

momentos arbitrários, o consumo do processador cai por estar ocioso aguardando uma

operação de E/S, gerando um consumo total menor de 3288,34 para 2 cores a 1,6 GHz

se comparado a 3594,74 com 1 core a 2,2 GHz, como ilustrado nas Tabelas 4.3, e 4.4.

Enquanto os gráficos dos testes de vazão constante da Seção 4.6.1, ilustrados nas Figuras

4.7, 4.8 e 4.9, têm um perfil de consumo quase constante com pequenos vales.

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 63

4.0

4.5

5.0

5.5

6.0

6.5

7.0

2 18 34 50 66 82 98 114

130

146

162

178

194

210

226

242

258

274

290

306

322

338

354

370

386

402

418

434

450

466

482

498

514

530

546

562

578

594

Potê

ncia

méd

ia (W

)

Tempo(s)

Potência para latência máxima de 6ms

1 Core a 2.2 GHz2 Cores a 1.6 GHz3 Cores a 1.6 GHz4 Cores a 1.6 GHz

Figura 4.12: Potência Média, para diferentes configurações de números de núcleos comlatência máxima de 6ms.

Tabela 4.4: Consumo total durante o teste com latência máxima de 6 ms

Cores Frequência Consumo (J)1 2,2 3594,742 1,6 3288,343 1,6 3271,824 1,6 3322,59

Nos testes realizados com pacotes ICMP os cenários com 2, 3 e 4 cores tem um

consumo muito próximo por estarem ajustados para a mesma frequência de operação. Na

Figura 4.11 a curva azul representando 1 core a 2,2 GHz tem um consumo visivelmente

mais alto pois o processador neste caso é mais demandado, estando menos ocioso.

No entanto, para os testes de 2, 3 e 4 núcleos, para o mesmo cenário de latência

de 5 ms, a paralelização mantém o nível de atividade do processador baixo e a mesma

frequência de operação o que indica que adição de 3 ou 4 núcleos não permite diminui-

ção no consumo, diferente do visto no cenário da vazão constante. De fato, a adição de

mais núcleos, neste caso sem diminuição da frequência, acarreta um aumento de consumo

como visto na Tabela 4.3, quando compara-se o teste com 3 e 2 cores há um aumento de

0,75% e quando comparado 4 cores com 3 cores um aumento de 1,5%, ainda assim to-

dos os cenários multi-core apresentam consumo menor que o single-core. Esse fenômeno

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 64

ocorre principalmente porque o cenário de controle da latência é caracterizado por peque-

nos pacotes de rede e o processador fica ocioso e limitado pelo tempo de E/S.

Tabela 4.5: Estatísticas, em milissegundos, dos resultados para Latência a 5 ms

Cores Latência Mínima Latência Média Latência Máxima Desvio padrão médio1 2,651 4,837 22,245 0,5312 2,783 4,937 29,739 0,4773 2,684 4,893 26,777 0,4174 2,829 4,905 30,205 0,419

Quando o prazo de entrega é mais largo (6 ms) a frequência será menor e a demanda

pelo processador também, neste cenário o ganho de eficiência de consumo entre o cenário

single-core e dual-core é de 8,5% (3594,74 para 3288,34 da Tabela 4.4).

Quando colocado sob maior demanda com um prazo mais rigoroso (5 ms) as frequên-

cias de trabalho são maiores e portanto o ganho da paralelização é maior. Comparando

single-core e dual-core da Tabela 4.3 o teste com 1 core a 3 GHz consome 4144,20 J

enquanto o teste com 2 cores a 1,9 GHz consomem 3383,55 J, uma redução de 18%.

Tabela 4.6: Estatísticas, em milissegundos, dos resultados para Latência a 6 ms

Cores Latência Mínima Latência Média Latência Máxima Desvio padrão médio1 3,460 5,934 30,567 0,7242 3,158 5,536 33,610 0,5523 3,102 5,424 34,127 0,4734 3,112 5,450 30,665 0,468

4.7 Discussão dos Resultados

As Figuras 4.11 e 4.12 ilustram os intervalos aleatórios em que os pacotes ICMP são

enviados e respondidos, já as figuras 4.7 e 4.8 ilustram um tráfego constante de rede. Os

cenários de vazão constante e de latência cobrem portanto, situações comuns de stress em

redes de datacenter, i.e., uma aplicação de alta vazão com grandes transferências de dados

e aplicações independentes que entregam resultados em intervalos de tempo arbitrário.

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 65

Em alguns cenários a configuração com 3 núcleos apresenta melhor eficiência, en-

quanto o cenário de latência de 6 ms tem o melhor desempenho para 2 núcleos. Essa não

pode ser tomada como uma regra geral para controladores SDN, a melhor configuração

dependerá da implementação do controlador e da demanda vinda das interfaces south-

bound e northbound. Como discutido na Seção 2.5, Gustafson (1988) apresenta uma

abordagem diferente para o problema do speedup em aplicações paralelas. Em alguns

cenários, o aumento do tamanho do problema também faz crescer a sua fração paralela

em relação à sua fração serial. Quando isto ocorre, mais processadores podem continuar

oferecendo melhor desempenho, o que em nossa metodologia pode ser traduzido em uma

melhoria da eficiência energética.

Como a fração paralela do controlador SDN está ligada também a outras atividades

que o controlador precisa executar em paralelo, como estatísticas, monitoramento e segu-

rança, é possível que em cenários com muitas aplicações northbound, mais processadores

possam ainda oferecer melhor eficiência energética do que as alcançadas aqui.

4.8 Resumo

Neste capítulo foram apresentados a descrição da implementação de um controlador

SDN multi-core e os resultados de consumo de energia deste controlador em ambientes

single-core e multi-core.

Os resultados apresentados indicam uma redução no consumo de energia para am-

bientes multi-core onde a frequência de operação pode ser ajustada para se manter um

determinado nível de serviço.

O nível de serviço especificado em termos da vazão mínima de 30 Mbps permitiu

uma redução de consumo ao sair do cenário single-core para 2, 3 ou 4 núcleos. O mesmo

comportamento foi observado para níveis de serviço de 40 Mbps e 50 Mbps. No cenário

onde considera-se a latência como critério no SLA, novamente a configuração com múl-

CAPÍTULO 4. EXPERIMENTOS EM UM CONTROLADOR SDN MULTICORE 66

tiplos núcleos, associada a uma menor frequência de operação, permitiu uma redução no

consumo de energia do controlador.

Capítulo 5

Experimentos em controladores SDN

distribuídos

Em redes definidas por software o controlador é um ponto central de falha. A ino-

perância do plano de controle pode interromper o uso da rede quase imediatamente, ou

impedir muitas das funcionalidades para qual a SDN foi projetada.

Para evitar este problema, muitos controladores SDN funcionam de maneira distri-

buída: seja replicando o papel do controlador principal em um controlador secundário, ou

dividindo as tarefas de gerenciamento e controle da rede em dois ou mais controladores.

A forma como essa distribuição lógica e física ocorre é classificada por Wibowo et al.

(2017) em dois tipos: logicamente centralizados e completamente distribuídos. Os con-

troladores logicamente centralizados, apesar de estarem fisicamente separados (em hosts

físicos diferentes), devem ter a mesma visão da rede. Para isso, um requisito impres-

cindível é que todos os controladores mantenham uma visão total e sempre consistente

do estado da rede; isso implica em comunicações frequentes entre os controladores. Já os

controladores totalmente distribuídos estão também fisicamente distribuídos, mas mantêm

apenas uma visão parcial da rede. Isso diminui a necessidade de comunicação constante

entre os controladores, mas pode aumentar o tempo de recuperação no caso de uma falha.

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 68

5.1 Novo controlador proposto para múltiplas instâncias

Em nossos experimentos o modelo totalmente distribuído foi selecionado por ser o

melhor em dividir as tarefas de controle da rede, e por também permitir a diminuição de

comunicação entre controladores fisicamente separados.

Para analisar este modelo, a implementação paralela do controlador Ryu descrita na

Seção 4.2 foi adaptada para executar múltiplas instâncias em diferentes equipamentos

físicos.

O controlador agora executa em um ou mais hosts, sendo capaz de (como na versão

anterior) dividir as tarefas entre os núcleos disponíveis localmente, e também agir em

cooperação com outras instâncias deste controlador na mesma rede, como ilustrado na

Figura 5.1.

RYU

S.O.

Host Físico

RYU

S.O.

Host Físico

Processo Thread

Legenda:

Figura 5.1: Novo controlador com múltiplas instâncias.

5.1.1 Conhecimento da estrutura da rede

Na implementação proposta, o controlador não precisa ter conhecimento de toda a

rede e não precisa manter contato com outros controladores, para a entrega dos pacotes

aos hosts ligados a switches de outros controladores. Isso permite que a solução aqui

apresentada seja implementada independente do mecanismo de comunicação entre con-

troladores e diminui o tráfego de rede adicional necessário para manter os controladores

sincronizados.

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 69

5.2 Estrutura de hardware dos experimentos

Para os experimentos em um cenário distribuído, um novo servidor físico foi adicio-

nado à estrutura da rede utilizada nos experimentos do Capítulo 4. O novo servidor é um

HP Proliant ML350p Gen 8 (Figura 5.2) com dois processadores Intel Xeon E5-2620 v2

de 6 núcleos, com frequência máxima de 2,1 GHz, e 64 GB de memória RAM, execu-

tando o Debian 10.

Figura 5.2: Servidor HP Proliant Gen 8

A estrutura de hardware está ilustrada na Figura 5.3. Novamente, os controladores

estão sendo executados de forma isolada nos computadores servidores (Dell R230 e HP

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 70

ML350p), enquanto que os outros elementos da rede estão sendo executados por um host

separado (Dell Inspiron), com o objetivo de medir mais precisamente e individualmente o

consumo dos controladores nos diversos níveis de paralelismo e frequências de operação

consideradas.

RYU Framework

Kernel Linux

Mininet

Controlador Multi-core

Open Virtual Switchs Hosts

Kernel Linux

Host Servidor (Controlador SDN)

Host Cliente (vSwitches e end-hosts)

RYU Framework

Kernel Linux

Controlador Multi-core

Host Servidor (Controlador SDN)Ethernet

1000baseT-FD

Figura 5.3: Diagrama do experimento distribuído com múltiplos controladores.

O computador responsável por executar os outros elementos da rede, como switches

e hosts finais, é o mesmo notebook Dell Inspiron utilizado nos experimentos do Capítulo

4. Os três computadores estão ligados por cabos de rede Ethernet CAT5e a um switch

Ethernet padrão (não SDN) com portas de 1 Gbps.

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 71

5.3 Medições de consumo dos controladores

No cenário distribuído uma nova questão se impõe. Havendo mais controladores,

o padrão de tráfego da rede pode mudar em função da necessidade de transmissão de

mais pacotes, já que em certos cenários pode existir transferência de pacotes entre os

controladores. Enquanto no cenário com um único controlador todo o tráfego estava

centralizado neste, agora parte do tráfego será dividida e um novo tráfego (informações

de controle) estará presente.

Para avaliar mais profundamente este cenário, optou-se por medir não apenas o con-

sumo dos processadores em avaliação, mas também o consumo do servidor físico como

um todo. Para isso, medições da entrada de alimentação de ambos os servidores foram

realizadas enquanto os experimentos eram executados, de modo a avaliar o comporta-

mento de consumo de cada equipamento servidor, incluindo o processamento de dados

e todas as atividades de entrada e saída, memória, placas de rede, resfriamento e outros

componentes internos.

5.3.1 Integrated Lights-Out (HP-iLO)

O servidor HP Proliant oferece acesso ao consumo instantâneo através de uma in-

terface proprietária da HP chamada HP Integrated Lights-Out (HP-iLO). O objetivo do

HP-iLO é oferecer gerenciamento do ciclo-de-vida do servidor desde sua instalação fí-

sica, monitoramento, instalação remota de sistemas operacionais e detecção de falhas.

Este serviço é implementado por um sistema embarcado na placa-mãe do servidor, inte-

grado a BIOS, e funciona independentemente da existência de um sistema operacional.

Com a configuração adequada, é possível acessar os recursos remotamente através de uma

interface Web ou por linha de comando, além de também existir suporte ao protocolo de

gerenciamento de rede SNMP.

Este sistema oferece uma variável importante para as análises aqui apresentadas, o

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 72

parâmetro Present Power Reading apresenta uma diretriz com o valor aproximado da po-

tência média em Watts. O fabricante afirma que este valor pode conter imprecisões e

que é atualizado a cada 10 segundos (Hewlett-Packard 2014), mas é uma boa forma de

comparar os resultados obtidos por outros métodos mais precisos. Em nossos experimen-

tos a interface de linha de comando foi utilizada1 para obter o dado atualizado a cada

10 segundos, sendo usado apenas como referência na calibração dos sensores de corrente

utilizados.

5.3.2 Amperímetro Arduino

Para obter medidas mais precisas com um intervalo de atualização menor, foram

usados 2 sensores de corrente não invasivos do tipo SCT013-010, ligados ao conversor

analógico-digital de 2 placas do tipo Arduino. O processador do Arduino calcula a cor-

rente de acordo com a entrada do conversor Analógico-Digital e os resultados são envi-

ados à porta serial do computador que armazena os dados de corrente medidos a cada

segundo.

Para o cálculo da corrente, foi utilizada a biblioteca OpenEnergyMonitor (Monitor

2021). No processo de calibração dos parâmetros da biblioteca, foi utilizado um wattí-

metro Minipa modelo ET-4080. Cada sensor de corrente foi ligado, conforme Figura 5.4,

à entrada de alimentação de cada um dos servidores, de forma a medir individualmente o

consumo destes. Os dados obtidos são ilustrados nas Figuras 5.8 e 5.9.

5.4 Experimentos

A rede usada no experimento distribuído é composta por mais dispositivos, de modo

a manter um nível de demanda adequado nos controladores, como ilustrado na Figura

5.5. Novamente, foram simulados 30 hosts agora divididos em 10 vSwitches, sendo 51utilizando acesso ssh e o comando: show /system1/oemhp_power1

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 73

Figura 5.4: Ligação do sensor de corrente SCT-013 com a placa arduino.

vSwitches a cargo de cada controlador. Isso permitiu que o tráfego fosse enviado entre

hosts de switches do mesmo controlador e hosts de switches de controladores diferentes.

No primeiro caso, um dos controladores gerencia toda a carga enquanto o segundo

controlador gerencia apenas pacotes de controle ocasionais do protocolo OpenFlow. Neste

cenário o controlador comporta-se como se fosse um controlador único e os dados repe-

tem o comportamento apresentado no experimentos apresentados no Capítulo 4.

No segundo caso, onde hosts em switches de diferentes controladores se comunicam,

os dois controladores são ativados. Neste último cenário está a essência do que se busca

medir para controladores distribuídos: quando os dois controladores colaboram no rece-

bimento e envio de pacotes, mas internamente dividem essas tarefas entre os seus núcleos.

A Figura 5.5 ilustra a arquitetura definida para a rede usando dois controladores e 10

switches cada controlador tem atraleado a si metade dos switches da rede e cada switch

tem 3 hosts conectados. Os controladores comunicam-se como os switches usando o

protocolo OpenFlow, os switches e hosts são simulados em um host físico usando a pla-

taforma Mininet.

Uma comparação então é necessária entre os controladores em modo single-core e

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 74

Controlador Dell Controlador HP

Figura 5.5: Layout da rede

multi-core. É importante notar que nas comparações os dois servidores estão ativos, ser-

vindo cada um como o backup do outro. No protocolo Openflow estes papéis são defini-

dos como master, slave ou equal.

5.5 Resultados

Os testes do cenário multi-core foram realizados utilizando o layout de rede ilus-

trado na Figura 5.5. O tráfego analisado foi mantido à vazão constante, enquanto que a

frequência de operação dos núcleos dos controladores foi definida no menor valor capaz

de entregar a vazão de 40 Mbps, utilizando a ferramenta Iperf para gerar e monitorar o

tráfego durante o período de 10 minutos do experimento.

5.5.1 Medições de consumo de processamento

O consumo dos controladores operando em cooperação no cenário distribuído segue

aproximadamente o mesmo comportamento observado nos experimentos apresentados

nos Capítulo 4. É importante observar que os processadores dos dois servidores têm um

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 75

consumo base (consumo enquanto não há tráfego) diferente, enquanto o processador do

servidor Dell apresenta um consumo base próximo de 4 W o servidor HP tem um consumo

base próximo de 15,5 W. Essa diferença se dá pela natureza do hardware, enquanto o

servidor Dell conta com um processador Intel Xeon E31220 de 4 núcleos o servidor HP

utiliza um processador Intel Xeon E5-2620 v2 de 6 núcleos.

Ilustra-se nas Figuras 5.6 e 5.7 a comparação entre os consumos dos processadores

destes servidores. Especificamente, considera-se o consumo de todo o processador (pac-

kage no RAPL) de cada servidor. Quando o processador está no modo single-core os

outros núcleos são desligados. Na prática, através da interface de hotplug do kernel Li-

nux, o núcleo do processador é colocado no modo de mais baixo consumo, onde o clock

é desativado, a memória cache associada é colocada em modo self-refesh e é atribuído o

estado conhecido como deep C4 (Intel 2019a).

2

3

4

5

6

7

8

9

10

11

12

1 81

52

22

93

64

35

05

76

47

17

88

59

29

91

061

131

201

271

341

411

481

551

621

691

761

831

901

972

042

112

182

252

322

392

462

532

602

672

742

812

882

953

023

093

163

233

303

373

443

513

58

Potê

ncia

Méd

ia (

W)

Consumo processador Servidor Dell

1 Core a 3.0 GHz

4 Cores a 1.7 GHz

Figura 5.6: Consumo do processador do servidor Dell

Estas curvas não incluem o consumo devido aos outros componentes dos servidores,

como placas de rede ou recursos de dissipação de calor que será apresentado na Seção

5.5.2.

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 76

14

15

16

17

18

19

20

21

1 9 17 25 33 41 49 57 65 73 81 89 97 105

113

121

129

137

145

153

161

169

177

185

193

201

209

217

225

233

241

249

257

265

273

281

289

297

305

313

321

329

337

345

353

361

Potê

ncia

Méd

ia (W

)

Consumo processador Servidor HP

1 Core a 2.1 GHz6 Cores a 1.2 GHz

Figura 5.7: Consumo do processador do servidor HP

5.5.2 Medições de consumo integral

Como descrito na Seção 5.3, no cenário distribuído é importante realizar também uma

medição do consumo geral do host físico que abriga os controladores, já que o tráfego da

rede se modifica em virtude da natureza distribuída dos controladores.

É possível observar nas Figuras 5.8 e 5.9 que mesmo quando se considera todo o

consumo de energia do computador que hospeda o controlador, ainda é evidente a redução

do consumo de energia do cenário multi-core, comparado ao cenário single-core.

37

38

39

40

41

42

43

44

45

46

47

48

49

50

1 10 19 28 37 46 55 64 73 82 91 100

109

118

127

136

145

154

163

172

181

190

199

208

217

226

235

244

253

262

271

280

289

298

307

316

325

334

343

352

361

370

379

388

397

406

415

424

433

Potê

ncia

(W)

Servidor Dell Consumo na Entrada

1 Core a 3.0 GHz4 Cores a 1.7 GHz

Figura 5.8: Consumo em Watts do servidor Dell

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 77

112

114

115

117

118

120

121

123

1 16 31 46 61 76 91 106

121

136

151

166

181

196

211

226

241

256

271

286

301

316

331

346

361

376

391

406

421

436

451

466

481

496

511

526

541

556

571

586

601

616

631

646

661

676

691

706

721

Potê

ncia

(W)

Servidor HP Consumo na Entrada

1 Core a 2.1 GHz6 Cores a 1.2 GHz

Figura 5.9: Consumo em Watts do servidor HP

As variações na medida de consumo ilustradas nas Figuras 5.8 e 5.9 estão relaciona-

das aos muitos fatores que envolvem o consumo de energia em um computador servidor.

Ainda que o servidor esteja executando apenas o controlador SDN e o sistema operacio-

nal, outros componentes do hardware demandam energia. Exemplos destes componentes

são: memória (RAM, cache, disco rígido), placas de rede, ventoinhas de resfriamento,

além do consumo básico inerente à placa-mãe, fonte, etc.

Apesar de apresentados em separado, para melhor análise, o consumo real do plano de

controle da rede definida por software apresentada aqui é a soma dos dois controladores,

já que ambos operam simultaneamente controlando partes da rede.

5.6 Resumo

Este capítulo apresentou uma avaliação da solução de controlador SDN multi-core

para eficiência energética aplicada a um cenário distribuído. Para isso, os controladores

foram instanciados em dois servidores físicos distintos ligados por um switch (não SDN).

As duas instâncias do controlador foram mantidas em execução simultânea, cada uma

controlando uma parte da rede.

O cenário distribuído aumenta a tolerância à falha, visto que, em caso de falha de um

CAPÍTULO 5. EXPERIMENTOS EM CONTROLADORES SDN DISTRIBUÍDOS 78

dos servidores o segundo pode assumir o controle da rede. Para isso, os controladores

ficam em modo master/slave de acordo com o protocolo OpenFlow.

Para avaliar o cenário, medições de consumo do processador e do servidor físico foram

realizadas. Em ambas as medições foi possível notar que o comportamento apresentado

no Capítulo 4 é mantido no cenário distribuído, ou seja, é possível reduzir a frequência de

operação dos núcleos de um processador multi-core a um valor mínimo, o qual dependerá

do número de núcleos ativos do processador, de forma a manter um SLA previamente

definido, gerando uma redução de consumo de energia no processador e no consumo

geral do equipamento, quando comparado a um cenário equivalente de rede que faça uso

de controladores distribuídos single-core, os quais estarão operando necessariamente a

frequências mais elevadas.

Capítulo 6

Conclusão e trabalhos futuros

O consumo de energia em redes de datacenters (DCN) vem crescendo junto com a de-

manda de serviços como computação em nuvem e IoT. A busca por equipamentos de TIC

mais energeticamente eficientes é alvo de muitas pesquisas na academia e na indústria,

tanto pelos impactos financeiros como ambientais.

Esta tese apresenta uma nova estratégia de aumento de eficiência energética no plano

de controle das SDN amplamente adotadas em redes de datacenters. Utiliza-se de para-

lelismo e dos processadores multi-core disponíveis nos servidores das DCN para dividir

a carga e reduzir a frequência de operação, mantendo um SLA pré-definido, aumentando

assim eficiência energética.

Uma nova versão de um controlador SDN foi implementada buscando aumentar o

paralelismo e dividir a carga entre os vários núcleos disponíveis. Para a validação da

proposta o consumo do controlador foi medido em vários cenários, buscando a melhor

configuração de frequência e número de núcleos.

Os cenários de testes variam de um único controlador com um núcleo a dois contro-

ladores diferentes com múltiplos núcleos. Para observar o comportamento sob diferentes

tipos de tráfego foram realizados testes com variados SLA de vazão e latência.

CAPÍTULO 6. CONCLUSÃO E TRABALHOS FUTUROS 80

6.1 Contribuições

As principais contribuições desta tese para as redes SDN e a eficiência energética

destas são:

• Implementação e validação de um controlador SDN paralelo. O desenvolvimento

do modelo de paralelização do controlador Ryu permitiu validar a hipótese de eco-

nomia de energia no plano de controle das SDN;

• Estratégias para medição de consumo de controladores SDN foram aplicadas para

avaliar o impacto do processamento no plano de controle de redes SDN;

• Uma nova estratégia de redução de consumo de energia no plano de controle de

SDN aplicável a redes com controladores centralizados e distribuídos independente

de topologia.

6.2 Trabalhos Futuros

A partir das conclusões obtidas na pesquisa e validadas pelos experimentos, novas

questões surgem e expansões do escopo das conclusões podem ser empreendidas.

(A) Novos testes com mais controladores similares.

Uma comparação entre controladores de hardware similar pode responder questões

relacionadas ao número mais adequado de controladores físicos em uma rede, balan-

ceando eficiência energética e tolerância a falha.

(B) Expansão dos resultados distribuídos.

Datacenters Hyperscale estão se tornando mais comuns e o uso de SD-WAN vem

sendo apresentado como solução para alguns dos gargalos envolvidos nesses am-

bientes, uma avaliação em ambientes com múltiplos domínios de rede, e mútiplas

aplicações northbound expande o escopo das conclusões aqui apresentadas.

CAPÍTULO 6. CONCLUSÃO E TRABALHOS FUTUROS 81

(C) Redes de sensores sem fio definidas por software;

No outro extremo, as redes de sensores sem fio definidas por software (WSDN) apre-

sentam limitações relacionadas ao seu consumo energético, por usarem, em geral,

baterias como fontes de energia. A aplicação do plano de controle definido nesta tese

pode aumentar a durabilidade destas redes, visto que o consumo dos nós controla-

dores pode ser implementado em uma plataforma multi-core ainda que embarcada

e com recursos limitados, mas novos testes precisam ser feitos sobre os modos de

operação destes nós centrais das WSDN.

(D) Associação com mecanismos de eficiência energética do plano de dados.

Apesar do avanço apresentado no plano de controle, o plano de dados das SDN já

apresenta muitas estratégias documentadas de eficiência energética. Avaliar a asso-

ciação desta nova abordagem do plano de controle com as abordagens existentes no

plano de dados pode alavancar a eficiência das redes de datacenter como um todo.

6.3 Publicações Relacionadas

1. Conferência Internacional (Oliveira & Silveira 2019)

Oliveira, T. F., Silveria, L. F. Q. (2019). Distributed SDN controllers optimization

for energy saving. 2019 Fourth International Conference on Fog and Mobile Edge

Computing (FMEC), Rome, 86–89. https://doi.org/10.1109/FMEC.2019.8795343

2. Conferência Nacional (Oliveira & Silveira 2020)

Oliveira, T. F., Silveira, L. F. (2020). Impacto Energético do Processamento no

Consumo de Controladores de Redes Definidas por Software. Anais Da X Confe-

rência Nacional Em Comunicações, Redes E Segurança Da Informação – Encom

2020, Natal, 166–167.

3. Artigo em Revista Internacional (Oliveira et al. 2021)

CAPÍTULO 6. CONCLUSÃO E TRABALHOS FUTUROS 82

Oliveira, T. F., Xavier-de-Souza, S., Silveira, L. F. (2021). Improving Energy Effi-

ciency on SDN Control-Plane Using Multi-Core Controllers. Energies, 14(11), 20.

https://doi.org/10.3390/en14113161

Referências Bibliográficas

Al-Fares, Mohammad, Alexander Loukissas & Amin Vahdat (2008), ‘A scalable, commo-

dity data center network architecture’, ACM SIGCOMM Computer Communication

Review 38(4), 63.

URL: http://portal.acm.org/citation.cfm?doid=1402946.1402967

Amdahl, Gene M. (1967), ‘Validity of the single processor approach to achieving

large scale computing capabilities’, IEEE Solid-State Circuits Society Newsletter

12(3), 19–20.

Assefa, Beakal Gizachew & Oznur Ozkasap (2020), ‘RESDN: A Novel Metric and

Method for Energy Efficient Routing in Software Defined Networks’, IEEE Tran-

sactions on Network and Service Management 17(2), 736–749.

URL: https://ieeexplore.ieee.org/document/8998341/

Assefa, Beakal Gizachew & Öznur Özkasap (2019), ‘A survey of energy efficiency in

SDN: Software-based methods and optimization models’, Journal of Network and

Computer Applications 137(April), 127–143.

URL: https://doi.org/10.1016/j.jnca.2019.04.001

Aujla, Gagangeet Singh, Neeraj Kumar, Albert Y. Zomaya & Rajiv Ranjan (2018), ‘Op-

timal Decision Making for Big Data Processing at Edge-Cloud Environment: An

SDN Perspective’, IEEE Transactions on Industrial Informatics 14(2), 778–789.

URL: http://ieeexplore.ieee.org/document/8008830/

83

REFERÊNCIAS BIBLIOGRÁFICAS 84

Banerjee, Prith, Richard Friedrich, Cullen Bash, Patrick Goldsack, Bernardo Huber-

man, John Manley, Chandrakant Patel, Parthasarathy Ranganathan & Alistair Veitch

(2011), ‘Everything as a Service: Powering the New Information Economy’, Com-

puter 44(3), 36–43.

URL: http://ieeexplore.ieee.org/document/5719575/

Barros, Carlos A. (2016), Redução do Consumo Energético de Aplicações Paralelas em

Arquiteturas Multi-core, Tese de doutorado, UFRN.

Barros, Carlos A., L.F.Q. Silveira, C.A. Valderrama & S. Xavier-de Souza (2015), ‘Op-

timal processor dynamic-energy reduction for parallel workloads on heterogeneous

multi-core architectures’, Microprocessors and Microsystems 39(6), 418–425.

URL: https://linkinghub.elsevier.com/retrieve/pii/S0141933115000617

Bi, Jun, Shuyong Zhu, Chen Sun, Guang Yao & Hongxin Hu (2016), ‘Supporting vir-

tualized network functions with stateful data plane abstraction’, IEEE Network

30(3), 40–45.

URL: http://ieeexplore.ieee.org/document/7474342/

Chen, Yanyu, Yuan Yang, Xiaoyue Zou, Qi Li & Yong Jiang (2017), ‘Adaptive Distributed

Software Defined Networking’, Computer Communications 102, 120–129.

URL: https://linkinghub.elsevier.com/retrieve/pii/S014036641630603X

CircuitPython (2021), ‘Circuit python’, Disponível em: https://circuitpython.

org/. Acessado em: 2021-04-25.

Cisco (2021), ‘Cisco application policy infrastructure control-

ler data sheet’, Disponível em: https://www.cisco.com/

c/en/us/products/collateral/cloud-systems-management/

application-policy-infrastructure-controller-apic/

datasheet-c78-739715.html. Accessed: 2021-04-25.

REFERÊNCIAS BIBLIOGRÁFICAS 85

Cormen, T. H., C. E. Leiserson, R. L. Riverst & C. Stein (2001), Introduction to

algorithms-second edition, MIT Press.

CPUPower (2021), ‘The cpupower software package’, Disponível em: https://

www.kernel.org/doc/readme/tools-power-cpupower-README. Acessado em:

2021-01-10.

Dargahi, Tooska, Alberto Caponi, Moreno Ambrosin, Giuseppe Bianchi & Mauro Conti

(2017), ‘A Survey on the Security of Stateful SDN Data Planes’, IEEE Communi-

cations Surveys & Tutorials 19(3), 1701–1725.

URL: http://ieeexplore.ieee.org/document/7890396/

Energy Star (2011), ‘Recommendations for Measuring and Reporting Overall Data Center

Efficiency’, The green Grid .

Ferguson, Andrew D, Steve Gribble, Chi-yao Hong, Charles Killian, Waqar Mohsin, Hen-

rik Muehe, Joon Ong, Leon Poutievski, Arjun Singh, Lorenzo Vicisano, Richard

Alimi, Shawn Shuoshuo Chen, Mike Conley, Subhasree Mandal, Karthik Nagaraj,

Kondapa Naidu Bollineni, Amr Sabaa, Shidong Zhang, Min Zhu, Amin Vahdat,

Andrew D Ferguson, Steve Gribble, Chi-yao Hong, Charles Killian, Waqar Mohsin,

Henrik Muehe, Joon Ong, Leon Poutievski, Arjun Singh, Lorenzo Vicisano, Richard

Alimi, Shawn Shuoshuo Chen, Mike Conley, Subhasree Mandal, Karthik Nagaraj,

Kondapa Naidu Bollineni, Amr Sabaa, Shidong Zhang, Min Zhu & Amin Vahdat

(2021), ‘Orion : Google ’ s software-defined networking control plane’, Procee-

dings of NSDI 2021: 18th USENIX Symposium on Networked Systems Design and

Implementation .

Fernández-Fernández, Adriana, Cristina Cervelló-Pastor & Leonardo Ochoa-Aday

(2017), ‘Energy Efficiency and Network Performance: A Reality Check in SDN-

REFERÊNCIAS BIBLIOGRÁFICAS 86

Based 5G Systems’, Energies 10(12), 2132.

URL: http://www.mdpi.com/1996-1073/10/12/2132

Fiandrino, Claudio, Dzmitry Kliazovich, Pascal Bouvry & Albert Y. Zomaya (2017),

‘Performance and Energy Efficiency Metrics for Communication Systems of Cloud

Computing Data Centers’, IEEE Transactions on Cloud Computing 5(4), 738–750.

URL: http://ieeexplore.ieee.org/document/7090996/

Fonseca, Paulo Cesar da Rocha & Edjard Mota (2017), ‘A Survey on Fault Manage-

ment in Software-Defined Networks’, IEEE Communications Surveys & Tutorials

19(4), 2284–2321.

URL: http://ieeexplore.ieee.org/document/7959044/

GEvent (2021), ‘Lightweight in-process concurrent programming’, Disponível em:

https://github.com/python-greenlet/greenlet. Accessado em: 2021-04-

25.

Gustafson, John L. (1988), ‘Reevaluating amdahl’s law’, Commun. ACM 31(5), 532–533.

URL: https://doi.org/10.1145/42411.42415

Heddeghem, Ward Van, Sofie Lambert, Bart Lannoo, Didier Colle, Mario Pickavet & Piet

Demeester (2014), ‘Trends in worldwide ICT electricity consumption from 2007 to

2012’, Computer Communications 50, 64–76.

URL: http://dx.doi.org/10.1016/j.comcom.2014.02.008

Heinzelman, W.R., A. Chandrakasan & H. Balakrishnan (2000), Energy-efficient commu-

nication protocol for wireless microsensor networks, em ‘Proceedings of the 33rd

Annual Hawaii International Conference on System Sciences’, Vol. vol.1, IEEE

Comput. Soc, p. 10.

URL: http://ieeexplore.ieee.org/document/926982/

REFERÊNCIAS BIBLIOGRÁFICAS 87

Hewlett-Packard (2014), HP iLO 4 User Guide, Vol. 1, 1ª edição, Hewlett-Packard Deve-

lopment Company.

Hu, Ying, Tao Luo, Norman C. Beaulieu & Chunxue Deng (2017), ‘The Energy-Aware

Controller Placement Problem in Software Defined Networks’, IEEE Communicati-

ons Letters 21(4), 741–744.

URL: http://ieeexplore.ieee.org/document/7801134/

Intel (2018), Modeling the impact of CPU properties to optimize and predict packet-

processing performance, Relatório técnico, Intel.

Intel (2019a), Intel 64 and IA-32 Architectures Optimization Reference Manual, Vol. 1, 1ª

edição, Intel Corporation.

Intel (2019b), Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 3:

System Programming Guide, Vol. 3, 1ª edição, Intel Corporation.

Iperf3 (2021), ‘iperf - the ultimate speed test tool for tcp, udp and sctp’, Disponível em:

https://iperf.fr/. Accessado em 2021-01-10.

Killi, Bala Prakasa Rao & Seela Veerabhadreswara Rao (2016), ‘Optimal Model for Fai-

lure Foresight Capacitated Controller Placement in Software-Defined Networks’,

IEEE Communications Letters 20(6), 1108–1111.

Kreutz, Diego, Fernando M. V. Ramos, Paulo Esteves Verissimo, Christian Es-

teve Rothenberg, Siamak Azodolmolky & Steve Uhlig (2015), ‘Software-Defined

Networking: A Comprehensive Survey’, Proceedings of the IEEE 103(1), 14–76.

URL: http://ieeexplore.ieee.org/document/6994333/

Lantz, Bob, Brandon Heller & Nick McKeown (2010), A network in a laptop: rapid pro-

totyping for software-defined networks, em ‘Proceedings of the Ninth ACM SIG-

COMM Workshop on Hot Topics in Networks - Hotnets ’10’, ACM Press, New

REFERÊNCIAS BIBLIOGRÁFICAS 88

York, New York, USA, pp. 1–6.

URL: http://portal.acm.org/citation.cfm?doid=1868447.1868466

Latif, Zohaib, Kashif Sharif, Fan Li, Md Monjurul Karim, Sujit Biswas & Yu Wang

(2020), ‘A comprehensive survey of interface protocols for software defined

networks’, Journal of Network and Computer Applications 156(July 2019), 102563.

URL: https://doi.org/10.1016/j.jnca.2020.102563

Li, Dan, Yunfei Shang & Congjie Chen (2014), Software defined green data center

network with exclusive routing, em ‘IEEE INFOCOM 2014 - IEEE Conference on

Computer Communications’, IEEE, pp. 1743–1751.

URL: http://ieeexplore.ieee.org/document/6848112/

Linux (2021a), ‘Cpu hotplug in the kernel’, Disponível em: https://www.kernel.org/

doc/html/latest/core-api/cpu{_}hotplug.html. Accessado em 2021-01-10.

Linux (2021b), ‘Cpu performance scaling’, Disponível em: https://www.kernel.org/

doc/html/v4.14/admin-guide/pm/cpufreq.html. Acessado em: 2021-01-10.

Linux (2021c), ‘Turbostat software tool’, Disponível em: https://github.com/

torvalds/linux/tree/master/tools/power/x86/turbostat. Accessado em

2021-01-10.

Lis, Andrzej, Agata Sudolska, Ilona Pietryka & Adam Kozakiewicz (2020), ‘Cloud Com-

puting and Energy Efficiency: Mapping the Thematic Structure of Research’, Ener-

gies 13(16), 4117.

URL: https://www.mdpi.com/1996-1073/13/16/4117

Majumder, Turbo, Partha Pratim Pande & Ananth Kalyanaraman (2013), ‘High-

throughput, energy-efficient network-on-chip-based hardware accelerators’, Sustai-

nable Computing: Informatics and Systems 3(1), 36–46.

URL: https://linkinghub.elsevier.com/retrieve/pii/S2210537913000024

REFERÊNCIAS BIBLIOGRÁFICAS 89

Manjeshwar, A. & D.P. Agrawal (2002), APTEEN: a hybrid protocol for efficient routing

and comprehensive information retrieval in wireless, em ‘Proceedings 16th Interna-

tional Parallel and Distributed Processing Symposium’, IEEE, p. 8 pp.

URL: http://ieeexplore.ieee.org/document/1016600/

Manjeshwar, A. & D.P. Agrawal (n.d.), TEEN: a routing protocol for enhanced efficiency

in wireless sensor networks, em ‘Proceedings 15th International Parallel and Distri-

buted Processing Symposium. IPDPS 2001’, IEEE Comput. Soc, pp. 2009–2015.

URL: http://ieeexplore.ieee.org/document/925197/

Masanet, Eric, Arman Shehabi, Nuoa Lei, Sarah Smith & Jonathan Koomey (2020), ‘Re-

calibrating global data center energy-use estimates’, Science 367(6481), 984–986.

URL: https://www.sciencemag.org/lookup/doi/10.1126/science.aba3758

McKeown, Nick, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson,

Jennifer Rexford, Scott Shenker & Jonathan Turner (2008), ‘OpenFlow: Enabling

Innovation in Campus Networks’, ACM SIGCOMM Computer Communication

Review 38(2), 69.

URL: http://archive.openflow.org/documents/openflow-wp-latest.pdf

http://portal.acm.org/citation.cfm?doid=1355734.1355746

Monitor, Open Energy (2021), ‘Electricity monitoring library’, Disponível em: https:

//github.com/openenergymonitor/EmonLib. Accessado em 2021-01-10.

Najm, Mohammed, Afrah Salman & Ali Kamal (2017), ‘Network Resource Manage-

ment Optimization for SDN based on Statistical Approach’, International Journal

of Computer Applications 177(6), 5–13.

URL: http://www.ijcaonline.org/archives/volume177/number6/abdullah-2017-ijca-

915766.pdf

REFERÊNCIAS BIBLIOGRÁFICAS 90

ODL, OpenDaylight Project The Linux Foundation (2021), ‘Opendaylight (odl) is a mo-

dular open platform for customizing and automating networks of any size and scale.’,

Disponível em: https://www.opendaylight.org/. Accessado em: 2021-04-25.

Oktian, Yustus Eko, SangGon Lee, HoonJae Lee & JunHuy Lam (2017), ‘Distributed

SDN controller system: A survey on design choice’, Computer Networks 121, 100–

111.

URL: https://linkinghub.elsevier.com/retrieve/pii/S1389128617301706

Oliveira, Tadeu F., Samuel Xavier-de Souza & Luiz F. Silveira (2021), ‘Improving

Energy Efficiency on SDN Control-Plane Using Multi-Core Controllers’, Energies

14(11), 20.

URL: https://www.mdpi.com/1996-1073/14/11/3161

ONF, Open Networking Foundation (2021), ‘Open network operating system’, Disponí-

vel em: https://opennetworking.org/onos/. Accessado em: 2021-04-25.

Popoola, Olusogo & Bernardi Pranggono (2018), ‘On energy consumption of switch-

centric data center networks’, The Journal of Supercomputing 74(1), 334–369.

URL: http://link.springer.com/10.1007/s11227-017-2132-5

Priyadarsini, Madhukrishna, Padmalochan Bera & Mohammad Ashiqur Rahman (2018),

A new approach for energy efficiency in software defined network, em ‘2018 Fifth

International Conference on Software Defined Systems (SDS)’, IEEE, pp. 67–73.

URL: https://ieeexplore.ieee.org/document/8370424/

Pypy (2021), ‘Python - pypy’, Disponível em: http://pypy.org/. Acessado em: 2021-

04-25.

Python (2021a), ‘multiprocessing — process-based parallelism’, Disponível em: https:

//docs.python.org/3.8/library/multiprocessing.html. Acessado em:

2021-04-25.

REFERÊNCIAS BIBLIOGRÁFICAS 91

Python (2021b), ‘Python - introduction alternate implementations’, Disponível em:

https://docs.python.org/3/reference/introduction.html. Acessado em:

2021-04-25.

Python, Stackless (2021), ‘Python - stackless’, Disponível em: http://www.

stackless.com/. Acessado em: 2021-04-25.

Rawat, Danda B. & Swetha R. Reddy (2017), ‘Software Defined Networking Architec-

ture, Security and Energy Efficiency: A Survey’, IEEE Communications Surveys

and Tutorials 19(1), 325–346.

Ross, Keith & James Kurose (2013), Computer Networking A Top-Down Approach, Pe-

arson.

Ruiz-Rivera, Alejandro, Kwan-wu Chin & Sieteng Soh (2015), ‘GreCo: An Energy

Aware Controller Association Algorithm for Software Defined Networks’, IEEE

Communications Letters 19(4), 541–544.

URL: http://ieeexplore.ieee.org/document/7017522/

Ryu, Ryu SDN Framework Community (2021a), ‘Component-based software defined

networking framework’, Disponível em: https://ryu-sdn.org/. Accessado em:

2021-04-25.

Ryu, Ryu SDN Framework Community (2021b), ‘Ryu documentation’, Dis-

ponível em: https://ryu.readthedocs.io/en/latest/ryu_app_api.html?

highlight=eventlet#threads-events-and-event-queues. Accessado em:

2021-04-25.

Sahay, Rishikesh, Gregory Blanc, Zonghua Zhang & Hervé Debar (2017), ‘ArOMA:

An SDN based autonomic DDoS mitigation framework’, Computers & Security

70, 482–499.

URL: https://doi.org/10.1016/j.cose.2017.07.008

REFERÊNCIAS BIBLIOGRÁFICAS 92

Scott-Hayward, Sandra, Sriram Natarajan & Sakir Sezer (2016), ‘A Survey of Secu-

rity in Software Defined Networks’, IEEE Communications Surveys & Tutorials

18(1), 623–654.

URL: http://ieeexplore.ieee.org/document/7150550/

Shuja, Junaid, Kashif Bilal, Sajjad A. Madani, Mazliza Othman, Rajiv Ranjan, Pavan

Balaji & Samee U. Khan (2016), ‘Survey of Techniques and Architectures for De-

signing Energy-Efficient Data Centers’, IEEE Systems Journal 10(2), 507–519.

URL: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6856153

Son, Jungmin, Amir Vahid Dastjerdi, Rodrigo N. Calheiros & Rajkumar Buyya (2017),

‘SLA-Aware and Energy-Efficient Dynamic Overbooking in SDN-Based Cloud

Data Centers’, IEEE Transactions on Sustainable Computing 2(2), 76–89.

URL: http://ieeexplore.ieee.org/document/7921568/

Son, Jungmin & Rajkumar Buyya (2018), ‘A taxonomy of software-defined networking

(SDN)-enabled cloud computing’, ACM Computing Surveys 51(3).

Tanenbaum, Andrew S. & Herbert Bos (2014), Modern Operating Systems, Pearson.

Tran Hoang Vu, Pham Ngoc Nam, Tran Thanh, Le Thai Hung, Le Anh Van, Nguyen Duy

Linh, To Duc Thien & Nguyen Huu Thanh (2012), Power aware OpenFlow switch

extension for energy saving in data centers, em ‘The 2012 International Conference

on Advanced Technologies for Communications’, IEEE, pp. 309–313.

URL: http://ieeexplore.ieee.org/document/6404282/

Wang, Guodong, Yanxiao Zhao, Jun Huang & Wei Wang (2017), ‘The Controller Pla-

cement Problem in Software Defined Networking: A Survey’, IEEE Network

31(5), 21–27.

URL: http://ieeexplore.ieee.org/document/8053474/

REFERÊNCIAS BIBLIOGRÁFICAS 93

Weaver, Vince (2015), ‘Amd intel linux rapl support’, Disponível em: http://web.

eece.maine.edu/%7Evweaver/projects/rapl/rapl_support.html. Acces-

sed: 2021-01-06.

Wibowo, Franciscus X.A., Mark A. Gregory, Khandakar Ahmed & Karina M. Gomez

(2017), ‘Multi-domain Software Defined Networking: Research status and challen-

ges’, Journal of Network and Computer Applications 87(October 2016), 32–45.

URL: http://linkinghub.elsevier.com/retrieve/pii/S1084804517300991

Xu, Guan, Bin Dai, Benxiong Huang, Jun Yang & Sheng Wen (2017), ‘Bandwidth-aware

energy efficient flow scheduling with SDN in data center networks’, Future Gene-

ration Computer Systems 68, 163–174.

URL: http://dx.doi.org/10.1016/j.future.2016.08.024

Yan, Qiao, F. Richard Yu, Qingxiang Gong & Jianqiang Li (2016), ‘Software-Defined

Networking (SDN) and Distributed Denial of Service (DDoS) Attacks in Cloud

Computing Environments: A Survey, Some Research Issues, and Challenges’, IEEE

Communications Surveys & Tutorials 18(1), 602–622.

URL: http://ieeexplore.ieee.org/document/7289347/

Yao, Guang, Jun Bi, Yuliang Li & Luyi Guo (2014), ‘On the Capacitated Controller

Placement Problem in Software Defined Networks’, IEEE Communications Letters

18(8), 1339–1342.

URL: http://ieeexplore.ieee.org/document/6841630/

Yin, H., H. Xie, T. Tsou, P. Aranda, D. Lopez & R.Sidi (2012), SDNi: A Message Ex-

change Protocol for Software Defined Networks (SDNS) across, Relatório técnico,

IETF.

Younus, Muhammad Usman, Saif ul Islam & Sung Won Kim (2019), ‘Proposition and

Real-Time Implementation of an Energy-Aware Routing Protocol for a Software

REFERÊNCIAS BIBLIOGRÁFICAS 94

Defined Wireless Sensor Network’, Sensors 19(12), 2739.

URL: https://www.mdpi.com/1424-8220/19/12/2739

Zhao, Hui, Jing Wang, Feng Liu, Quan Wang, Weizhan Zhang & Qinghua Zheng

(2018), ‘Power-Aware and Performance-Guaranteed Virtual Machine Placement in

the Cloud’, IEEE Transactions on Parallel and Distributed Systems 29(6), 1385–

1400.


Recommended