亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 86815 | 回復(fù): 88
打印 上一主題 下一主題

CentOS6下的KVM學(xué)習(xí) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-03-23 13:08 |只看該作者 |倒序瀏覽
本帖最后由 marsaber 于 2012-03-23 14:08 編輯

1 虛擬化
虛擬化 概念很早就已出現(xiàn)。簡單來說,虛擬化就是使用某些程序,并使其看起來類似于其他程序的過程。將這個概念應(yīng)用到計算機系統(tǒng)中可以讓不同用戶看到不同的單個系統(tǒng)(例如,一臺計算機可以同時運行多個Linux和Windows),這通常稱為全虛擬化(full virtualization)。
虛擬化也可以使用更加復(fù)雜的格式,其中單個計算機看上去具有多個架構(gòu)(對于一個用戶來說,它是一個標準的 x86 平臺;對于另外一個用戶來說,它是 IBM Power PC® 平臺)。這種虛擬化形式通常被稱為 硬件仿真。
2 全虛擬化和準虛擬化
虛擬化最常使用的兩種方法是全虛擬化 和準虛擬化。
使用全虛擬化,在虛擬化的操作系統(tǒng)和硬件之間存在一個層,用于決定訪問,這個層稱為系統(tǒng)管理程序 或虛擬機監(jiān)視器(VMM)。全虛擬化的例子包括商業(yè)虛擬化解決方案 VMware以及商業(yè) IBM zSeries® 計算機上使用的 IBM System z9 Virtual Machine(z/VM)操作系統(tǒng)。
準虛擬化與之類似,但是系統(tǒng)管理程序會以一種更具協(xié)作性的方式進行操作。這是因為每個客戶操作系統(tǒng)都了解自己正在虛擬化模式中運行,因此每個系統(tǒng)都與系統(tǒng)管理程序協(xié)作,來實現(xiàn)底層硬件的虛擬化。準虛擬化的例子有 Xen 和 User-Mode-Linux (UML)。
3 KVM簡介
KVM是Kernel-based Virtual Machine的簡寫,是一個開源的系統(tǒng)虛擬化軟件,基于硬件虛擬化擴展(Intel VT-X 和 AMD-V)和 QEMU 的修改版,是基于硬件的完全虛擬化。其設(shè)計目標是在需要引導(dǎo)多個未改動的 PC 操作系統(tǒng)時支持完整的硬件模擬。Redhat自RHEL 5.4開始完全支持KVM系統(tǒng)管理程序。
相比xen,KVM的優(yōu)點是高性能, 穩(wěn)定, 無需修改客戶機系統(tǒng)和大量的其它功能(比如. 可使用linux調(diào)度器).
4 KVM工作原理
KVM 所使用的方法是通過簡單地加載內(nèi)核模塊而將 Linux 內(nèi)核轉(zhuǎn)換為一個系統(tǒng)管理程序。這個內(nèi)核模塊導(dǎo)出了一個名為 /dev/kvm 的設(shè)備,它可以啟用內(nèi)核的客戶模式(除了傳統(tǒng)的內(nèi)核模式和用戶模式)。有了 /dev/kvm 設(shè)備,VM 使自己的地址空間獨立于內(nèi)核或運行著的任何其他 VM 的地址空間。設(shè)備樹(/dev)中的設(shè)備對于所有用戶空間進程來說都是通用的。但是每個打開 /dev/kvm 的進程看到的是不同的映射(為了支持 VM 間的隔離)。
KVM 然后會簡單地將 Linux 內(nèi)核轉(zhuǎn)換成一個系統(tǒng)管理程序(在安裝 kvm 內(nèi)核模塊時)。由于標準 Linux 內(nèi)核就是一個系統(tǒng)管理程序,因此它會從對標準內(nèi)核的修改中獲益良多(內(nèi)存支持、調(diào)度程序等)。對這些 Linux 組件進行優(yōu)化(例如 2.6 版本內(nèi)核中的新 O(1) 調(diào)度程序)都可以讓系統(tǒng)管理程序(主機操作系統(tǒng))和 Linux 客戶操作系統(tǒng)同時受益。但是 KVM 并不是第一個這樣做的程序。UML 很久以前就將 Linux 內(nèi)核轉(zhuǎn)換成一個系統(tǒng)管理程序了。使用內(nèi)核作為一個系統(tǒng)管理程序,您就可以啟動其他操作系統(tǒng),例如另一個 Linux 內(nèi)核或 Windows 系統(tǒng)。
安裝 KVM 之后,您可以在用戶空間啟動客戶操作系統(tǒng)。每個客戶操作系統(tǒng)都是主機操作系統(tǒng)(或系統(tǒng)管理程序)的一個單個進程。 圖 2 提供了一個使用 KVM 進行虛擬化的視圖。底部是能夠進行虛擬化的硬件平臺(目前指的是 Intel VT 或 AMD-SVM 處理器)。在裸硬件上運行的是系統(tǒng)管理程序(帶有 KVM 模塊的 Linux 內(nèi)核)。這個系統(tǒng)管理程序與可以運行其他應(yīng)用程序的普通 Linux 內(nèi)核類似。但是這個內(nèi)核也可以支持通過 kvm 工具加載的客戶操作系統(tǒng)。最后,客戶操作系統(tǒng)可以支持主機操作系統(tǒng)所支持的相同應(yīng)用程序。

圖 1. 使用 KVM 的虛擬化組件【見附件】

記住 KVM 只是虛擬化解決方案的一部分。處理器直接提供了虛擬化支持(可以為多個操作系統(tǒng)虛擬化處理器)。內(nèi)存可以通過 kvm 進行虛擬化(這在下一節(jié)中將會討論)。最后,I/O 通過一個稍加修改的 QEMU 進程(執(zhí)行每個客戶操作系統(tǒng)進程的一個拷貝)進行虛擬化。
KVM 向 Linux 中引入了一種除現(xiàn)有的內(nèi)核和用戶模式之外的新進程模式。這種新模式就稱為客戶 模式,顧名思義,它用來執(zhí)行客戶操作系統(tǒng)代碼(至少是一部分代碼);叵胍幌聝(nèi)核模式表示代碼執(zhí)行的特權(quán)模式,而用戶模式則表示非特權(quán)模式(用于那些運行 在內(nèi)核之外的程序)。根據(jù)運行內(nèi)容和目的,執(zhí)行模式可以針對不同的目的進行定義。客戶模式的存在就是為了執(zhí)行客戶操作系統(tǒng)代碼,但是只針對那些非 I/O 的代碼。在客戶模式中有兩種標準模式,因此客戶操作系統(tǒng)在客戶模式中運行可以支持標準的內(nèi)核,而在用戶模式下運行則支持自己的內(nèi)核和用戶 空間應(yīng)用程序。客戶操作系統(tǒng)的用戶模式可以用來執(zhí)行 I/O 操作,這是單獨進行管理的。
在客戶操作系統(tǒng)上執(zhí)行 I/O 的功能是由 QEMU 提供的。QEMU 是一個平臺虛擬化解決方案,允許對一個完整的 PC 環(huán)境進行虛擬化(包括磁盤、圖形適配器和網(wǎng)絡(luò)設(shè)備)?蛻舨僮飨到y(tǒng)所生成的任何 I/O 請求都會被中途截獲,并重新發(fā)送到 QEMU 進程模擬的用戶模式中。
KVM 通過 /dev/kvm 設(shè)備提供了內(nèi)存虛擬化。每個客戶操作系統(tǒng)都有自己的地址空間,并且是在實例化客戶操作系統(tǒng)時映射的。映射給客戶操作系統(tǒng)的物理內(nèi)存實際上是映射給這個進程 的虛擬內(nèi)存。為了支持客戶物理地址到主機物理地址的轉(zhuǎn)換,系統(tǒng)維護了一組影子頁表(shadow page table)。處理器也可以通過在訪問未經(jīng)映射的內(nèi)存位置時使用系統(tǒng)管理程序(主機內(nèi)核)來支持內(nèi)存轉(zhuǎn)換進程。

以上信息摘自:http://www.ibm.com/developerworks/cn/linux/l-linux-kvm/

pdf文檔在17樓。

1.JPG (11.04 KB, 下載次數(shù): 294)

圖1

圖1

評分

參與人數(shù) 1可用積分 +12 收起 理由
send_linux + 12 感謝分享:)

查看全部評分

論壇徽章:
0
2 [報告]
發(fā)表于 2012-03-23 13:08 |只看該作者
本帖最后由 marsaber 于 2013-07-01 08:18 編輯

5 宿主機環(huán)境
5.1 宿主機硬件配置
硬件名稱        規(guī)格型號
CPU        Intel(R) Core(TM)2 Quad  CPU   Q9300  @ 2.50GHz
內(nèi)存        Kingston DDR3 1066 4G
主板        華碩P5G41T-M LX3
硬盤        西部數(shù)據(jù) 1T
網(wǎng)卡        Atheros AR8151 PCI-E Gigabit Ethernet Controller(單)
5.2 宿主機軟件環(huán)境
操作系統(tǒng):CentOS Linux release 6.0 (Final) x86_64
內(nèi)核版本:Kernel-3.0.0
5.3 CPU支持KVM
KVM 需要有 CPU 的支持(Intel VT 或 AMD SVM)
[root@CentOS6 ~]# egrep '(vmx|svm)' /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 pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority
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 pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority
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 pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority
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 pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority

6 安裝KVM
6.1 yum安裝
[root@CentOS6 ~]# yum -y groupinstall Virtualization
[root@CentOS6 ~]# yum -y groupinstall “Virtualization Client”
[root@CentOS6 ~]# yum -y groupinstall “Virtualization Platform”
[root@CentOS6 ~]# yum -y groupinstall “Virtualization Tools”

6.2 安裝軟件列表
Group: Virtualization
Description: Provides an environment for hosting virtualized guests.
Mandatory Packages:
   qemu-kvm
Optional Packages:
   qemu-kvm-tools
   vios-proxy

Group: Virtualization Client
Description: Clients for installing and managing virtualization instances.
Mandatory Packages:
   python-virtinst
   virt-manager
   virt-viewer
Default Packages:
   virt-top

Group: Virtualization Platform
Description: Provides an interface for accessing and controlling virtualized guests and containers.
Mandatory Packages:
   libvirt
   libvirt-client
   virt-who
Optional Packages:
   fence-virtd-libvirt
   fence-virtd-multicast
   fence-virtd-serial
   libvirt-cim
   libvirt-java
   libvirt-qmf
   libvirt-snmp
   perl-Sys-Virt

Group: Virtualization Tools
Description: Tools for offline virtual image management.
Default Packages:
   libguestfs
Optional Packages:
   libguestfs-java
   libguestfs-mount
   libguestfs-tools
   virt-v2v

6.3 檢查KVM
安裝完成后,重啟機器,確認一下是否安裝成功、模塊是否正常加載:
[root@CentOS6 ~]# lsmod |grep kvm
kvm_intel              54367  0
kvm                   365244  1 kvm_intel
[root@CentOS6 ~]#
[root@CentOS6 ~]# ll /dev/kvm
crw-rw-rw- 1 root kvm 10, 232 Mar 23 13:34 /dev/kvm
[root@CentOS6 ~]#

7 安裝虛擬機
這里以瑞傳5530(6電口)為例。
7.1創(chuàng)建橋
/etc/rc.local中添加:
# Used for Marsaber’s admin_port and IN_port;
/usr/sbin/brctl addbr br0
/usr/sbin/brctl addif br0 eth0
/sbin/ifconfig br0 192.168.25.60
/sbin/ip route add default via 192.168.25.1 dev br0

# Used for Marsaber’s Protect1 and webserver;
/usr/sbin/brctl addbr br1
/sbin/ifconfig br1 0.0.0.0

# Used for Marsaber’s Protect2 and webserver;
/usr/sbin/brctl addbr br2
/sbin/ifconfig br2 0.0.0.0

7.2安裝Windows2003
Windows Server 2003 SP2 x86_64
安裝腳本:
#!/bin/bash

/usr/bin/virt-install \
--connect qemu:///system \
--network bridge=br1,model=e1000 \
--name Windows2003_ASP \
--ram=1024 \
--vcpus=4 \
--disk path=/home/VM/Windows2003_ASP.img,bus=ide,size=5 \
--cdrom /home/iso/cn_win_srv_2003_r2_enterprise_x64_with_sp2_vl_cd1_X13-47314.iso \
--vnc --vncport=9409 \
--vnclisten=192.168.25.60 \
--os-variant=win2k3

7.3安裝某專業(yè)設(shè)備系統(tǒng)
#!/bin/bash

/usr/bin/virt-install \
--connect qemu:///system \
--network mac=01:01:01:01:01:01,bridge=br2,model=e1000 \
--network mac=02:02:02:02:02:02,bridge=br0,model=e1000 \
--network mac=03:03:03:03:03:03,bridge=br1,model=e1000 \
--network mac=04:04:04:04:04:04,bridge=br0,model=e1000 \
--network mac=05:05:05:05:05:05,bridge=br0,model=e1000 \
--network mac=06:06:06:06:06:06,bridge=br0,model=e1000 \
--name Marsaber_OSbak \
--ram=2048 \
--vcpus=4 \
--disk path=/home/VM/Marsaber_OSbak.img,bus=ide,size=20 \
--cdrom /home/iso/CentOS-5.6-x86_64-bin-DVD-1of2.iso \
--vnc --vncport=9401 \
--vnclisten=192.168.25.60 \
--os-variant=rhel5.4

7.4 virt-install用法說明
7.4.1 --connect=
xen
If running on a host with the Xen kernel (checks against /proc/xen)
qemu:///system
If running on a bare metal kernel as root (needed for KVM installs)
qemu:///session
If running on a bare metal kernel as non-root
7.4.2 --name=
虛擬機名稱
7.4.3 --ram=
虛擬機內(nèi)存大小
7.4.4 --vcpus=
虛擬機使用的虛擬CPU數(shù)
7.4.5 --network
虛擬機網(wǎng)絡(luò)接口類型
附帶兩個事例:
--network mac=01:01:01:01:01:01,network=default,model=e1000 \
--network mac=02:02:02:02:02:02,bridge=br0,model=e1000 \
7.4.6 --disk
虛擬機鏡像文件
7.4.7 --cdrom
系統(tǒng)鏡像文件
7.4.8 --os-variant=
虛擬機操作系統(tǒng)
7.4.9 VNC相關(guān)
--vnc --vncport=9401 \
--vnclisten=192.168.25.60
不做太多解釋,監(jiān)聽主機、監(jiān)聽端口。
7.4.10 其他
詳細的請”man virt-install”
8 虛擬機操作
8.1 查看虛擬機列表
virsh list --all
8.2 啟動虛擬機
virsh start Marsaber_OSbak

論壇徽章:
0
3 [報告]
發(fā)表于 2012-03-23 13:09 |只看該作者
本帖最后由 marsaber 于 2012-03-23 13:38 編輯

附錄1. VNC加密
加密前:
<graphics type='vnc' port='9409' autoport='no' listen='192.168.25.60'>
      <listen type='address' address='192.168.25.60'/>
</graphics>

加密后:
<graphics type='vnc' port='9409' autoport='no' listen='192.168.25.60' passwd='aaftest.123'>
      <listen type='address' address='192.168.25.60'/>
</graphics>

論壇徽章:
0
4 [報告]
發(fā)表于 2012-03-23 13:10 |只看該作者
本帖最后由 marsaber 于 2013-07-01 08:20 編輯

附錄2. 鏡像克隆
virt-clone --connect=qemu:///system -o Marsaber_OSbak -n Marsaber_1 -f /data/VM/Marsaber_1.img
virt-clone --connect=qemu:///system -o Marsaber_OSbak -n Marsaber_2 -f /data/VM/Marsaber_2.img

論壇徽章:
0
5 [報告]
發(fā)表于 2012-03-23 13:10 |只看該作者
本帖最后由 marsaber 于 2013-07-01 08:21 編輯

附錄3. 刪除虛擬機

刪除虛擬機:
virsh undefine Marsaber_1

然后刪除鏡像文件:
rm -f /data/VM/Marsaber_1.img

論壇徽章:
0
6 [報告]
發(fā)表于 2012-03-23 13:11 |只看該作者
本帖最后由 marsaber 于 2012-03-23 13:47 編輯

附錄4. 虛擬機配置文件

虛擬機配置文件:/etc/libvirt/qemu/

network配置文件:/etc/libvirt/qemu/networks/

network自啟動文件:/etc/libvirt/qemu/networks/autostart/

論壇徽章:
0
7 [報告]
發(fā)表于 2012-03-23 13:12 |只看該作者
本帖最后由 marsaber 于 2013-07-01 08:22 編輯

附錄5. No module virtio_pci found問題解決
沒有initrd-2.6.27.img
執(zhí)行:
mkinitrd --builtin=ahci /boot/initrd-2.6.27.img 2.6.37
mkinitrd /boot/initrd-2.6.27.img 2.6.27
均報錯:
No module virtio_pci found for kernel 2.6.27, aborting.

RedHat官方提供的解決方案(mkinitrd --with virtio_pci --with virtio_blk -f /boot/initrd-2.6.27.img 2.6.27)也不行

解決辦法:

1.安裝腳本中,指定bus=ide;
--disk path=/home/VM/Marsaber_OSbak.img,bus=ide,size=20

2.編輯虛擬機配置文件
修改前:
<memballoon model='virtio'>
修改后:
<memballoon model='none'>

論壇徽章:
0
8 [報告]
發(fā)表于 2012-03-23 13:13 |只看該作者
本帖最后由 marsaber 于 2012-03-23 13:48 編輯

附錄6. 創(chuàng)建network

1. 創(chuàng)建配置文件
cp /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/virbr1.xml

2. 編輯配置文件
<network>
  <name>virbr1</name>                                <---需要修改;
  <uuid>17e0185e-1111-4d17-2222-a8e2c27cffe6</uuid>     <---需要修改;
  <forward mode='nat'/>
  <bridge name='virbr1' stp='on' delay='0' />                <---需要修改;
  <mac address='52:54:00:0A:9F:FF'/>                    <---需要修改;
  <ip address='192.168.123.1' netmask='255.255.255.0'>      <---需要修改;
    <dhcp>
      <range start='192.168.123.2' end='192.168.123.254' />  <---需要修改;
    </dhcp>
  </ip>
</network>


3. 定義network
virsh net-define /etc/libvirt/qemu/networks/virbr1.xml

4. 查看network列表
[root@CentOS6 ~]# virsh net-list --all
Name                 State      Autostart
-----------------------------------------
default              active     yes
virbr1               inactive   no

5. 設(shè)置自定義network自啟動
[root@CentOS6 ~]# virsh net-autostart virbr1
Network virbr1 marked as autostarted

6. 啟動自定義network
[root@CentOS6 ~]# virsh net-start virbr1
Network virbr1 started

7. 查看network列表
[root@CentOS6 networks]# virsh net-list --all
Name                 State      Autostart
-----------------------------------------
default              active     yes
virbr1               active     yes

8. 說明
注意:這里的network是NAT!

論壇徽章:
0
9 [報告]
發(fā)表于 2012-03-23 13:14 |只看該作者
本帖最后由 marsaber 于 2012-03-23 13:46 編輯

附錄7. 刪除network

1.停掉network
virsh net-destroy virbr1

2.刪除network
virsh net-undefine virbr1

論壇徽章:
0
10 [報告]
發(fā)表于 2012-03-23 13:14 |只看該作者
本帖最后由 marsaber 于 2012-03-23 13:48 編輯

附錄8. 啟動項
修改虛擬機配置文件:
  <os>
    ...
    <boot dev='cdrom'/>
    <boot dev='hd'/>
  </os>

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP