搭建KVM
系统&服务管理进阶
搭建KVM服务器
- 虚拟化概述
• virtualization 资源管理
– x个物理资源 --> y个逻辑资源
– 实现程度:完全、部分、硬件辅劣(CPU)

- 虚拟化概述(续1)
• 虚拟化主要厂商及产品
系 列 PC/服务器版代表
VMware VMware Workstation、vSphere
Microsoft VirtualPC、Hyper-V
RedHat KVM、RHEV
Citrix Xen
Oracle Oracle VM VirtualBox
- yum软件组管理
• 快速配置RHEL7光盘源
– 为虚拟机连接RHEL7光盘镜像,并挂载到固定位置
[root@kvmsvr ~]# mkdir /mnt/dvd //创建挂载点
[root@kvmsvr ~]# vim /etc/fstab //添加开机挂载配置
.. ..
/dev/cdrom /mnt/dvd iso9660 ro 0 0
[root@kvmsvr ~]# mount -a //挂载光盘
– 添加到 file:///mnt/dvd 的本地YUM源配置
[root@kvmsvr ~]# yum-config-manager --add file:///mnt/dvd
[root@kvmsvr ~]# vim /etc/yum.repos.d/mnt_dvd.repo
.. ..
gpgcheck=0
- yum软件组管理(续1)
• 使用RHEL7软件仏库的预设分组
– yum groups list [hidden] [组名]...
– yum groups info [组名]...
– yum groups install [组名]...
– yum groups remove [组名]...
- 安装虚拟化服务器平台
• 主要软件组
– 虚拟化平台 —— "Virtualization Platform"
– 虚拟化主机 —— "Virtualization Host"
– 虚拟化客户端 —— "Virtualization Client"
[root@kvmsvr ~]# yum -y groups install 虚拟化主机 虚拟化平台
虚拟化客户端
.. ..
- 启动libvirtd服务端
• libvirtd 为管理虚拟机提供服务接口
– 调用 dnsmasq 提供DNS、DHCP等功能
– 建立 virbr0 虚拟网络(192.168.122.0/24)
[root@kvmsvr ~]# systemctl restart libvirtd
.. ..
[root@kvmsvr ~]# ifconfig virbr0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast
192.168.122.255
.. ..
案例1:安装一个KVM服务器
1. 准备一台 RHEL7.2 服务器
2. 关闭SELinux、防火墙
3. 挂载RHEL7光盘到 /mnt/dvd,配置为本机YUM源
– baseurl = file:///mnt/dvd
- 安装KVM相关包组,确保已启用 libvirtd 服务
配置真机网络
1) 防火墙设置
[root@redhat ]# cd /etc/sysctl.d/
[root@redhat sysctl.d]# vim 70-sysctl.conf
net.ipv4.ip_forward = 1
2)配置网卡
[root@redhat ~]# cd /etc/libvirt/qemu/networks/
[root@redhat networks]# vim vbr.xml
<network>
<name>vbr</name>
<forward mode='nat'/>
<bridge name='vbr' stp='on' delay='0'/> #桥接外网的配置
<ip address='192.168.1.254' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.1.100' end='192.168.1.200'/>
</dhcp>
</ip>
</network>
3)自定义网卡
[root@redhat networks]#virsh net-define vbr.xml
4) 启动网卡
[root@redhat networks]#virsh net-start vbr
5) 设置为自启
[root@redhat networks]#virsh net-autostart vbr
创建虚拟机
1) 挂储存卷
[root@redhat ]#cd /var/lib/libvirt/images/
[root@redhat images]#qemu-img create -f qcow2 node.qcow2 16G
2)安装常用包
[root@localhost ~]# yum provides ip
yum -y install iproute-3.10.0-87.el7.x86_64
[root@localhost ~]# yum provides vim
yum -y install vim-enhanced-7.4.160-2.el7.x86_64
yum -y install bash-completion.noarch
[root@localhost ~]# yum provides ifconfig
yum install net-tools.x86_64
3)查看路由
[root@localhost ~]# ip r
4)配置virsh链接
[root@localhost ~]# cd /etc/sysconfig/
[root@localhost sysconfig]# vim grub
......//添加这行
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet" //可以不加入 (写入不显示内核加载显示)
5)重起虚拟机
[root@localhost sysconfig]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@redhat ~]# getenforce
Disabled
[root@localhost sysconfig]# reboot
6)链接虚拟机
[root@redhat ~]# virsh console centos7.0-3
......// Ctrl +】 退出
操作虚拟机
l 查看虚拟化信息
• 查看KVM节点(服务器)信息
– virsh nodeinfo
• 列出虚拟机
– virsh list [--all]
• 列出虚拟网络
– virsh net-list [--all]
• 查看挃定虚拟机的信息
– virsh dominfo 虚拟机名称
l 查看虚拟化信息
• 查看KVM节点(服务器)信息
– virsh nodeinfo
• 列出虚拟机
– virsh list [--all]
• 列出虚拟网络
– virsh net-list [--all]
• 查看挃定虚拟机的信息
– virsh dominfo 虚拟机名称
l 开关机操作
• 运行|重启|关闭挃定的虚拟机
– virsh start|reboot|shutdown 虚拟机名称
• 强制关闭挃定的虚拟机
– virsh destroy 虚拟机名称
• 将挃定的虚拟机设为开机自劢运行
– virsh autostart [--disable] 虚拟机名称
删掉虚拟机,快速克隆虚拟机
1)修改网卡配置文件
[root@localhost network-scripts]# vim
/etc/sysconfig/network-scripts/ifcfg-eth0
... ....
BOOTPROTO=dhcp
[root@redhat ~]# cd /etc/libvirt/qemu/
2)拷贝虚拟机配置文件
[root@redhat qemu]# cp centos7.0-3.xml centos7.0-3.xml.bak
[root@redhat qemu]# mv centos7.0-3.xml.bak /root/
[root@redhat qemu]# vim centos7.0-3.xml
3)删掉虚拟机及配置文件
... ....
4)重建磁盘卷
[root@redhat qemu]# cd /var/lib/libvirt/images/
[root@redhat images]# qemu-img create -b node.qcow2 -f qcow2 node1.img
5)重新还原新隆虚拟机
[root@redhat ~]# cd /etc/libvirt/qemu/
[root@redhat qemu]# vim centos7.0-3.xml
[root@redhat qemu]# virsh define node1.xml
[root@redhat qemu]# virsh start node1
[root@redhat qemu]# virsh console node1
[root@localhost ~]# ifconfig
6)真机上进入虚拟机help环境
[root@redhat ~]# virsh
配置新虚拟机
• 拷贝模板机的xml配置
– 挄照需要修改,并据此定义新虚拟机
[root@kvmsvr ~]# cp /data/images/rhel7_muban.xml /root/
[root@kvmsvr ~]# vim /root/rhel7_muban.xml
.. ..
//修改name、uuid、disk、mac
[root@kvmsvr images]# virsh define /root/rhel7_muban.xml
定义域 rh7_node1(从 /root/rhel7_muban.xml)
配置虚拟机系统有奇招
• 使用 guestmount 工具
– 支持离线挂载 raw、qcow2 格式虚拟机磁盘
– 可以在虚拟机关机的情冴下,直接修改磁盘中的文档
– 方便对虚拟机定制、修复、脚本维护
!!! 需要注意 SELinux 机制的影响
如何挂载虚拟盘
• 基本用法
guestmount -a 虚拟机磁盘路径 -i /挂载点
[root@kvmsvr ~]# mkdir /mnt/kdisk
[root@kvmsvr ~]# guestmount -a node1.qcow2 -i /mnt/kdisk
[root@kvmsvr ~]# chroot /mnt/kdisk
[root@kvmsvr ~]# ls /mnt/kdisk
bin
.. ..
搭建KVM的更多相关文章
- Ubuntu 16.04 搭建KVM环境
在Ubuntu 16.04下搭建KVM环境过程记录. 1 查看CPU是否支持KVM egrep "(svm|vmx)" /proc/cpuinfo 有结果输出,如下图: 2 安 ...
- RedHat7搭建KVM虚拟机
RedHat7搭建KVM虚拟机 1. 宿主机安装RedHat7.3系统 1.1选择语言 中文.简体中文(中国) 1.2安装位置 1.2.1自定义分区,选择LVM,将分区空间全部分配给根 1.2.2禁用 ...
- 搭建KVM环境——07 带GUI的Linux上安装KVM图形界面管理工具
清空yum源缓存,并查看yun源 [root@CentOS2 ~]# yum clean all Loaded plugins: fastestmirror, langpacks Cleaning r ...
- 搭建KVM环境——06 创建虚拟机
若转载请于明显处标明出处:https://www.cnblogs.com/kelamoyujuzhen/p/9071181.html 虚拟机磁盘格式 创建一个raw格式的虚拟机磁盘 [root@Cen ...
- 在ubuntu18.04下搭建kvm
前一段时间一直在尝试Ubuntu上搭建xen,一直出现各种问题,各种坑 首先先感谢下面这个公司对我的耐心解答,非常感谢.特别是后面来的电话对我进行了详细的解答,所以选择搭建kvm. 1. 需要检查一下 ...
- CloudStack搭建KVM环境
软件环境:agent:CentOS 6.3,minimal安装,CPU启用VT management server:CentOS 6.3,minimal安装 存储:CentOS 6.3 搭建在mana ...
- ubuntu18.04上搭建KVM虚拟机环境超完整过程
看标题这是篇纯运维的文章.在中小型企业中,一般很少配置专业的运维人员,都是由开发人员兼着.同时,对有志于技术管理的开发人员来说,多了解一些运维及整个软件生命周期的知识,是很有帮助的,因为带团队不仅仅是 ...
- 基于centos7搭建kvm
其他的和安装一般的系统没有差别 安装完成后. 1]使用ping www.baidu.com 2]修改静态ip,也可以不修改 3]下载brctlyum -y install bridge-utils 4 ...
- 快速搭建 kvm web 管理工具 WebVirtMgr
作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211117937177/ 相关话题:https://ww ...
随机推荐
- 学习gensim
首先要将字符串分割成词语列表.比如”hurry up”要分割成[“hurry”,”up”]. 对于中文来讲,分词就是一个很关键的问题,不过可以去找一些分词库来实现.我一般用的是jieba. 而对于英文 ...
- ggplot2(7) 定位
7.1 简介 位置调整:调整每个图层中出现重叠的对象的位置,对条形图和其他有组距的图形非常有用: 位置标度:控制数据到图形中位置的映射,常用的是对数变换: 分面:先将数据集划分为多个子集,然后将每个子 ...
- Java 基础(四):数组
数组,一种应用非常广泛的数据结构,简单地来说就是一组类型相同且无序的元素的存储在固定长度且有序的内存空间. 创建一个数组 在Java中,我们可以通过[]去声明一个指定类型的数组 int[] a; // ...
- 谈谈SQL优化
写SQL是学习数据库必须掌握的非常重要的技能之一.在学习过程当中,我们会尝试写各种各样满足需求的SQL语句.在实际项目中,优秀的SQL语句和普通的SQL语句的执行速度差别非常大.对于一个数据量很大的系 ...
- vue相关的前端UI库
1,element-ui 这个笔者用的最多,但是官网不知道咋回事.打不开,难道被黑了?! 地址(http://element-ui.cn/#/zh-CN/component/installation) ...
- Altium Designer 20下载与安装教程
目录 一.Altium Designer 20下载 二.Altium Designer 20安装 三.Altium Designer 20破解 四.Altium Designer 20汉化 作者:st ...
- sqlmap详解
sqlmap是一个自动化的sql注入工具,其主要功能是扫描.发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库有MySQL, Oracle,PostgreSQL, Microsof ...
- vue后台管理系统权限处理
vue后台管理系统权限 1.权限问题:用户和管理员进入管理系统看到的模块是不一样的,管理员看的的要比用户看到的多.需要用到动态加载路由,router.addRouters()来动态的挂载路由 // 1 ...
- Mycat的简介及安装
Mycat简介: 1.1Mycat含义 简单的说,MyCAT就是: 一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务.ACID.可以替代Mysql的加强版数据库 一个可以视为“Mysql” ...
- Java程序员应该知道的20个有用的lib开源库
一般一个经验丰富的开发者,一般都喜欢使用开源的第三方api库来进行开发,毕竟这样能够提高开发效率,并且能够简单快速的集成到项目中去,而不用花更多的时间去在重复造一些无用的轮子,多了解一些第三方库可以提 ...