Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Informações de Apoio

Configurar

Criar uma Imagem VM do Windows

Instalar o KVM em sua máquina Linux

Verificar a instalação do KVM

Criar uma VM Windows

Implantação da imagem do Windows VM para CGM-SRV

Verificar

Troubleshoot

Introduction

Este documento descreve as etapas necessárias para criar e executar uma máquina virtual (VM) do Windows no módulo Connected Grid Module (CGM) - System Server (SRV).

Prerequisites

Requirements

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Linux

- Máquina virtual baseada em kernel (KVM)

- Entender os conceitos de virtualização

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Roteadores de rede conectada (CGR) 1120

- módulo CGM-SRV-XX

- As etapas de configuração do CGM-SRV são executadas antes deste guia:

- ISO de instalação do Windows 7

- Visualizador de Virtual Network Computing (VNC)

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Informações de Apoio

Para executar aplicativos IOx ou VMs na plataforma CGR1000, você pode usar o módulo de computação CGM-SRV. O módulo CGM-SRV é, na verdade, um pequeno servidor que contém CPU, memória e armazenamento x86 de vários núcleos. O CGR1120 e o CGR1240 podem ter um desses módulos para adicionar recursos IOx.

Há, no momento da redação, dois tipos disponíveis:

Unidade de manutenção de estoque (SKU)

Unidades de estado sólido (SSD)

RAM

CPU

CGM-SRV-64

64 GB (50 GB utilizáveis)

4 GB

4 núcleos de 800 MHz

CGM-SRV-128

128 GB (100 GB utilizáveis)

4 GB

4 núcleos de 800 MHz

Cada módulo também tem duas portas USB para armazenamento e sua própria interface Gigabit Ethernet externa.

Como em qualquer outro dispositivo compatível com IOx, o módulo pode hospedar diferentes tipos de aplicativos IOx, mas devido à maior capacidade do módulo CGM-SRV, ele também pode executar uma distribuição de Windows ou Linux padrão totalmente configurada (por exemplo, Ubuntu ou CentOS).

Configurar

Criar uma Imagem VM do Windows

Para implantar uma VM Windows no módulo CGM-SRV, é necessário primeiro criar uma imagem no formato QEMU QCOW que contém a instalação do Windows. Uma maneira de criar tal imagem é com KVM e vírus em uma máquina Linux.

As etapas mencionadas não envolvem o CGR1xxx ou o CGM-SRV, são apenas etapas necessárias para criar uma imagem básica do QCOW do Windows 7 VM que você pode implantar na próxima etapa do CGM-SRV.

Para este guia, você pode começar com uma instalação mínima do CentOS7 recentemente instalada. As etapas para outras distribuições do Linux devem ser semelhantes, mas podem ser ligeiramente diferentes.

Instalar o KVM em sua máquina Linux

Etapa 1. A primeira coisa a fazer é verificar se o host-máquina suporta extensões de VM. Na plataforma x86, eles são AMD-V ou VT-X da Intel. A maioria das CPUs x86 modernas, se não todas, suportam essas extensões. Mesmo quando você executa uma VM, a maioria dos hipervisores oferece a opção de passar/emular essas extensões.

Para verificar se a CPU instalada suporta essas extensões, você precisa verificar se o sinalizador vmx (para VT-X) ou svm (para AMD-V) existe na saída cpuinfo.

[root@cen7 ~]# egrep -c '(vmx|svm)' /proc/cpuinfo

2

Se a saída desse comando for 0, isso significa que nenhuma CPU encontrada suporta as extensões de VM. Nesse caso, você pode verificar se essas extensões estão ativadas no BIOS ou no hipervisor quando usa uma VM para executar esta máquina.

Etapa 2. A próxima etapa é criar uma bridge para fornecer uma rede para a VM que você pode executar no KMV.

Primeiro, você precisa ativar o encaminhamento de IP no kernel:

[root@cen7 ~]# echo "net.ipv4.ip_forward = 1"|sudo tee /etc/sysctl.d/99-ipforward.conf

net.ipv4.ip_forward = 1

[root@cen7 ~]# sysctl -p /etc/sysctl.d/99-ipforward.conf

net.ipv4.ip_forward = 1

Para criar a bridge, a configuração IP precisa mover-se da interface real para a própria bridge, pois essa é a interface que possui o endereço IP.

Depois de concluir uma instalação padrão, a configuração de rede é em /etc/sysconfig/network-scripts:

[root@cen7 ~]# ls -1 /etc/sysconfig/network-scripts/ifcfg-*

/etc/sysconfig/network-scripts/ifcfg-eno16777736

/etc/sysconfig/network-scripts/ifcfg-lo

Etapa 3. Como você pode ver, existe atualmente uma interface (além da interface de loopback), chamada eno167777736. Você precisa mover a configuração relacionada ao IP para uma interface de bridge que pode ser chamada de virbr0:

[root@cen7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-virbr0

[root@cen7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-virbr0

DEVICE=virbr0

TYPE=BRIDGE

ONBOOT=yes

BOOTPROTO=static

IPADDR=172.16.245.162

NETMASK=255.255.255.0

GATEWAY=172.16.245.2

DNS1=8.8.8.8

Etapa 4. Depois disso, você precisa limpar a configuração IP da interface real e conectá-la à ponte virbr0:

[root@cen7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736

[root@cen7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736

UUID=46f0f247-e164-40cc-866b-9133458d9df8

DEVICE=eno16777736

ONBOOT=yes

BRIDGE=virbr0

HWADDR=00:0c:29:ce:96:38

Etapa 5. Quando a configuração da rede estiver concluída, você poderá continuar e instalar o KVM:

[root@cen7 ~]# sudo yum install kvm virt-manager libvirt virt-install qemu-kvm xauth dejavu-lgc-sans-fonts -y

...

Complete!

Etapa 6. Após a conclusão da instalação, o melhor é reinicializar esta máquina para aplicar os módulos instalados recentemente e a configuração de rede:

[root@cen7 ~]# init 6

Verificar a instalação do KVM

Passo 7. Depois que a reinicialização for concluída, você poderá acessar a máquina no (mesmo) IP configurado na interface de bridge. Você deve verificar se o módulo de kernel KVM está carregado:

root@cen7 ~]# lsmod|grep kvm

kvm_intel             200704  0

kvm                   589824  1 kvm_intel

irqbypass              16384  1 kvm

Etapa 8. Se isso parecer bom, você pode tentar se conectar com o vírus:

[root@cen7 ~]# sudo virsh -c qemu:///system list

Id    Name                           State

----------------------------------------------------

Etapa 9. Uma última etapa é abrir a porta 5900 no firewall desta máquina para acesso VNC à instalação do Windows:

[root@cen7 ~]# firewall-cmd --zone=public --add-port=5900/tcp --permanent

success

[root@cen7 ~]# firewall-cmd --reload

success

Criar uma VM Windows

Agora que você tem um sistema que funciona com a instalação do KVM, você pode ativar uma nova VM no KVM e executar os diálogos de instalação do Windows.

Etapa 1. Copie o ISO de instalação do Windows 7 para sua VM (ou torne-o acessível pela rede):

[root@cen7 ~]# scp jedepuyd@172.16.X.X:/home/jedepuyd/win7install.iso /var

jedepuyd@172.16.X.X's password:

win7install.iso                                                        100% 4546MB  62.1MB/s   01:13

Etapa 2. Crie uma nova VM KVM e deixe-a inicializar a partir do ISO do Windows 7:

root@cen7 ~]# virt-install --connect qemu:///system -n win7 -r 1024 --vcpus=2 --disk path=/var/lib/libvirt/images/win7.img,size=9 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type windows --os-variant win7 --accelerate --network=bridge:virbr0 --hvm --cdrom /var/win7install.iso

Starting install...

Allocating win7.img                                                             | 9.0 GB  00:00:00

Creating domain...                                                                |    0 B  00:00:00

Domain installation still in progress. You can reconnect to

the console to complete the installation process.

Etapa 3. Depois que a VM tiver iniciado, você poderá se conectar com o uso do visualizador VNC ao IP da máquina host na porta 5900 e concluir a instalação padrão do Windows como mostrado na imagem:

Se o Windows reinicializar no momento da instalação, pode ser necessário reiniciar a VM com o vírus se isso não for feito automaticamente:

[root@cen7 ~]# virsh start win7

Domain win7 started

Etapa 4. Quando a instalação tiver sido concluída, desligue a VM. Agora você tem uma imagem QCOW desta instalação no caminho fornecido quando cria a VM: /var/lib/libvirt/images/win7.img. Esse tipo de imagem pode ser implantado no CGM-SRV para executar o Windows.

Implantação da imagem do Windows VM para CGM-SRV

Agora que você tem o tipo correto de imagem para ser executada no CGM-SRV, você pode começar a implantá-la.

Etapa 1. Configure um perfil para um cliente que corresponda à sua configuração:

[root@cen7 ~]# ./ioxclient profiles create

Enter a name for this profile : CGR1120_20

Your IOx platform's IP address[127.0.0.1] : 10.X.X.X.X

Your IOx platform's port number[8443] :

Authorized user name[root] : admin

Password for admin :

Local repository path on IOx platform[/software/downloads]:

URL Scheme (http/https) [https]:

API Prefix[/iox/api/v2/hosting/]:

Your IOx platform's SSH Port[2222]:

Your RSA key, for signing packages, in PEM format[]:

Your x.509 certificate in PEM format[]:

Activating Profile  CGR1120_20

Saving current configuration

Neste exemplo, 10.X.X.X corresponde à interface de saída no CGR1000 no qual você configurou Network Address Translation (NAT) para encaminhar para a porta 8443 no CGM-SRV.

Etapa 2. Agora que o ioxclient está configurado, vamos renomear sua imagem criada anteriormente para vm.img para simplificar um bit e copiá-lo com o uso do Secure Copy (SCP) com o ioxclient para o CGM-SRV.

Opcionalmente, converta a imagem do disco para o formato QCOW2, pois é isso que o CGM-SRV está esperando. As versões mais recentes do Virtual-Manager parecem criar as imagens de disco por padrão no formato QCOW3.

Você pode converter facilmente a imagem com o uso deste comando:

[root@cen7 ~]# qemu-img convert -f qcow2 -O qcow2 /var/lib/libvirt/images/win7.img /var/lib/libvirt/images/win7.img

Depois de ter certeza de que a imagem está no formato correto, continue com a renomeação e a cópia:

[root@cen7 ~]# mv /var/lib/libvirt/images/win7.img /root/vm.img

[root@cen7 ~]# ./ioxclient platform scp /root/vm.img

Currently active profile :  CGR1120_20

Command Name:  plt-scp

Saving current configuration

Downloaded scp keys to pscp.pem

Running command : [scp -P 2222 -r -i pscp.pem /root/vm.img scpuser@10.50.215.246:/]

Essa transferência pode demorar um pouco, as taxas de transferência de cerca de 3-4 MB/s para o CGM-SRV via Cisco IOS®. O arquivo é copiado para /mnt/data/vm/vm.img no módulo CGM-SRV.

Etapa 3. Enquanto a transferência está em andamento (ou concluída), você pode criar o arquivo package.yaml. Este arquivo descreve para o IOx o que exatamente você gostaria de implantar e como empacotá-lo.

[root@cen7 ~]# vi package.yaml

[root@cen7 ~]# cat package.yaml

descriptor-schema-version: 2.2

info:

author-link: http://www.cisco.com/

author-name: Jens Depuydt

description: Windows 7 VM for CSR-SRV

name: win7

version: 1.0

app:

type: vm

cpuarch: x86_64

resources:

profile: custom

cpu: 600

disk: 10

memory: 3072

network:

-

interface-name: eth0

-

interface-name: eth1

graphics:

vnc: true

startup:

ostype: windows

qemu-guest-agent: false

disks:

- target-dev: hda

file: file://vm.img

Como você pode ver neste pacote.yaml, consulte file://vm.img, que corresponde à localização real de mnt/data/vm/vm.img no módulo CGM-SRV.

Etapa 4. A próxima etapa é embalar com o uso do ioxclient:

[root@cen7 ~]# ./ioxclient pkg .

Currently active profile :  default

Command Name:  package

No rsa key and/or certificate files to sign the package

Checking if package descriptor file is present..

Validating descriptor file /root/package.yaml with package schema definitions

Parsing descriptor file..

Found schema version  2.2

Loading schema file for version  2.2

Validating package descriptor file..

File /root/package.yaml is valid under schema version 2.2

Created Staging directory at :  /var/folders/sp/f9qn2fsn0d5fkj7szps6qvvr0000gn/T/638513626

Copying contents to staging directory

Checking for application runtime type

Couldn't detect application runtime type

Creating an inner envelope for application artifacts

Excluding  .DS_Store

Generated  /var/folders/sp/f9qn2fsn0d5fkj7szps6qvvr0000gn/T/638513626/artifacts.tar.gz

Calculating SHA1 checksum for package contents..

Package MetaData file was not found at  /private/var/folders/sp/f9qn2fsn0d5fkj7szps6qvvr0000gn/T/638513626/.package.metadata

Wrote package metadata file :  /private/var/folders/sp/f9qn2fsn0d5fkj7szps6qvvr0000gn/T/638513626/.package.metadata

Root Directory :  /private/var/folders/sp/f9qn2fsn0d5fkj7szps6qvvr0000gn/T/638513626

Output file:  /var/folders/sp/f9qn2fsn0d5fkj7szps6qvvr0000gn/T/559089521

Path:  .package.metadata

SHA1 : 262f763740c182f95358be84514a76ac11e37012

Path:  artifacts.tar.gz

SHA1 : 3d89ccd35fe5318dd83a249a26cb8140d98d15bb

Path:  package.yaml

SHA1 : aa42f949b707df07a83a17344e488c44eb585561

Generated package manifest at  package.mf

Generating IOx Package..

Package generated at /root/package.tar

Etapa 5. Depois de criar o pacote, você pode instalá-lo em nosso CGM-SRV. O aplicativo IOx/VM é chamado win7 neste exemplo:

[root@cen7 ~]# ./ioxclient app install win7 package.tar

Currently active profile :  default

Command Name:  application-install

Saving current configuration

Installation Successful. App is available at : https://10.X.X.X:8443/iox/api/v2/hosting/apps/win7

Successfully deployed

Etapa 6. Antes de ativar a VM win7 IOx, você precisa criar um arquivo JSON de payload que defina a senha do VNC para esta VM:

[root@cen7 ~]# vi vnc.json

[root@cen7 ~]# cat vnc.json

{

"resources": {

"graphics": {"vnc-password": "password"}

}

}

Passo 7. Com o uso do payload vnc.json, você pode ativar a VM win7 IOx:

[root@cen7 ~]# ./ioxclient app activate win7 --payload vnc.json

Currently active profile :  default

Command Name:  application-activate

Payload file : vnc.json. Will pass it as application/json in request body..

App win7 is Activated

Etapa 8. A última etapa com o ioxclient é iniciar a VM:

[root@cen7 ~]# ./ioxclient app start win7

Currently active profile :  default

Command Name:  application-start

App win7 is Started

Nesse ponto, a VM do Windows é executada no CGM-SRV e você pode começar a usá-la.

Para obter acesso ao console da máquina do Windows, você pode usar o visualizador VNC na interface de saída no CGR1000 e na porta 5900, como mostrado na imagem:

De uma perspectiva de rede, você optou por dar eth0 e eth1 para a VM win7 IOx com o uso do arquivo package.yaml como mostrado na imagem:

Como você pode ver, essas interfaces obtiveram um IP do servidor DHCP que é executado no Cisco IOS® e pode ser usado sem outras configurações.

Verificar

Use esta seção para confirmar se a sua configuração funciona corretamente.

Para verificar se a VM executa:

[root@cen7 ~]# ./ioxclient app list

Currently active profile :  CGR1120_20

Command Name:  application-list

Saving current configuration

List of installed App :

1. win7       --->    RUNNING

Você também pode verificar o status do Gerenciador local, como mostrado na imagem:

Troubleshoot

Esta seção disponibiliza informações para a solução de problemas de configuração.

Para solucionar problemas com a implantação, verifique a saída de ioxclient ou /var/log/caf.log no SO host CGM-SRV.

Certifique-se de que o NAT esteja configurado corretamente para acessar todos os recursos (Cisco application-host framework (CAF), Secure Shell (SSH), VNC).