kvm安裝及簡單使用


1 cat /etc/redhat-release
      CentOS release 6.4 (Final)
2 egrep ‘vmx|svm’ /proc/cpuinfo
3 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v
(依賴包)
4 vi /etc/sysconfig/selinux   SELINUX=disabled(參數修改)  重啟生效
5  /etc/init.d/libvirtd restart (守護進程是否正常) [確定]   [確定]
6 lsmod | grep kvm   檢查KVM是否加載成功
7 virsh list --all    Id    名稱                         狀態
     ----------------------------------------------------
8  kvm --version   virt-install --version    virsh --version (各版本查詢)
9  cat ifcfg-br0              cat ifcfg-eth0 
 DEVICE=br0                 DEVICE=eth0
 TYPE=Bridge                TYPE=Ethernet
 BOOTPROTO=static    BRIDGE=br0
 IPV6INIT=no                BOOTPROTO=none
 ONBOOT=yes              IPV6INIT=no
 IPADDR=192.168.1.66  ONBOOT=yes
 NETMASK=255.255.255.0
 GATEWAY=192.168.1.1
 DNS1=8.8.8.8
 DELAY=0
重啟網卡出錯-- 1 安裝tunctl  
yum install -y tunctl
  2 禁用網絡管理器: 
chkconfig NetworkManager off  ##和橋接有沖突,要關閉
  service NetworkManager stop
 
10virt-install --name=centos64 --ram 1024 --vcpus=2 --disk path=/var/lib/libvirt/images/centos64.img,size=10 --accelerate --cdrom /mnt/CentOS64.iso --graphics vnc,password=123456,port=5920 --network bridge=br0 --force --autostart  (新建虛擬機命令)   
通過命令行安裝guest虛擬機
[root@target ~]# virt-install \            #安裝選項可用virt-install --help查看
--name node4 \           #虛擬機名
--ram=1024 \             #分配內存大小,MB
  \          #模擬的CPU 構架
--vcpus=1 \              #配置虛擬機的vcpu 數目
--check-cpu \            #檢查確定vcpu是否超過物理 CPU數目,如果超過則發出警告。
--os-type=linux \        #要安裝的操作系統類型,例如:'linux'、'unix'、'windows'
--os-variant=rhel5 \     #操作系統版本,如:'Fedora6', 'rhel5', 'solaris10',   'win2k'
--disk path=/virhost/node7.img,device=disk,bus=virtio,size=20,sparse=true \   #虛擬   機所用磁盤或鏡像文件,size大小G
--bridge=br0 \           #指定網絡,采用透明網橋
--noautoconsole \        #不自動開啟控制台
--pxe                    #網絡安裝
  virsh start node4      #開機
  virsh destroy node4    #強制關閉電源
  virsh shutdown node4   #關機
  virsh list --all       #查看虛擬機狀態    
  virsh reboot node4     #重啟
 -------------------------------------------------------------------------------------------

 virt-viewer name   查看安裝狀態
 使用virt-install 工具安裝虛擬機后,在目錄/etc/libvirt/qemu/下生成xml 配置文件
cd /etc/libvirt/qemu     cat centos64.xml

  <domain type='kvm'>                                        虛擬機類型
     <name>centos</name>                                    虛擬機名稱
     <uuid>54da30ed-150d-514e-9803-4dc01bd50488</uuid>      uuid唯一標示
     <memory unit='KiB'>1048576</memory>                    指定虛擬機內存大小,給出了單位
     <vcpu placement='static'>2</vcpu>                      虛擬機占用虛擬cpu個數,這里指物理cpu的核心數量
     <os>
       <type arch='x86_64' machine='rhel6.3.0'>hvm</type>   指定虛擬系統架構
       <boot dev='hd'/>                                     啟動類型,從硬盤啟動
     </os>
     <devices>
       <emulator>/usr/libexec/qemu-kvm</emulator>           驅動程序,同上,使用的是qemu-kvm
       <disk type='file' device='disk'>                     指定磁盤類型
       <driver name='qemu' type='raw' cache='none'/>        指定磁盤格式,這里是raw,也支持qcow2.
       <source file='/home/vms/centos.img'/>                img文件路徑
       <target dev='hda' bus='ide'/>                        磁盤文件標示,驅動類型
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
       <interface type='bridge'>
         <mac address='52:54:00:11:57:e6'/>                 自動生成,可以手動指定。
         <source bridge='br0'/>                             橋接到哪一個接口
       </interface>
     </devices>
 </domain>
-------------------------------------------------------------------------------------------
其他問題
 1、圖形化配置:從菜單中啟動,或者運行virt-manager進入圖形管理界面,比較簡單,不過img的位置需要注意一下,kvm安裝后會有一個默認位置,不注意的話容易占滿空間。或者直接硬盤分區時單獨給/var分一個區。
 2、虛擬機重新配置:
 虛擬機的配置文件保存在/etc/libvirt/qemu目錄下,擴展名是xml。修改相應的文件即可重新配置虛擬機。
 3、虛擬機備份及恢復:
 備份:拷貝/etc/libvirt/qemu目錄下的xml配置文件,以及xml中設置的img文件。
 恢復:進入virsh,執行define 目錄下的xml文件路徑
 virsh # define /etc/libvirt/qemu/winxp.xml
 4、開機自動啟動虛擬機:
 [root@vfeelit qemu]# virsh autostart Winxp
 5、克隆KVM虛擬機:
 [root@vfeelit ~]# virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img
 (-o 原始客體的名稱,-n新客戶端的名稱,-f作為新客戶端磁盤映像的新文件)
克隆后虛擬機,網卡起不來,刪除/etc/udev/rules.d/70-persistent-net.rules,重啟
 6、虛擬機意外關機報下述錯誤:
 [root@vfeelit qemu]# virsh start winxp
 錯誤:開始域 winxp 失敗 
 錯誤:Unable to read from monitor: Connection reset by peer
 解決方法:virsh managedsave-remove winxp 

Virsh語法參考: 
Autostart                         自動開始一個域
 Create                            從一個 XML 文件創建一個域
 Define                            從一個 XML 文件定義(但不開始)一個域
 edit                              編輯某個域的 XML 配置
 shutdown                          關閉一個域
 start                             開始一個(以前定義的)非活躍的域
 reboot                            重新啟動一個域
 suspend                           掛起一個域
 resume                            重新恢復一個域
 vncdisplay                        vnc 顯示
 
使用save來備份當前虛擬機的狀態:
 [root@vfeelit images]# virsh save –bypass-cache RedHat /var/lib/libvirt/images/test.img –running
 上面這個命令將RedHat的當前狀態保存到/opt/vm2_save文件中。–running參數表示下次restore回來的時候能夠自動啟動RedHat。
 這個命令會導致RedHat被關閉。 

現在還原:必須先關閉虛擬機
 [root@vfeelit images]# virsh shutdown RedHat
 [root@vfeelit images]# virsh restore /var/lib/libvirt/images/test.img –bypass-cache –running (還原時不要指定虛擬機名稱
------------------------------------------------------------------------
virsh console ccc(虛擬機名)  遠程管理虛擬機:需修改虛擬機下面文件(非宿主機),重啟生效
1、修改 /etc/securetty 到最后添加 ttyS0  
 
echo ttyS0 >> /etc/securetty
 
2、修改/etc/inittab 到最后添加 S0:12345:respawn:/sbin/agetty/ ttyS0 115200
 
echo "S0:12345:respawn:/sbin/agetty/ ttyS0 115200" >> /etc/inittab
 

3、修改/etc/grub.conf ,如下圖所示在 kernel 這一行的末尾,添加console=ttyS0(無需換行添加)
-------------------------------------------------------------------------------------------
六、為虛擬機增加磁盤空間
增加磁盤的格式為sda/vda 
生成一塊新的硬盤
qemu-img create -f raw /data/kvm/diskone.img 10G 
將磁盤附加到虛擬機上
virsh attach-disk test(虛擬機名) /data/kvm/diskone.img(硬盤路徑) vdb(硬盤名)
一:添加硬盤
 
方法1
直接修改虛擬機的XML文件,這種方式虛擬機要重新virhs start/create 才可以生效,具體略。
方法2
用attach-disk 命令添加
要添加的LV卷/dev/vg01/lv_add01 
[root@KVM  ~]#virsh attach-disk kvm_ipvs01 /dev/vg01/lv_add01 vdc 
即時生效,但是虛擬機配置文件不會添加,重啟后就沒了,如果要將運行狀態保存至XML文件中,可以用dumpxml命令,用之前最好將XML做個備份。
[root@KVM  ~]#virsh dumpxml kvm_ipvs01  >kvm_ipvs01.xml 
ISO以磁盤方式添加
[root@KVM qemu]# virsh attach-disk KVM_ipvs01 /root/tasks/win2003.iso vdd
Disk attached successfully
即時生效,成功后到ipvs01中查看
[root@KVM_ipvs01 ~]# mount /dev/vdd /mnt/
[root@KVM_ipvs01 ~]# cd /mnt/
[root@KVM_ipvs01 mnt]# ll
total 3520
-r-xr-xr-x 1 root root     112 Mar  7  2007 <a class="bdcs-inlinelink" href="http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=autorun.inf" target="_blank">autorun.inf</a>
-r-xr-xr-x 1 root root  322730 Mar  7  2007 <a class="bdcs-inlinelink" href="http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=bootfont.bin" target="_blank">bootfont.bin</a>
dr-xr-xr-x 1 root root  267478 Mar  7  2007 i386
dr-xr-xr-x 1 root root     184 Mar  7  2007 printers
-r-xr-xr-x 1 root root   18809 Mar  7  2007 read1st.htm
-r-xr-xr-x 1 root root   54458 Mar  7  2007 relnotes.htm
-r-xr-xr-x 1 root root  372014 Mar  7  2007 setupenterprise.htm
-r-xr-xr-x 1 root root 2564096 Mar  7  2007 setup.exe
dr-xr-xr-x 1 root root     142 Mar  7  2007 suppor
-r-xr-xr-x 1 root root      10 Mar  7  2007 win51
-r-xr-xr-x 1 root root      10 Mar  7  2007 win51ia
-r-xr-xr-x 1 root root      10 Mar  7  2007 win51ia.sp2 


二:添加網卡
 
方法1,修改配置文件,略
 
方法2,
[root@KVM  ~]#virsh attach-interface SNKVM_ipvs01 --type bridge --source br1
[root@KVM  ~]#virsh domiflist SN349_ipvs01  查看vnet6為新增的網卡
Interface  Type       Source     Model       MAC
-------------------------------------------------------
vnet2      bridge     br2        virtio      52:54:00:06:88:f4
vnet6      bridge     br1        -           52:54:00:8d:de:df 
命令修改即時生效,但不會改動虛擬機XML文件,用下面命令更新至xml
[root@KVM  ~]#virsh dumpxml kvm_ipvs01 >kvm_ipvs01.xml
進入虛擬機修改網絡配置文件,無需重啟
[root@ipvs01 network-scripts]# cp -a ifcfg-eth0 ifcfg-eth1
[root@ipvs01 network-scripts]# vi ifcfg-eth1
DEVICE="eth1" #改為eth1
BOOTPROTO="static"
#HWADDR="52:54:00:06:88:F4" #mac注釋掉或者改為上面list中的值
IPADDR="10.10.0.90"  #修改IP
IPV6INIT="yes"
MTU="1500"
NETMASK="255.255.255.0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
#<a class="bdcs-inlinelink" href="http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=UUID" target="_blank">UUID</a>="e5b102fb-1fdf-410b-8b59-5fef69b39df9"  #注釋掉UUID
重啟后網卡2生效
[root@KVM_ipvs01 network-scripts]# /etc/init.d/network restart
Shutting down interface eth0:                               [  OK  ]
Shutting down loopback interface:                       [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                    [  OK  ]
Bringing up interface eth1:                                    [  OK  ] 
--------------------------------------------------------------------------------------------
KVM動態遷移
1遷移的主機處於開機狀態
Virsh list –all
2 在源宿主機上開啟nfs服務(也可在加一台nfs服務器)
/etc/init.d/nfs restart
3修改源宿主機/etc/export   加入/var/lib/libvirt/images  *(insecure,rw,sync,no_root_squash)
重啟nfs   /etc/init.d/nfs restart
3 目標宿主機操作:(掛載命令)
mount -t nfs 10.0.6.26(源宿主機):/var/lib/libvirt/images /var/lib/libvirt/images/
4在源宿主機上執行遷移命令
virsh migrate --live node2 qemu+ssh://10.0.6.34/system
出現錯誤
Cannot get interface MTU on 'br0': No such device
解決方法
在目標主機上配置br0
出現錯誤Unable to resolve address 'syxtest' service '49152': Name or service not known
解決方法
Vim /etc/hosts
10.0.6.34(目標宿主機) syxtest(目標宿主機名) 
5在目標主機上看是否遷移成功
雖然啟動了 但是還沒配置文件
將配置文件從宿主機拷貝過來 路徑一致


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM