kvm是乙個基於linux核心的虛擬機器解決方案。本文介紹kvm的使用方法,以及注意要點。
linux brctl
先決條件
硬體環境
cpu硬體虛擬化
32位與64位
安裝kvm
虛擬機器連網
brctl橋接
安裝以及執行虛擬機器
kvm常用命令
安裝虛擬作業系統
遠端登入
x86(包括32位和64位),就是我們常用的系統。
kvm需要系統cpu支援,下面命令如果有輸出,說明cpu支援硬體虛擬化:
egrep "flags.*:.*(svm|vmx)" /proc/cpuinfo下面是32bit與64bit和主機系統與虛擬作業系統的關係:
主機作業系統
虛擬機器作業系統
是否支援
32位32位
是32位
46位否
64位32位
是64位
64位是
總結為一句話:不能在32位主機上裝64位的作業系統。
yao@debian:~$ apt-get install kvm qemu uml-utilities一般情況下,安裝好kvm後能就自動載入核心模組,你也可以手動載入:
yao@debian:~$ modprobe kvm_intel #or kvm_amd虛擬機器連網是頭等大事,所以我們先解決這個問題。通過橋接可以實現聯網,主要用到的命令有:brctl,ifconfig,tunctl,route
brctl是乙個乙太網橋接工具,常見的用法有:
命令原型
例子說明
brctl show
brctl show
顯示已有網橋
brctl addbr
brctl addbr br0
增加網橋br0
brctl delbr
brctl delbr br0
刪除網橋br0
brctl addif
brctl addif br0 eth0
將介面eth0接到網橋br0
brctl delif
brctl delif br0 eth0
從網橋上刪除乙個介面
如果發現無法刪除網橋,那麼可能是還沒有將其關閉:
yao@twomoon:~$ sudo brctl delbr br0說了這麼多,到這才是重點。首先,將物理網絡卡橋接:bridge br0 is still up; can't delete it
yao@twomoon:~$ sudo ifconfig br0 down
yao@twomoon:~$ sudo brctl delbr br0
yao@twomoon:~$ ifconfig -a |grep eth這樣又多了乙個網路裝置br0:eth0 link encap:ethernet hwaddr 90:fb:a6:14:cd:42
yao@twomoon:~$ brctl addbr br0
yao@twomoon:~$ brctl addif br0 eth0
yao@twomoon:~$ ifconfig eth0 0.0.0.0
yao@twomoon:~$ ifconfig br0 192.168.1.51 up
yao@twomoon:~$ lang=c ifconfig -a |grep ethernet如果沒有弄明白為什麼,可以上網找找橋接的資料和brctl的用法。br0 link encap:ethernet hwaddr 2a:24:d3:aa:99:e7
eth0 link encap:ethernet hwaddr 90:fb:a6:14:cd:42
當然不能每次開機後都要手工輸入這麼多命令。你可以將這些命令寫成乙個指令碼,每次開機就執行這個指令碼:
#!/bin/bash也可以寫到網絡卡的配置檔案配置檔案(/etc/network/inte***ces)裡,效果是一樣的:# networking.sh
# change eth0 to your network inte***ce(eg. eth1)
ifconfig lo 127.0.0.1 up
if [ ! -z "`ifconfig -a | grep br0`" ]; then
ifconfig br0 down
brctl delif br0 eth0
brctl delbr br0
fibrctl addbr br0
brctl addif br0 eth0
ifconfig eth0 0.0.0.0 up
ifconfig br0 192.168.1.51 up
route add default gw 192.168.1.1
exit 0
auto lo引數iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.1.51
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports eth0
示例說明
-hda
-hda /data/windows.img
指定windows.img作為硬碟映象
-cdrom
-hda /data/windows.iso
指定windows.iso作為光碟映象
-boot
-boot c
從硬體啟動
-boot d
從光碟啟動
-m-m 512
分配512m記憶體給虛擬系統
-vnc
-vnc :0
作為vnc伺服器
-cpu
-cpu ?
列出支援的cpu
-cpu core2duo
指定cpu為core2duo
-smp
-smp 2
指定虛擬機器有2個cpu
-net
-net nic
為虛擬機器網絡卡(預設為tap0)
-net tap
系統分配tap裝置(預設為tap0)1
-net nic -net tap
將虛擬機器的網絡卡eth0連線真機裡的tap0
生成映象檔案:
yao@twomoon:~$ sudo kvm-img create windows2003-x86.img 25g -f "vmdk"安裝系統:
yao@twomoon:~$ sudo kvm -boot d -m 512 -hda ~/kvm/windows2003-x86.img -cdrom ~/software/wzmb2003.iso執行系統:
yao@twomoon:~$ sudo kvm -boot c -m 512 -hda ~/kvm/windows2003-x86.img -net nic -net tap可以發現多了乙個網路裝置tap0,這是系統自動建立的。
yao@twomoon:~$ lang=c ifconfig -a |grep ethernet如果虛擬機器是linux,那麼就用ssh;如果是windows,那麼就用rdesktop。br0 link encap:ethernet hwaddr 2a:24:d3:aa:99:e7
eth0 link encap:ethernet hwaddr 90:fb:a6:14:cd:42
tap0 link encap:ethernet hwaddr 2a:24:d3:aa:99:e7
yao@debian:~$ rdesktop -u username -p passwd 192.168.1.52 -f &記得用ctrl-alt-enter從全屏中切回來。
1. 在計算機網路中,tun與tap是作業系統核心中的虛擬網路裝置。不同於普通靠硬體網路板卡實現的裝置,這些虛擬的網路裝置全部用軟體實現,並向執行與作業系統上的軟體提供與硬體的網路裝置完全相同的功能。 tap 等同於乙個乙太網裝置,它操作第二層資料報如乙太網資料幀。tun模擬了網路層裝置,操作第三層資料報比如ip資料封包。 作業系統通過tun/tap裝置向繫結該裝置的使用者空間的程式傳送資料,反之,使用者空間的程式也可以像操作硬體網路裝置那樣,通過tnu/tap裝置傳送資料。在後種情況下,tun/tap裝置向作業系統的網路棧投遞(或「注入」)資料報,從而模擬從外部接受資料的過程。(摘自維基百科)
Greenplum簡明手冊
su gpadmin gpstart 正常啟動 gpstop 正常關閉 gpstop m fast 快速關閉 gpstop r 重啟 正常登陸 psql gpdb psql d gpdb h gphostm p 5432 u gpadmin 使用utility方式 pgoptions c gp se...
sqlite簡明手冊
建立資料庫檔案 用sqlite3建立資料庫的方法很簡單,只要在shell下鍵入 以下 符號為shell提示號,請勿鍵入 sqlite3 foo.db 在sqlite3提示列下操作 進入了sqlite3之後,會看到以下文字 sqlite version 3.1.3enter help for inst...
Impala簡明調優手冊
impala是cloudera開發 開源的乙個原生於hadoop的互動式sql引擎。本身impala的出現並不是為了替代hive pig等現有的 常用的etl工具。實用的場景往往於商業智慧型密不可分,比如對資料進行聚合 aggregation 做一些簡單的分析統計 比如window function...