KVM构建及管理

# cat /etc/exports

/content/  172.25.254.0/24(ro)  本地文件是为classroom提供共享服务的

# vim /etc/ssh/sshd_config 

AllowUsers [email protected]/24  仅允许ip172.40.50.0/24 进行访问

# systemctl restart sshd

实验前准备:新建一台虚拟机 名称叫 rhel7.2

    磁盘 10G足够     网络类型选择 "private1" (独立网络)

    语言 选择 "中文"    安装软件包  选择 "带GUI的服务器"

   Kdump程序 "关闭"(把勾去掉)    分区选择 "自动分区"

   root 密码 "123456"     创建普通用户 "lisi" 密码 "123456"

###############################################################################

真机与虚拟机的通信

在虚拟机上操作:

  将虚拟机网络类型选择为 private1

  配置虚拟机网络IP地址:192.168.4.100/24

在真机上操作:

   ifconfig private1

   ping   192.168.4.100

在虚拟机上操作:

# vim /etc/sysconfig/selinux 

 SELINUX=permissive

# firewall-cmd --set-default-zone=trusted 

###############################################################################

KVM构建及管理

搭建KVM服务器

KVM,Kernel Virtualization Machine

虚拟化概述(Virtualization资源管理)

x个物理资源---->y个逻辑资源

实现程度:完全、部分、硬件辅助(CPU)

判断真机是否支持硬件辅助虚拟化(CPU是否支持虚拟指令集):cat /proc/cpuinfo | grep vmx

虚拟化的出现淘汰了双系统

虚拟化主要厂商及产品

系列

PC/服务器版代表

VMware

VMware Workstation、vSphere

Microsoft

VirtualPC、Hyper-V

Redhat

KVM、RHEV

Citrix

Xen

Oracle

Oracle VM VirtualBox

 

yum软件组管理

Ø 快速配置RHEL7光盘源:为虚拟机连接RHEL7光盘镜像,并挂载到固定位置

                     添加到file://mnt/dvd的本地YUM源配置

准备一台 RHEL7.2 服务器,将其搭建为KVM平台

真机(本地)搭建yum仓库

服务端:虚拟机example

1、通过图形将光盘ISO镜像放入光驱设备

2、挂载ISO光盘镜像文件

#mkdir  /mnt/rhel7                      //创建挂载点

# mount /dev/cdrom  /mnt/rhel7

2、确认/mnt/rhel7访问点 # ls  /mnt/rhel7/Packages/*.rpm        //确认软件包位置

3、修改配置文件/etc/fstab

# vim  /etc/fstab                      //添加开机挂载配置

/ISO/rhel-server-7.2-x86_64-dvd.iso /mnt/dvd iso9660 defaults 0 0

4、验证:# mount  -a              //根据fstab配置挂载光盘

客户端:虚拟机example

1、删除其它的客户端文件# rm -rf /etc/yum.repos.d/*   //保证实验不受其他文件的影响

2、将本地目录/mnt/dvd配置为本机的yum源

# vim  /etc/yum.repos.d/mnt_dvd.repo

[mnt_dvd]

    name=added from: file:///mnt/dvd

    baseurl=file:///mnt/dvd

    enabled=1

    gpgcheck=0                                     //禁止GPG检查签名认证

(或  利用命令生成客户端文件# yum-config-manager --add file:///mnt/dvd //添加源

      修改自动生成的配置文件,在最后添加  gpgcheck=0           

# yum clean all    #清空缓存

# yum  repolist    #列出仓库信息

###############################################################################

虚拟机搭建yum仓库

1、挂载ISO光盘镜像文件

#mkdir  /mnt/dvd                      //创建挂载点

# mount /ISO/rhel-server-7.2-x86_64-dvd.iso  /mnt/dvd

2、确认/mnt/dvd访问点 # ls  /mnt/dvd/Packages/*.rpm        //确认软件包位置

3、修改配置文件/etc/fstab

# vim  /etc/fstab                      //添加开机挂载配置

/dev/cdrom  /mnt/rhel7  defaults|ro 0 0

5、验证:# mount  -a              //根据fstab配置挂载光盘

客户端:虚拟机

1、删除其它的客户端文件

# rm -rf /etc/yum.repos.d/*      //保证实验不受其他文件的影响

2、将本地目录/mnt/rhel7配置为本机的yum源

# vim  /etc/yum.repos.d/mnt_rhel7.repo

[mnt_rhel7]

    name=added from: file:///mnt/rhel7

    baseurl=file:///mnt/rhel7

    enabled=1

    gpgcheck=0                                        //禁止GPG检查签名认证

(或  利用命令生成客户端文件# yum-config-manager --add file:///mnt/dvd //添加源

      修改自动生成的配置文件,在最后添加  gpgcheck=0           

# yum clean all    #清空缓存

# yum  repolist    #列出仓库信息

###############################################################################

 

安装部署虚拟化平台

Ø 使用RHEL7软件仓库的预设分组

yum groups list [hidden] [组名]……      #hidden,列出所有的包组

        yum  groups info [组名]……

        yum groups install [组名]……

    yum groups remove [组名]……

安装虚拟化服务器平台

Ø 主要软件组: 虚拟化平台----”Virtualization Platform”

虚拟化主机----”Virtualization Host”

虚拟化客户端---- ”Virtualization Client”

其他两个组会由于依赖关系自动被关联。

yum -y groups install 虚拟化主机 虚拟化平台 虚拟化客户端

Ø 启动libvirtd服务端:为管理虚拟机提供服务接口(虚拟化服务)

调用dnsmasq提供DNS,DHCP等功能

建立virbr0虚拟网络

###############################################################################

安装部署虚拟化平台 确认RHEL7中的虚拟化软件组

1)安装兼容组信息# yum  groups  mark  convert

2)查看全部软件组,过滤出与虚拟化相关的软件组

# yum  groups  list  hidden| grep  -i  virt

安装KVM虚拟化主要软件组

# yum -y groups install Virtualization\ Client Virtualization\ Platform Virtualization\ Hypervisor Virtualization\ Tools (使用TAB键)

3)确保libvirtd服务可用

    [root@kvmsvr ~]# systemctl  restart  libvirtd  //启动虚拟化服务

    [root@kvmsvr ~]# systemctl  enable  libvirtd

###############################################################################

管理KVM平台

连接本地/远程KVM

使用virt-manager客户端工具打开虚拟系统管理器:

应用程序-->系统工具-->虚拟系统管理器

管理虚拟网络:添加新的虚拟网络private1,编辑-->连接详情-->虚拟网络

虚拟机的基本控制:虚拟机的运行/关机/克隆/删除/打开操作

  配置虚拟机硬件

存放图形程序的图标目录:  /usr/share/applications/     

    右击"虚拟系统管理工具"  ------->"复制到"--------->桌面(/root/桌面)

确保 "虚拟化服务" 的开启:libvirtd

###################################################  

在真机上:  建立新的虚拟机网络

   虚拟系统管理器---->编辑---->连接详情---->虚拟网络---->点击加号

了解内容,虚拟网络配置文件:    ls /etc/libvirt/qemu/networks/*.xml

###############################################################################

virsh控制工具

操作虚拟机

Virsh命令工具:提供管理各虚拟机的命令接口

支持交互模式,查看/创建/停止/关闭……

格式:virsh 控制指令 [虚拟机名称] [参数]

查看虚拟化信息

Ø 列出正在运行的虚拟机:virsh  list

Ø 列出所有虚拟机(包括未启动的):virsh list --all 

Ø 列出虚拟网络:virsh net-list [--all]

Ø 查看kvm节点(服务器)信息:virsh nodeinfo 

Ø 查看指定虚拟机的信息:virsh  dominfo  虚拟机名称 

查看虚拟机的运行状态:# virsh dominfo 虚拟机名称 | grep running

开关机操作

Ø 运行|重启|关闭指定的虚拟机:virsh start|reboot|shutdown 虚拟机名称

Ø 强制关闭指定的虚拟机:virsh destroy 虚拟机名称 (shutdown无效时适用)

Ø 将指定的虚拟机设为开机自动运行:virsh autostart 虚拟机名称

Ø 将指定的虚拟机设为禁止开机自动运行:virsh autostart --disable 虚拟机名称

其他KVM管理命令:

virsh  dumpxml

       define、undefine、edit、net-edit

virt-viewer   虚拟机名

virt-clone  -o  旧虚拟机名  -n  新虚拟机名  -f  新磁盘的路径

virt-install  --name  虚拟机名  --vcpus  CPU核心数  --ram  内存大小 

 --disk  path=磁盘路径,format=磁盘类型  --network  network=虚拟网络名  --pxe

###############################################################################

虚拟机组成:xml文件(机架),qcow2磁盘文件(硬盘)

Ø xml配置文件(又称虚拟机描述文件):定义虚拟机的名称、UUID、CPU、内存、虚拟磁盘、网卡等各种参数设置   默认存放位置:/etc/libvirt/qemu/虚拟机名.xml

Ø 磁盘镜像文件:保存虚拟机的操作系统及文档数据,镜像路径取决于xml配置文件中的定义

默认存放位置/var/lib/libvirt/images/虚拟机名.img

请思考:

1. 如何查看一个KVM虚拟机使用的虚拟磁盘是哪个?

virsh  dumpxml  虚拟机名 | grep '<source file='

2. 如何查看一个虚拟磁盘是哪个虚拟机在使用?

grep  '虚拟磁盘的路径'  /etc/libvirt/qemu/*.xml

xml配置文件:虚拟机的描述文件

Ø 定义一个虚拟机的名词、UUID、CPU、内存、虚拟磁盘、网卡等各种参数设置

Ø 默认放在/etc/libvirt/qemu/虚拟机名.xml

Ø xml配置文件记录的关键信息 ——

name:虚拟机名称

uuid:虚拟机的唯一编号【uuidgen】

disk:虚拟机的磁盘文件路径

mac:虚拟机的网卡的MAC地址

导出xml配置文件

Ø 查看xml文件:virsh dumpxml 虚拟机名    #输出虚拟机的描述信息

Ø 备份xml文件:virsh dumpxml 虚拟机名 > 虚拟机名.xml

编辑虚拟机设置:修改虚拟机配置的基本思路

Ø 编辑:virsh edit 虚拟机名    #三合一命令,导出、修改、导入

Ø 若修改name,uuid,disk,mac可自动保存为新虚拟机配置

导入虚拟机:

Ø 根据修改后的独立xml文件定义新虚拟机:virsh  define xml描述文件 

删除虚拟机:必要时可去除多余的xml配置,比如虚拟机改名的情况,避免出现多个虚拟机的磁盘或MAC地址冲突:

    virsh undefine 虚拟机名称    #删除虚拟机,不会删除磁盘文件

###############################################################################

 

 

虚拟机快建技术基本思路

1)准备一台模板虚拟机(镜像磁盘+xml配置文件)

2)基于磁盘复用技术快建新虚拟机的磁盘

3)调整模板机的配置快建虚拟机的xml配置文件

4)导入新虚拟机

###############################################################################

在KVM服务器上通过使用xml文件创建虚拟机过程

注意:模板虚拟机删除 Channel设备,会影响快速重建虚拟机操作(有唯一标示的作用)

     操作:虚拟机关机;通过图形进行删除channel设备

1、创建新的虚拟磁盘文件

# cd /var/lib/libvirt/images/

# cp example.qcow2 test01.qcow2

2、创建新的虚拟机描述文件

# cd /etc/libvirt/qemu/

# cp example.xml test01.xml

3、修改虚拟机描述文件

1)生成新UUID,并复制备用 # uuidgen

2)修改导出的xml配置文件,调整name、uuid、disk路径、mac地址值:

# vim test01.xml    或 # virsh  edit  rhel-207

      <name>rhel-7</name>                                          //新名称

      <uuid>90908905-bde4-4c4a-90b0-8a8f5bba1e25</uuid>          //新UUID值

          <source file='/var/lib/libvirt/images/rhel-7.qcow2'/>   //新磁盘路径

            <mac address='52:54:00:91:50:07'/>                 //新MAC地址

3)确认已自动导入的新配置# virsh  list  --all                  //确认结果

4、导入新虚拟机信息 # virsh define /etc/libvirt/qemu/test01.xml

###############################################################################

猜你喜欢

转载自blog.csdn.net/jsut_rick/article/details/78207660