CentOS 6.3部署KVM虚拟机 V1.0

简介:

 20104月发布的RHEL6.0版本中,去掉了XEN,这也许是第一个不包含Xen Hypervisor的知名linux发行版。KVM是指基于Linux内核的虚拟机(Kernel-base Virtual Machine),增加到Linux内核是Linux发展的一个重要里程碑,这也是第一个整合到Linux主线内核的虚拟化技术。在KVM模型中,每一个虚拟机都是一个由Linux调度程序管理的标准进程,你可以在用户空间启动客户机操作系统,一个普通的Linux进程有两种运行模式:内核和用户,KVM增加了第三种模式:客户模式(有自己的内核和用户模式)。

1 KVM 虚拟机的管理工具

准确的来说, KVM 仅仅是 Linux 内核的一个模块,管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。

QEMU-KVM :在 Linux 系统中,首先我们可以用 modprobe 命令加载 KVM 模块,如果用 RPM 安装 KVM 软件包,系统会在启动时自动加载模块, QEMU 是一个强大的虚拟软件,它可以虚拟不同的构架

Virt-manager :尽管 QEMU-KVM 工具可以创建和管理 KVM 虚拟机, RedHat  KVM 开发了更多的辅助工具,比如  libvirt libguestfs 等,原因是 QEMU 工具效率不高,不易于使用。

2 、安装配置 KVM 相关软件

2.1 系统要求:

处理器需求:需要一台可以运行最新 linux 内核的 Intel 处理器(含 VT 虚拟化技术)或 AMD 处理器(含 SVM 安全虚拟机技术的 AMD 处理器,也叫 AMD-V

[root@kvm ~]# cat /etc/redhat-release

CentOS release 6.3 (Final)

2.2 检查 CPU

[root@kvm ~]# egrep 'vmx|svm'   --color=always/proc/cpuinfo

如果输出的结果包含 VMX ,它是 Intel 处理器虚拟机技术标志:如果包含 SVM ,它是 AMD 处理器虚拟机技术的标志,如果你什么都没有得到,那应你的系统并没有支持虚拟化的处理,不能使用 KVM ,另处 linux 发行版本必须在 64bit 环境中才能使用 KVM

3 、安装 centos 6.2  后下载 163 源配置文件

http://mirrors.163.com/.help/CentOS6-Base-163.repo

# cd /etc/yum.repos.d/  # 进入源目录

# cp CentOS-Base.repo CentOS-Base.repo.bak # 备份源文件

用下载的 163 源配置文件替换 CentOS-Base.repo 文件内容

# yum update  系统升级

如果不提示错误, CentOS-Base.repo 文件中

gpgcheck=0

4 、安装 KVM

[root@kvm ~]#yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v

[root@kvm ~]#vi /etc/sysconfig/selinux

SELINUX=disabled

[root@kvm ~]#reboot

5 、重启后确认 libvirtd 是否正常启动、重启。

[root@kvm ~]# /etc/init.d/libvirtd restart

Stopping libvirtd daemon:                               [FAILED]

Starting libvirtd daemon:                                [  OK  ]

6 、检查 KVM 是否加载成功

显示结果如下表示 kvm 模块已经加载,如果没有输出信息,则表示没有加载成功:

[root@kvm yum.repos.d]# lsmod | grep kvm

kvm_intel              52570  6

kvm                   314739  1 kvm_intel

7 、检查 KVM 是否成功安装

[root@kvm ~]# virsh  list   --all  --all 关闭的也会显示)

Id     名称                           状态

----------------------------------------------------

 1     Win7                           running

 2     RedHat                         running

8 、各版本查询

[root@kvm ~]# kvm --version
QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2), Copyright (c) 2003-2008 FabriceBellard

[root@kvm ~]# virt-install  --version
0.600.0
[root@kvm ~]# virsh --version
0.9.10
9 、修改 qemu.conf 配置

[root@kvm ~]#vi /etc/libvirt/qemu.conf

vnc_listen = "0.0.0.0"修改vnc监听端口

 
二、配置网络桥接

http://www.techotopia.com/index.php/Creating_an_RHEL_6_KVM_Networked_Bridge_Interface

已安装 bridge-utils ,添加修改配置文件来的更简单。以下是实际配置文件, eth0 为物理网口, br0 为桥接网口。

1 、安装 tunctl

# yum install -y tunctl

2 、禁用网络管理器:

# chkconfig NetworkManager off    和桥接有冲突,要关闭

# service  NetworkManager stop

3 、修改 eth0 为物理网口, br0 为桥接网口配置文件:

[root@CY-S01 network-scripts]# cat ifcfg-br0

DEVICE="br0"

TYPE="Bridge"

ONBOOT="yes"

BOOTPROTO=static

IPADDR=192.168.50.190

PREFIX=24

GATEWAY=192.168.50.1

DNS1=8.8.8.8

DELAY=0 

 
[root@CY-S01 network-scripts]#cat ifcfg-eth0

DEVICE="eth0"

NM_CONTROLLED="yes"

ONBOOT=yes

TYPE=Ethernet

BRIDGE="br0"

BOOTPROTO=none

IPADDR=192.168.50.190

PREFIX=24

GATEWAY=192.168.50.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03

DNS1=202.106.46.151

HWADDR=00:1E:67:07:EC:30

[root@CY-S01 network-scripts]#

4 、最后重启网络

[root@CY-S01 network-scripts]# service network restart

5 、查看桥接网络

[root@CY-S01 network-scripts]# brctl show

bridge name     bridge id               STP enabled     interfaces

br0             8000.0025901b11a2       no              eth0

                                                        vnet0

virbr0          8000.525400aba808       yes             virbr0-nic

 
三、使用 virt-install  工具安装 guest  系统

[root@kvm /]# virt-install --name=qxm  --ram 1024 --vcpus=2

> --disk path=/var/lib/libvirt/images/qxm.img,size=20  --accelerate

> --cdrom /mnt/cn_windows_7_ultimate_with_sp1_x86_dvd_u_677408.iso

> --graphics vnc,password=123456,port=5920,  --network bridge=br0  --force  --autostart

使用 virt-install  工具,工具自动创建磁盘,默认是 raw 格式。

[root@CY-S01 vms]# qemu-img info centos.img
image: centos.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 1.4G
1
、可以通过 virt-viewer 查看安装状态:
[root@kvm virtual]# virt-viewer name

2 、使用 virt-install  工具安装虚拟机后,在目录 /etc/libvirt/qemu/ 下生成
[root@kvm virtual]# virt-viewer name

2 、使用 virt-install  工具安装虚拟机后,在目录 /etc/libvirt/qemu/ 下生成 xml  配置文件。

[root@kvm ~]# cd /etc/libvirt/qemu
[root@kvm ~]# cat centos.xml
<domain type='kvm'>                                 
虚拟机类型
  <name>centos</name>                             
虚拟机名称
  <uuid>54da30ed-150d-514e-9803-4dc01bd50488</uuid>      uuid
唯一标示
  <memory unit='KiB'>1048576</memory>             
指定虚拟机内存大小,给出了单位
   <vcpu placement='static'>2</vcpu>           
虚拟机占用虚拟 cpu 个数,这里只物理 cpu

的核,给的多。占用的物理资源越充裕

  <os>
    <type arch='x86_64' machine='rhel6.3.0'>hvm</type>         
指定虚拟系统架构
    <boot dev='hd'/>                                                  
启动类型,从硬盘启动
  </os>
   <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>    
驱动程序,同上,使用的是 qemu-kvm
    <disk type='file' device='disk'>                                         
指定磁盘类型
      <driver name='qemu' type='raw' cache='none'/>                    
指定磁盘格式,这里是 raw ,也支持 qcow2.
      <source file='/home/vms/centos.img'/>                              img
文件路径
      <target dev='hda' bus='ide'/>                              
磁盘文件标示,驱动类型
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
       <interface type='bridge'>
      <mac address='52:54:00:11:57:e6'/>                  
自动生成,可以手动指定。
      <source bridge='br0'/>                                  
桥接到哪一个接口
    </domain>
3
、使用 virsh 工具管理生成的虚拟机

A [root@kvm ~]# virsh start centos             启动虚拟机  reboot  start  shutdown

B [root@kvm ~]# virsh list                       列出当前运行的虚拟机
Id    Name                           State
----------------------------------------------------
1     centos                         running
3     centos6332                     running
C
[root@kvm ~]# ll  /var/lib/libvirt/qemu

total 12
srwxr-xr-x 1 root root    0 Aug 22 09:53 centos.monitor

这里的文件,是 libvirtd 在重启后,虚拟机也随着自动重启。

D 动态查询 kvm 资源占用情况,每一台 VM ,对应一个 qemu-kvm 进程

[root@CY-S01 vms]# top -d 1 | grep kvm


4
、截取的 kvm 进程信息

[root@kvm ~]# ps -aux | grep  kvm

附一 :   其他问题

1 、图形化配置:从菜单中启动,或者运行 virt-manager 进入图形管理界面,由于比较简单,在此不详述,不过 img 的位置要好好配置一下, kvm 安装后会有一个默认位置,不注意的话容易占满空间。或者直接硬盘分区时单独给 /var 分一个区。

2 、虚拟机重新配置:

虚拟机的配置文件保存在 /etc/libvirt/qemu 目录下,扩展名是 xml 。修改相应的文件即可重新配置虚拟机。

3 、虚拟机备份及恢复:

备份:拷贝 /etc/libvirt/qemu 目录下的 xml 配置文件,以及 xml 中设置的 img 文件。

恢复:进入 virsh ,执行 define  目录下的 xml 文件路径

virsh # define /etc/libvirt/qemu/winxp.xml

4 、开机自动启动虚拟机:

[root@kvm qemu]# virsh autostart Winxp

5 、克隆 KVM 虚拟机:

[root@kvm ~]# virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img

-o   原始客体的名称, -n 新客户端的名称, -f 作为新客户端磁盘映像的新文件)

6 、虚拟机意外关机报下述错误:

[root@kvm qemu]#  virsh start winxp

错误:开始域  winxp  失败

错误: Unable to read from monitor: Connection reset by peer

解决方法: virsh managedsave-remove winxp

 
附二 :  Virsh 语法参数详解

Autostart                                                   自动开始一个域

Create                                                        从一个  XML  文件创建一个域

Define                                                        从一个  XML  文件定义(但不开始)一个域

edit                                                            编辑某个域的  XML  配置

shutdown                                                  关闭一个域

start                                                          开始一个(以前定义的)非活跃的域

reboot                                                        重新启动一个域

suspend                                                     挂起一个域

resume                                                      重新恢复一个域

vncdisplay                                                 vnc  显示

 
使用 save 来备份当前虚拟机的状态:

[root@kvm images]# virsh  save  --bypass-cache RedHat  /var/lib/libvirt/images/test.img  --running

上面这个命令将 RedHat 的当前状态保存到 /opt/vm2_save 文件中,这个文件我看了一下, 597M.

--running 参数表示下次 restore 回来的时候能够自动启动 RedHat

这个命令会导致 RedHat 被关闭。

 

现在还原:必须先关闭虚拟机

[root@kvm images]# virsh shutdown RedHat

[root@kvm images]# virsh restore /var/lib/libvirt/images/test.img --bypass-cache --running  (还原时不要指定虚拟机名称)



本文转自 freeterman 51CTO博客,原文链接:http://blog.51cto.com/myunix/1118963,如需转载请自行联系原作者
相关文章
|
2天前
|
安全 Linux 开发工具
【Azure 环境】Azure 虚拟机上部署 DeepSeek R1 模型教程(1.5B参数)【失败】
遇见错误一:operator torchvision::nms does not exist 遇见错误二:RuntimeError: Failed to infer device type
71 21
|
5月前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
412 0
|
3月前
|
Oracle 关系型数据库 MySQL
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
|
5月前
|
Unix Linux 开发工具
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
本文详细介绍了如何在官网下载CentOS 8以及在VMware Workstation Pro 16虚拟机上安装CentOS 8的步骤,包括可能出现的问题和解决方案,如vcpu-0错误的处理方法。
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
|
4月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
329 0
虚拟机centos7.9一键部署docker
|
5月前
|
KVM 虚拟化
KVM虚拟机的热迁移
这篇文章详细介绍了KVM虚拟机的热迁移过程,包括临时迁移和永久迁移的步骤,以及可能遇到的故障和解决方案。
198 1
KVM虚拟机的热迁移
|
4月前
|
监控 应用服务中间件 nginx
详细解释容器以及虚拟机centos7.9容器化部署基础服务(容器化部署nginx)
容器是一种轻量级、可移植的软件打包和隔离技术,将应用程序及其依赖项打包,确保在任何环境中一致运行。容器共享主机操作系统内核,相比虚拟机更高效、轻量,具有快速启动和高资源利用率的特点。容器的关键技术包括命名空间(如 PID、NET 等)、控制组(cgroups)和联合文件系统(UnionFS)。使用容器可以提高开发和部署效率,简化管理,确保环境一致性。例如,在 CentOS 7.9 上部署 Nginx 时,可以通过 Docker 下载和运行 `nginx:1.20` 镜像,并通过端口映射使外部请求访问 Nginx 服务。此外,还可以将测试页面复制到容器中,进一步验证容器的功能。
|
5月前
|
KVM 虚拟化
KVM虚拟机的冷迁移
这篇文章详细描述了KVM虚拟机的冷迁移过程,包括无依赖环境迁移、有链接克隆虚拟机迁移、多块磁盘迁移的案例,以及可能遇到的错误和解决方案。
203 3
|
Linux KVM 虚拟化
linux centos 安装 kvm 并创建虚拟机
mstsc 远程 centos 桌面 , 更新时间 , 设置中文utf8 语言
365 0
|
机器学习/深度学习 存储 Linux
【Linux】之Centos7安装KVM虚拟化
KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。
594 0
【Linux】之Centos7安装KVM虚拟化