本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文說明在連線電網模組(CGM) — 系統伺服器(SRV)模組上建立並執行Windows虛擬機器(VM)的必要步驟。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
當您要在CGR1000平台上運行IOx應用程式或VM時,可以使用CGM-SRV計算模組。CGM-SRV模組實際上是包含多核x86 CPU、記憶體和儲存的小型伺服器。CGR1120和CGR1240都可以擁有其中一個模組來新增IOx功能。
在撰寫本文時,有兩種型別可供選擇:
庫存保持單位(SKU) | 固態硬碟(SSD) | RAM | CPU |
CGM-SRV-64 | 64GB(50GB可用容量) | 4GB | 4核800Mhz |
CGM-SRV-128 | 128GB(100GB可用容量) | 4GB | 4核800Mhz |
每個模組還有兩個USB儲存埠和自己的外部千兆乙太網介面。
與任何其他支援IOx的裝置一樣,該模組可以託管不同型別的IOx應用程式,但由於CGM-SRV模組的容量較大,它還可以運行完全配置的Windows或標準Linux目錄(例如Ubuntu或CentOS)。
要在CGM-SRV模組上部署Windows VM,首先需要建立包含Windows安裝的QEMU QCOW格式的映像。在Linux電腦上使用KVM和病毒建立此類映像的方法之一。
所提到的步驟完全不涉及CGR1xxx或CGM-SRV,只是建立基本的Windows 7 VM QCOW映像所需的步驟,您可以在下一步部署到CGM-SRV。
在本指南中,您可以從新安裝的CentOS7最小安裝開始。其他Linux發行版的步驟必須相似,但可能略有不同。
步驟1。首先檢查主機是否支援VM擴展。在x86平台上,這些是AMD-V或英特爾的VT-X。大多數(如果不是全部)現代x86 CPU都支援這些擴展。即使您運行虛擬機器,大多數虛擬機器監控程式也會提供傳遞/模擬這些擴展的選項。
為了檢查已安裝的CPU是否支援這些擴展,您需要檢查cpuinfo-output中是否存在vmx(對於VT-X)或svm(對於AMD-V)標誌。
[root@cen7 ~]# egrep -c '(vmx|svm)' /proc/cpuinfo 2
如果此命令的輸出為0,則意味著找不到支援VM擴展的CPU。在這種情況下,當使用VM運行此電腦時,可以檢查BIOS或虛擬機器監控程式中是否啟用了這些擴展。
步驟2.下一步是建立網橋,為可以在KMV上運行的VM提供網路。
首先,需要在核心中啟用IP轉發:
[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
為了建立網橋,IP配置需要從實際介面移動到網橋本身,因為這是擁有IP地址的介面。
完成標準安裝後,網路配置位於/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
步驟3。您可以看到,目前存在一個介面(環回介面除外),稱為eno167777736。您需要將與IP相關的配置移至可以呼叫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
步驟4.之後,您需要從實際介面清除IP配置並將其連線到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
步驟5.完成網路配置後,您可以繼續安裝KVM:
[root@cen7 ~]# sudo yum install kvm virt-manager libvirt virt-install qemu-kvm xauth dejavu-lgc-sans-fonts -y ... Complete!
步驟6.安裝完成後,最好重新啟動此電腦,以應用新安裝的模組和網路配置:
[root@cen7 ~]# init 6
步驟7.重新引導完成後,您應該能夠在網橋介面上配置的(相同)IP上訪問電腦。您必須檢查KVM核心模組是否已載入:
root@cen7 ~]# lsmod|grep kvm kvm_intel 200704 0 kvm 589824 1 kvm_intel irqbypass 16384 1 kvm
步驟8.如果這看起來正常,您可以嘗試連線病毒:
[root@cen7 ~]# sudo virsh -c qemu:///system list Id Name State ----------------------------------------------------
步驟9.最後一步是開啟此電腦上防火牆上的埠5900,以便通過VNC訪問Windows安裝:
[root@cen7 ~]# firewall-cmd --zone=public --add-port=5900/tcp --permanent success [root@cen7 ~]# firewall-cmd --reload success
現在,您擁有可與KVM安裝配合使用的系統,您可以在KVM上啟動新的VM並運行Windows安裝對話方塊。
步驟1.將Windows 7安裝ISO複製到您的VM(或使其可以通過網路訪問):
[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
步驟2.建立新的KVM VM,使其從Windows 7 ISO啟動:
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.
步驟3.VM啟動後,可以使用VNC檢視器連線到埠5900上主機的IP,並完成標準Windows安裝,如下圖所示:
如果在安裝時重新啟動了Windows,則可能有必要重新啟動帶病毒的VM(如果此操作不是自動完成的):
[root@cen7 ~]# virsh start win7 Domain win7 started
步驟4.安裝完成後,關閉VM。現在,您在建立VM時提供的路徑中擁有此安裝的QCOW映像:/var/lib/libvirt/images/win7.img。可以在CGM-SRV上部署此型別的映像來運行Windows。
現在,您在CGM-SRV上運行了正確的映像型別,可以開始部署它。
步驟1.設定與您的配置對應的思科配置檔案:
[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
在本例中,10.X.X.X對應於CGR1000上的傳出介面,在該介面上配置網路地址轉換(NAT)以轉發到CGM-SRV上的埠8443。
步驟2。現在已設定ioxclient,讓我們將先前建立的映像重新命名為vm.img,以簡化一位,並使用Secure Copy(SCP)與ioxclient一起複製到CGM-SRV。
或者,將磁碟映像轉換為CGM-SRV預期的QCOW2格式。較新版本的virt-manager似乎預設以QCOW3格式建立磁碟映像。
您可以使用以下命令輕鬆轉換影象:
[root@cen7 ~]# qemu-img convert -f qcow2 -O qcow2 /var/lib/libvirt/images/win7.img /var/lib/libvirt/images/win7.img
確定映像的格式正確後,繼續進行重新命名並複製:
[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:/]
此傳輸可能需要一段時間,傳輸速率大約為3-4MB/s,通過Cisco IOS®傳輸到CGM-SRV。檔案會複製到CGM-SRV模組上的/mnt/data/vm/vm.img。
步驟3.傳輸進行中(或完成)時,您可以建立package.yaml檔案。此檔案向IOx描述要部署的具體內容以及如何進行封裝。
[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
正如您在此package.yaml中看到的,請參閱file://vm.img,此位置與CGM-SRV模組上mnt/data/vm/vm.img的實際位置相對應。
步驟4.下一步是使用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
步驟5.建立套件後,您可以將其安裝到CGM-SRV上。在此示例中,IOx應用程式/虛擬機器稱為win7:
[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
步驟6.在啟用win7 IOx VM之前,需要建立用於設定此VM的VNC密碼的負載JSON檔案:
[root@cen7 ~]# vi vnc.json [root@cen7 ~]# cat vnc.json { "resources": { "graphics": {"vnc-password": "password"} } }
步驟7.使用vnc.json負載,您可以啟用win7 IOx VM:
[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
步驟8.使用ioxclient的最後一步是啟動VM:
[root@cen7 ~]# ./ioxclient app start win7 Currently active profile : default Command Name: application-start App win7 is Started
此時,Windows虛擬機器在CGM-SRV上運行,您可以開始使用它。
要訪問Windows電腦控制檯,您可以在CGR1000和埠5900的傳出介面上使用VNC檢視器,如下圖所示:
從網路角度來看,您選擇使用package.yaml檔案將eth0和eth1授予win7 IOx VM,如下圖所示:
您可以看到,這些介面從運行在Cisco IOS®上的DHCP伺服器獲得IP,無需進一步配置即可使用。
使用本節內容,確認您的組態是否正常運作。
若要檢查虛擬機器是否運行:
[root@cen7 ~]# ./ioxclient app list Currently active profile : CGR1120_20 Command Name: application-list Saving current configuration List of installed App : 1. win7 ---> RUNNING
您還可以從本地管理器檢查狀態,如下圖所示:
本節提供的資訊可用於對組態進行疑難排解。
若要排查部署問題,請檢查CGM-SRV主機OS上的ioxclient或/var/log/caf.log的輸出。
確保正確配置NAT以訪問所有資源(思科應用託管框架(CAF)、安全外殼(SSH)、VNC)。