KVM基本功能

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

一、環境準備:

1、BIOS啟用Virtualication

2、在linux系統上查看系統是否支持硬件虛擬化。Intel系列CPU支持虛擬化標識為vmx,AMD系列CPU標識為svm

[root@kvm ~]# egrep –color "svm|vmx" /proc/cpuinfo

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  

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

二、客戶機管理

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,然后可以使用

5、轉換磁盤格式

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

6、創建磁盤快照

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

7、創建橋接模式的虛擬機

默認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,然后安裝虛擬機,修改防火墻規則即可。

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

1、使用qemu-kvm安裝Guest

基于libvirt的工具如virt-managervirt-install提供了非常便捷的虛擬機管理接口,但它們事實上上經二次開發后又封裝了qemu-kvm的工具。因此,直接使用qemu-kvm命令也能夠完成此前的任務。

2、qemu-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_image]”,其選項非常多,不過,大致可分為如下幾類。

       標準選項;

       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: 顯示幫助信息

四、總結

    1、這次博客沒有實例,上面的命令大家都能看懂,直接就可以實現了。

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

    3、對KVM的操作還是多動手,多嘗試幾次。

原創文章,作者:艾賀,如若轉載,請注明出處:http://www.www58058.com/8936

(0)
艾賀艾賀
上一篇 2015-10-22 09:17
下一篇 2015-10-27 23:14

相關推薦

  • N23-第一周 記流水賬

      機器已經設置好了  屏幕左邊是linux控制臺,屏幕中間放置記事本來記筆記,屏幕右邊是教學視頻,如圖 費我老大勁 筆記本的無線網卡驅動不好弄啊   注重操作實踐,全程跟著操作,一定要照著做,動手啊動手…………..前十五天內容以查漏補缺為主,所以筆記是興之所至,遵循以下原則:&n…

    Linux干貨 2016-09-18
  • shell腳本一鍵分區

    #!/bin/bash #實現硬盤自動分區助手 echo "當前所有分區:" echo `fdisk -l|grep "Disk /dev/[sh]d"|cut -d: -f1|awk '{print $2 &q…

    Linux干貨 2016-07-26
  • 文件查找與壓縮-2

    1、tar [OPTION]… (1) 創建歸檔(打包而非壓縮) 其中-c是創建備份,-f是指定創建備份成的文件即是/PATH/TO/SOMEFILE.tar #tar -c -f /PATH/TO/SOMEFILE.tar  FILE… #tar cf / PATH/TO/SOMEFILE.tar FILE… …

    Linux干貨 2016-08-18
  • Linux程序包管理(rpm、yum、make)

    linux系統程序安裝的方法有rpm yum 以及make手動編譯3種方法: rpm這個機制最早由Redhat公司開發出來,后來由于實在好用,所以被很多發行版所使用作為軟件安裝的管理方式。不過由于使用RPM安裝軟件時有時會涉及到文件的依賴信,此時需要手動去逐個安裝被依賴的包操作起來十分復雜,于是yum這種線上升級的機制便出現了,它會自己主動解決各文件的依賴關…

    Linux干貨 2017-10-02

評論列表(1條)

  • stanley
    stanley 2015-10-27 23:13

    小伙子寫的非常不錯,字里行間看的出認真。和練肌肉一樣,加油

欧美性久久久久