KVM虚拟化配置管理

KVM虚拟化的特性

嵌入到linux正式kernel,提供兼容性

代理级资源调用,提供性能

虚拟机就是一个进程,内存易于管理

可以实现服务器虚拟化  桌面虚拟化 应用虚拟化

下面开始安装和配置管理KVM

查看系统版本、内核版本

[[email protected] ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[[email protected] ~]# uname -r

3.10.0-327.el7.x86_64

查看系统是否支持KVM虚拟化

开启cpu虚拟化才可以查看上面支持虚拟化的标志

kvm安装

[[email protected] ~]# yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install -y

qemu-kvm是用户态的一个程序

创建一台虚拟机--磁盘

[[email protected] ~]# qemu-img create -f raw /opt/CentOS-7.2-x86_64.raw 10G

Formatting ‘/opt/CentOS-7.2-x86_64.raw‘, fmt=raw size=10737418240

[[email protected] ~]# lsmod |grep kvm

kvm_intel             162153  0

kvm                   525259  1 kvm_intel

添加到开机启动

[[email protected] ~]# systemctl enable libvirtd.service

启动

[[email protected] ~]# systemctl start libvirtd.service

[[email protected] ~]# systemctl status libvirtd.service

a— libvirtd.service - Virtualization daemon

Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)

Active: active (running)

安装一台虚拟机

创建虚拟机的镜像--iso

[[email protected] ~]# dd if=/dev/cdrom of=/opt/CentOS-7.2.iso

8456192+0 records in

8456192+0 records out

4329570304 bytes (4.3 GB) copied, 222.565 s, 19.5 MB/s

开始安装

[[email protected] ~]# virt-install --help

[[email protected] ~]# virt-install --name CentOS-7.2-x86_64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.2.iso --disk path=/opt/CentOS-7.2-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

[[email protected] ~]# ps -aux |grep kvm

root       802  0.0  0.0      0     0 ?        S<   07:16   0:00 [kvm-irqfd-clean]

qemu      3349 17.4 80.2 1490228 702752 ?      Sl   07:46   5:53 /usr/libexec/qemu-kvm

[[email protected] ~]# netstat -lnptu

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      3349/qemu-kvm

创建虚拟机后,使用vnc链接 开始安装KVM虚拟机

192.168.1.111:5900

然后启动kvm

[[email protected] ~]# virsh start CentOS-7.2-x86_64

Domain CentOS-7.2-x86_64 started

[[email protected] ~]# virsh list

Id    Name                           State

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

2     CentOS-7.2-x86_64              running

KVM使用

[[email protected] ~]# cd /etc/libvirt/qemu/

[[email protected] qemu]# ls

CentOS-7.2-x86_64.xml  networks

CentOS-7.2-x86_64.xml #虚拟机的配置文件

[[email protected] ~]# virsh list

Id    Name                           State

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

[[email protected] ~]# virsh list --all   #查看所有的虚拟机

Id    Name                           State

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

-     CentOS-7.2-x86_64              shut off

[[email protected] ~]# ifconfig virbr0   安装kvm后会产生一个virbr0的网卡

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

ether 00:00:00:00:00:00  txqueuelen 0  (Ethernet)

RX packets 0  bytes 0 (0.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 1  bytes 42 (42.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[[email protected] ~]# iptables -t nat -nvL    这里可以看到这个虚拟机安装完后是可以通信的,通过nat上网

Chain POSTROUTING (policy ACCEPT 5 packets, 268 bytes)

pkts bytes target     prot opt in     out     source               destination

0     0 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24

0     0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255

0     0 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535

0     0 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535

0     0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24

生产是将kvm的网卡改成物理机的桥接网卡上网,跟物理机同一个网段

vnc连接进去后把他的网卡设置为开机启动,然后重启网卡,此时ping百度也是通的

ONBOOT=yes   #这样子kvm网卡就可以开机启动dhcp获取到一个ip地址

[[email protected] ~]# ps -aux |grep dns   #kvm是通过dnsmasq分配的一个ip地址

nobody    2820  0.0  0.0  15544   344 ?        S    07:16   0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper

root      2822  0.0  0.0  15516     4 ?        S    07:16   0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper

root      7913  0.3  0.1 112648   952 pts/0    S+   09:57   0:00 grep --color=auto dns

打开dnsmasq的配置文件,可以看到他分配的ip地址

[[email protected] ~]# cat /var/lib/libvirt/dnsmasq/default.conf

## dnsmasq conf file created by libvirt

strict-order

pid-file=/var/run/libvirt/network/default.pid

except-interface=lo

bind-dynamic

interface=virbr0

dhcp-range=192.168.122.2,192.168.122.254

dhcp-no-override

dhcp-lease-max=253

dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile

addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts

管理KVM的网卡

#网卡,手动设置为桥接(生产用最多)

brctl命令需要bridge-utils安装这个包

[[email protected] ~]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.1.111  netmask 255.255.255.0  broadcast 192.168.1.255

inet6 fe80::20c:29ff:fe8a:4320  prefixlen 64  scopeid 0x20<link>

ether 00:0c:29:8a:43:20  txqueuelen 1000  (Ethernet)

RX packets 72557  bytes 13501818 (12.8 MiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 83261  bytes 28375563 (27.0 MiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

ether fe:54:00:5d:62:67  txqueuelen 0  (Ethernet)

RX packets 2263  bytes 124594 (121.6 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 3480  bytes 9022739 (8.6 MiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[[email protected] ~]# brctl addbr br0  #添加一个网桥

[[email protected] ~]# brctl show  #查看添加的网卡

bridge name     bridge id               STP enabled     interfaces

br0             8000.000000000000       no

virbr0          8000.fe54005d6267       yes             vnet0

[[email protected] ~]# brctl addif br0 eth0  #把br0加入到eth0,这样子我连接的物理本机的网络就断了如果单独执行这个操作的话

[[email protected] ~]# brctl addif br0 eth0 && ip addr del dev eth0 192.168.1.111/24 && ifconfig br0 192.168.1.111/24 up && route add default gw 192.168.1.1 && iptables -F

##注释

ip addr del dev eth0 192.168.1.111/24  #删除eth0的ip

ifconfig br0 192.168.1.111/24 up   #这样子就可以连接br0这个网卡的ip了,下面需要添加路由才可以连接

route default gw 192.168.1.1 添加路由才可以连接

设置为桥接后变成

[[email protected] ~]# ifconfig

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.1.111  netmask 255.255.255.0  broadcast 192.168.1.255

inet6 fe80::20c:29ff:fe8a:4320  prefixlen 64  scopeid 0x20<link>

ether 00:0c:29:8a:43:20  txqueuelen 0  (Ethernet)

RX packets 50  bytes 3203 (3.1 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 75  bytes 5699 (5.5 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet6 fe80::20c:29ff:fe8a:4320  prefixlen 64  scopeid 0x20<link>

ether 00:0c:29:8a:43:20  txqueuelen 1000  (Ethernet)

RX packets 73572  bytes 13571497 (12.9 MiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 85141  bytes 28514610 (27.1 MiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

ether fe:54:00:5d:62:67  txqueuelen 0  (Ethernet)

RX packets 2263  bytes 124594 (121.6 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 3480  bytes 9022739 (8.6 MiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

kvm常用操作

virsh edit CentOS-7.2-x86_64     #编辑虚拟机配置文件

virsh start CentOS-7.2-x86_64    #启动

virsh shutdown CentOS-7.2-x86_64 #关机

virsh destroy CentOS-7.2-x86_64  #直接关闭电源

virsh suspend CentOS-7.2-x86_64  #挂起虚拟机

virsh resume CentOS-7.2-x86_64   #恢复

virsh list  #查看

virsh undefine CentOS-7.2-x86_64 #永久删除虚拟机

时间: 2024-10-01 05:25:19

KVM虚拟化配置管理的相关文章

kvm虚拟化技术应用实战

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

KVM虚拟化笔记(七)------kvm虚拟机时间配置

由于在虚拟化环境中,虚拟机在长时间的运行过程中,时间会变慢,通常的做法是配置ntpdate定时与时间服务器进行时间同步的计划任务.Kvm虚拟机默认采用的是UTC时间,需要进行专门的修改,还有考虑时间同步的问题,具体步骤如下: 1,kvm虚拟机修改时间配置文件 kvm虚拟机采用utc时间,需要先修改配置文件使用kvm虚拟机的时间与虚拟主机同步. [[email protected] qemu]# virsh edit hadoop3 最后重启下虚拟机 2. 关于kvm虚拟机时间问题解决思路 (1)

KVM虚拟化搭建及其KVM中LVM扩容

KVM虚拟化搭建及其KVM中LVM扩容 前言: 公司项目方最近有两台物理服务器系统分别为CentOS 7.2.需要部署KVM虚拟化,第一台服务器A需要虚拟出三台虚拟机(均为CentOS 7.2系统),服务器B上需要虚拟出三台CentOS 7.2 系统和两台windows server2012 系统.其中六台CentOS 7.2 虚拟机需要部署我们自己的平台,两台windows分别部署客户的平台.下面来为大家说一下KVM虚拟化的搭建,以及创建虚拟机的两种办法,及其操作使用.     KVM小课补:

RH124-15 使用KVM虚拟化

第十五章使用KVM虚拟化 15.1 管理本地的虚拟化主机 什么叫虚拟化? redhat的虚拟化常品: KVM RHEV OpenStack 使用kvm虚拟化需要的条件: rhel6以上的64位系统 cpu必须支持硬件虚拟化  vmx,xvm #grep -E 'vmx|xvm' /proc/cpuinfo bios打开cpu虚拟化的支持 需要的软件包 核心包 qemu-kvmqemu-img 工具包virt-manager libvirt libvirt-python libvirt-clien

KVM虚拟化笔记(一)------kvm虚拟化环境安装

在安装虚拟化环境的时候,首先查看下该服务器的硬件配置和环境,具体操作如下: (一)检查硬件的相关情况: 1,查看cpu型号,物理cpu颗数, [[email protected] ~]#  cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq -c       2  Intel(R) Core(TM) i3-4150 CPU @ 3.50GHz [[email protected] ~]# cat /proc/cpuinfo | grep phys

kvm虚拟化存储池配置

定义存储池目录 [[email protected] kvmimg]# virsh pool-define-as vmdisk --type dir --target /data/kvmimg/ Pool vmdisk defined 2.创建已定义的存储池 [[email protected] kvmimg]# virsh pool-build vmdisk Pool vmdisk built 3.查看已定义的存储池,存储池不激活无法使用 [[email protected] kvmimg]#

KVM虚拟化+PKE无人值守安装

安装KVM虚拟化条件: 首先CPU要支持虚拟化(Intel是vmx,AMD是svm) [[email protected] ~]# egrep '(vmx|svm)' --color /proc/cpuinfo 确保BIOS里开启VT Intel(R) Virtualization Tech [Enabled] 安装虚拟化套件 [[email protected] ~]# LANG=en_US-utf8 [[email protected] ~]# yum -y groupinstall "Vi

在LINUX系统中安装KVM虚拟化

首先CPU要支持虚拟化(Intel是vmx,AMD是svm)[[email protected] ~]# egrep '(vmx|svm)' --color /proc/cpuinfo确保BIOS里开启VT,如果无法安装会有未开启虚似化的提示,去BISO里开启Intel(R) Virtualization Tech [Enabled] 安装虚拟化套件,由于安装包较多,应该先配置好YUM库,然后用YUM安装虚似化的四个组,完装完无法打开有可能是你少装包了,检查一下是不是有错字.[[email pr

KVM虚拟化笔记(十二)------kvm虚拟机磁盘文件的读取

kvm挂载磁盘的方法和工具很多,具体如下: (1)raw格式的磁盘可以直接挂载,也可以将qcow2格式的磁盘转换成raw格式的并挂载.eg:转换的命令为: [[email protected] ~]# qemu-img convert -f raw -O qcow2 yz3_add.qcow2 yz3_add.img 具体的可以参考上节内容. (2)通过编译安装qemu-nbd工具挂载qcow2格式的磁盘. qemu-nbd工具默认没有安装,需要编译进行安装. (3)通过创建kvm环境创建kvm