1. 程式人生 > 實用技巧 >Linux命令:KVM虛擬機器簡介

Linux命令:KVM虛擬機器簡介

KVM虛擬機器簡介

kernel‐based Virtual Machine的簡稱,是一個開源的系統虛擬化模組,自Linux 2.6.20之後整合在Linux的各個主要發行版本中。它使用Linux自身的排程器進行管理,所以相對於Xen,其核心原始碼很少。KVM目前已成為學術界的主流VMM之一。

KVM的虛擬化需要硬體支援(如Intel VT技術或者AMD V技術)。是基於硬體的完全虛擬化。而Xen早期則是基於軟體模擬的Para‐Virtualization,新版本則是基於硬體支援的完全虛擬化。但Xen本身有自己到程序排程器,儲存管理模組等,所以程式碼較為龐大。廣為流傳的商業系統虛擬化軟體VMware ESX系列也是基於軟體模擬的Para‐Virtualization。

安裝kvm 配置:

第一、看看cpu是否支援kvm

[[email protected] ~]# egrep '(vmx|svm)' ‐‐color=always /proc/cpuinfo

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nxrdtscp lm constant_tsc nonstop_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm

[[email protected] ~]# grep ‐E ‐o 'vmx|svm' /proc/cpuinfo #-E指支援正則表示式查詢,-o只顯示

匹配到的選項。

vmx

第二步:安裝kvm 所需要的軟體包

1.yum install kvm kmod‐kvm qemu kvm‐qemu‐img virt‐viewer virt‐manager

或者 yum groupinstall KVM

2.安裝完確認一下是否安裝成功檢查模組是否有載入

[[email protected] ~]# lsmod | grep kvm

kvm_intel 85256 0

kvm 224928 2 ksm,kvm_intel

也可以使用命令檢查KVM是否成功安裝

virsh ‐c qemu:///system list

將會顯示如下結果:

[[email protected] ~]# virsh ‐c qemu:///system list

Id Name State

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐

如果在這裡顯示的是一個錯誤的資訊,說明有些東西出現了問題。

3.安裝橋接管理工具

yum install bridge‐utils tunctl

4 安裝gui管理工具yum install virt‐manager virt‐viewer.

5.修改網絡卡檔案

[[email protected] ~]#cd /etc/sysconfig/network‐scripts/

[[email protected] network-scripts]#cp ifcfg‐eth0 ifcfg‐br0

[[email protected]network-scripts]#vim ifcfg‐eth0

如下:

# Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet

DEVICE=eth0

#BOOTPROTO=none

HWADDR=84:2b:2b:6e:20:d5

ONBOOT=yes

#NETMASK=255.255.255.0

#IPADDR=192.168.1.187

#GATEWAY=192.168.1.1

TYPE=Ethernet

BRIDGE=br0

[[email protected]network-scripts]#vimifcfg‐br0

如下:

# Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet

DEVICE=br0

BOOTPROTO=static

HWADDR=84:2b:2b:6e:20:d5

ONBOOT=yes

NETMASK=255.255.255.0

IPADDR=192.168.1.187

TYPE=Bridge

儲存網絡卡配置 重新啟動網絡卡

[[email protected]network-scripts]#service network restart

檢查br0 是否成功

[[email protected]network-scripts]# ifconfig

br0 Link encap:Ethernet HWaddr 84:2B:2B:6E:20:D5

inet addr:192.168.1.187 Bcast:192.168.1.255

Mask:255.255.255.0

eth0 Link encap:Ethernet HWaddr 84:2B:2B:6E:20:D4

inet addr:117.79.238.187 Bcast:117.79.238.191 Mask:255.255.255.224

eth1 Link encap:Ethernet HWaddr 84:2B:2B:6E:20:D5

inet6 addr: fe80::862b:2bff:fe6e:20d5/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

vnet0 Link encap:Ethernet HWaddr FE:52:00:3E:41:04

inet6 addr: fe80::fc52:ff:fe3e:4104/64 Scope:Link


中間碰到的問題:

1、[[email protected] ~]# virt‐manager

在一開始會看到錯誤資訊,跳過。系統預設值為xen的hypervisor,需要手動開啟kvm的Hypervisor

Unable to open a connection to the Xen hypervisor/daemon

Verify that:

‐ A Xen host kernel was booted

‐ The Xen service has been started.

這個不用管 直接跳過 其中的原因不明

2、核心不能載入kvm模組

FATAL: Error inserting kvm_amd (/lib/modules/2.6.18‐194.el5/weak‐updates/kmod‐kvm/kvm‐amd.ko): Unknown symbol in module, or unknown parameter (see dmesg)

解決辦法:

檢視是否是因為bios中關閉了cpu的虛擬化支援 (如果開啟 果斷下一步)

yum update kernel 果斷升級核心,重啟伺服器 解決

lsmod | grep kvm (重啟完我偷著樂 !!!)

[[email protected] ~]# lsmod | grep kvm

kvm_intel 85256 1

kvm 224928 2 ksm,kvm_intel

modprobe kvm (載入kvm模組)

kvm 安裝虛擬機器

影象化安裝

1.應用程式‐‐à系統工具‐‐à虛擬化管理(或者命令調出 virt‐manger)

直接圖形化操作跟vm workstation 差不多

a.新建虛擬機器,選擇 new

wKiom1nIaXqyE--kAALXpxk_Tzs497.jpg

b.虛擬機器命名(最好命名一個跟相關應用有關的)

wKioL1nIaVKC2MfNAAJ8uIHEyUc096.jpg

c.選擇cpu 支援的位數和 hypervisor 模式

wKiom1nIaaiCwf7tAAN5dXuUBJg450.jpg

d.選擇安裝系統的方式和系統

wKioL1nIaYTwtMrcAAPn6EOcXXo682.jpg

e.選擇iso檔案所在位置

wKiom1nIadmg2nIAAAJbQkTyscA815.jpg

f.p_w_picpath儲存的位置和p_w_picpath 的大小(若有單獨的虛擬化分割槽,可以選擇第一項,我預設)

wKioL1nIacjCfN4zAASpu9dB2w0827.jpg

g.選擇網絡卡模式 (橋接模式)

wKioL1nIafGg1Tf_AAQDSWR2LbA944.jpg

h.設定記憶體大小 和cpu的個數

wKioL1nIajKCj8udAASD_ZXChAk789.jpg

i.配置完成,虛擬所有資訊

wKiom1nIapmjfibIAANQTov5aDc844.jpg

系統就不用再寫了,太墨跡了

2.字元命令建立kvm 虛擬機器(懶人沒看。直接用的影象化配置)

3.Kvm虛擬機器上網

1、開啟宿主機的路由轉發功能:

echo 1 > /proc/sys/net/ipv4/ip_forward 或者直接在 /etc/sysctl.conf 中新增 修改 net.ipv4.ip_forward = 1

2、配置宿主機iptables NAT

/sbin/iptables ‐t nat ‐A POSTROUTING ‐s 192.168.1.0/24 ‐j MASQUERADE

/sbin/iptables –t nat –A POSTROUTING –s 192.168.1.0/24 ‐o eth0 ‐j SNAT ‐‐to 117.79.238.187

/sbin/iptables save

3、配置虛擬機器,設定網絡卡

wKioL1nIarzSiRLaAAk10l-LmWE062.jpg

到此配置完畢!~~~



轉載於:https://blog.51cto.com/woyaoxuelinux/1968351