###安装配置libvirtd(须有weivirtmgr服务端使用)

01.安装libvirt和KVM

https://github.com/retspen/webvirtmgr/wiki/Setup-Host-Server

curl http://retspen.github.io/libvirt-bootstrap.sh | sudo sh


如开了防火墙还需打开对libvirt端口的访问权限:

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 16509 -j ACCEPT

02.设置开机自启
chkconfig libvirtd on

03. 配置账号密码
saslpasswd2 -a libvirt webvirtmgr
password: KvmRocks
#sasl是一种用来扩充C/S模式验证能力的机制。
#-a  use appname as application name

04.验证账号密码
virsh -c qemu+tcp://localhost/system nodeinfo
#账号: webvirtmgr   密码:上面设置的密码KvmRocks

05.配置libvirtd
cat >>/etc/libvirt/libvirtd.conf<<EOF
max_clients = 1024
min_workers = 50
max_workers = 200
max_requests = 1000
max_client_requests = 200
EOF

06.重启libvirtd
service libvirtd restart


###配置网卡的bridge模式(命令行见后面)

环境:这里在已经做好了bond的基础上配置bridge (没做bond就用em1代替,配置类似)
01.修改配置ifcfg-bond0
vim /etc/sysconfig/network-scripts/ifcfg-bond0

TYPE=Bond
BOOTPROTO=none
NAME=bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
BONDING_MASTER=yes
ONBOOT=yes
#IPADDR=10.0.0.200
#NETMASK=255.255.255.0
#GATEWAY=10.0.0.254
BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer2+3"
BRIDGE=br0
02.配置网桥
vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=10.0.0.200
NETMASK=255.255.255.0
GATEWAY=10.0.0.254

03.重新加载网卡配置文件
ifdown bond0 && ifup bond0
ifdown br0 && ifup br0



###图形化安装KVM虚拟机(命令行见后面)


步骤: 需要一个iso镜像,配置存储池,挂载镜像,标准安装

注: 新建虚拟磁盘挂载后,如果mkfs很慢,需要修改libvirtd中的xml配置,设置 cache='none' 或者 cache='unsafe'


xml例子:

<driver name='qemu' type='qcow2' cache='none'/>


01.准备磁盘文件

#方法一:拷贝一个以后镜像

mkdir -p /data/vm/storage1

scp vm-dc-temple-20.img 10.0.0.201                        #复制磁盘文件时,使用此磁盘文件的虚拟机要关闭


#方法二:自己制作镜像(后面有详细步骤)


认证账户密码:webvirtmgr  KvmRocks
02.登录WebVirtMgr仪表盘
http://vm.dc.iqdnet.cn/servers/
输入账户密码  user:root  Pass:KvmRocks

03.创建一个连接

user:Webvirtmgr    pass:KvmRocks


04.创建存储池

kvm 格式转换 kvm zen_kvm 格式转换

kvm 格式转换 kvm zen_kvm 格式转换

05.创建新的网卡设备

kvm 格式转换 kvm zen_kvm 格式转换

kvm 格式转换 kvm zen_kvm 格式转换

kvm 格式转换 kvm zen_kvm 格式转换

kvm 格式转换 kvm zen_kvm 格式转换

网桥名称:与物理机网桥设备的名称要相同

06.创建虚拟机实例

kvm 格式转换 kvm zen_kvm 格式转换

kvm 格式转换 kvm zen_kvm 格式转换

kvm 格式转换 kvm zen_kvm 格式转换

kvm 格式转换 kvm zen_kvm 格式转换

kvm 格式转换 kvm zen_kvm 格式转换

07.VNC连接测试

kvm 格式转换 kvm zen_kvm 格式转换

kvm 格式转换 kvm zen_kvm 格式转换

IP是物理机br0的IP,端口是刚才xml中查看的

(如果镜像是克隆的,可能需要关闭其他虚拟机,使其端口成为5900)

最后能在物理机上ping通12.40这个实例即可!


安装配置libvirtd 客户端

01.安装libvirt和KVM

可参考:https://github.com/retspen/webvirtmgr/wiki/Setup-Host-Server

curl http://retspen.github.io/libvirt-bootstrap.sh | sudo sh


如开了防火墙还需打开对libvirt端口的访问权限:

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 16509 -j ACCEPT
02.设置开机自启
chkconfig libvirtd on
03. 配置账号密码
saslpasswd2 -a libvirt webvirtmgr
password: KvmRocks
#sasl是一种用来扩充C/S模式验证能力的机制。
04.验证账号密码
virsh -c qemu+tcp://localhost/system nodeinfo

#账号: webvirtmgr   密码:上面设置的密码KvmRocks

05.配置libvirtd
cat >>/etc/libvirt/libvirtd.conf<<EOF
max_clients = 1024
min_workers = 50
max_workers = 200
max_requests = 1000
max_client_requests = 200
EOF
06.重启libvirtd
service libvirtd restart


如果有做好的磁盘镜像文件,则无需创建虚拟机镜像!!!!!

将磁盘镜像文件直接放到/data/vm/storage1目录下,然后在webvirtdmgr上即可使用其创建新的虚拟机。

07.创建存储池

       图形方式操作在上面,命令方式操作在下面

08.创建网络池

       图形方式操作在上面

————————————————————————————————


创建KVM虚拟机镜像:

第一部分:安装kvm环境


01.安装kvm依赖包
yum install qemu-kvm libvirt virt-install virt-manager bridge-utils
02.检查是否支持kvm
lsmod | grep kvm
03.启动libvirtd服务
systemctl enable libvirtd.service
systemctl start libvirtd.service


第二部分:搭建网桥


04.创建网桥

nmcli c add type bridge autoconnect yes con-name br0 ifname br0
05.创建网桥IP地址
nmcli c modify br0 ipv4.address 10.50.13.0/24 ipv4.method manual
06.创建网桥网关地址
nmcli c modify br0 ipv4.gateway 10.0.0.254
07.删除eth0网卡配置
nmcli c delete em1
08.给eth0网卡指定网桥
nmcli c add type bridge-slave autoconnect yes con-name em1 ifname em1 master br0
09.重启网络服务
systemctl restart network

第三部分:创建kvm虚拟机


10.创建磁盘
ps:分为ram和qcow2俩种磁盘格式
       qcow2的磁盘空间可以动态增长
qemu-img create -f qcow2 /data/vm/m7-template.qcow2 100G
11. 查看磁盘信息
ps:虽然通过ls看磁盘为20G,但实际空间为0,所以说通过qemu-img创建的磁盘为稀疏模式磁盘。
qemu-img info m7-template.qcow2
12.安装虚拟机
图形界面安装:
virt-install --name m7-vm-ops-37 --vcpus1 --ram 4096 --disk /data/vm/m7-template.qcow2,format=qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --location=/iso/CentOS-7-x86_64-DVD-1611.iso

ps:--location 后面也可以指定远程镜像,--os-variant 后面写成rhel7(不要写centos7,不识别)


安装完后,可以通过vnc端口连接并配置(vnc端口在xml文件中)

-------------------------------------------------------------------------------

命令行界面安装:
virt-install --name  m7-vm-ops-37 --ram 512 --vcpus 2 --disk path=/data/vm/m7-template.img,size=10 --os-type linux --os-variant rhel7 --graphics none --console pty,target_type=serial --location=/data/CentOS-7-x86_64-DVD-1503-01.iso --extra-args 'console=ttyS0,115200n8 serial'
从1开始配置,时区,密码,磁盘选1......
安装完后的磁盘文件可用作模板,在图形界面(webvirtmgr)可以使用其创建新的虚拟机。
虚拟机克隆:
方法一:
virt-clone -o m7-vm-ops-37 -n m7-vm-test-38 -f /data/vm/storage1/m7-vm-test-38.qcow2
ps:-f 指定新的磁盘文件  -o 指定被克隆虚拟机  -n 新的虚拟机

方法二:
拷贝磁盘文件和xml文件,修改里面关键点即可

虚拟机快照:
virsh snapshot-create
常用命令:
#宿主机和虚拟机切换
退出虚拟机:crtl+]
进入虚拟机:virsh console centos71
#开启虚拟机
virsh start centos71

#关闭虚拟机
virsh shutdown centos71           
#连接虚拟机
virsh console centos71
#强制关闭虚拟机
virsh destroy centos71     

#编辑这个虚拟机文件.xml
virsh edit centos71
#删除虚拟机包括配置
virsh undefine centos71
#查看所有kvm虚拟机
virsh list --all
#进入vrish环境
virsh
#磁盘挂载(在vrish环境下使用)
attach-disk m7-vm-ops-37 /data/vm/m7-template.qcow2 vdb
#查看下有没有vdb
fdisk -l

brctl show                                   #查看网桥
brctl delbr br0                             #删除网桥
brctl delif br0 vnet0                    #删除网桥接口

创建存储池:

手动创建文件:
/var/libvirt/storage/m7-vm-ops-37.xml:

<pool type='dir'>
  <name>m7-vm-ops-37</name>                    #存储池名称
  <capacity>0</capacity>
  <allocation>0</allocation>                             #最大容量
  <available>0</available>                                #可见容量
  <source></source>
  <target>
   <path>/var/libvirt/storage</path>
   <permissions>
      <mode>0700</mode>
      <owner>-1</owner>
      <group>-1</group>
   </permissions>
  </target>
</pool>

----------------------------以下可作为参考---------------------------------

vim /etc/libvirt/storage/storage1.xml
<pool type='dir'>
  <name>storge1</name>
  <uuid>4aa56c0c-a23e-6569-7ef5-0584e3bd6a8a</uuid>       #复制时删除此标签
  <capacity unit='bytes'>0</capacity>
  <allocation unit='bytes'>0</allocation>
  <available unit='bytes'>0</available>
  <source>
  </source>
  <target>
    <path>/data/vm/storage1</path>
    <permissions>
      <mode>0755</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>
常用命令:

#查看存储值
virsh pool-list
#定义存储值
virsh pool-define /var/libvirt/storage/linux43.xml
#查看存储值
virsh pool-list --all
#开启存储值
virsh pool-start linux43
#自动启动
virsh pool-autostart linux43
#查看存储值
virsh pool-list

#挂载磁盘
virsh deattach-disk cirros vdb
补充:
#virsh console vm-ops

卡死连接不上执行下面命令后reboot


在虚拟机中执行:

grubby --update-kernel=ALL --args="console=ttyS0"


错误总结:
1.报错与网络有关;提示什么NetworkManager

nmcli device status
systemctl stop NetworkManager
systemctl start NetworkManager
# nmcli c add type bridge autoconnect yes con-name br0 ifname br0
brctl show        #检查vnet0是否存在
br0             eth0
                  vnet0



转载于:https://blog.51cto.com/13055758/2151190