虛擬化技術
|
|
半虛擬化 |
如XEN,改Kernel,直接改硬體,作業系統為Unix系列,Critix買走了XEN,台灣的代理商為精誠資訊,最大的使用者為Amazon |
完全虛擬化 |
如Virtualbox及VMWare Worksation,直接使用VTx硬體功能 |
CPU內建虛擬化技術
|
|
Intel
|
VT/EPT
|
AMD
|
AMD -V/RVI
|
Bare Metal裸機架構
|
作業系統(Unix)裝完,就支援虛擬技術
|
如KVM,VMWare ESXi (i即免費版),微軟的Hiper-V技術 |
使用VMFS檔案系統
|
台灣代理商:群環、零壹 |
Nested KVM (VMWorksation內建虛擬技術)
|
要支援此一系統,需要幾個條件 |
1. VMWare Worksation 8.0版本以後
|
2. 主要作業系統64位元 |
3. VMWorksation裡面啟動的系統也要64位元 |
在VMWorksation 9中建立及操作Nested KVM (在VMWorksation 9的Ubuntu中啟用Tiny Server Core),使用環境如下:
|
|
主要作業系統 |
Windows 2008 R2
|
VM工具
|
VMWorksation 9
|
VM中啟動的系統
|
Ubuntu 12.04 (LTS),UB641(陳松林老師提供) |
VM中啟動的系統再下一層的系統
|
Tiny Server Core
|
安裝及測試KVM (12.04 LTS版)
|
|
sudo apt-get install cpu
|
|
sudo kvm-ok
|
Your CPU supports KVM extensions (VT-x) -->亦即支援Nested VM |
探索核心模組
|
|
modprobe -l | grep kvm
|
探索核心模組,列印出來,grep 提取KVM |
kernel/arch/x86/kvm/kvm.ko kernel/arch/x86/kvm/kvm-intel.ko kernel/arch/x86/kvm/kvm-amd.ko |
作業系統安裝完就有的程式,確定可以再啟用一層虛擬技術 |
安裝QEMU (12.04 LTS版) 補KVM不足,系統安裝完,KVM就裝好了 |
sudo apt-get install qemu-kvm
|
qemu專案,負責周邊裝置,Hard disk,Network |
kvm專案,負責cpu,memory |
掛載及啟動KVM
|
|
kvm -m 128 -cdrom ISO/tsc32.iso -boot d
|
啟動ko檔及qemu,-m 設定memory為128M,光碟的iso檔,d (cdrom開機) |
kvm -m 128 -cdrom ISO/tsc32.iso -boot d &
|
掛載及啟動KVM,在背景執行
|
顯示開發虛擬應用平台QEMU
|
|
uname -r
|
3.0.21-tinycore (改裝Tiny Server Core) |
幾個重要網路指令及網路測試
|
|
ifconfig -a | grep -A5 eth0
|
得知eth0網路卡資訊 A5 (After 5,後面五行我都要看) |
route -n
|
查看default gateway,及routing table |
cat /etc/resolv.conf
|
查看DNS
|
sudo udhcpc -i eth0
|
udhcpc為最小的client程式,查看dhcp配置狀況 |
nslookup www.hinet.net
|
|
telnet 202.39.224.7 80
|
完整建置一個Tiny Server Core系統
|
|
建立一個VM檔案
|
|
mkdir vmdisk
|
建立裝載VM檔案的目錄
|
kvm-img create -f raw vmdisk/tsc32.img 20m
|
kvm-img負責做硬碟虛擬檔,如VMWorksation的vmdk檔,-f raw設定為一次到位(allocate all disk space now),而非隨需擴增。 |
kvm-img create -f vmdk vmdisk/tsc32.vmdk 20m
|
產生vmdk虛擬硬碟檔,但它是隨需擴增 fdisk,也包含Hiper-V的硬碟檔 |
掛載及啟動KVM
|
|
kvm -m 128 -cdrom ISO/tsc32.iso -hda vmdisk/tsc32.img -boot d &
|
|
tce-load -wi sudo.tcz
|
安裝sudo套件
|
分割及格式化虛擬硬碟檔
|
|
sudo fdisk -l /dev/sda
|
查看磁碟分割的狀況 |
sudo fdisk /dev/sda
|
分割虛擬硬碟檔 |
n –-> 新的分割表 p –-> (primary) 1 –-> 第一個磁區 1 –-> 磁柱 1 –-> 磁頭 w –-> write,分割資料寫入硬碟裡 |
|
sudo mkfs.ext4 /dev/sda1
|
格式化檔案 mkfs → make file system ext4 → Linux檔案格式 /dev/sda1 → 第一顆硬碟的第一個分割區(Partition) |
sudo reboot
|
格式化檔案後,重新開機 |
sudo fdisk -l /dev/sda
|
查看磁碟分割的狀況 |
ll /mnt/sda1
|
檢視第一顆硬碟的第一個分割區 |
修改系統設定 - 固定 IP 設定 |
|
sudo ifconfig eth0 10.0.2.15 netmask 255.255.255.0 up
|
設定 eth0 網卡 IP 位址 |
sudo route add default gw 10.0.2.2
|
設定 Default Gateway
|
sudo vi /etc/resolv.conf 增加內容如下: nameserver 168.95.1.1 |
設定 DNS Server
|
tce-load -wi nano.tcz
|
安裝nano套件以修改resolv.conf |
sudo reboot
|
安裝完畢重新開機 |
重建兩個Tiny server core系統
|
kvm-img create -f raw vmdisk/abc.img 20m kvm-img create -f raw vmdisk/xyz.img 20m |
kvm -m 128 -hda vmdisk/abc.img -cdrom ISO/tsc32.iso -boot d & kvm -m 128 -hda vmdisk/xyz.img -cdrom ISO/tsc32.iso -boot d & |
兩個以上系統皆要建立以下步驟 sudo fdisk /dev/sda sudo mkfs.ext4 /dev/sda1 sudo reboot sudo ifconfig eth0 10.0.2.15 netmask 255.255.255.0 up sudo route add default gw 10.0.2.2 sudo vi /etc/resolv.conf 增加nameserver 168.95.1.1 |
更改bootlocal.sh設定檔,在登入之前就會被執行,且使用root權限去執行,以啟動網路設定
|
ifconfig eth0 10.0.2.15 netmask 255.255.255.0 up
|
route add default gw 10.0.2.2
|
echo “nameserver 168.95.1.1” > /etc/resolv.conf
|
filetool.sh -b 設定修改時,儲存至硬碟的指令(Backing up files to /mnt/sda1//mydata.tgz Done) |
建立一個Shell去建立多個VM環境
|
nano myring01.sh [ ! -f vmdisk/myring01.img ]&& cp vmdisk/tc33.img vmdisk/myring01.img kvm -m 64 -hda vmdisk/myring01.img -cdrom ISO/tsc32.iso -boot d & [ ! -f vmdisk/myring02.img ]&& cp vmdisk/tc33.img vmdisk/myring02.img kvm -m 64 -hda vmdisk/myring02.img -cdrom ISO/tsc32.iso -boot d & [ ! -f vmdisk/myring03.img ]&& cp vmdisk/tc33.img vmdisk/myring03.img kvm -m 64 -hda vmdisk/myring03.img -cdrom ISO/tsc32.iso -boot d & [ ! -f vmdisk/myring04.img ]&& cp vmdisk/tc33.img vmdisk/myring04.img kvm -m 64 -hda vmdisk/myring04.img -cdrom ISO/tsc32.iso -boot d & [ ! -f vmdisk/myring05.img ]&& cp vmdisk/tc33.img vmdisk/myring05.img kvm -m 64 -hda vmdisk/myring05.img -cdrom ISO/tsc32.iso -boot d & |
filetool.sh -b
設定修改時,儲存至硬碟的指令
|
更改個人環境變數設定檔
|
|
cat /etc/passwd | grep tc ........../home/tc:bin/sh 作業系統開啟後,一開始就會去執行.ashrc |
紀錄Linux所有帳號資料,Plipe line導至,提取tc帳號顯示出來 |
sudo nano .ashrc
|
Tiny core預設去執行的Shell環境為/bin/sh,其設定檔為.ashrc 重裝Shell環境為/bin/bash,其設定檔為.bashrc |
filetool.sh -b
|