RHEL6 KVM安裝備忘
KVM(全稱是Kernel-based Virtual Machine)是Linux下x86 硬體平臺上的全功能虛擬化解決方案,包含一個可載入的核心模組kvm.ko提供和虛擬化核心架構和處理器規範模組。
使用KVM可允許多個包括Linux和Windows每個虛擬機器有私有的硬體,包括網路卡、磁碟以及圖形適配卡等。自Linux 2.6.20之後整合在Linux的各個主要發行版本中,它使用Linux自身的排程器進行管理,所以相對於Xen,其核心原始碼很少。KVM目前已成為學術界的主流VMM之一。
KVM的虛擬化需要硬體支援(如Intel VT技術或者AMD V技術)。是基於硬體的完全虛擬化。而Xen早期則是基於軟體模擬的Para-Virtualization,新版本則是基於硬體支援的完全虛擬化。但Xen本身有自己到程式排程器,儲存管理模組等,所以程式碼較為龐大。廣為流傳的商業系統虛擬化軟體VMware ESX系列也是基於軟體模擬的Para-Virtualization。
KVM原理圖
一個典型的 KVM 安裝包括以下部件:
- 一個管理虛擬硬體的裝置驅動,這個驅動通過一個字元裝置 /dev/kvm 匯出它的功能。通過 /dev/kvm 每一個客戶機擁有其自身的地址空間,這個地址空間與核心的地址空間相分離或與任何一個正執行著的客戶機相分離。
- 一個模擬硬體的使用者空間部件,它是一個稍微改動過的 QEMU 程式。從客戶機作業系統執行 I/O 會擁有 QEMU 。 QEMU 是一個平臺虛擬化方案,它允許整個 PC 環境(包括磁碟、顯示卡(圖形卡)、網路裝置)的虛擬化。任何客戶機作業系統所發出的 I/O 請求都被攔截,並被路由到使用者模式用以被 QEMU 過程模擬模擬。
檢查CPU
和 Xen 不同,KVM 需要有 CPU 的支援(IntelVT 或 AMD SVM),在安裝 KVM之前檢查一下CPU是否提供了虛擬技術的支援:
# grep -E --color 'vmx|svm' /proc/cpuinfo
flags :fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dtsacpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmonpebs bts rep_good aperfmperf pni dtes64 monitor ds_cplvmxest tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm tpr_shadow vnmi flexpriority
flags :fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dtsacpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmonpebs bts rep_good aperfmperf pni dtes64 monitor ds_cplvmxest tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm tpr_shadow vnmi flexpriority
RHEL6系列安裝虛擬化工具可以在安裝系統的時候選擇安裝(這裡不作介紹),這裡主要介紹的是系統安裝之後使用YUM安裝虛擬化工具的過程。
yum安裝虛擬化
為了在RHEL6上使用虛擬化至少要安裝qemu-kvm和qemu-img包。這些安裝包提供使用者級別的KVM模擬器和RHEL6系統主機磁碟映象管理。
# yum install qemu-kvm qemu-img
其他一些額外
# yum install virt-managerlibvirt libvirt-python python-virtinst libvirt-client virt-viewer
virt-manager: virt-manager, also known as Virtual Machine Manager, provides agraphical tool for administering virtual machines. It uses libvirt-clientlibrary as the management API.
libvirt: he libvirt package provides the server and host side librariesfor interacting with hypervisors and host systems. The libvirt package providesthe libvirtd daemon that handles the library calls, manages virtualized guestsand controls the hypervisor.
libvirt-python:The libvirt-python package contains a module thatpermits applications written in the Python programming language to use theinterface supplied by the libvirt API.
python-virtinst:Provides the virt-install command for creatingvirtual machines.(提供virt-install命令安裝虛擬機器)
libvirt-client:The libvirt-client package provides theclient-side APIs and libraries for accessing libvirt servers. Thelibvirt-client package includes the virsh command line tool to manage andcontrol virtualized guests and hypervisors from the command line or a specialvirtualization shell.
virt-viewer:開啟圖形控制檯安裝虛擬客戶機需要
也可以使用 yum groupinstall
# yum groupinstall -y Virtualization "Virtualization Client""Virtualization Platform" "Virtualization Tools"
birdge networking 橋接網路
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=xxxxxxxxx
ONBOOT=yes
BRIDGE=br0
# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.1.1.X
NETMASK=255.255.255.0
GATEWAY=x.x.x.x
# service network restart
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.b8975a004d66 no eth0
virbr0 8000.52540077cd54 yes virbr0-nic
如果設定了防火牆,則使用以下命令放行
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
# service iptables save
# service iptables restart
# /etc/init.d/libvirtd restart
正在關閉libvirtd 守護程式: [確定]
啟動libvirtd 守護程式: [確定]
# chkconfig libvirtd on
安裝可以使用命令列實現,也可以使用KVM管理器安裝,這裡只介紹命令列的一般安裝方法
# virt-install --name=rhel6-1 --disk path=/kvm/rhel6-1/rhel6.img,size=10,sparse=true --graphics=vnc --network bridge=br0 --os-type=linux --os-variant=rhel6 --ram=1024 --cdrom=/media/rhel-server-6.1-i386-dvd.iso //本地安裝
# virt-install \ --name=rhel6-2 \ --file=/kvm/rhel6-2/rhel6-2.img \ --file-size=10 \ --nonsparse --graphics spice \ --vcpus=2 --ram=2048 \ --location=http://example1.com/installation_tree/RHEL6.1-Server-x86_64/os \ --network bridge=br0 \ --os-type=linux \ --os-variant=rhel6-2 //http方式安裝
網路安裝方法
# virt-install --name=rhel6-3 --disk path=/kvm/rhel6-3/rhel6.img,size=10,sparse=true \--graphics=vnc --vcpus=1 --ram=1024 --network bridge=br0 --os-type=linux \
--os-variant=rhel6 --location=nfs:10.1.1.1:/share/rhel6.1 --extra-args "ks=ftp://cs:cs@10.1.1.10/my.cfg"
參考:紅帽虛擬化官方文件
terry技術部落格
相關文章
- cacti安裝備忘
- openSUSE 安裝備忘錄
- nodejs+express+jade安裝備忘NodeJSExpress
- RAC安裝備註
- RHEL6安裝NGINXNginx
- laradock 安裝備註
- ubuntu安裝KVMUbuntu
- Awstats RHEL6下安裝
- RHEL6安裝桌面環境
- kvm 安裝 windows 虛擬機器Windows虛擬機
- ubuntu16.04 下kvm安裝Ubuntu
- RHEL6安裝ORACLE11G準備工作Oracle
- RHEL6 上安裝Oracle 11g軟體Oracle
- Linux 安裝 KVM 虛擬機器Linux虛擬機
- Ubuntu上安裝KVM並配置顯示卡直通Ubuntu
- rhel4 mysql5.1_server_client安裝備紀MySqlServerclient
- 《linux原始碼包的編譯安裝》RHEL6Linux原始碼編譯
- RHEL6下puppet部署管理1之安裝測試
- RHEL6 下Cfengine V3 安裝測試1
- kvm之三:本地安裝虛擬機器虛擬機
- linux mint 19安裝 kvm 軟體包Linux
- 爛泥:KVM安裝centos6.5系統CentOS
- 做飯裝備
- 裝備購買
- RHEL6安裝過程出現的奇怪的問題
- KVM簡介,安裝及常見使用詳解
- Nagios備忘之安裝iOS
- vargant + kvm
- qemu-kvm安裝and配置橋接和SR-IOV橋接
- KVM之一:安裝準備(基於CentOS6.7)CentOS
- KVM 虛擬機器安裝配置在CentOS6.2虛擬機CentOS
- 《DNS加密更新》RHEL6DNS加密
- KVM之五:KVM日常管理常用命令
- 論累積性裝備與迭代性裝備的原理和設計
- DDD深思,物件裝備模型物件模型
- Centos7 離線安裝 KVM,並安裝 Csr1000vCentOS
- openstack, kvm, qemu-kvm以及libvirt之關係
- 《samba服務搭建》RHEL6Samba