KVM基礎管理

前言:原本想寫出關於KVM的精品文章,然而學的時間不夠長,理解也不夠透徹。因此有關KVM的高級功能只能等下一次在寫。本次只涉及到KVM的基礎核心功能,平時常常會使用的功能.python

1、環境準備:linux

1BIOS啓用Virtualicationapi

2、在linux系統上查看系統是否支持硬件虛擬化。Intel系列CPU支持虛擬化標識爲vmxAMD系列CPU標識爲svm緩存

[root@kvm ~]# egrep --color "svm|vmx" /proc/cpuinfobash

flags              : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c hypervisor lahf_lm arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep網絡

3、安裝kvm軟件包。架構

yum install qemu-kvm libvirt  python-virtinst  -y  dom

ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm

socket

2、客戶機管理ide

1、安裝客戶機。


qemu-img create  -f raw /opt/kvm_demo/CentOS.raw 5G  #建立一個5G的raw格式的虛擬磁盤
virt-install --virt-type kvm --name kvm-demo --ram 512 --cdrom=/dev/sr0 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --disk path=/opt/kvm_demo/CentOS.raw  #系統會默認開啓5900端口,而後經過VNC安裝

2、修改客戶機磁盤大小

qemu-img resize /opt/kvm_demo/CentOS1.raw +1G   #修改磁盤文件大小,resize不支持qcow2的磁盤格式。
virsh define <domain>  #這個domain爲使用這個磁盤文件的domain
#重啓客戶機,便可

3、修改客戶機內存


virsh edit kvm-demo   #kvm-demo 爲domain名稱
#修改數字,memory爲最大分配內存。currentMemory爲啓動時候分配給客戶機的內存。通常二者同時修改。
<memory unit='KiB'>524288</memory>
  <currentMemory unit='KiB'>524288</currentMemory>

4、克隆虛擬機

複製xml文件,和磁盤文件。而後修改這幾項。


<   <name>kvm-demo</name>
<   <uuid>3f1bcefa-76f7-0482-d36a-70a91ff7ae5c</uuid>
---
>   <name>kvm-demo1</name>
>   <uuid>3f1bcefa-76f7-0482-d36a-70a91ff7ae5d</uuid>
24c24
<       <source file='/opt/kvm_demo/CentOS.raw'/>
---
>       <source file='/opt/kvm_demo/CentOS1.raw'/>
60c60
<       <mac address='52:54:00:cd:cc:2d'/>
---
>       <mac address='52:54:00:cd:cc:2e'/>
 
virsh define new.xml
virsh start new_domain_name
#在客戶機裏面,刪除70-persistent-net.rules 
#修改ifcfg-eth0: 刪除UUID,MAC,而後可使用

五、轉換磁盤格式

qemu-img convert -c -f raw -O qcow2 source dest

六、建立磁盤快照

snapshot [-l | -a snapshot | -c snapshot | -d snapshot] filename

七、建立橋接模式的虛擬機

默認network建立的爲NAT模式的網絡,地址範圍通常在192.168.122.2~192.168.122.254之間。使用橋接模式

brctl addbr br0    #添加橋
brctl addif br0 eth0   #將eth0綁定到br0上面
brctl stp br0 on       #將br0設置爲啓用stp協議
ifconfig eth0 0        #將eth0的IP設置爲0
dhclient br0           #將br0的網絡配置好  
qemu-img create -f raw /opt/test.raw 5G
virt-install -n test -r 800  --vcpus=2 -c /dev/sr0 --os-type=linux   --os-variant=rhel6   --disk=/opt/test.raw  --network bridge=br0 --graphics vnc,listen=0.0.0.0 -v
#重點在於--network bridge=br0,而後安裝虛擬機,修改防火牆規則便可。

3、附錄:使用qemu-kvm管理虛擬機

1、使用qemu-kvm安裝Guest

基於libvirt的工具如virt-managervirt-install提供了很是便捷的虛擬機管理接口,但它們事實上上經二次開發後又封裝了qemu-kvm的工具。所以,直接使用qemu-kvm命令也可以完成此前的任務。

2qemu-kvm命令

RHEL6上,qemu-kvm位於/usr/libexec目錄中。因爲此目錄不屬於PATH環境變量,故沒法直接使用,這樣也阻止了能夠直接使用qemu做爲建立並管理虛擬機。如若想使用qemu虛擬機,能夠經過將/usr/libexec/qemu-kvm連接爲/usr/bin/qemu實現。

# ln  -sv  /usr/lib/exec/qemu-kvm  /usr/bin/qemu-kvm

qemu-kvm命令使用格式爲「qemu-kvm  [options]  [disk_p_w_picpath]」,其選項很是多,不過,大體可分爲以下幾類。

       標準選項;

       USB選項;

       顯示選項;

       i386平臺專用選項;

       網絡選項;

       字符設備選項;

       藍牙相關選項;

       Linux系統引導專用選項;

       調試/專家模式選項;

       PowerPC專用選項;

       Sparc32專用選項;

考慮到篇幅及使用須要,這裏介紹的選項主要涉及到標準選項、顯示選項、i386平臺專用選項及Linux系統引導專用選項等相關的選項。

4.1qemu-kvm的標準選項

qemu-kvm的標準選項主要涉及指定主機類型、CPU模式、NUMA、軟驅設備、光驅設備及硬件設備等。
       -name name #設定虛擬機名稱;
       -M machine #指定要模擬的主機類型,如Standard PC、ISA-only PC或Intel-Mac等,可使用「qemu-kvm -M ?」獲取所支持的全部類型;
       -m megs    #設定虛擬機的RAM大小;
       -cpu model  #設定CPU模型,如coreduo、qemu64等,可使用「qemu-kvm -cpu ?」獲取所支持的全部模型;
       -smp n[,cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus] #設定模擬的SMP架構中CPU的個數等、每一個CPU的核心數及CPU的socket數目等;PC機上最多能夠模擬255顆CPU;maxcpus用於指定熱插入的CPU個數上限;
       -numa opts #指定模擬多節點的numa設備;
       -fda file
       -fdb file #使用指定文件(file)做爲軟盤鏡像,file爲/dev/fd0表示使用物理軟驅;
       -hda file  #第二塊磁盤位置
       -hdb file
       -hdc file
       -hdd file #使用指定file做爲硬盤鏡像;
       -cdrom file #使用指定file做爲CD-ROM鏡像,須要注意的是-cdrom和-hdc不能同時使用;將file指定爲/dev/cdrom能夠直接使用物理光驅;
       -drive option[,option[,option[,...]]] #定義一個硬盤設備;可用子選項有不少。
         file=/path/to/somefile #硬件映像文件路徑;
         if=interface           #指定硬盤設備所鏈接的接口類型,即控制器類型,如ide、scsi、sd、mtd、floppy、pflash及virtio等;
         index=index            #設定同一種控制器類型中不一樣設備的索引號,即標識號;
         media=media          #定義介質類型爲硬盤(disk)仍是光盤(cdrom);
         snapshot=snapshot    #指定當前硬盤設備是否支持快照功能:on或off;
         cache=cache           #定義如何使用物理機緩存來訪問塊數據,其可用值有none、writeback、unsafe和writethrough四個;
         format=format         #指定映像文件的格式,具體格式可參見qemu-img命令;
       -boot [order=drives][,once=drives][,menu=on|off] #定義啓動設備的引導次序,每種設備使用一個字符表示;不一樣的架構所支持的設備及其表示字符不盡相同,在x86 PC架構上,a、b表示軟驅、c表示第一塊硬盤,d表示第一個光驅設備,n-p表示網絡適配器;默認爲硬盤設備;
       -boot order=dc,once=d

4.2 qemu-kvm的顯示選項

顯示選項用於定義虛擬機啓動後的顯示接口相關類型及屬性等。
       -nographic #默認狀況下,qemu使用SDL來顯示VGA輸出;而此選項用於禁止圖形接口,此時,qemu相似一個簡單的命令行程序,其仿真串口設備將被重定向到控制檯;
       -curses    #禁止圖形接口,並使用curses/ncurses做爲交互接口;
       -alt-grab   #使用Ctrl+Alt+Shift組合鍵釋放鼠標;
       -ctrl-grab  #使用右Ctrl鍵釋放鼠標;
       -sdl        #啓用SDL;
       -spice option[,option[,...]] #啓用spice遠程桌面協議;其有許多子選項,具體請參照qemu-kvm的手冊;
       -vga type   #指定要仿真的VGA接口類型,常見類型有:
            cirrus   #Cirrus Logic GD5446顯示卡;
            std     #帶有Bochs VBI擴展的標準VGA顯示卡;
            vmware #VMWare SVGA-II兼容的顯示適配器;
            qxl      #QXL半虛擬化顯示卡;與VGA兼容;在Guest中安裝qxl驅動後能以很好的方式工做,在使用spice協議時推薦使用此類型;
            none    #禁用VGA卡;
       -vnc display[,option[,option[,...]]] #默認狀況下,qemu使用SDL顯示VGA輸出;使用-vnc選項,可讓qemu監聽在VNC上,並將VGA輸出重定向至VNC會話;使用此選項時,必須使用-k選項指定鍵盤佈局類型;其有許多子選項,具體請參照qemu-kvm的手冊;
       display:
               (1)host:N
                     172.16.100.7:1, 監聽於172.16.100.7主的5900+N的端口上
              (2) unix:/path/to/socket_file
              (3) none
       options#
              password   3 鏈接時須要驗正密碼;設定密碼經過monitor接口使用change
              reverse:    #「反向」鏈接至某處於監聽狀態的vncview上;
       -monitor stdio  #表示在標準輸入輸出上顯示monitor界面
       -nographic
              Ctrl-a, c: 在console和monitor之間切換
              Ctrl-a, h: 顯示幫助信息


4、總結

    一、此次博客沒有實例,上面的命令你們都能看懂,直接就能夠實現了。

    二、我對KVM理解的不夠深,此次就是先開個頭,寫一下KVM,之後對KVM的理解更上一層樓以後,會再次總結的。

    三、對KVM的操做仍是多動手,多嘗試幾回。

相關文章
相關標籤/搜索