Cent os 7之KVM虚拟化基础管理

博文大纲:

  • 一、安装kvm虚拟化;
  • 二、手动更改配置文件的方式,克隆web01,生成新的虚拟机web02;
  • 三、将web01加入开机自启,与web02对比有何异同;
  • 四、远程连接虚拟机的两种方法;
  • 五、使用默认的NAT网络类型使web02可以ping通外网。

一、安装kvm虚拟化

[[email protected] media]# yum -y groupinstall "GNOME Desktop"          #安装GNOME桌面环境
[[email protected] media]# yum -y install qemu-kvm               #KVM模块
[[email protected] media]# yum -y install qemu-kvm-tools             #KVM调试工具,可不安装
[[email protected] media]# yum -y install virt-install                     #构建虚拟机的命令行工具
[[email protected] media]# yum -y install qemu-img          #qemu组件,创建磁盘、启动虚拟机等
[[email protected] media]# yum -y install bridge-utils               #网络支持工具
[[email protected] media]# yum -y install libvirt                #虚拟机管理工具
[[email protected] media]# yum -y install virt-manager             #图形界面管理虚拟机
[[email protected] media]# yum -y install libguestfs-tools             #用来管理虚拟机磁盘格式
[[email protected] ~]# ls -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
#将系统默认运行的target更改为graphical.target,若不执行该命令,重启时可能会报错。

2、安装完毕后,需重启系统,执行下面命令对系统进行检查:

[[email protected] ~]# cat /proc/cpuinfo | grep vmx
#查看Intel的CPU是否支持虚拟化,若是AMD的CPU,需 “cat /proc/cpuinfo | grep  smv”
[[email protected] ~]# lsmod | grep kvm                   #检查KVM模块是否安装
kvm_intel             170181  0
kvm                   554609  1 kvm_intel
irqbypass              13503  1 kvm
[[email protected] ~]# systemctl start libvirtd           #启动libvirtd服务
[[email protected] ~]# systemctl enable libvirtd       #设置该服务为开机自启

3、在命令行模式中创建虚拟机(图形化创建虚拟机可参考博文:图形化桌面新建虚拟机

[[email protected] kk]# mkdir -p /kvm/{iso,disk} #创建相应的目录,一边存放镜像及虚拟机磁盘
#创建的/kvm目录最好挂载在LVS卷上,以便可以动态扩展卷空间
[[email protected] iso]# cp /media/CentOS-7.iso /kvm/iso/    #准备要安装的虚拟机操作系统文件
[[email protected] ~]# qemu-img create -f raw  /kvm/disk/web01.raw 10G  #创建虚拟机磁盘
[[email protected] ~]# virt-install --os-type=linxu --os-variant centos7.0 --name web01 --ram 1024 --vcpus 1 --disk /kvm/disk/web01.raw,format=raw,size=10 --location /kvm/iso/CentOS-7.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole        #创建虚拟机web01
开始安装......
搜索文件 .treeinfo......                         |  354 B  00:00
搜索文件 vmlinuz......                           | 5.9 MB  00:00
搜索文件 initrd.img......                        |  50 MB  00:00
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。
#根据上面的提示打开图形化控制台
[[email protected] ~]# virt-manager      #打开控制台

输入打开控制台的命令后,便会弹出以下窗口:

单击“打开”后,会出现以下界面,和我们自己安装系统一样了(自行操作即可):

至此,命令行创建虚拟机就完成了,接下来使用手动更改配置文件的方式,克隆web01,生成新的虚拟机web02(在我博文前面的那个博文链接中有专用于克隆的命令工具的使用方法,这里只是为了来了解虚拟机的配置文件)

二、手动更改配置文件的方式,克隆web01,生成新的虚拟机web02

[[email protected] iso]# virsh list --all     #确保要克隆的虚拟机在关闭状态下
 Id    名称                         状态
----------------------------------------------------
 -     test01                         关闭
 -     test02                         关闭
 -     web01                          关闭      #就是要克隆这台
[[email protected] ~]# cd /kvm/disk/      #切换至虚拟机的虚拟磁盘存放目录
[[email protected] disk]# cp web01.raw web02.raw     #将要克隆的虚拟机磁盘复制一份,并更改名称
[[email protected] disk]# cd /etc/libvirt/qemu/     #切换至KVM虚拟机配置文件的目录
[[email protected] qemu]# ls     #查看当前目录下的文件
networks  test01.xml  test02.xml  web01.xml
[[email protected] qemu]# virsh dumpxml web01 > ./web02.xml
#将web01的配置文件使用dumpxml工具进行备份为当前目录下的web02.xml
[[email protected] qemu]# ls         #确认备份成功
networks  test01.xml  test02.xml  web01.xml  web02.xml
[[email protected] qemu]# vim web02.xml      #编辑备份出的文件

<domain type=‘kvm‘>
  <name>web02</name>     #将这里的名字改为web02
  <uuid>2d6f2a7c-9937-4afb-b8d6-8ef01ca61434</uuid>    #删除UUID这行配置,防止冲突
  <memory unit=‘KiB‘>1048576</memory>
            .............#省略部分内容
  <devices>          #定位到该行标签
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type=‘file‘ device=‘disk‘>
      <driver name=‘qemu‘ type=‘raw‘/>
      <source file=‘/kvm/disk/web02.raw‘/>        #将这里的路径更改为刚才使用cp命令复制的web02.raw文件
#更改完成后,保存退出
[[email protected] qemu]# virsh define web02.xml     #定义此配置文
#(可以理解为载入该虚拟机,此时,需要注意当前的工作路径)
定义域 web02(从 web02.xml)

[[email protected] qemu]# virsh list --all     #查看是否克隆成功
 Id    名称                         状态
----------------------------------------------------
 -     test01                         关闭
 -     test02                         关闭
 -     web01                          关闭
 -     web02                          关闭
#OK!查看到了,可以自行运行web02,测试是否运行正常。
[[email protected] qemu]# virsh start web02     #启动web02
域 web02 已开始

[[email protected] qemu]# virsh list --all     #OK,正在运行!
 Id    名称                         状态
----------------------------------------------------
 3     web02                          running
          .............#省略部分内容

三、将web01加入开机自启,与web02对比有何异同

[[email protected] qemu]# virsh dominfo web01    #此命令可以查看指定虚拟机的信息
Id:             -
名称:       web01
UUID:           2d6f2a7c-9937-4afb-b8d6-8ef01ca61434
OS 类型:    hvm
状态:       关闭
CPU:          1
最大内存: 1048576 KiB
使用的内存: 1048576 KiB
持久:       是
自动启动: 禁用      #默认此处为禁用状态
管理的保存: 否
安全性模式: none
安全性 DOI: 0

[[email protected] qemu]# virsh autostart web01      #设置web01为开机自启
域 web01标记为自动开始
[[email protected] qemu]# virsh dominfo web01    #查看是否设置为开机自启
Id:             -
名称:       web01
UUID:           2d6f2a7c-9937-4afb-b8d6-8ef01ca61434
OS 类型:    hvm
状态:       关闭
CPU:          1
最大内存: 1048576 KiB
使用的内存: 1048576 KiB
持久:       是
自动启动: 启用             #OK!
管理的保存: 否
安全性模式: none
安全性 DOI: 0
[[email protected] qemu]# virsh dominfo web02     #查看web02是否为开机自启
Id:             3
名称:       web02
UUID:           f554ad15-1b67-4f01-b203-a9d0c3abe192
OS 类型:    hvm
状态:       running
CPU:          1
CPU 时间:   21.4s
最大内存: 1048576 KiB
使用的内存: 1048576 KiB
持久:       是
自动启动: 禁用           #是禁用状态
管理的保存: 否
安全性模式: none
安全性 DOI: 0
#此时可以重启宿主机,然后查看虚拟机的状态(需要确保libvirtd服务的状态为开机自启,否则会出现问题)

[[email protected] qemu]# init 6          #重启宿主机
[[email protected] ~]# virsh list           #,待重启完成后,查看正在运行的虚拟机
 Id    名称                         状态
----------------------------------------------------
 1     web01                          running
#此时,只有web01处于运行状态,因为它设置了开机自启,在libvirtd服务开机自启的前提下,
#它会随着宿主机的启动而启动

四、远程连接虚拟机的两种方法

(1)使用VNC软件

VNC的安装比较简单,这里就不多写了。

[[email protected] ~]# virsh vncdisplay web02      <!--查看web02的监听端口-->
:0
    <!--
查看出的结果是“:0”,解释如下:
“:0”表示监听5900端口;
“:1”表示监听5901端口;
以此类推......
                        -->

打开vnc进行连接(注意防火墙相关配置):

为了方便接下来使用console进行连接,此时需要调整虚拟机(web02)的内核参数,如下:

[[email protected] ~]# grubby --update-kernel=ALL --args=”console=ttyS0”    #在虚拟机中执行此命令
[[email protected] ~]# init 6     #重启此虚拟机,以便更改生效

(2)使用console登陆web02

在KVM宿主机上执行以下命令即可登陆成功(前提是在使用vnc登陆时已经更改了web02的内核参数)

[[email protected] ~]# virsh console web02     #执行该命令
连接到域 web02
换码符为 ^]
#敲一下回车键

CentOS Linux 7 (Core)
Kernel 3.10.0-862.el7.x86_64 on an x86_64

web02 login: root     #输入web02的用户名及密码登陆即可。
密码:
Last login: Wed Oct  9 21:20:48 on tty1
[[email protected] ~]# 

五、使用默认的NAT网络类型使web02可以ping通外网

这里就进行ping百度的测试,务必保证KVM宿主机可以ping通百度。
(1)检查相关配置

[[email protected] ~]# virsh net-list --all     <!--检查当前的网络设置-->
 名称               状态     自动开始  持久
----------------------------------------------------------
 default              活动     是           是
[[email protected] ~]# ifconfig         <!--检查当前的网络接口-->
          .............<!--省略部分内容-->
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
                <!--
virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,
也是一个switch和bridge,负责把内容分发到各虚拟机。
virbr0是一个桥接器,接收所有到网络192.168.122.*的内容。
从下面命令可以验证:     -->
[[email protected] ~]# brctl show
bridge name bridge id       STP enabled interfaces
virbr0      8000.525400a8bf19   yes     virbr0-nic
                                                                     vnet0
[[email protected] ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

(2)接下来开始配置nat网络

[[email protected] ~]# virsh net-define /usr/share/libvirt/networks/default.xml
#如果没有上面指定的文件,可以使用该命令定义一个虚拟网络
也可以修改该文件,创建自己的虚拟网络
[[email protected] ~]# virsh net-autostart default     #网络default标记为自动启动
[[email protected] ~]# virsh net-start default       #启动网络,若已启动,此处会报错
[[email protected] ~]# vim /etc/sysctl.conf    #修改此配置文件
               ............#省略部分内容
net.ipv4.ip_forward=1       #在文件末尾加入该行,以便允许IP转发
[[email protected] ~]# vim /etc/libvirt/qemu/web02.xml
                ............#省略部分内容
   <interface type=‘network‘>
      <mac address=‘52:54:00:24:9d:24‘/>
      <source network=‘default‘/>
      <model type=‘virtio‘/>
      <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x03‘ function=‘0x0‘/>
    </interface>
#定位“interface”关键字,确定有上述内容
                              ............#省略部分内容

(3)连接到虚拟机web02,更改网卡的配置:

[[email protected]~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0   #编辑网卡配置文件

更改网卡后,保存退出。

[[email protected]~]# systemctl restart network         #重启web02虚拟机的网络服务

进行ping测试:

若要使用静态IP,配置文件可更改如下(更改完成后自行重启网卡,可以增加DNS配置):

六、KVM虚拟机管理命令汇总

[[email protected] ~]# virsh start 虚拟机名称   #开启虚拟机
[[email protected] ~]# virsh list    #仅查看运行的虚拟机列表
[[email protected] ~]# virsh –list all       #查看所有虚拟机列表
[[email protected] ~]# virsh shutdown 虚拟机名称    #正常的关闭虚拟机
[[email protected] ~]# virsh destroy    虚拟机名称   #强制关闭虚拟机(类似于拔电源)
[[email protected] ~]# virsh dumpxml 虚拟机名称 > /root/test01-dum.xml             #虚拟机备份
[[email protected] ~]# virsh undefine 虚拟机名称  #删除虚拟机(注意:取消定义之后,磁盘文件需要手动删除)
[[email protected] ~]# virsh define 备份的.xml虚拟机文件    #还原虚拟机
[[email protected] ~]# virsh edit 虚拟机名称  #编辑虚拟机的配置文件
[[email protected] ~]# virsh domrename 原名字 要更改的名字
如:([[email protected] ~]# virsh domrename test01 test03)    #更改虚拟机名称
[[email protected] qemu]# virsh dominfo test02           #查看虚拟机的详细信息
[[email protected] ~]# virsh autostart test02              #设置虚拟机为开机自启
[[email protected] ~]# virsh autostart --disable test02    #取消开机自启
[[email protected] ~]# virsh vncdisplay test02           #查看对应的VNC连接端口号;默认第一个端口号为:5900(用“:0”表示)
[[email protected] ~]# virsh suspend test02         #挂起虚拟机
[[email protected] ~]# virsh resume test02               #取消挂起虚拟机
[[email protected] ~]# virsh console test02           #console登陆虚拟机

———————— 本文至此结束,感谢阅读 ————————

原文地址:https://blog.51cto.com/14154700/2440947

时间: 2024-10-10 01:21:51

Cent os 7之KVM虚拟化基础管理的相关文章

kvm虚拟化基础环境

目前流行的openstack.zstack等私有云平台主要的支撑技术就是KVM虚拟化技术,应用相当广泛,从两年前就打算折腾虚拟化技术,结果最终一直没折腾起来,目前的公司有1700多台物理机,虚拟机有5000多台,2018年运维部门的目标就是每个人管理的应用或者机器翻一倍,目前的虚拟机多种方式.手动命令创建的老机器,还有用zstack私有云管理的.但是原理和技术支撑都离不开kvm虚拟化. 基础环境: 1.Windows7+vmware workstation11+ CentOS Linux rel

Kvm虚拟化——基础搭建

1.物理机的系统安装(硬盘为300G+300G): centos6.5 64位,不安装桌面环境,默认运行级别为3 分区: /boot 128M swap 8G / 20G /data1  第一块硬盘剩余空间 /data2  第二块硬盘全部空间 采用最小化安装+以下软件包: BaseSystem -- Base Development-- Development tools 要配置好dns 确定系统时间与北京时间同步 服务器要允许命令重启(自动完成),若需要自检,人手按F1,请去掉机器自检) bi

KVM虚拟化存储池管理

1.安装环境时一不小心,centos安装完成后,发现,/分区分的很小,如下: 看来KVM存储池只能建到/home分区了 [[email protected] ~]# df -hFilesystem                   Size  Used Avail Use% Mounted on/dev/mapper/vg_nova-lv_root   50G   23G   24G  49% /tmpfs                        7.8G  392K  7.8G   1

kvm虚拟化技术应用实战

本文根据上课笔记整理,大家都知道云计算的基础就是虚拟化,而开源的虚拟化基本以kvm技术为主导,因此kvm技术已成为运维工程师必备的技术,也是云时代必不可少的技术 在介绍kvm之前 我们先来了解一下vnc这个软件,后面安装kvm需要vnc来支持 1.vnc的安装及使用 # yum -y install tigervnc-server 首次启动 # vncserver :1 会提示输入两次密码 然后编辑/root/.vnc/xstartup,将最后一行twm替换为gnome-session或者sta

生产环境下戴尔 R820 kvm虚拟化部署三(centos6.6 kvm虚拟化部署)

三.kvm虚拟化部署 #安装kvm软件包 yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v #补充安装kvm虚拟化一些管理工具包 yum -y install libguestfs-tools #查看虚拟机运行情况并开启 [[email protected] network-scripts]# service libvirt

KVM虚拟化环境准备

1. 概述2. 环境准备2.1 硬件环境2.2 软件环境2.2.1 YUM安装软件包2.2.2 环境检查2.2.3 启动libvirtd服务2.3 网络环境2.3.1 复制网卡配置文件2.3.2 修改网卡配置文件2.3.4 重启网络服务2.3.5 查看验证 1. 概述 本系列博客是想在VMware workstation创建的虚拟机console中,开启KVM虚拟化,使用kvm虚拟机快速部署测试环境. 注:有关虚拟化的理论部分,参照博客<>,有关KVM的理论部分,参照博客<> 2.

[原创]KVM虚拟化环境安装

宿主机系统:Centos6.8 下面是安装过程记录: 1.操作系统环境安装 (1)修改内核模式为兼容内核启动 [[email protected] ~]# uname -aLinux openstack 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]#vim /boot/grub/grub.conf ...... defau

kvm虚拟化管理

虚拟化 KVM (kernel-based virtual machine) 常见的一些虚拟化的软件xen kvm vmware esx openVZ Oracle VM VirtualBox vsphere rhel5 xen rhel6 kvm rhel7 kvm 半(准)虚拟化: 客户机器操作系统内核必须是修改过的,才能使用半虚拟化. 硬件虚拟化技术. 典型代表: Xen 全虚拟化: 必须cpu支持硬件虚拟化. 客户机器不需要修改内核,原则上可以安装任何的操作系统. Intel # cat

KVM虚拟化安装配置及克隆管理

一.安装图形界面二.配置KVM虚拟化三.创建桥接网卡四.KVM环境中安装系统五.克隆六.其他命令 实验拓扑:母机Centos Linux 7.4: 192.168.80.100虚拟机Centos Linux 7.4: 192.168.80.111克隆机Cent os Linux 7.4: 192.168.80.112Win10真机: 192.168.80.88 安装环境:service firewalld stopsetenforce 0 一.安装图形界面yum grouplistyum gro