我用 Linux

kvm管理

2017-04-25  本文已影响267人  肖金光xjg

kvm

kvm安装

前期准备

确定机器有VT

桥接网络

ifcfg-enp7s0f1不要配置IP,BRIDGE等于ifcfg-br2的DEVICE

[root@bac02 network-scripts]# cat ifcfg-enp7s0f1
BOOTPROTO=none
DEVICE=enp7s0f1
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br2
UUID=7083918b-0fc4-1d98-dcbb-8b9fccb8faa3
[root@bac02 network-scripts]# cat ifcfg-br2 
BOOTPROTO=static
DEVICE=br2
TYPE=Bridge
NM_CONTROLLED=no
IPADDR=192.168.3.50
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
DNS1=202.96.134.133
DNS2=202.96.128.86
UUID=7083918b-0fc4-1d98-dcbb-8b9fccb8faa3

NM_CONTROLLED参数表示该网卡是否被NetworkManager服务管理,设置为no的话就是不接管,那么之前不用停止NetworkManager服务。

systemctl restart network
systemctl restart NetworkManager 

关闭SELinux

kvm安装

yum -y install libcanberra-gtk2 qemu-kvm.x86_64 qemu-kvm-tools.x86_64 libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch  libvirt-python.x86_64  dbus-devel virt-clone virt-manager libvirt libvirt-python libguestfs-tools

qemu-kvm
该软件包主要包含KVM内核模块和基于KVM重构后的QEMU模拟器。KVM模块作为整个虚拟化环境的核心工作在系统空间,负责CPU和内存的调度。QEMU作为模拟器工作在用户空间,负责虚拟机I/O模拟。
依赖包qemu-img
主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。

libvirt
提供Hypervisor和虚拟机管理的API。
依赖包libvirt-client
KVM客户端命令行管理工具virsh,负责虚拟机的启动、停止和管理等。
依赖包libvirt-daemon
libvirtd守护进程,作为客户端管理工具跟Hypervisor和虚拟机之间的桥梁。
依赖包libvirt-daemon-driver-xxx
从名字来看属于libvirtd服务的驱动文件,作为libvirtd服务跟Hypervisor不同对象(如qemu模拟器,网络,存储等)间的接口。
依赖包bridge-utils
网桥管理工具包,负责桥接网络的创建、配置和管理等工作。

virt-install
创建和克隆虚拟机的命令行工具包。

virt-manager
图形界面的KVM管理工具。
当然安装KVM的依赖包远不止这些,由于本人水平有限,所以仅挑了一些跟KVM架构有主要联系的软件包进行描述。

启动服务

systemctl enable libvirtd 
systemctl start libvirtd 

kvm管理

默认配置文件目录

xml: /etc/libvirt/qemu
img: /var/lib/libvirt/images

[root@bac02 qemu]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     centos6.7                      关闭
 -     centos6.7_clone1               关闭
 -     centos7.3                      关闭
 -     centos7.3_clone1               关闭
 -     centos7.3mod                   关闭
[root@bac02 qemu]# qemu-img info /var/lib/libvirt/images/centos7.3.qcow2
image: /var/lib/libvirt/images/centos7.3.qcow2
file format: qcow2
virtual size: 9.0G (9663676416 bytes)
disk size: 1.9G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true

kvm克隆virt-clone

克隆前删除uuid和mac信息,防止mac冲突

virt-clone参数介绍

Options(一些基本的选项):
--version:查看版本
-h,--help:查看帮助信息
--connect=URI:连接到虚拟机管理程序 libvirt 的URI

General Option(一般选项):
-o ORIGINAL_GUEST, --original=ORIGINAL_GUEST:原来的虚拟机名称
-n NEW_NAME, --name=NEW_NAME:新的虚拟机名称
--auto-clone:从原来的虚拟机配置自动生成克隆名称和存储路径。
-u NEW_UUID, --uuid=NEW_UUID:克隆虚拟机的新的UUID,默认值是一个随机生成的UUID

Storage Configuration(存储配置):
-f NEW_DISKFILE, --file=NEW_DISKFILE:指定新的虚拟机磁盘文件
--force-copy=TARGET:强制复制设备
--nonsparse:不使用稀疏文件复制磁盘映像

Networking Configuration:(网络配置)
-m NEW_MAC, --mac=NEW_MAC:设置一个新的mac地址,默认是一个随机的mac

克隆虚拟机
virt-clone -o centos7.3mod -n centos7.3_clone1 -f /var/lib/libvirt/images/centos7.3_clone1.qcow2

克隆的虚拟机xml配置对比

[root@bac02 qemu]# diff centos6.7_clone1.xml centos6.7.xml 
4c4
<   virsh edit centos6.7_clone1
---
>   virsh edit centos6.7
9,10c9,10
<   <name>centos6.7_clone1</name>
<   <uuid>4743509b-3e65-4efb-9623-87f89b8fd554</uuid>
---
>   <name>centos6.7</name>
>   <uuid>bd5dff43-eb5e-4306-afc6-5b6b4e65d353</uuid>
41c41
<       <source file='/var/lib/libvirt/images/centos6.7_clone1.qcow2'/>
---
>       <source file='/var/lib/libvirt/images/centos6.7.qcow2'/>
74c74
<       <mac address='52:54:00:28:5c:51'/>
---
>       <mac address='52:54:00:92:8f:c7'/>

KVM镜像管理工具guestfish

libguestfs-tools:命令行工具,libguestfs-winsupport:图形工具
安装
yum install libguestfs-tools
yum install libguestfs-winsupport

上一篇下一篇

猜你喜欢

热点阅读