搭建kvm

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

01.安装libvirt和KVMlinux

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

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


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

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


02.设置开机自启vim

chkconfig libvirtd oncentos


03. 配置帐号密码网络

saslpasswd2 -a libvirt webvirtmgrapp

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.建立存储池

05.建立新的网卡设备

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

06.建立虚拟机实例

07.VNC链接测试

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

相关文章
相关标签/搜索