主流服务器虚拟化技术简单使用——KVM(二)
通过Linux工具管理KVM
主流服务器虚拟化技术简单使用——KVM(一)部署了一台KVM主机,提到KVM可以通过命令行工具(virt-install、virsh)和GUI工具(virt-manager)管理虚拟机。实际上virt-install、virsh、virt-manager只是管理工具,如果部署多台KVM,并不需要每一台都安装这些管理工具,因为它们也可以管理其它KVM。甚至于这些管理工具也不一定需要安装在某一台KVM上,可以安装在任意一台Linux中。
Tips:virt-install、virsh、virt-manager不单能够管理kvm,还能管理Xen和其它支持libvirt的hypervisor。这里使用主流服务器虚拟化技术简单使用——KVM(一)中第二种方式部署了两台KVM,演示在其中一台KVM的virt-manager上管理另一台KVM。
特别注意:这些KVM管理工具依赖libvirtd进程,但从CentOS7.4默认源(Base)安装的libvirt无法正常运行,推测是默认源中的libvirt版本较高,而操作系统的环境较旧,尝试使用CentOS7.4镜像搭建的源,能够正常使用。
若在已安装的操作系统(且安装时环境未选择这些虚拟化工具)的CentOS中部署这些工具,建议使用ISO镜像源:
[root@localhost ~]# yum -y install virt-install libvirt-python virt-manager virt-install libvirt-client

输入你要管理的物理机IP

如果你的环境和我主流服务器虚拟化技术简单使用——KVM(一)相同,应该会遇到这个问题。

提示需要安装openssh-askpass或者相似的软件,一般通过yum安装该软件即可。
Tips:openssh-askpass包含用于OpenSSH的X11密码对话框,这里它需要和virt-manager安装在一台服务器上。
通过yum安装好即可
[root@localhost ~]# yum -y install openssh-askpass.x86_64
安装之后再次连接,首次登陆会有提示是否要连接(输入yes),然后输入密码即可。


这样就可以管理其他物理机(此例中为192.168.202.130)的虚拟机。

若无法访问其它物理机上虚拟机的控制台,可能与ssh配置有关。

修改相应配置和重启服务即可。
[root@node1 ~]# vi /etc/ssh/sshd_config
X11Forwarding no 找到该行,将no修改为yes
X11Forwarding yes
[root@node1 ~]# systemctl restart sshd
但是访问虚拟机控制台,反复输入密码(我需要输入8次)这个问题暂时不知道是什么原因。

通过web页面管理
通过命令行管理,没有GUI、操作不方便,数据不直观。virt-manager虽然是GUI,但是只能安装在Linux中。我们平常都是使用windows,这样只能通过windows远程Linux,但Linux由于多种原因一般是不安装图像界面的。现在集群管理、监控等,主流都是通过web管理,操作便捷、信息丰富,kvm也有基于web管理的工具(webvirtmgr)。
关于webvirtmgr推荐参考这个文档,写的比较详细,有部署和使用教程:https://jeremy-xu.oschina.io/2016/08/%E8%AF%95%E7%94%A8webvirtmgr/#%E5%BE%85%E6%94%B9%E8%BF%9B%E7%9A%84%E5%9C%B0%E6%96%B9
参考文档使用CentOS 6,有一些地方需要结合webvirtmgr官网改动:https://pypi.org/project/webvirtmgr/

官网中比较重要的是我用红色圈处理的三个链接,其中Install WebVirtMgr介绍了各种发行版的操作系统如何部署webvirtmgr,Setup Host Server中包含一个部署KVM的脚本(写本文时已失效),Wiki介绍如何配置webvirtmgr管理KVM。
部署webvirtmgr需要注意的几点:
1.webvirtmgr部署在一台服务器中,让其他KVM主机加入webvirtmgr进行管理。
webvirtmgr是个独立的服务,可以单独搭建在一台物理服务器中,也可以建立在某台KVM主机中,又或者某台KVM主机的虚拟机中;参考文章提到:webvirtmgr所部署的主机需考虑高可用方案,简单处理可以将其做成docker镜像,一旦发现该服务故障了,可以快速地在其它地方启动起来,这种方式也比较恰当。
2.按照官方文档在CentOS7.4部署webvirtmgr需要使用epel扩展源
$ sudo yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
if this doesn't work, use yum install epel-release
$ sudo yum -y install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx
$ sudo yum -y install gcc python-devel
$ sudo pip install numpy
而且会因为依赖安装最新版的libvirt(写本文时CentOS7.4是Base源中是4.5),但是CentOS7.4无法运行这个版本的libvirt,将产生报错:
[root@localhost storage-backend]# libvirtd
2018-12-26 02:56:50.419+0000: 4877: info : libvirt version: 4.5.0, package: 10.el7_6.3 (CentOS BuildSystem <http://bugs.centos.org>, 2018-11-28-20:51:39, x86-01.bsys.centos.org)
2018-12-26 02:56:50.419+0000: 4877: info : hostname: localhost.localdomain
2018-12-26 02:56:50.419+0000: 4877: error : virModuleLoadFile:53 : 内部错误:Failed to load module '/usr/lib64/libvirt/storage-backend/libvirt_storage_backend_rbd.so': /usr/lib64/libvirt/storage-backend/libvirt_storage_backend_rbd.so: undefined symbol: rbd_diff_iterate2
libvirt_storage_backend_rbd.so应该是连接ceph块设备(rbd)的一个模块,这里暂时不用连接ceph,最简单粗暴的做法就是移除该模块,重启libvirtd。
[root@localhost storage-backend]# mv libvirt_storage_backend_rbd.so libvirt_storage_backend_rbd.so.bak
[root@localhost storage-backend]# systemctl restart libvirtd
其实安装过程中,有些包是epel里面的,libvirt相关的包还是从base中安装的,最稳妥的做法就是禁用base,使用ISO镜像源中的libvirt相关包。这个方法我未验证是否可行
3.webvirtmgr文档建议使用ssh端口转发访问webvirtmgr,这个视自身情况而定做修改。
5.webvirtmgr要访问虚拟机的控制台需要yum -y install novnc,并开启kvm主机的6080端口。
6.webvirtmgr接入kvm主机有4种方式,个人最推荐的是ssh。

ssh连接kvm主机必须设置ssh秘钥登陆,具体设置方法参考Wiki(部署目录)中的

webvirtmgr试用
还是这篇参考文章中有试用部分:https://jeremy-xu.oschina.io/2016/08/%E8%AF%95%E7%94%A8webvirtmgr/#%E5%BE%85%E6%94%B9%E8%BF%9B%E7%9A%84%E5%9C%B0%E6%96%B9
更多管理方式
命令行工具比较适合排除故障的时候使用,virt-manager和webvirtmgr功能都差不多,主要在于C/S、B/S的区别。虽然webvirtmgr在逻辑结构、信息显示这些方面比virt-manager好一些,但它的功能仍然比较基础,两者都只是将逐台管理KVM主机的工作整合到一处,只适合管理约十台KVM主机(物理服务器)的小型KVM虚拟化平台。
大型的KVM虚拟化平台,有数百台的KVM主机,需要使用rhev(rhev的开源版叫ovirt)。尽管他们表面上看起来和webvirtmgr都差不多,都是通过网页管理这些虚拟机,但他们能够实现监控告警,多种资源集中管理等诸多强大的功能,更适合管理大型KVM虚拟化平台。
rhev参考:
Tips:由于docker技术的迅速发展,小型虚拟化平台基本上被docker替代,像webvirtmgr最后一次更新还是在2015.1.23日。相较于服务器虚拟化,docker自身开销更小,更加灵活。关于docker和服务器虚拟化技术的关系参考:
主流服务器虚拟化技术简单使用——KVM(二)的更多相关文章
- 主流服务器虚拟化技术简单使用——KVM(一)
Tips:因为博客园排版的原因,图片显示不清晰,可以放大网页查看清晰图片. 如果系统使用物理机,需要在BIOS里面开启Intel VT-x(或AMD-V),如果是VMware workstation, ...
- 主流服务器虚拟化技术简单使用——Hyper-V(二)
当在多台Windows Server上部署了hyper-v的时候,需要采用合适的方法管理这些hyper-v节点. 远程桌面 最简单的方法就是逐台远程桌面登陆Windows Server,再使用每台本地 ...
- 主流服务器虚拟化技术简单使用——Xen(一)
Tips:因为博客园网页布局的原因,部分图片显示不清晰,可以放大网页查看清晰图片. 如果系统使用物理机,需要在BIOS里面开启Intel VT-x(或AMD-V),如果是VMware workstat ...
- 主流服务器虚拟化技术简单使用——Xen(二)
管理多台Xen主机可以使用GUI工具virt-manager和xm.xl等命令行工具. Tips:hypervisor一定要选到Xen web管理工具 Xen也有一个简易web管理工具叫xenwebm ...
- 主流服务器虚拟化技术简单使用——Hyper-V(一)
Tips:因为博客园排版的原因,图片显示不清晰,可以放大网页查看清晰图片. 如果系统使用物理机,需要在BIOS里面开启Intel VT-x(或AMD-V),如果是VMware workstation, ...
- 虚拟化技术xen,kvm,qemu区别
虚拟化类型 全虚拟化(Full Virtualization) 全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些 ...
- [51CTO]服务器虚拟化开源技术主流架构之争
服务器虚拟化开源技术主流架构之争 http://virtual.51cto.com/art/201812/589084.htm 大部分客户已经是KVM+OpenStack的架构了 我所见到的 工商云 ...
- 云计算大数据:Xen、KVM、VMware、hyper-v等虚拟化技术的比较
1.Xen.KVM.VMware.hyper-v等虚拟化技术的比较,xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 ...
- Linux虚拟化技术KVM、QEMU与libvirt的关系(转)
说明:个人理解,KVM是内核虚拟化技术,而内核是不能使用在界面上使用的,那么此时QEMU提供了用户级别的使用界面,相互辅助.当然,单独使用QEMU也是可以实现一整套虚拟机,不过QEMU+KVM基本是标 ...
随机推荐
- Git自动补全
一.简介 假使你使用命令行工具运行Git命令,那么每次手动输入各种命令是一件很令人厌烦的事情.为了解决这个问题,你可以启用Git的自动补全功能,完成这项工作仅需要几分钟. 二.操作步骤 1) cd ...
- leetcode - database - 177. Nth Highest Salary (Oracle)
题目链接:https://leetcode.com/problems/nth-highest-salary/description/ 题意:查询出表中工资第N高的值 思路: 1.先按照工资从高到低排序 ...
- p2408 不同子串个数
传送门 分析 首先我们不难求出一共有多少子串 之后我们只需要减掉重复个数即可 于是我们对于每个后缀减去它跟它前一名的最长公共前缀即可 代码 #include<iostream> #incl ...
- CF 662C Binary Table
用FWT优化计算. 首先发现行数很小,想到一个暴力的方法,就是以一个二进制位$0$表示这一行不翻转而二进制位$1$表示这一行翻转,然后$2^n$枚举出所有行的翻转情况,再$O(m)$计算所有的结果. ...
- 冲刺NOIP2015提高组复赛模拟试题(五) 3.破坏基地
3.破坏基地 描述 Description 在Z国和W国之间一直战火不断. 好不容易,W国的间谍把完整的Z国的军事基地的地图到手了. 于是W国决定再次出击,一举击破Z国的防线. W国认真研究了Z国的地 ...
- python2.7 跨文件全局变量的方法-乾颐堂
在使用Python编写的应用的过程中,有时会遇到多个文件之间传递同一个全局变量的情况. 文件1:globalvar.py 1 2 3 4 5 6 7 8 9 10 11 12 #!/usr/bin/e ...
- ubuntu下学习linux
---恢复内容开始--- 查看当前正在运行的进程(ps命令, grep 搜索命令) ps -ef # -e 显示所有进程,环境变量 -f 全格式 也可以用: ps -e -f # 显示所有关于java ...
- NArrange 配置与使用
1. 在VS中设置一下就可以用了 2.It is also recommended to setup a restore command using the same parameters, repl ...
- ubuntu 16.04安装ceph集群(双节点)
Ceph是一个分布式存储,可以提供对象存储.块存储和文件存储,其中对象存储和块存储可以很好地和各大云平台集成.一个Ceph集群中有Monitor节点.MDS节点(可选,用于文件存储).至少两个OSD守 ...
- 创建EDM
在学习linq过程中,我们难免会要创建EDM,这里简单的介绍一下EDM的创建过程 图示如下: 1.右击→添加→新建项→数据→Ado.net实体数据模型 选择适当的数据库,表后点击完成,vs中会自动生成 ...