KVM虚拟机管理配置——libvirt

一、关于libvirt

1)libvirt简介

Libvirt是目前使用最广泛的虚拟机管理工具和应用程序接口(API),常用的虚拟机管理工具(virsh、virt-install、virt-manager)和云计算架构平台(如:OpenStack、OpenNubula)等在底层都使用libvirt的应用程序接口。

Libvirt是一套开源的支持linux下虚拟化工具的函数库,为安全有效的管理各域,libvirt提供的一个公共的稳定软件层。

Libvirt由三个部分组成:应用程序接口(API)、一个守护进程libvirtd、一个默认的命令行管理工具virsh。

作用分别如下:

API为其他虚拟机管理工具(如virsh  virt-manager)提供程序库支持;

Libvirtd守护进程管理所有域,在使用各工具对虚拟机进行管理时,该守护进程需要打开;

Virsh是libvirt项目中默认的命令行管理工具,具有定义、启动、停止等管理功能。

2)Libvirt工作原理如下图:

一句话描述:管理工具virsh、virt-manager、virt-install等,通过使用libvirt提供的API的,对虚拟化程序(Hypervisor)在各物理节点(node)上虚拟化出的多个域(domain,机客户操作系统 Guest OS)进行操作管理。

概念解释:

虚拟机管理程序(Hypervisor):是一个虚拟化软件,可以让一个节点上虚拟出多个客户机,常用的虚拟化软件有:KVM、Xen、VMware、VirtualBox等;

节点(node):指一台物理机,每个node上面可以虚拟化出多个虚拟域(Domain);

域(domain):虚拟化软件在物理机上虚拟化出的一个客户机,域也称为实例,或客户机操作系统(Guest OS)、虚拟机(Virtual  machine)。

3)节点(node)、虚拟管理程序(Hypervisor)、域(domain)的关系如下图:

在物理节点(node)上运行虚拟化软件(Hypervisor),通过Hypervisor在node上生成多个独立的虚拟域(domain)。

二、准备工作——软件安装与网桥配置

1)检查服务器CPU是否支持虚拟化,看是否有vmx或svm 参数


[[email protected] ~]# grep  -E  ‘vmx|svm‘ /proc/cpuinfo

flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm  pebs bts rep_good xtopology  dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt aes lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid

2)安装所需软件

通过yum源安装虚拟化软件与管理工具相关的3组软件包


[[email protected] ~]# yum groupinstall "Virtualization Client" "Virtualization Platform" "Virtualization Tools"

启动libvirt服务


[[email protected] ~]# /etc/init.d/libvirtd   restart

Stopping libvirtd daemon:                                  [  OK  ]

Starting libvirtd daemon:                                  [  OK  ]

安装网桥管理工具


[[email protected] ~]# yum  install  bridge-utils  tunctl  -y

3)添加桥接网络(Bridge)

新建网桥br0配置文件,将网卡em1加入网桥br0


[[email protected] ~]# cd  /etc/sysconfig/network-scripts

[[email protected] network-scripts]# vim  ifcfg-br0

DEVICE=br0

ONBOOT=yes

BOOTPROTO=static

IPADDR=10.10.100.30

NETMASK=255.255.255.0

GATEWAY=10.10.100.254

TYPE=Bridge

[[email protected] network-scripts]# vim   ifcfg-em1

DEVICE="em1"

ONBOOT="yes"

BRIDGE=br0

重启服务器网络服务,查看网桥br0


br0       Link encap:Ethernet  HWaddr 90:B1:1C:0D:80:14

inet addr:10.10.100.30  Bcast:10.10.100.255  Mask:255.255.255.0

inet6 addr: fe80::92b1:1cff:fe0d:8014/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:584 errors:0 dropped:0 overruns:0 frame:0

TX packets:458 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:43198 (42.1 KiB)  TX bytes:53755 (52.4 KiB)

em1       Link encap:Ethernet  HWaddr 90:B1:1C:0D:80:14

inet6 addr: fe80::92b1:1cff:fe0d:8014/64 Scope:Link

UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1

RX packets:602 errors:0 dropped:0 overruns:0 frame:0

TX packets:435 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:55634 (54.3 KiB)  TX bytes:52012 (50.7 KiB)

Interrupt:36 Memory:da000000-da012800

查看生成的桥接网桥 br0


[[email protected] ~]# brctl  show

bridge namebridge idSTP enabledinterfaces

br08000.90b11c0d8014noem1

4)添加内部网络(NAT)

软件安装好后,会自动生成一个内部网桥配置文件——default,文件路径如下:


[[email protected] qemu]# ls  /etc/libvirt/qemu/networks/default.xml

添加自定义的内部网桥

复制default.xml文件为natwork.xml,修改里面的内容如下:


[[email protected] qemu]# cp  default.xml   natwork.xml

[[email protected] qemu]# cat  /etc/libvirt/qemu/networks/natwork.xml

<network>

<name>natwork</name>       //网络名称

<uuid>d4545757-9ceb-435a-860a-5a0ca81015e9</uuid>  //修改唯一标识符

<bridge name="virbr1" />      //系统中显示的网桥名称,类似于桥接网络的br0

<mac address=‘52:54:00:3C:E4:67‘/>

<forward/>

<ip address="192.168.2.1" netmask="255.255.255.0">     //设置本内部网络的网段

<dhcp>

<range start="192.168.2.2" end="192.168.2.254" />   //可DHCP分配的地址

</dhcp>

</ip>

5)内部网络的管理——定义、启动、关闭等


[[email protected] networks]# virsh  net-define  natwork.xml    //根据配置定义网络

Network natwork defined from natwork.xml

[[email protected] networks]# virsh  net-start  natwork    //启动指定内部网络

Network natwork started

[[email protected] networks]# virsh  net-list     //查看已定义的内部网络状态

Name                 State      Autostart     Persistent

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

default              active     yes           yes

natwork              active     no            yes

[[email protected] networks]# virsh  net-destroy  default     //关闭指定内部网络

Network natwork destroyed

将内部网络设置为开机自启动


[[email protected] networks]# virsh  net-autostart  natwork  //设置指定内部网络为开启启动

Network natwork marked as autostarted

[[email protected] networks]# ls  /etc/libvirt/qemu/networks/autostart/

default.xml  natwork.xml

//设置开机启动的内部网络,会自动在autostart下生成配置链接

[[email protected] networks]# virsh  net-list

Name                 State      Autostart     Persistent

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

default              active     yes           yes

natwork              active     yes           yes

查看内部网络的网桥


[[email protected] ~]# brctl   show

bridge name   bridge id         STP enabled    interfaces

br0          8000.66d7c17b4c66   no            em1          //br0 为桥接网络网桥

tap10

tap11

vnet0

vnet1

virbr1     8000.5254002ce366    yes         virbr0-nic  //virbr1为natwork内部网络网桥

vnet2

vnet4

三、KVM的配置管理

1)创建本地磁盘映像,使用raw格式


[[email protected] KVM_img]# qemu-img  create  -f  raw  dell_01.img  30G

Formatting ‘dell_01.img‘, fmt=raw size=32212254720

使用qcow2格式时,需要加上预分配元数据参数 preallocation=metadata


[[email protected] KVM_img]# qemu-img create -f qcow2 -o preallocation=metadata  dell_01.img  30G

Formatting ‘dell_01.img‘, fmt=qcow2 size=32212254720 encryption=off cluster_size=65536 preallocation=‘metadata‘

使用qcow2格式,如果不加预分配元数据参数,使用virt-install安装Guest时,磁盘大小为0。

2)使用virt-install安装Guest系统

通过本地光盘安装——网络为桥接模式


[[email protected] KVM_img]# virt-install --name=dell_test01 --vcpus=2 --ram=2048 \

--disk path=/data/KVM_img/dell_01.img,size=30  \

--network  bridge=br0,model=virtio \

--os-type=linux  --os-variant=rhel6 \

--cdrom=/data/CentOS-6.3-x86_64-bin-DVD1.iso \

--vnc  --vncport=5904  --vnclisten=10.10.100.30

通过本地光盘安装——网络为NAT模式


[[email protected] KVM_img]# virt-install  --name=dell_test02 --vcpus=2  --ram=2048  --disk path=/data/KVM_img/dell_01.img,format=raw  --os-type=linux --os-variant=rhel6  --network  network=default,mac=52:54:01:79:47:34 --graphics vnc,port=5905,listen=10.10.100.30  --cdrom=/data/CentOS-6.3-x86_64-bin-DVD1.iso

通过网络源安装


[[email protected] ~]# virt-install  --name=dell_test03 --ram=2048 --vcpus=2 --disk path=/data/KVM_img/dell_01.img,format=raw  --os-type=linux --os-variant=rhel6  --network  network=default,mac=52:54:01:79:47:34 --graphics vnc,port=5905,listen=10.10.100.30  --location=ftp://10.10.100.30/R6

然后使用vnc客户端远程连接,执行Linux安装(linux与windows客户端都可以),在上一篇《VM虚拟机安装管理——qemu-kvm方式》已经演示。

安装参数说明:(安装时根据需要选择参数,有些可不选)

-n    --name    指定Guest名字

-r    --ram    指定内存大小

--vcpus        指定Guest虚拟CPU的个数

-u    --uuid    Guest系统的唯一标识符,可以使用uuidgen命令生成

-p    --paravirt    指定Guest为半虚拟化

--disk        指定Guest的存储磁盘,path=  指定存储位置可以是虚拟映像、lvm分区、物理分区等,format= 指定虚拟映像格式,size=  指定虚拟映像大小,单位为G

-w  --network    网络配置

--network bridge=br0    指定Guest网络到特定的桥接网桥

--network network=mynat1    指定Guest网络到特定的nat网桥

--network network=mynet,model=virtio,mac=00:11...    使用参数指定网卡模式,mac地址等

--os-type=         指定Guest系统的类型,如linux、unix、windows

--os-variant=      指定安装Guest的发行版本,如rhel5、rhel6等

-c  --cdrom        指定Guest的虚拟光驱,可以是ISO镜像文件,或CDROM设备,也可以是一个通过URL可以访问和获取到的boot.iso镜像

-l  --location    指定kernel和initrd安装源,对于半虚拟化是必须的,全虚拟化使用--cdrom或--location

--location    使用nfs:host/path、ftp://host/path、http://host/path的方式指定安装源

-pxe        指定使用PXE boot 协议来引导加载系统

-x  --extra-args用来给加载的kernel和initrd提供额外的内核命令行和参数

如:”ks=http://10.0.0.10/rehel-ks.cfg  ip=xx  netmask=xx gateway=xxx”

--graphics vnc,port=5905,listen=10.10.100.30    指定图形设置,主要为vnc配置,可以用来远程安装与管理虚机,可以配置vnc端口、密码、监听地址等。VNC图形还可以使用“--vnc  --vncport=5904  --vnclisten=10.10.100.30”等独立参数来配置。

时间: 2024-10-18 02:39:08

KVM虚拟机管理配置——libvirt的相关文章

烂泥:ubuntu安装KVM虚拟机管理virt-manager

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 打算学习KVM的图形界面管理器virt-manager,但是virt-manager只有linux系统的,没有windows下的.所以只能使用linux桌面系统,在此我选择的是ubuntu系统. 有关ubuntu系统的安装我就不做介绍,下面就介绍有关virt-manager的安装与配置. 其中安装virt-manager的机器不一定要支持虚拟化. 注意virt-manager既有图形界面,也有命令行. 启动ubuntu,并安装virt-manage

kvm虚拟机管理(2)

一.virt-manager创建虚机 (1)首先通过命令 virt-manager 启动图形界面:点下面的图标创建虚机 (2)给虚机命名为 kvm1,这里选择从哪里启动虚机.如果是安装新的 OS,可以选择第一项.如果已经有安装好的镜像文件,选最后一项(如下图). (3)接下来需要告诉 virt-manager 镜像的位置,点击 “Browser” (4)需要在系统中上传一个镜像文件到属主机上,放到 /var/lib/libvirt/images/ 目录下,这是 KVM 默认查找镜像文件的地方.

kvm虚拟机管理(3)

一.远程管理kvm虚拟机 (1)上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机.其实 virt-manager 也可以管理其他宿主机上的虚机.只需要简单的将宿主机添加进来,如下图: 接下来,我们就可以像管理本地虚机一样去管理远程宿主机上的虚机了 (2)有些情况下,有一个要配置的地方. 因为 KVM(准确说是 Libvirt)默认不接受远程管理,需要按下面的内容配置被管理宿主机中的两个文件: 1 vim /etc/default/libvirt-bin start_

KVM虚拟机管理——虚拟机克隆

1. 概述2. 部署基本操作系统虚拟机3. 配置虚拟机3.1 修改/etc/sysconfig/network3.2 删除/etc/sysconfig/network-scripts/ifcfg-ethx和主机有关信息3.3 删除网卡编号规则文件3.4 编辑/etc/yum.repo.d/3.5 配置console到node99无密码访问3.6 配置sshd配置文件3.7 配置virsh console访问虚拟机4. 克隆虚拟机 1. 概述 通过为KVM虚拟机安装操作系统只是安装最基本的操作系统

KVM虚拟化笔记(七)------kvm虚拟机时间配置

由于在虚拟化环境中,虚拟机在长时间的运行过程中,时间会变慢,通常的做法是配置ntpdate定时与时间服务器进行时间同步的计划任务.Kvm虚拟机默认采用的是UTC时间,需要进行专门的修改,还有考虑时间同步的问题,具体步骤如下: 1,kvm虚拟机修改时间配置文件 kvm虚拟机采用utc时间,需要先修改配置文件使用kvm虚拟机的时间与虚拟主机同步. [[email protected] qemu]# virsh edit hadoop3 最后重启下虚拟机 2. 关于kvm虚拟机时间问题解决思路 (1)

kvm虚拟机--存储池配置梳理(转)

1.创建基于文件夹的存储池(目录) 2.定义存储池与其目录 1 # virsh pool-define-as vmdisk --type dir --target /data/vmfs 3.创建已定义的存储池 (1)创建已定义的存储池 1 # virsh pool-build vmdisk (2)查看已定义的存储池,存储池不激活无法使用. 1 #virsh pool-list --all 4.激活并自动启动已定义的存储池 1 2 # virsh pool-autostart vmdisk # v

[转载]kvm libvirt 虚拟机管理

http://www.2cto.com/os/201203/123128.html kvm虚拟机管理 一.环境 role         hostname    ip                  OS kvm_server   target      192.168.32.40/24    rhel6.0_x64 vir_guest1   node4       192.168.32.34/24    rhel5.5_i386 vir_guest2   node5       192.16

kvm libvirt 虚拟机管理

http://www.2cto.com/os/201203/123128.html kvm虚拟机管理一.环境role         hostname    ip                  OSkvm_server   target      192.168.32.40/24    rhel6.0_x64vir_guest1   node4       192.168.32.34/24    rhel5.5_i386vir_guest2   node5       192.168.32.

RHEL7 kvm虚拟机桥接网络配置

摘要:RHEL7 KVM虚拟机网络配置Bridge方式.Bridge方式的配置原理和步骤. Bridge方式适用于服务器主. bridge 的网络结构见图: Bridge方式 问题 客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信.事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接. KVM 客户机网络连接有两种方式: 用户网络(User Networking):让虚拟机访问主机.互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机