kvm及管理工具 libvirt介绍

kvm管理工具 libvirt

KVM 介绍,以及qemu-kvm

IMPORT:kvm 模块加载之后,检查/dev/kvm这个文件,它是kvm内核模块提供给用户空间的qemu-kvm程序使用的一个控制接口,它提供了客户机Guest操作系统运行所需要的模拟和实际的硬件设备环境。
除了在内核空间的kvm模块之外,在用户空间需要QEMU来模拟所需要的CPU和设备模型以及用于启动客户机进程,这样才有了一个完整的KVM运行环境。而qemu-kvm是为了针对KVM专门做了修改和优化的QEMu分支。

安装qemu-kvm

从git上下载qemu-kvm源码,编译,安装。其安装过程的主要任务有这么几个:创建qemu的相关目录,复制配置文件到对应的目录下,复制一些firmware文件,如sgabios.bin,kvmvapic.bin 到目录下以便qemu-kvm的命令行启动时可以找到对应的固件提供给客户机使用。复制keymaps到相应的目录下以便在客户机中支持各种所需要键盘类型。
qemu-kvm属于用户空间的程序,安装之后不用重启系统即可。

由于许多发行版本默认支持了kvm,不需要重新编译内核(包括kvm 模块)和用户态程序qemu-kvm。只需要查看内核是否支持kvm(查看/boot/config-xx 文件中的kvm相关配置,以及kvm和kvm_intel模块是否正确加载。(lsmod | grep kvm),然后找到qemu-kvm的命令行工具(/usr/libexec/qemu-kvm)。

在kvm环境中,整个系统的基本架构如下:

上层:userspaceProcess|usersopaceProcess |{Guest Userspace,Guest Kernel…}qemu-kvm
中间层:linux kernel(KVM Module)
底层:Hardware Support

在系统的底层CPU硬件中需要有硬件辅助虚拟化技术(Intel VT,AMD-V)的支持,宿主机就运行在硬件之上,KVM的内核部分是作为可动态加载内核模块运行在宿主机中的,其中一个模块是和硬件平台无关的实现虚拟化核心基础架构的kvm模块,一个是硬件平台相关的kvm_intel(或者kvm_amd),而kvm中的一个客户机是作为一个用户空间进程qemu-kvm运行的,他和其他的普通的用户空间进程如gnome,firefox等一样都是由内核来调度使其运行在物理CPU上。不过他由kvm模块控制。

libvirt 安装


git源代码安装方式,推荐
过程和libvirt的源码包targz编译和安装过程一样,这里介绍编译前进行配置的不同之处。
git clone之后,先运行其自带的autogen的脚本,它会默认下载git.sv.gnu.org/gnulib.git,然后根据模版生成configure配置脚本和初始化Makefile文件。最后自动运行configure文件进行对编译环境的配置。

cd libvirt.git
./autogen.sh
make
make install


编译之后,libvirtd,virsh等可执行程序被安装在/usr/sbin/目录下,至于libvirt.so,libvirt-qemu.so等共享库文件被安装在/usr/lib64目录下。

当然也可有使用其他安装方式,例如rpm dpkg等
libvirt是跨平台的管理工具,在其官网可以查看和下载windows的libvirt安装程序。

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

libvirt 配置

在rhel中,其相关配置文件在/etc/libvirt 目录中
下面介绍几个重要的配置文件和目录
/etc/libvirt/libvirt.conf
主要配置uri的别名
libvirtd.conf
守护进程libvirtd的配置文件,修改之后需要重新加载才可以生效。下面的几个配置项表示 关闭tls安全认证的连接(默认是打开的)、打开tcp连接(默认是关闭的)、设置tcp监听端口,tcp连接不使用认证授权,设置unix domain socket的保存目录等。
listen_tls = 0
listen_tcp = 1
tcp_port = 16666
unix_sock_dir=”/var/run/libvirt”
auth_tcp=”none”

注意:要让tcp,tls等连接生效,需要在启动libvirtd时,加上–listen参数(简写 -l)而默认的service libvirtd start 命令在启动libvirtd服务的时候并没有带上该参数。

/etc/libvirt/qemu.conf
qemu.conf 是libvirt对qemu的驱动的配置文件,包括vnc spie等和连接它们时采用的权限认证方式的配置,也包括内存大页、SELinux、Cgroups等相关配置。

/etc/libvirt/qemu 目录
qemu 目录下存放的是用qemu驱动的domain的配置文件 【节点 对应一台物理机,kvm 虚拟监控器运行在 node之上,监控domain。domain是运行在node上的虚拟机】
是用virt-manager 工具创建的实例,其配置文件默认保存在该目录下,networks保存了创建实例时默认的网络配置。

libvirtd作为libvirt虚拟化管理系统中的服务器端的守护程序,要让某个节点能够利用libvirt进行管理,都需要在该节点上运行libvirtd,libvirtd负责执行其他管理工具发送给它的虚拟化管理操作指令。
libvirtd作为RHEL中的一个服务service 并配置在系统中,因此可以实用service指令对其进行操作。
service libvirtd {start | restart reload status }

默认的libvirtd 在坚挺一个本地的Unix domain socket ,而没有监听基于网络的tcp ip socket,需要使用 -l 的命令行参数才开启对libvirtd.conf 配置文件中tcp ip socket 的配置。另外libvirtd守护进程的启动或者停止,并不会直接影响正在运行的客户机。
当然也可以使用/etc/init.d/libvirtd 的方式启动libvirtd

该命令的命令参数
-d 、 –daemon
表示让libvirtd 作为守护进程 daemon在后台运行。

-f 、 –config FILE
表示制定libvirtd的配置文件为FILE,而不是默认的/etc/libvirt/libvirtd.conf

-l 、 –listen
表示开启配置文件中配置的TCPIP连接

-p 、–pid-file FILE
将libvirtd进程的PID写入到FILE文件中,而不是使用默认的通常是/var/run/libvirtd.pid

-t 、 –timeout SECONDS
设置对libvirtd连接的超时时间为SECONDS秒

-v 、–verbose
执行命令输出详细的输出信息

–version
libvirtd程序的版本信息

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值