KVM一

一、KVM软件安装

1、 环境准备

2、 查看CPU是否支持VT技术

[root@server ~]# cat /proc/cpuinfo | grep -E 'vmx|svm'

3、清理环境:卸载KVM

[root@server ~]# yum remove `rpm -qa | egrep 'qemu|virt|KVM'` -y
[root@server ~]# rm -rf /var/lib/libvirt  /etc/libvirt/

4、安装软件

Centos6

 [root@server ~]# yum groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools" -y

Centos7:

[root@server ~]# yum install  *qemu*  *virt*  librbd1-devel -y

qemu-KVM: 主包

libvirt:API接口

virt-manager:图形管理程序

Centos8:

yum 组安装已经可以使用了
问题:在进行组安装的时候会出现关于rpm版本的错误问题
解决:

#yum upgrade rpm -y

组安装成功之后还是要单独安装virt-manager工具

5、启动服务

 [root@server ~]# systemctl start libvirtd

6、查看KVM模块加载

[root@server ~]# lsmod | grep KVM
KVM_intel    53484   3 
KVM          316506  1 KVM_intel

二、GuestOS安装

  • 图形方式(非常重要 非常简单)
  • 完全文本模式(现场配置虚拟机的规格)
  • 命令行模式(重中之重 最常用 模板镜像+配置文件 方式配置规格)
  • 通过飞机驾驶舱安装和管理虚拟机
[root@server ~]# yum install *cockpit* -y
[root@server ~]# systemctl start cockpit

访问:
浏览器访问
服务器地址:9090

1、图形模式安装Guest OS

[root@server ~]# virt-manager

2、完全文本方式安装

注意:了解即可

极端情况-服务器没有图形 客户端也没有图形

#virt-install --connect qemu:///system -n vm6 -r 512 --disk path=/virhost/vmware/vm6.img,size=7 --os-type=linux --os-variant=rhel6 --vcpus=1 --network bridge=br0 --location=http://127.0.0.1/rhel6u4 -x console=ttyS0 --nographics

#virt-install --connect qemu:///system -n vm9 -r 2048 --disk path=/var/lib/libvirt/images/vm9.img,size=7 --os-type=linux --os-variant=centos7.0 --vcpus=1 --location=ftp://192.168.100.230/centos7u3 -x console=ttyS0 --nographics             

注意:

  1. 用这种方式安装的操作系统,大小写会胡乱变化,不影响远程操作

  2. 内存必须2G以上

查看KVM支持的OS版本:

[root@server ~]# man virt-install  
[root@server ~]# osinfo-query os | grep centos

排错:

安装过程中:

手动配置IP地址

到url位置找不到路径,要返回去手动选择url,重新配置url为ftp://192.168.100.230/rhel6u4,这里的ip不要写127.0.0.1而是br0的ip

给虚拟机指定的内存必须大于2048M,不然报错如下: dracut-initqueue[552]: /sbin/dmsquash-live-root: line 273: printf: write error: No space left on device

逃脱符:

Escape character is ^]

3、命令行模式安装

虚拟机的组成部分

  1. 虚拟机配置文件
[root@server ~]# ls /etc/libvirt/qemu
networks vm1.xml
  1. 储存虚拟机的介质
[root@server ~]# ls /var/lib/libvirt/images/
vm1.img

根据配置文件创建虚拟机

1.需要有磁盘镜像文件:
[root@server ~]# cp vm1.img vm2.img

2.需要有配置文件
[root@server ~]# cp vm1.xml vm2.xml

3.配置文件需要修改必要的内容

4.创建虚拟机:
[root@server ~]# virsh define /etc/libvirt/qemu/vm2.xml

: allocate 英[ˈæləkeɪt] 美[ˈæləkeɪt]

拨…(给); 划…(归); 分配…(给);

[例句]Tickets are limited and will be allocated to those who apply first

票数有限,先申请者先得。

4、实例

模板镜像+配置文件 方式创建虚拟机

1.拷贝模板镜像和配置文件
[root@KVM ~][root@server ~]# cp /var/lib/libvirt/images/vm2.img /var/lib/libvirt/images/vm3.img

[root@KVM ~][root@server ~]# cp /etc/libvirt/qemu/vm2.xml /etc/libvirt/qemu/vm3.xml

2.修改配置文件
[root@server ~]# vim /etc/libvirt/qemu/vm3.xml
<domain type='KVM'>
<name>vm3</name>
 <uuid>a2f62549-c6b7-4b8f-a8e2-c14edda35a78</uuid>
 <memory unit='KiB'>2099200</memory>
 <currentMemory unit='KiB'>2099200</currentMemory>
 <vcpu placement='static'>2</vcpu>
 <os>
  <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
  <boot dev='hd'/>
 </os>
 <features>
  <acpi/>
  <apic/>
 </features>
 <cpu mode='custom' match='exact' check='partial'>
  <model fallback='allow'>Haswell-noTSX</model>
 </cpu>
 <clock offset='utc'>
  <timer name='rtc' tickpolicy='catchup'/>
  <timer name='pit' tickpolicy='delay'/>
  <timer name='hpet' present='no'/>
 </clock>
 <on_poweroff>destroy</on_poweroff>
 <on_reboot>restart</on_reboot>
 <on_crash>destroy</on_crash>
 <pm>
  <suspend-to-mem enabled='no'/>
  <suspend-to-disk enabled='no'/>
 </pm>
 <devices>
  <emulator>/usr/libexec/qemu-KVM</emulator>
  <disk type='file' device='disk'>
   <driver name='qemu' type='qcow2'/>
   <source file='/var/lib/libvirt/images/vm3.im'/>
   <target dev='vda' bus='virtio'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
  </disk>
   <disk type='file' device='disk'>
   <driver name='qemu' type='qcow2'/>
   <source file='/var/lib/libvirt/images/vm3-1.img'/>
   <target dev='vda' bus='virtio'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x16' function='0x0'/>
   </disk>

  <controller type='usb' index='0' model='ich9-ehci1'>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/>
  </controller>
  <controller type='usb' index='0' model='ich9-uhci1'>
   <master startport='0'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
  </controller>
  <controller type='usb' index='0' model='ich9-uhci2'>
   <master startport='2'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
  </controller>
  <controller type='usb' index='0' model='ich9-uhci3'>
   <master startport='4'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>

  </controller>
  <controller type='pci' index='0' model='pci-root'/>
  <controller type='virtio-serial' index='0'>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
  </controller>

  <interface type='network'>
   <mac address='52:54:00:f2:28:6f'/>
   <source network='default'/>
   <model type='virtio'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
  </interface>

  <serial type='pty'>
   <target type='isa-serial' port='0'>
    <model name='isa-serial'/>
   </target>
  </serial>
  <console type='pty'>
  	<target type='serial' port='0'/>
  </console>

  <channel type='unix'>

   <target type='virtio' name='org.qemu.guest_agent.0'/>

   <address type='virtio-serial' controller='0' bus='0' port='1'/>
  </channel>
  <input type='mouse' bus='ps2'/>
  <input type='keyboard' bus='ps2'/>
  <memballoon model='virtio'>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
  </memballoon>
 </devices>
</domain>    
原文地址:https://www.cnblogs.com/pengpengboshi/p/13558723.html