天天看點

KVM虛拟機簡介  (ZZ)

安裝kvm 配置:

第一、看看cpu是否支援kvm

[root@localhost ~]# 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 nx rdtscp lm constant_tsc nonstop_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm

[root@localhost ~]# grep -E -o 'vmx|svm' /proc/cpuinfo

vmx

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

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

或者

yum groupinstall KVM

2.安裝完确認一下是否安裝成功

檢查子產品是否有加載

[root@localhost ~]# lsmod  | grep kvm

kvm_intel              85256  0

kvm                   224928  2 ksm,kvm_intel

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

   virsh -c qemu:///system list

将會顯示如下結果:

[root@localhost ~]# virsh -c qemu:///system list

Id Name                 State

----------------------------------

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

3.安裝橋接管理工具

yum install bridge-utils tunctl

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

5.修改網卡檔案

 #cd /etc/sysconfig/network-scripts/

 #cp ifcfg-eth1 ifcfg-br0

 #vim ifcfg-eth1 如下:

   # Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet

   DEVICE=eth1

   #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

Vim ifcfg-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

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

#service network  restart

檢查br0 是否成功

[root@localhost 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、[root@benjr ~]# 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  (重新開機完我偷着樂 !!!)

[root@localhost ~]# lsmod | grep kvm

kvm_intel              85256  1

modprobe kvm  (加載kvm子產品)

kvm 安裝虛拟機

圖像化安裝

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

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

a.建立虛拟機,選擇 new

<a target="_blank" href="http://www.qianshoublog.com/upload/201105282051398742.jpg"></a>

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

<a target="_blank" href="http://www.qianshoublog.com/upload/201105282051524644.jpg"></a>

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

e.選擇iso檔案所在位置

<a target="_blank" href="http://www.qianshoublog.com/upload/201105282051524646.jpg"></a>

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

<a target="_blank" href="http://www.qianshoublog.com/upload/201105282051532232.jpg"></a>

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

<a target="_blank" href="http://www.qianshoublog.com/upload/201105282051534670.jpg"></a>

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

<a target="_blank" href="http://www.qianshoublog.com/upload/201105282051533383.jpg"></a>

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

2.字元指令建立kvm 虛拟機(懶人沒看。直接用的圖像化配置)

3.Kvm虛拟機上網

1、開啟主控端的路由轉發功能:

echo 1 &gt; /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、配置虛拟機,設定網卡

<a target="_blank" href="http://www.qianshoublog.com/upload/201105282051535100.jpg"></a>

到此配置完畢!~~~

error: Failed to reconnect to the hypervisor

error: no valid connection

error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

Further investigation found avahi was needed for this to work. The final fix was running

yum -y install avahi

/etc/init.d/messagebus restart

/etc/init.d/avahi-daemon restart

/etc/init.d/libvirtd restart

/sbin/chkconfig messagebus on

/sbin/chkconfig avahi-daemon on

1.删除redhat原有的yum

rpm -aq|grep yum|xargs rpm -e --nodeps 

2.下載下傳yum安裝檔案 

wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.27-14.el6.centos.noarch.rpm 

wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm 

wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.26-11.el6.noarch.rpm 

wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm 

3.進行安裝yum 

rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm 

rpm -ivh yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm 

rpm -ivh yum-3.2.27-14.el6.centos.noarch.rpm um-plugin-fastestmirror-1.1.26-11.el6.noarch.rpm  

注意最後兩個包必需同時安裝,否則會互相依賴 

4.更新repo檔案

mv /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/rhel-debuginfo.repo.repo.bak

vi /etc/yum.repos.d/rhel-debuginfo.repo

内容為:

[base]

name=CentOS-$releasever - Base

baseurl=http://mirrors.163.com/centos/6.0/os/$basearch/

gpgcheck=1

gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

#released updates

[updates]

name=CentOS-$releasever - Updates

baseurl=http://mirrors.163.com/centos/6.0/updates/$basearch/

#packages used/produced in the build but not released

#[addons]

#name=CentOS-$releasever - Addons

#baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/

#gpgcheck=1

#gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

baseurl=http://mirrors.163.com/centos/6.0/extras/$basearch/

#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus

baseurl=http://mirrors.163.com/centos/6.0/centosplus/$basearch/

enabled=0

5、yum clean all

6、yum install vim #測試一下可不可以用

【設定本地鏡像作為yum源】

1、mkdir /mnt/cdrom

2   mount /dev/cdrom /mnt/cdrom  #挂着鏡像,CD光牒

3  mkdir /home/redhat-iso

4  cp -Rf /mnt/cdrom/* /home/redhat-iso   #将CD光牒内的内容copy到某個路徑下

5  vi /etc/yum.repos.d/rhel-debuginfo.repo  #編輯repo檔案

添加一下内容:

[rhel_6_iso]

name=local iso 

baseurl=file:///home/redhat-iso/

gpgkey=file:///home/redhat-iso/RPM-GPG-KEY-CentOS-6 #該處的gpgkey檔案應該改成iso鏡像中的檔案名

【關于yum的一點資料】

一、yum是什麼

yum = Yellow dog Updater, Modified

主要功能是更友善的添加/删除/更新RPM包.

它能自動解決包的倚賴性問題.

二、 yum特點

*可以同時配置多個資源庫(Repository)

*簡潔的配置檔案(/etc/yum.conf,/etc/yum.repos.d 下的檔案)

*自動解決增加或删除rpm包時遇到的倚賴性問題

*使用友善

*保持與RPM資料庫的一緻性

三、 yum安裝

Centos/RHEL

1. #rpm -ivh yum-2.4.3-4.el4.centos.noarch.rpm

四、yum配置

yum的配置檔案

yum的一切配置資訊都儲存在一個叫yum.conf的配置檔案中,通常位于/etc目 錄下,這是整個yum系統的重中之重,是以有必要詳細介紹。下面是一個從網上找來的yum.con檔案,讓我們以此為例,進行說明。

[main] 

cachedir=/var/cache/yum 

debuglevel=2 

logfile=/var/log/yum.log 

pkgpolicy=newest 

distroverpkg=redhat-release 

tolerant=1 

exactarch=1 

retries=1 

[base] 

name=Fedora Core $releasever - $basearch - Base 

baseurl=http://download.atrpms.net/mirrors/fedoracore/$releasever/$basearch/os 

<a href="http://rpmfind.net/linux/fedora/cor...er/%24basearch/os">http://rpmfind.net/linux/fedora/cor...er/$basearch/os</a>

<a href="http://mirror.clarkson.edu/pub/dist...er/%24basearch/os">http://mirror.clarkson.edu/pub/dist...er/$basearch/os</a>

[updates-released] 

name=Fedora Core $releasever - $basearch - Released Updates 

baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch 

<a href="http://redhat.linux.ee/pub/fedora/l...sever/%24basearch">http://redhat.linux.ee/pub/fedora/l...sever/$basearch</a>

<a href="http://fr2.rpmfind.net/linux/fedora...sever/%24basearch">http://fr2.rpmfind.net/linux/fedora...sever/$basearch</a>

[Fedora.us] 

name=Fedora.us - $basearch - Extras 

baseurl=http://fedora.linux.duke.edu/fedorax86_64/fedora.us/$releasever/$basearch/RPMS.stable

[Dag Wieers] 

name=Dag RPM Repository for Fedora Core 

baseurl=http://apt.sw.be/fedora/$releasever/en/$basearch/dag 

[Livna] 

Name=Livna RPM, Fedora Core $releasever - $basearch 

baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.stable 

[freshrpms] 

name=FreshRPMs 

baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms/ 

<a href="http://ftp.us2.freshrpms.net/linux/...arch/freshrpms/">http://ftp.us2.freshrpms.net/linux/...arch/freshrpms/</a>

第一部分(這是yum的全局性設定。預設一般不必改動。)

[main]

debuglevel:除錯級别,0-10,預設是2。

logfile:yum的日志檔案,預設是/var/log/yum.log。

distroverpkg:指定一個軟體包,yum會根據這個包判斷你的發行版本,預設是redhat-release,也可以是安裝的任何針對自己發行版的rpm包。

exactarch,有兩個選項1和0,代表是否隻更新和你安裝軟體包cpu體系一緻的包,如果設為1,則如你安裝了一個i386的rpm,則yum不會用1686的包來更新。

retries,網絡連接配接發生錯誤後的重試次數,如果設為0,則會無限重試。

tolerent,也有1和0兩個選項,表示yum是否容忍指令行發生與軟體包有關的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經安裝了,如果你設為1,則yum不會出現錯誤資訊。預設是0。

除了上述之外,還有一些可以添加的選項,如

exclude=,排除某些軟體在更新名單之外,可以用通配符,清單中各個項目要用空格隔開,這個對于安裝了諸如美化包,中文更新檔的朋友特别有用。

gpgchkeck= 有1和0兩個選擇,分别代表是否是否進行gpg校驗,如果沒有這一項,預設好像也是檢查的。

第二部分:

配置repository伺服器了,這是最令人激動的,有了好的repository,就如家門口開了大賣場,要什麼東西稍微跑跑腿就行,對了這還是個免費的大賣場。

所有伺服器設定都應該遵循如下格式:

1. [serverid]

3. baseurl=url://path/to/repository/

其中serverid是用于差別各個不同的repository,必須有一個獨一無二的名稱。

name,是對repository的描述,支援像$releasever $basearch這樣的變量;

baseurl是伺服器設定中最重要的部分,隻有設定正确,才能從上面擷取軟體。它的格式是:

1. baseurl=url://server1/path/to/repository/

2. url://server2/path/to/repository/

3. url://server3/path/to/repository/

其中url支援的協定有 http:// ftp:// file://三種。baseurl後可以跟多個url,你可以自己改為速度比較快的鏡像站,但baseurl隻能有一個,也就是說不能像如下格式:

2. baseurl=url://server2/path/to/repository/

3. baseurl=url://server3/path/to/repository/

其中url指向的目錄必須是這個repository header目錄的上一級,它也支援$releasever $basearch這樣的變量。

url之後可以加上多個選項,如gpgcheck、exclude、failovermethod等,比如:

1. [updates-released]

2. name=Fedora Core $releasever - $basearch - Released Updates

3. baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch

6. gpgcheck=1

7. exclude=gaim

8. failovermethod=priority

其中gpgcheck,exclude的含義和[main]部分相同,但隻對此伺服器起作用,failovermethode 有兩個選項roundrobin和priority,意思分别是有多個url可供選擇時,yum選擇的次序,roundrobin是随機選擇,如果連接配接失 敗則使用下一個,依次循環,priority則根據url的次序從第一個開始。如果不指明,預設是roundrobin。

幾個變量

$releasever,發行版的版本,從[main]部分的distroverpkg擷取,如果沒有,則根據redhat-release包進行判斷。

$arch,cpu體系,如i686,athlon等

$basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha。

對yum.conf設定完成,我們就可以好好體驗yum帶來的友善了。

五、RHEL/CENTOS的yum源

1、修改配置檔案

2、導入GPG KEY

導入每個reposity的GPG key,前面說過,yum可以使用gpg對包進行校驗,確定下載下傳包的完整性,是以我們先要到各個repository站點找到gpg key,一般都會放在首頁的醒目位置,一些名字諸如 RPM-GPG-KEY.txt之類的純文字檔案,把它們下載下傳,然後用rpm --import xxx.txt指令将它們導入,最好把發行版自帶GPG-KEY也導入。rpm --import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官方軟體更新用的上。

六、擴充你的rpm包

1、rpmforge

Centos/RHEL預設的yum軟體倉庫非常有限,僅僅限于發行版本那幾張盤裡面的正常包和一些軟體包的更新,利用RpmForge,可以增加非常多的第三方rpm軟體包。

擷取

<a href="http://dag.wieers.com/rpm/packages/rpmforge-release/" target="_blank">http://dag.wieers.com/rpm/packages/rpmforge-release/</a>

找到與系統平台架構比對的rpmforge包安裝之即可。安裝完後.預設會在系統的/etc/yum.repos.d/下新增兩個檔案,mirrors-rpmforge和rpmforge.repo

安裝

# rpm -ivh rpmforge-release-0.3.6-1.el4.rf.i386.rpm

2、加速yum更新速度

安裝yum的fast mirror插件,可以加快 CentOS/RHEL yum的速度和提高穩定性,效果顯著。

centos5 

#yum -y install yum-fastestmirror

centos4

yum -y install yum-plugin-fastestmirror

七、 yum使用

注:當第一次使用yum或yum資源庫有更新時,yum會自動下載下傳所有所需的headers放置于/var/cache/yum目錄下,所需時間可能較長.

系統更新(更新所有可以更新的rpm包,包括kernel)

#yum -y update

每天定期執行系統更新

#chkconfig yum on

#service yum start

*rpm包的更新,檢查可更新的rpm包

#yum check-update

更新所有的rpm包

#yum update

更新指定的rpm包,如更新kernel和kernel source

#yum update kernel kernel-source

大規模的版本更新,與yum update不同的是,連舊的淘汰的包也更新

#yum upgrade

*rpm包的安裝和删除

安裝rpm包,如xmms-mp3

#yum install xmms-mp3

删除rpm包,包括與該包有倚賴性的包

#yum remove licq

注:同時會提示删除licq-gnome,licq-qt,licq-text

*yum暫存(/var/cache/yum/)的相關參數

清除暫存中rpm封包件

#yum clean packages

清除暫存中rpm頭檔案

#yum clean headers

清除暫存中舊的rpm頭檔案

#yum clean oldheaders

清除暫存中舊的rpm頭檔案和封包件

#yum clean 或#yum clean all

注:相當于yum clean packages + yum clean oldheaders

*rpm包清單

列出資源庫中所有可以安裝或更新的rpm包

#yum list

列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包

#yum list mozilla

#yum list mozilla*

注:可以在rpm包名中使用比對符,如列出所有以mozilla開頭的rpm包

列出資源庫中所有可以更新的rpm包

#yum list updates

列出已經安裝的所有的rpm包

#yum list installed

列出已經安裝的但是不包含在資源庫中的rpm包

#yum list extras

注:通過其它網站下載下傳安裝的rpm包

*rpm包資訊顯示(info參數同list)

列出資源庫中所有可以安裝或更新的rpm包的資訊

#yum info

列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包的資訊

#yum info mozilla

#yum info mozilla*

注:可以在rpm包名中使用比對符,如列出所有以mozilla開頭的rpm包的資訊

列出資源庫中所有可以更新的rpm包的資訊

#yum info updates

列出已經安裝的所有的rpm包的資訊

#yum info installed

列出已經安裝的但是不包含在資源庫中的rpm包的資訊

#yum info extras

注:通過其它網站下載下傳安裝的rpm包的資訊

*搜尋rpm包

搜尋比對特定字元的rpm包

#yum search mozilla

注:在rpm包名,包描述等中搜尋

搜尋有包含特定檔案名的rpm包

#yum provides realplay

八、yum常用問題解決

1、如果網速慢的話可以通過增加yum的逾時時間,這樣就不會總是因為逾時而退出。

#vi /etc/yum.conf

#加上這麼一句

timeout=120

2、yum Existing lock錯誤的解決辦法

如果系統啟動的時候, yum出現Existing lock /var/run/yum.pid: another copy is running as pid 3380. Aborting.可以用下面的辦法解決:

方法一

etc/init.d/yum-updatesd stop

方法二

#rm -f /var/run/yum.pid

主要原因就是yum在自動更新,隻要關掉它就可以了。

先安裝fastestmirror,讓系統yum的時候自動選擇最快的鏡像:

#yum install yum-fastestmirror -y

接下來說說RPMForge。

1、先安裝priority這個yum的插件,這個插件用來設定安裝軟體時候軟體倉庫的優先級,一般是預設先從官方base或者鏡像安裝,然後從社群使用者contribute的軟體中安裝,再從第三方軟體倉庫中安裝。

#yum install yum-priorities

2、手動編輯 /etc/yum.repos.d/ 目錄中字尾為.repos的檔案來設定軟體倉庫的優先級

priority=N(N是整數,範圍從1-99,數字越小代表優先級越高)

官方推薦配置是

[base], [addons], [updates], [extras] 這幾部分 priority=1

[centosplus],[contrib] 這幾部分priority=2

Third Party Repos such as rpmforge … priority=N  (where N is &gt; 10 and based on your preference)

3、現在開始安裝rpmforge的軟體倉庫

先下載下傳rpmforge的安裝包

rpm -i rpmforge-release-0.3.6-1.el5.rf.*.rpm

更改 /etc/yum.repos.d/rpmforge.repo 配置檔案,添加

priority=1(或者2.3.4….)

現在就可以使用rpmforge這個軟體倉庫了。比如yum update rsync,嘿嘿,成功更新到3.0.5了。

本文轉自luojinghappy 51CTO部落格,原文連結:http://blog.51cto.com/luojinghappy/1246646,如需轉載請自行聯系原作者

繼續閱讀