KVM簡明手冊

2021-05-23 06:23:34 字數 4345 閱讀 6686

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

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

這樣又多了乙個網路裝置br0:

yao@twomoon:~$ lang=c ifconfig -a |grep ethernet

br0 link encap:ethernet hwaddr 2a:24:d3:aa:99:e7

eth0 link encap:ethernet hwaddr 90:fb:a6:14:cd:42

如果沒有弄明白為什麼,可以上網找找橋接的資料和brctl的用法。

當然不能每次開機後都要手工輸入這麼多命令。你可以將這些命令寫成乙個指令碼,每次開機就執行這個指令碼:

#!/bin/bash

# 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

也可以寫到網絡卡的配置檔案配置檔案(/etc/network/inte***ces)裡,效果是一樣的:

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

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

如果虛擬機器是linux,那麼就用ssh;如果是windows,那麼就用rdesktop。

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...