系统&服务管理进阶

搭建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

  1. 安装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的更多相关文章

  1. Ubuntu 16.04 搭建KVM环境

      在Ubuntu 16.04下搭建KVM环境过程记录. 1 查看CPU是否支持KVM egrep "(svm|vmx)" /proc/cpuinfo 有结果输出,如下图: 2 安 ...

  2. RedHat7搭建KVM虚拟机

    RedHat7搭建KVM虚拟机 1. 宿主机安装RedHat7.3系统 1.1选择语言 中文.简体中文(中国) 1.2安装位置 1.2.1自定义分区,选择LVM,将分区空间全部分配给根 1.2.2禁用 ...

  3. 搭建KVM环境——07 带GUI的Linux上安装KVM图形界面管理工具

    清空yum源缓存,并查看yun源 [root@CentOS2 ~]# yum clean all Loaded plugins: fastestmirror, langpacks Cleaning r ...

  4. 搭建KVM环境——06 创建虚拟机

    若转载请于明显处标明出处:https://www.cnblogs.com/kelamoyujuzhen/p/9071181.html 虚拟机磁盘格式 创建一个raw格式的虚拟机磁盘 [root@Cen ...

  5. 在ubuntu18.04下搭建kvm

    前一段时间一直在尝试Ubuntu上搭建xen,一直出现各种问题,各种坑 首先先感谢下面这个公司对我的耐心解答,非常感谢.特别是后面来的电话对我进行了详细的解答,所以选择搭建kvm. 1. 需要检查一下 ...

  6. CloudStack搭建KVM环境

    软件环境:agent:CentOS 6.3,minimal安装,CPU启用VT management server:CentOS 6.3,minimal安装 存储:CentOS 6.3 搭建在mana ...

  7. ubuntu18.04上搭建KVM虚拟机环境超完整过程

    看标题这是篇纯运维的文章.在中小型企业中,一般很少配置专业的运维人员,都是由开发人员兼着.同时,对有志于技术管理的开发人员来说,多了解一些运维及整个软件生命周期的知识,是很有帮助的,因为带团队不仅仅是 ...

  8. 基于centos7搭建kvm

    其他的和安装一般的系统没有差别 安装完成后. 1]使用ping www.baidu.com 2]修改静态ip,也可以不修改 3]下载brctlyum -y install bridge-utils 4 ...

  9. 快速搭建 kvm web 管理工具 WebVirtMgr

    作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211117937177/ 相关话题:https://ww ...

随机推荐

  1. linux php 安装libiconv过程与总结

    问题:在嵌入式linux 已经安装好的php的情景下,需要安装一个扩展库libiconv 背景:从后台传的数据含有中文(gbk2312)的通过json_encode 显示为null,查阅资料发现jso ...

  2. Docker 技术系列之安装Docker Desktop for Mac

    终于要进入到Docker技术系列了,感谢大家的持续关注. 为什么要选择Docker?因为Docker 轻巧快速,提供了可行.经济.高效的替代方案.举个例子,安装Nginx,Mysql,Redis等常用 ...

  3. 测试必知必会系列- Linux常用命令 - mv

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 移动当 ...

  4. 简说Python之Jupyter Notebook

    目录 简说Python之Jupyter Notebook 1.Jupyter Notebook 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Py ...

  5. HTML每日学习笔记(1)

    7.15.2019 1.HTML脚本——JavaScript的嵌入使用,使 HTML 页面具有更强的动态和交互性. <script> 标签用于定义客户端脚本,比如 JavaScript. ...

  6. 一文带你熟悉SpringIOC

    Spring的IOC: IOC是Spring的一个核心组件,理解IOC是迈向Spring大门的重要一步 现实生活中,我们写字用的笔会有多种颜色,为了做不同的标记,需要用不同颜色的笔.如果只是使用一两种 ...

  7. iOS开发如何面对疫情过后的面试高峰期 !

    2020年本应该是一个 "爱你.爱你"的年份!却因为 黑天鹅 给我们带来非常大的影响! 一.2020年iOS招聘数据分析 这里是 2020年3月份BOSS直聘 北京iOS招聘前几页 ...

  8. 从零开始学习R语言(四)——数据结构之“数组(Array)”

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141207 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125677 ...

  9. CAS无锁模式

    一.java内存模型:JMM 在内存模型当中定义一个主内存,所有声明的实例变量都存在于主内存当中,主内存的数据会共享给所有线程,每一个线程有一个块工作内存,工作内存当中主内存数据的副本当更新数据时,会 ...

  10. 【开源】使用Angular9和TypeScript开发RPG游戏(补充了Buffer技能)

    RPG系统构造 通过对于斗罗大陆小说的游戏化过程,熟悉Angular的结构以及使用TypeScript的面向对象开发方法. Github项目源代码地址 RPG系统构造 ver0.02 2020/03/ ...