详解CentOS7.2部署KVM虚拟机(图文)

前段时间学习了关于PostGis、OSM数据以及Mapnik相关内容,接下来将利用假期重点学习PostgreSQL-XL和瓦片服务器集群技术,因此先把环境搭好。计划采用KVM来充分利用家里不太宽裕的“服务器”资源,以便实现弹性计算:)

CentOS版本:64位 7.2  1511

一、安装KVM

1. 验证CPU是否支持KVM;如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。

egrep '(vmx|svm)' /proc/cpuinfo

2. 关闭SELinux,将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled

3. 最小安装的CentOS安装一些最基本的包(可选项,因为我是刚安装好的CentOS,所以为了下面方便点,先把一些必要的工具安装下)

yum install epel-release net-tools vim unzip zip wget ftp -y

4. 安装KVM及其依赖项

yum install qemu-kvm libvirt virt-install bridge-utils -y

5. 验证安装结果,下图说明已经成功安装了

lsmod | grep kvm

6. 开启kvm服务,并且设置其开机自动启动

systemctl start libvirtd

systemctl enable libvirtd

7. 查看状态操作结果,如下图所示,说明运行情况良好

systemctl status libvirtd

systemctl is-enabled libvirtd

8. 配置网桥模式,先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件备份一份(不要备在当前目录以及子目录下,其他目录随意)

a. 创建 ifcfg-br0 文件,内容如下:

BOOTPROTO=static
DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
IPADDR=192.168.1.95
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=61.177.7.1
DNS2=8.8.8.8

b. 移除掉原来的 ifcfg-enp0s25 ,重新创建该文件,内容如下:

BOOTPROTO=none
DEVICE=enp0s25
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br0

c. 重启网络服务

systemctl restart network

使用 ifconfig 验证操作结果,多了一块网卡br0,现在访问 think8848-srv02 使用 192.168.1.95 就可以了。

二、安装虚拟机

1. 准备操作系统安装镜像文件,在本文中将使用和宿主环境一样的CentOS7.2,把该文件放到 /home/iso 目录下

2. 创建虚拟机文件存放的目录

mkdir -p /home/kvm-bak

3. 使用 virt-install 创建虚拟机

代码如下:

virt-install -n think8848-kvmbase -r 2048 --disk /home/kvm-bak/think8848-kvmbase.img,format=qcow2,size=20 --network bridge=br0 --os-type=linux --os-variant=rhel7.2 --cdrom /home/iso/CentOS-7-x86_64-DVD-1511.iso --vnc --vncport=5910 --vnclisten=0.0.0.0

操作结果显示:

不要理会里面提示的错误,接着往下走

4. 打开防火墙上的5910端口

firewall-cmd --zone=public --add-port=5910/tcp --permanent

firewall-cmd --reload

5. 使用VNC连接该虚拟机,进行虚拟机操作系统的安装,直接到VNC官网上下载最新版的VNC Viewer即可

a. VNC Viewer

b. 新建连接,提供宿主IP、端口号(在virt-install创建过程中指定的),以及名称

c. 在Expert页签中,将ColorLevel的值由原来的 pal8 修改为 rgb222 ,点击OK按钮保存

d. 如果你像我一样,边操作边还在做笔记,等你双击连接的名称后,安装界面都准备好了

接下来就安装CentOS吧,过程略。

6. 安装完CentOS,系统要求重启,这时候虚拟机没有重启(也不知是因为什么问题),VNC也连不上,先在宿主机上查看虚拟机状态,显示think8848-kvmbase为关闭状态

virsh list --all

7. 手动启动虚拟机

virsh start think8848-kvmbase

再次使用VNC连接,发现已经可以连进去了

三、简单配置KVM虚拟机

1. 网桥配置,这里值得一提的是,如果你在虚拟机中安装CentOS过程中,配置了合适的网格参数,那么这时虚拟机里应该就可以使用网络了。如果当时就采用系统安装包的默认参数,未启用网卡,那么此时你需要启动虚拟机的网卡,先看下虚拟机网卡的配置文件列表,貌似和普通电脑安装没啥区别,网卡的配置文件是 ifcfg-eth0

再查看 ifcfg-eth0配置文件,和普通电脑安装的也没啥区别,按照要求呢,貌似在一些文章中介绍,说需要添加一行配置 NM_CONTROLLED=no ,我没添加也没发现有什么问题。

2. 配置在宿主端登录虚拟机shell。当然在宿主端也是可以通过SSH登录,但是直接登录貌似也是一个不错的方式。这个配置主要有两个步骤:

a. 编辑 /etc/default/grub 文件,对照如下:

编辑前:

编辑后:

文本内容:

GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb"
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200"
GRUB_DISABLE_RECOVERY="true"

b. 运行下面一行的代码

grub2-mkconfig -o /boot/grub2/grub.cfg

c. 重启虚拟机 reboot

d. 在宿主机上进入虚拟机控制台,想退出时使用 Ctrl 键+ ]  (左方括号)键退出。

virsh console think8848-kvmbase

四、迁移虚拟机

虚拟机建好后,最大的好处就是任由我们折腾,而不用担心重装系统的麻烦。所以一定要知道虚拟机怎么复制迁移,这里有两种情况,一种是本机上镜像复制,另一种是将本机镜像迁移到其他服务器上。

1. 本机复制

a. 先关闭虚拟机

virsh shutdown think8848-kvmbase

b. 在 /home 下新建文件夹 /home/kvm-img

mkdir -p /home/kvm-img

c. 使用 virt-clone 克隆think8848-kvmbase为新的虚拟机

代码如下:

virt-clone -o think8848-kvmbase -n think8848-kvm01 -f /home/kvm-img/think8848-kvm01.img

克隆完成

使用 virsh list --all 查看

d. 开启think8848-kvm01,然后修改IP地址、主机名

virsh start think8848-kvm01

virsh console think8848-kvm01

#等虚拟机启动好后,用root登录

hostname think8848-kvm01

#编辑/etc/hostname文件,修改主机名为think8848-kvm01
vi /etc/hostname

#编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改IPADDR

e.  reboot 重启虚拟机,重启后刚才修改的内容已经生效了。

2. 将虚拟机镜像迁移到其他服务器上

a. 先将虚拟机的配置文件和镜像文件放到合适的位置(我搭了一台FTP服务器,方便测试时所有的文件传输,如下图所示)

b. 现在到服务器转战到think8848-srv01(IP:192.168.1.96),刚才虚拟机是在think8848-srv02(IP:192.168.1.95)上创建的。以下所有操作均是在think8848-srv01上进行的

c. 将ftp上的think8848-kvm01.img放到/home/kvm-img目录,将think8848-kvm01.xml放到/etc/libvirt/qemu目录中

d. 编辑think8848-kvm02.xml,将里面所有think8848-kvm01替换为think8848-kvm02,然后把UUID换为新的(直接使用这个在线工具生成吧)

e. 定义新虚拟机

virsh define /etc/libvirt/qemu/think8848-kvm02.xml

图中think8848-kvm01是我之前在宿主机中配置的虚拟机,恰好名称与之前的重复了。我在think8848-kvm01上没有安装ftp客户端,在新迁移的虚拟机里面安装了ftp,可以利用这个包验证虚拟机是否正确

OK,说明没有问题

f. 现在是时候再给新的虚拟机指定新主机名和IP了。刚才是我们重启生效的,这次我们不要重启了,先使用 systemctl restart network 使新IP生效,然后再 exit 注销用户使主机名生效,就可以了。

最后一个问题,如果在克隆或迁移后想使用VNC连接,那就需要重新指定VNC的端口号,将 /etc/libvirt/qemu/think8848-kvm02.xml 中的VNC端口号修改你需要的值即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解虚拟机中CentOS 7 网络和ssh的配置

    一.centos7 的网络配置: 1.修改主机名: echo "hostname tshare365.localdomain" >>/etc/sysconfig/network 然后: reboot 即可生效! 2.查看MAC地址: ip addr 3.修改网络配置: (1)找到需要的网络配置参数: 打开虚拟机网络设置,具体步骤如下: 出现如下界面: 从上面的步骤我们得到了如下信息: IP地址:192.168.222.128到192.168.222.254之间的一个,例如1

  • Centos虚拟机上网配置IP方法

    本文主要是介绍了CentOS虚拟机需要上网快速配置IP,如果是虚拟机直接上网很简单,如果是和主机互联需要桥链接,具体如下: 如果仅仅是虚拟机需要上网,则很简单 1.进入Centos系统,查看网络配置. 输入命令:ifconfig -a 2.进入ifcfg-eth0文件. 输入命令:vim /etc/sysconfig/network-scripts/ifcfg-eth0 注:非root账户需加sudo,否则无权限编辑,或者直接su切换到root用户下. 3.配置动态IP. 通过修改ifcfg-e

  • CentOS 7 虚拟机无法开机问题的快速解决方法

    若虚拟机在不正常关机的时候会遇到如下图所示的问题:先点击"取消"按钮 解决方法: 打开"资源管理器",进入到弹出提示窗口所在的路径(即H:\VMware\Virtual Machines Documents\CentOS),在这里找到CentOS.vmx.lck文件夹,然后将后缀名.lck的文件夹删除(删除后,再次开机时会重新创建此文件):若避免删错可将此文件移动到备份文件夹中,或直接重命名此文件夹,完成后重启虚拟机即可 在这里我将文件夹CentOS.vmx.lck

  • Linux系列教程之虚拟机中安装Centos7.0

    本次教程的前提条件是您得安装好VM软件和Xshell.对应软件的下载请自行百度!如果exe都不会安装,请关闭本页面! 第一步.下载镜像 阿里云开源镜像站:http://mirrors.aliyun.com/ 选择centos进入 如下图: 再选择isos(镜像目录) 继续下一步,只有一个目录,进入即可 进去以后如图: 对于初学者来说,这么多的镜像着实不好分辨. 其中,Centos-7-x86_64 表示这个是镜像叫centos,版本号为7,支持64位(附上百科链接:http://dwz.cn/3

  • Centos 7系统虚拟机桥接模式详解

    前言 本文主要给大家介绍了关于Centos 7系统虚拟机桥接模式的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 主机ping不通虚拟机centos7系统的ip大多有以下原因: 1.主机与centos7ip段对应 (关键是网关.dns服务器要一一对应,具体操作见后文) 2.对应后仍然不通的,可关闭主机与cenos7防火墙,centos7默认防火墙为firewall,这与centos6有不同 相关命令: systemctl stop firewalld.service

  • Centos7下搭建KVM虚拟机的方法

    PRE-INSTALL ============================================================= kvm相关安装包及其作用 qemu-kvm 主要的KVM程序包 python-virtinst 创建虚拟机所需要的命令行工具和程序库 virt-manager GUI虚拟机管理工具 virt-top 虚拟机统计命令 virt-viewer GUI连接程序,连接到已配置好的虚拟机 libvirt C语言工具包,提供libvirt服务 libvirt-c

  • 详解CentOS7.2部署KVM虚拟机(图文)

    前段时间学习了关于PostGis.OSM数据以及Mapnik相关内容,接下来将利用假期重点学习PostgreSQL-XL和瓦片服务器集群技术,因此先把环境搭好.计划采用KVM来充分利用家里不太宽裕的"服务器"资源,以便实现弹性计算:) CentOS版本:64位 7.2  1511 一.安装KVM 1. 验证CPU是否支持KVM:如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的. egrep '(vmx|svm)' /proc/cpuinfo 2. 关闭SEL

  • 详解VMware12安装centOS8的配置图文教程(vm虚拟机安装centos8教程)

    前几天Centos8发布了,尽管他是8的第一个版本,那么今天我们就在VM12上面安装centOS8吧,8这个图形化界面我个人感觉有点丑 首先下载iso文件百度下点击进入官网 点击马上获得centos 然后选择这个 选择离你近的镜像地址,点击下载 打开vm12点击新建虚拟机 点击下一步,如下图这样选择,再点击下一步 如下图选择点击下一步 叫什么名字没什么所谓反正可以改的,但是安装最好不要安装到c盘,我是安装到D盘 如果你的物理cpu是4核心,在这里建议使用4核心,这样后期虚拟机运行快.因为我是8核

  • 详解centos7上elastic search安装及填坑记

    本文介绍了centos7上elastic search安装及填坑记,分享给大家,具体如下: 下载elastic search 5.3.0 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz mv elasticsearch-5.3.0.tar.gz /opt cd /opt tar -xzvf elasticsearch-5.3.0.tar.gz cd elasticsearch

  • 详解tomcat热部署和热加载的方法

    详解tomcat热部署和热加载的方法 我在项目开发过程中,经常要改动Java/JSP 文件,但是又不想从新启动服务器(服务器从新启动花时间),想直接获得(debug)结果.有两种方式热部署 和热加载: 1.热加载:在server.xml -> context 属性中 设置 reloadable="true" <Context docBase="xxx" path="/xxx" reloadable="true"/&

  • 详解Centos7.2编译安装zabbix3.2(详细步骤)

    Zabbix简介 zabbix简介zabbix是完全开源的工具,整合了cacti和nagios等特性,SNMP(udp 161  udp 162)众多网络工具都支持此协议,比如常见路由交换,常见OS可以做管理端,也可以做被管理端,snmp大致的三个版本分为v1 v2 v3,无论是v1和v2他们的安全性还是比较差的,因为传输的是明文的,v3的认证密码用 MD5/SHA摘要算法加密. 很多工具都支持网络管理的功能,而对非网络设备(操作系统)可以完全抛开snmp这种不安全的架构来实现监控的,所以很多工

  • 详解Centos7扩展磁盘空间(LVM管理)

    本文介绍了Centos7扩展磁盘空间(LVM管理),分享给大家,具体如下: 查看磁盘情况 # fdisk -l /dev/sda Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512

  • 详解jenkins自动化部署vue

    一.nodejs配置 首先加入nodejs插件 –>–> 在配置里面配置这个插件 –> 这样我们就能在自动构建发布的配置里看到nodejs的编译选项了 二.发布配置 首先新建一个自由风格的项目 然后配置构建保留天数和参数化构建 这里选择在svn上的资源,配置好访问的用户信息 这样我们在构建的时候能看到项目的不同版本 接下来选择构建的数据源位置 echo $PATH node -v npm -v npm install chromedriver --chromedriver_cdnurl=

  • 详解centos7 yum安装redis及常用命令

    redis是什么 Redis是一种基于内存的数据结构存储,可持久化的日志型.Key-Value数据库.使用关系型数据库的站点达到一定并发量的时候,往往在磁盘IO上会有瓶颈,这时候配合redis就有一定的优势,因为它具有以下几个特性: 基于内存运行,高并发读写: 支持分布式,理论上可以无限扩展: 丰富的数据类型: 持久化,可定时写入磁盘: 应用场景 缓存"热点"数据(高频读.低频写) 计数器,限流器 消息队列系统(发布订阅,排行榜) 分布式锁,共享session,队列 数据类型: Red

  • 详解centos7虚拟机安装elasticsearch5.0.x-安装篇

    centos7虚拟机安装elasticsearch5.0.x-安装篇 请预先安装jdk详细步骤请参考:http://www.jb51.net/softjc/193398.html 创建新用户(非root用户) elasticsearch只能用非root启动,这里我创建了一个叫seven的用户 [root@localhost ~]# useradd seven [root@localhost ~]# passwd seven 下载elasticsearch [root@localhost ~]#

随机推荐