下載
$wget http://140.137.223.52:8080/kvmgrimoire.zip
解壓縮kvmgrimoire.zip
$unzip kvmgrimoire.zip
產生與指定 XML 系統架構檔
$ cd ~/kvmgrimoire
$ touch conf/mynet.xml
$ echo "conf/mynet.xml" > conf/default
建立所需的虛擬 Switch HUB編輯 mynet.xml 系統架構檔, 設定內容如下 :
$nano conf/mynet.xml
<?xml version="1.0"?>
<network>
<!-- 透過 name 屬性, 指定 Switch HUB 的名稱 -->
<switch-hub name="SH100">
<!-- 設定 Bare-Metal 主機可直接與此網段其他虛擬主機連接的 IP 位址 (可以不設定) -->
<ip>172.16.100.1/24</ip>
<ports>
<!-- 此 Port 作為 Switch-Hub 裝置本身使用 -->
<tap name="SH100-NET" mac="02:01:00:00:00:00"/>
<!-- 這些 Port 提供給虛擬主機使用 -->
<tap name="SH100P1" mac="02:01:00:00:00:01"/>
<tap name="SH100P2" mac="02:01:00:00:00:02"/>
<!-- 這些 Port 提供給路由主機使用 -->
<tap name="SH100R1" mac="02:01:00:00:00:f0"/>
<tap name="SH100R2" mac="02:01:00:00:00:f1"/>
</ports>
</switch-hub>
</network>
XML 系統架構檔一旦設定完畢, 可執行 kvmaddsw.sh 程式, 實作所需的 Switch-HUB
$ sudo ./kvmaddsw.sh SH100
SH100SH100 建立成功
SH100-NET 建立成功
SH100P1 建立成功
SH100P2 建立成功
SH100R1 建立成功
SH100R2 建立成功
如要刪除所建立的 Switch HUB, 執行以下程式
$ sudo ./kvmdelsw.sh SH100
SH100 刪除成功
SH100-NET 刪除成功
SH100P1 刪除成功
SH100P2 刪除成功
SH100R1 刪除成功
SH100R2 刪除成功
檢查所建立的Switch HUB
$brctl show
規劃與建置所需的虛擬硬碟檔
因 NAT 虛擬主機所面對的網路架構可能是多網段,所以它會需要虛擬硬碟, 儲存路由表資訓. 建立虛擬硬碟檔, 請在 conf/mynet.xml 加入以下定義
<network>
:
<vm-disk>
<disk type="raw" name="vmdisk/NAT100.img" size="20m"/>
<disk type="raw" name="vmdisk/NAT101.img" size="20m"/>
</vm-disk>
</network>
根據 mynet.xml 定義檔產生所需的虛擬硬碟檔, 執行以下程式
規劃與建置所需的 NAT 虛擬主機
增加實作主機 br0 網路介面, 編輯 /etc/network/interfaces 檔案, 命令如下 : $ sudo nano /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off [注意] /etc/network/interfaces 檔案修改後, 一定要重新開機
設定 NAT 虛擬主機, 請在 conf/mynet.xml 加入以下定義
<network> : : <router name="RBR0.100"> <vm name="GW100" osname="TSC" ostype="32"> <uplink sw="br0" port="NAT100" mac="02:01:72:16:10:22"> <!-- 設定此網路介面使用 DHCP 取得 TCP/IP 設定 --> <ipv4>dhcp</ipv4> </uplink> <nextlink port="SH100R2" mac="02:02:72:16:10:ff"> <ipv4>172.16.100.254:255.255.255.0::</ipv4> </nextlink> <!-- 啟動 NAT 功能 --> <nat>true</nat> <disk name="vmdisk/NAT100.img"/> </vm> </router> </network> 根據 mynet.xml 定義檔啟動所需的 NAT 虛擬主機, 執行以下程式 $ sudo ./kvmrouter.sh RBR0.100
$ cd ~/kvmgrimoire$ sudo ./kvmaddsw.sh SH100
$ sudo ./kvmaddsw.sh SH200
$ sudo ./kvmrouter.sh RBR0.100
$ sudo ./kvmrouter.sh R100.200
$ sudo ./kvmclient.sh SH100
$ sudo ./kvmclient.sh SH200
----------------------------------------------------
建置 iLab 雲中虛擬平台
1. 下載網址
$ cd $ wget http://www.tobala.net/download/iLab.zip 2. 將 iLab 雲中虛擬系統平台, 解壓縮至家目錄 $ unzip iLab.zip
建立 iLab 雲中虛擬教學模組 進入 iLab 目錄 $ cd iLab 批次快速建立 $ sudo ./labcmd.sh create -f Lab101
啟動 Lab101 虛擬教學模組 $ sudo ./labcmd.sh start Lab101
檢視 Lab101 狀態 $ sudo ./labcmd.sh list Lab101: GW100 執行中 R660 執行中 R88 執行中 TC660 關機 TC88 關機 啟動單一虛擬電腦 $ sudo ./labcmd.sh start Lab101 TC88 啟動 Lab101 單一虛擬電腦 ----------------------------- TC88 啟動中 .... 成功 登入 TC88 - 視窗模式 $ sudo virt-viewer TC88 登入 R88 - Console 模式 $ sudo virsh console R88
-------------------------------------------------------------------
安裝 Neatx Server (Linux遠端桌面,取代VNC)
$ sudo add-apt-repository ppa:nathan-renniewaldock/ppa && sudo add-apt-repository ppa:freenx-team
$ sudo apt-get update
$ sudo apt-get install neatx-server
可參考
http://linuxkvm.blogspot.tw/2011/07/linux-kvm-linux.html
--------------------------------------------------------------
02-製作 iLab 虛擬教學模組
在 iLab 目錄中, 產生 Lab168 虛擬教學模組目錄 $ cd ~/iLab $ mkdir Lab168 $ cd Lab168
產生 Vyatta 虛擬電腦 1. 產生虛擬硬碟 $ kvm-img create -f qcow2 vyatta254.qcow2 1G Formatting 'vyatta254.qcow2', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 2. 開始安裝 $ virt-install -r 512 -n vyatta254 --disk path=./vyatta254.qcow2,format=qcow2
--noreboot --cdrom ~/vyatta-livecd_VC6.5R1_amd64.iso
啟動
$ kvm -m 1024 -cdrom vyatta-livecd_VC6.5R1_amd64.iso vyatta254.qcow2
3. 登入畫面, 輸入 vyatta/vyatta
4. 輸入 install system 命令, 開始將 Vyatta 系統安裝至硬碟
$ install system
The wizard is opened and you are going to through installation process:
Would you like to continue? (Yes/No) [YES]: Enter
Partition (Auto/Union/Parted/Skip) [Auto]: Enter
Install the image on? [sda]: Enter
This will destroy all data on /dev/sda.
Continue? (Yes/No) [No]: Yes
How big of root partition should I create? (1000MB – 1074MB) [1074]MB: Enter
I found the following configuration files
/opt/vyatta/etc/config/config.boot
Which one should I copy to sda? [/opt/vyatta/etc/config/config.boot] Enter
Enter password for administrator account
Enter vyatta password: student
Retype vyatta password: student
Which drive should GRUB modify the boot partition on? [sda]: Enter
Done!
在 Lab168 目錄產生 vyatta254.xml 設定檔 $ virsh dumpxml vyatta254 > vyatta254.xml
移除 vyatta254 虛擬電腦 $ virsh undefine vyatta254 區域 vyatta254 已經取消定義 修改 vyatta254 虛擬電腦設定檔 $ nano vyatta254.xml <domain type='kvm'> <name>vyatta254</name> # 設虛擬主機名稱, 要確定具有唯一性 <!--uuid>88c793a6-7d32-28e0-1bbf-7f42be1d475d</uuid--> # 刪除這行, 建立虛擬主機時, 會重新產生 <memory>524288</memory> <currentMemory>524288</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='pc-1.0'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='-vmdk-vyatta254.qcow2'/> # 利用 "-vmdk-" 置換字串, 給予虛擬硬碟檔正確完整目錄 <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' unit='0'/> </disk> <disk type='block' device='cdrom'> <driver name='qemu' type='raw'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' unit='0'/> </disk> <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <interface type='network'> # 將 type='user' 改成 type='network' <mac address='52:54:00:b4:05:c6'/> # 修改 MAC 位址, 要確定具有唯一性 <!--address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/--> # 請移除此行 <source network='default'/> # 加入這一行, 虛擬網路名稱要一致 (注意大小寫) </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes'/> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </memballoon> </devices> </domain>
編輯 Lab168 虛擬教學模組設定檔 - Lab.xml $ nano Lab.xml <KVMLab> <name>Lab168</name> <description>Networking 168 : Vyatta Network</description> <!-- Lab 運作資訊 --> <task> <job>VM Description</job> <!-- Lab 網路架構圖 --> <map>Lab168.png</map> </task> <!-- 指定虛擬硬碟檔的存放目錄, "-user-" 代表登入的帳號名稱 --> <store>/home/-user-/myLab/</store> <!-- Lab 啟動設定 --> <labup> <!-- Lab 啟動前需先關閉以下虛擬主機 S : 代表使用 "virsh shutdown" 關機 D : 代表使用 "virsh destroy" 關機 --> <shutdown> </shutdown> </labup> <!-- Lab 所需網路設備 X:SH | H : 代表 Switch HUB --> <network> </network> <!-- Lab 所需虛擬主機 xx:vm:IP(MAC),IP(MAC):Port || ||*** S :代表 shutdown, D :代表 destroy | |**** U :代表啟動 VM, D :代表不啟動 VM --> <vm> US:vyatta254:192.168.122.xx(ff),192.168.100.254(5): </vm> </KVMLab>
產生 Lab168 虛擬教學模組 $ cd ~/iLab $ sudo ./labcmd.sh create -f Lab168 => 開始建立 Lab168/ 虛擬網路 (Virtual Network) => 開始建立 Lab168/ 虛擬電腦 (Virtual Machine) 複製 vyatta254.qcow2 檔案 ... 成功 建立 vyatta254 虛擬電腦完成
啟動 Lab168 虛擬教學模組 $ sudo ./labcmd.sh start Lab168 啟動 Lab168 所有虛擬電腦 ----------------------------- vyatta254 啟動中 .... 成功 登入 vyatta254 虛擬電腦 $ sudo virsh console vyatta254 Connected to domain vyatta254 Escape character is ^] Welcome to Vyatta - vyatta ttyS0 vyatta login: vyatta Password: 按 "ctrl + ]" 脫離 vyatta254 的 Console 模式 停止 Lab168 虛擬教學模組 $ sudo ./labcmd.sh stop Lab168 關閉 Lab168 所有虛擬電腦 ----------------------------- vyatta254 已關機 移除 Lab168 虛擬教學模組 $ sudo ./labcmd.sh delete -f Lab168 => 開始刪除 Lab168/ 虛擬網路 (Virtual Network) => 開始刪除 Lab168/ 虛擬電腦 (Virtual Machine) 刪除 vyatta254 虛擬電腦成功 刪除 vyatta254.qcow2 虛擬電腦硬碟檔成功
沒有留言:
張貼留言