Instalação do Cliente
Instalação do Cliente
Para informações sobre a instalação da infraestrutura do MUSANet, ver “Instalação da Infraestrutura.odt”.
Instalação do SO
Crie uma máquina virtual e instale o Ubuntu Server (sem interface gráfica) no modo padrão.
Conecte a interface de rede no switch LAN Swtich através da rede LAN.
Instalação do ambiente
Crie uma conta individual e coloque-a no grupo sudores:
$ sudo adduser meslin
$ sudo usermod -aG sudo meslin
Habilite o uso de sudo sem precisar informar a senha. Edite o arquivo de configuração do sudo com o comando abaixo:
$ sudo visudo
e acrescente a seguinte linha no final do arquivo:
cliente ALL=(ALL) NOPASSWD: ALL
Atualize o sistema operacional:
$ sudo apt update
$ sudo apt -y upgrade
$ sudo apt autoremove
Instale o servidor de SSH através do comando:
$ sudo apt -y install openssh-server
Configure a interface de rede para trabalhar com IP fixo.
Ubuntu 18.04 ou mais recente
Editar o arquivo /etc/netplan/50-cloud-init.yaml com o comando a seguir:
$ sudo cp /etc/netplan/50-cloud-init.yaml{,.velho}
$ sudo vi /etc/netplan/50-cloud-init.yaml
O arquivo deverá se parecer com o texto a seguir:
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
ens3:
addresses: [172.16.3.202/24]
gateway4: 172.16.3.1
dhcp4: no
nameservers:
addresses: [139.82.16.3, 10.8.0.1]
version: 2
Use o comando a seguir para ativar a configuração:
$ sudo netplan apply
Ubuntu 16.04 ou anteriores
Editar o arquivo /etc/network/interfaces:
$ sudo cp /etc/network/interfaces{,.velho}
$ sudo vi /etc/network/interfaces
Incluir como conteúdo o seguinte texto:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens160
iface ens160 inet static
address 172.16.0.211
netmask 255.255.255.0
network 172.16.0.0
broadcast 172.16.0.255
gateway 172.16.0.1
dns-nameservers 139.82.16.3
dns-search inf.puc-rio.br
(TODOS)
Configure o arquivo de hosts. Edite o arquivo /etc/hosts:
$ sudo cp /etc/hosts{,.velho}
$ sudo vi /etc/hosts
Inclua as seguintes linhas:
# Endereços do MUSANet
172.16.1.202 ContextNet1
172.16.2.202 ContextNet2
172.16.3.202 ContextNet3
172.16.4.202 ContextNet4
172.16.0.211 cliente1
172.16.0.212 cliente2
172.16.0.213 cliente3
172.16.0.214 cliente4
Configure o acesso à obaluae.inf.puc-rio.br. Crie a chave de acesso com o comando a seguir aceitando todas as opções:
$ ssh-keygen
$ ssh-copy-id -i .ssh/id_rsa.pub meslin@obaluae.inf.puc-rio.br
Se necessário, inclua a identidade da chave primária para autenticar o agente. Isso geralmente é necessário quando, depois de copiar a chave e tentar acessar o servidor ssh, recebemos o seguinte erro:
sign_and_send_pubkey: signing failed: agent refused operation
Use o comando a seguir para incluir a identidade:
$ ssh-add
Identity added: /home/meslin/.ssh/id_rsa (/home/meslin/.ssh/id_rsa)
Verifique se a indentidade foi corretamente incluida com o seguinte comando:
$ ssh-add -l
2048 SHA256:U4pwakgfPQjt6AO25OMWOeEuBnz+yDApjFE6kjDdHEw /home/meslin/.ssh/id_rsa (RSA)
2048 SHA256:U4pwakgfPQjt6AO25OMWOeEuBnz+yDApjFE6kjDdHEw meslin@meslin-notebook (RSA)
2048 SHA256:5tDdo9QnR7SgD3mF8GeE92EGPOCQRkI/4ZGSi+/ODMU meslin@meslin-notebook (RSA)
2048 SHA256:3Q+k0qtOy0L25r3bYbzBuaUTZNipuhqOHeV/NPY1IjU meslin@meslin-notebook (RSA)
No momento que esse documento foi gerado, o ContextNet somente era compatível com Java 8 da Oracle. Para instalar o Java 8 da Oracle, utilize os seguintes comandos:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt -y install oracle-java8-installer
Para configurar a variável de ambiente JAVA_HOME, obtenha o local de instalação do java e depois edite o arquivo de variáveis de ambiente com os seguintes comandos:
$ sudo update-alternatives --config java
There is 1 choice for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 auto mode
* 1 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
Press <enter> to keep the current choice[*], or type selection number:
$ sudo cp /etc/environment{,.velho}
$ sudo vi /etc/environment
E inclua a seguinte linha ao final do arquivo (verifique a path obtida com o comando anterior):
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
Se você não quiser instalar o Java 8 da Oracle, instale o Java JDK default com o comando a seguir:
$ sudo apt -y install default-jdk
Libere mais portas UDP efêmeras editando o arquivo /etc/sysctl.conf:
$ sudo cp /etc/sysctl.conf{,.velho}
$ sudo vi /etc/sysctl.conf
Inclua as seguintes linhas ao final do arquivo (atenção aos espaços em branco antes e depois do sinal de igual):
net.ipv4.ip_local_port_range = 1025 65000
net.ipv4.tcp_fin_timeout = 1
Depois de reiniciar a máquina, verifique qual a faixa de portas que está disponível com o seguinte comando:
$ sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 1025 65000
Opcionalmente remova o screensaver (tela preta) editando o arquivo grub com o comando a seguir:
$ sudo cp /etc/default/grub{,.velho}
$ sudo vi /etc/default/grub
Modifique a linha com GRUB_CMDLINE_LINUX_DEFAULT="" de acordo com o texto a seguir:
GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"
Atualize o grub como seguinte comando:
$ sudo update-grub
Instalação e configuração do ContextNet
Instale o OpenSplice. Instruções mais detalhadas em http://www.lac.inf.puc-rio.br/dokuwiki/doku.php?id=installingdds.
Para a instalação do ContextNet para uso específico no MUSANet, clique aqui.
Executando o MUSANet
Benchmark
Criar o diretório Benchmark
$ mkdir Benchmark
Copiar o simulador de ônibus para o diretório Benchmark:
$ scp 172.16.0.1:Downloads/BenchmarkOnibusV2.jar Benchmark/
BenchmarkOnibusV2.jar 100% 9779KB 69.1MB/s 00:00
Executar o simulador de ônibus, especificando as opções:
-a <endereço do InterSCity>
-b <número de ônibus a serem simulados>
-i <intervalo em milisegundos entre a criação de cada thread de ônibus>
-n <número de iterações de cada ônibus>
-p <porta do Gateway do ContextNet>
$ java -Djava.rmi.server.hostname=172.16.0.211 -jar Benchmark/BenchmarkOnibusV2.jar -a 172.16.1.202 -p 5500 -b 4000 -n 1000 -i 1000 [-m 172.16.0.211] 2> erro8000x1000x2x2-20180730.txt | tee resultado8000x1000x2x2-20180730.txt
ou se for necessário especificar a quantidade de memória:
$ java -Xmx16G -Djava.rmi.server.hostname=172.16.0.211 -jar Benchmark/BenchmarkOnibusV2.jar -a 172.16.1.202 -p 5500 -b 4000 -n 1000 -i 1000 [-m 172.16.0.211] 2> erro8000x1000x2x2-20180730.txt | tee resultado8000x1000x2x2-20180730.txt