KVM虚拟化

虚拟化

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。虚拟化技术分为全虚拟化和半虚拟化
全虚拟化:虚拟机上的操作系统通过Hypervisor(VMM)管理器来翻译指令,该过程比较耗费资源。
半虚拟化:通过修改操作系统内核,使得操作系统可以直接使用CPU资源,而不需要翻译指令,从而节省资源。准虚拟化(para-virtualization)Xen:改动客户端操作系统,让它以为自己运行在虚拟环境下,能够与Hypervisor 协同工作。

虚拟化架构

type-Ⅰ

Hypervisor直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的Linux系统。Xen和VMWare的ESXi 都属于这个类型。
type-Ⅱ
物理机上首先安装常规的操作系统,比如 RedHat、Ubuntu和Windows。Hypervisor作为OS上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox和 VMWare Workstation 都属于这个类型。

KVM简介

KVM(Kernel-Based Virtual Machines)是一个基于Linux内核的虚拟化技术, 可以直接将Linux内核转换为Hypervisor(系统管理程序)从而使得Linux内核能够直接管理虚拟机, 直接调用Linux内核中的内存管理、进程管理子系统来管理虚拟机KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术),是基于硬件的完全虚拟化。

KVM架构

在这里插入图片描述

一、安装kvm

(一)调整虚拟机

虚拟机内存,至少设置成2G,cpu2核,虚拟化引擎勾选前两个,镜像选择1511
在这里插入图片描述

添加一块50G的磁盘
在这里插入图片描述
虚拟网络编辑器勾选使用本地dhcp分配
在这里插入图片描述

(二)查看参数并更改主机名

free -h
grep -Ei 'vmx|svm' /proc/cpuinfo   //检查CPU是否开启虚拟化支持
                                   //vmx为英特尔的cpu;svm为AMD的cpu。
                                   //如果显示为空,就要检查你虚拟机设置。
hostnamectl set-hostname kvm

在这里插入图片描述

(三)格式化并挂载新磁盘

lsblk                    //查看虚拟机是否新增一块50 GB的磁盘
mkfs.ext4 /dev/sdb       //格式化磁盘
blkid /dev/sdb           //查看磁盘信息
mkdir /kvm_data            //创建挂载目录/kvm_data
mount /dev/sdb/ /kvm_data    //挂载磁盘

将磁盘添加到自动挂载/etc/fstab文件中:

/dev/sdb     /kvm_data           ext4      defaults    0   0
[root@kvm ~]# vi /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Tue Feb  2 22:22:18 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=d7f8cd9b-eff5-4f50-a8dc-5195db4bfe21 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb     /kvm_data           ext4      defaults    0   0

(四)关闭防火墙和selinux

systemctl stop firewalld && systemctl disable firewalld 

关闭SELinux,编辑/etc/selinux/config,将enforcing修改为disabled

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

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

(五)重启虚拟机后安装kvm

reboot
yum install -y  virt-*  libvirt  bridge-utils qemu-img

(六)配置网卡

cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]# cp ifcfg-eno16777728 ifcfg-br0
[root@kvm network-scripts]# vi ifcfg-br0 
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.200.66
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=114.114.114.114
DNS2=8.8.8.8
[root@kvm network-scripts]# vi ifcfg-eno16777728 
TYPE=Ethernet
BOOTPROTO=static
NAME=eno16777728
DEVICE=eno16777728
ONBOOT=yes
BRIDGE=br0
systemctl restart network

查看网卡信息

[root@kvm network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether 00:0c:29:cd:bf:9a brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 00:0c:29:cd:bf:9a brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.66/24 brd 192.168.200.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::f8e8:17ff:fe24:efe8/64 scope link 
       valid_lft forever preferred_lft forever

(七)启动kvm相关服务

systemctl start libvirtd

检查是否成功启动

[root@kvm network-scripts]#  ps -ef |grep libvirt
root      22041      1  0 00:21 ?        00:00:00 /usr/sbin/libvirtd
nobody    22149      1  0 00:21 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root      22150  22149  0 00:21 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root      22175   1491  0 00:22 pts/0    00:00:00 grep --color=auto libvirt
[root@kvm ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.000c29cdbf9a       no              eno16777728
virbr0          8000.000000000000       yes

二、安装centos虚拟机

(一)将CentOS7-1511镜像上传到/tmp目录下

[root@kvm ~]# ll /tmp/
total 4228100
-rw-r--r--  1 root root 4329570304 Nov  2 16:19 CentOS-7-x86_64-DVD-1511.iso

(二)安装centos7

yum -y update openssl
virt-install --name=test             //--name:指定虚拟机的名称
--memory=512,maxmemory=1024          // --memory:指定分配给虚拟机的内存资源大小。maxmemory:指定可调节的最大内存资源大小,因为KVM支持热调整虚拟机的资源。
--vcpus=1,maxvcpus=2                 //--vcpus:指定分配给虚拟机的CPU核心数量。 maxvcpus:指定可调节的最大CPU核心数量。
--os-type=linux                      //--os-type:指定虚拟机安装的操作系统类型。
--os-variant=rhel7                   //-os-variant:指定系统的发行版本。
--location=/tmp/CentOS-7-x86_64-DVD-1511.iso     //--location:指定ISO镜像文件所在的路径,支持URL
--disk path=/kvm_data/test.img,size=10       //--disk path:指定虚拟硬盘所存放的路径及名称,size则是指定该硬盘的可用大小,单位是G
--bridge=br0                              //--bridge:指定使用哪一个桥接网卡 
--graphics=none                           //--graphics:指定是否开启图形 
--console=pty,target_type=serial              //--console:定义终端的属性,target_type 则是定义终端的类型
--extra-args="console=tty0 console=ttyS0"     //--extra-args:定义终端额外的参数

进入安装界面

anaconda 21.48.22.56-1 for CentOS 7 started.
 * installation log files are stored in /tmp during the installation
 * shell is available on TTY2
 * when reporting a bug add logs from /tmp as separate text/plain attachments
16:34:00 Not asking for VNC because we don't have a network
==============================================================================================================================================================Installation

 1) [x] Language settings                 2) [!] Timezone settings
        (English (United States))                (Timezone is not set.)
 3) [!] Installation source               4) [!] Software selection
        (Processing...)                          (Processing...)
 5) [!] Installation Destination          6) [x] Kdump
        (No disks selected)                      (Kdump is enabled)
 7) [ ] Network configuration             8) [!] Root password
        (Not connected)                          (Password is not set.)
 9) [!] User creation
        (No user will be created)
  Please make your choice from above ['q' to quit | 'b' to begin installation |
  'r' to refresh]: 1     //输入1,回车
  ================================================================================
================================================================================
Language settings

Available languages
 1)  Afrikaans             25)  Hindi                 48)  Oriya
 2)  Amharic               26)  Croatian              49)  Punjabi
 3)  Arabic                27)  Hungarian             50)  Polish
 4)  Assamese              28)  Interlingua           51)  Portuguese
 5)  Asturian              29)  Indonesian            52)  Romanian
 6)  Belarusian            30)  Icelandic             53)  Russian
 7)  Bulgarian             31)  Italian               54
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值