日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编译安装KVM虚拟化技术

發布時間:2024/1/1 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译安装KVM虚拟化技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一、虛擬化技術
  • 二、虛擬化的歷史
    • 2.1 Xen和KVM的區別
  • 三、虛擬化的類型
  • 四、虛擬化的優劣勢
    • 4.1 優勢
    • 4.2 劣勢
  • 五、KVM簡介
  • 六、KVM架構及原理
  • 七、KVM原理
  • 八、安裝虛擬機
  • 九、KVM虛擬化平臺部署

一、虛擬化技術

虛擬化是一個廣義的術語,在計算機方面通常是指計算元件在虛擬的基礎上而不是真實的基礎上運行。虛擬化技術可以擴大硬件的容量,簡化軟件的重新配置過程。CPU的虛擬化技術可以單CPU模擬多CPU 并行,允許一個平臺同時運行多個操作系統,并且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。

二、虛擬化的歷史

● 1961年,IBM709機器實現了分時系統,將CPU占用切分為多個極短的時間片(1/100sec)每一個時間片執行不同的工作,通過對這些時間片進行輪詢從而將一個CPU偽裝成多個CPU
● 1972年, IBM正式將 system 370機的分時系統命名為虛擬機
● 1990年, IBM推出的 system390 機支持邏輯分區(將一個CPU分為多份,相互獨立,也就是邏輯分割)
● Xen 2003年問世,是一個外部的hypervisor程序(虛擬機管理程序),能夠控制虛擬機和給多個客戶機分配資源
● KVM:2007年問世,現已內置在kernel內核中的

2.1 Xen和KVM的區別

● Xen:同時支持虛擬化與半虛擬化,需要在Linux系統內核之上再運行一個由Xen提供的微內核,由微內核控制虛擬化計算和內存資源的分配與使用 。因為誕生時間很早,那時硬件和系統內核層面根本沒有支持虛擬化的,所以Xen被設計為不依賴也不使用硬件的虛擬化支持,通過對操作系統進行顯式地修改(“移植”)以使其可以在Xen上作為虛機運行。支持的虛擬化技術:全虛擬化,半虛擬化
● KVM:是Linux完全原生的全虛擬化解決方案,就是在Linux內核中添加的一個虛擬機模塊,直接使用Linux內核中已經完善的進程調度、內存管理與硬件設備交互等部分,使Linux成為一個可以支持運行虛擬機的Hypervisor。因此,KVM并不是一個完善的模擬器,而只是一個提供虛擬化功能的內核插件,它的具體的模擬器工作是借助工具(QEMU)來完成。支持的虛擬化技術:全虛擬化

三、虛擬化的類型

  • 全虛擬化:將物理硬件資源全部通過軟件的方式抽象化,最后進行調用
    ● 使用的方法:使用 hypervisor(VMM)軟件,其原理是在底層硬件和服務器之間建立一個抽象層,而基于核心的虛擬機是面向Linux系統的開源產品hypervisor(VMM)可以捕捉CPU的指令,為指令訪問硬件控制器和外設充當中介。
  • 半虛擬化:需要修改操作系統
  • 直通:直接使用物理硬件資源(需要支持,還不完善)
  • 四、虛擬化的優劣勢

    4.1 優勢

  • 集中化管理(遠程管理、維護)
  • 提高硬件利用率(物理資源利用率低-例如峰值,虛擬化解決了“空閑”容量)
  • 動態調整機器/資源配置(虛擬化把系統的應用程序和服務硬件分離、提高了靈活性)
  • 高可靠(可部署額外的功能和方案,可提高透明負載均衡、遷移、恢復復制等應用環境)
  • 4.2 劣勢

  • 前期高額費用(初期的硬件支持)
  • 降低硬件利用率(特定場景-例如極度吃資源的應用不一定適合虛擬化)
  • 更大的錯誤影響面(本地物理機down機會導致虛擬機均不可用,同時可能虛擬機中文件全部損壞)
  • 實施配置復雜、管理復雜(管理人員運維、排障困難)
  • 一定的限制性(虛擬化技術涉及各種限制,必須與支持/兼容虛擬化的服務器、應用程序及供應商結合使用)
  • 安全性(虛擬化技術自身的安全隱患)
  • 五、KVM簡介

    ● KVM:Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模塊,自Linux 2.6.20之后集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,所以相對于Xen,其核心源碼很少。
    ● KVM 是基于虛擬化擴展的 X86 硬件的開源Linux原生的全虛擬化方案(要求cpu支持Intel-VT-x或AMD-V)
    ● KVM 內嵌于內核模塊中,模擬處理器和內存以支持虛擬機運行
    ● 虛擬機被實現為常規的 Linux 進程,由標準 Linux 調度程序進行調度,虛擬機的每個虛擬 CPU 被實現為一個常規的 Linux 進程。這使得 KVM 能夠使用 Linux 內核的已有功能,但 KVM 本身不執行任何模擬。需要客戶空間程序(虛擬機)通過/dev/kvm(此虛擬設備需要開起硬件輔助虛擬化才能看到)接口設置一個客戶機虛擬服務器的地址空間,并且由Qemu模擬I/O(ioctl)進行調度資源和維護管理

    六、KVM架構及原理

    KVM 虛擬化架構分為三種模式

  • 客戶模式(guestOS):
    VM中的OS為GuestOS客戶機在操作系統中運行的模式,客戶機分為內核模式和用戶模式。
  • 用戶模式:
    為用戶提供虛擬機管理的用戶空間工具以及代表用戶執行I/O,Qemu 工作在此模式下(Qemu 的主要功能)
  • linux內核模式:
    模擬CPU、內存,實現客戶模式切換,處理從客戶模式的推出,KVM 即運行在此模式下
  • 七、KVM原理

  • Guest:客戶機系統,包括CPU(vCPU)、內存、驅動(Console、網卡、I/O 設備驅動等),被 KVM 置于一種受限制的 CPU 模式下運行。
  • KVM 內核模塊模擬處理器和內存以支持虛擬機運行
  • Qemu 主要處理 I/O 以及為客戶提供一個用戶空間 /dev/kvm 工具 libvirt 來進行虛擬機管理
    ● libvirt:KVM 管理工具,除了可以管理 KVM 這類 VMM,還可以管理 Xen,VirtualBox,甚至OpenStack 底層
    ● libvirt 包含3個組件:后臺 daemon 程序libvirtd、API庫、命令行工具 virsh
  • 八、安裝虛擬機









    九、KVM虛擬化平臺部署

    ● 修改主機名

    [root@localhost ~]# hostnamectl set-hostname kvm [root@localhost ~]# su [root@kvm ~]#

    ● 將鏡像光盤設為自動/永久掛載

    [root@kvm ~]# vim /etc/fstab /dev/cdrom /mnt iso9660 defaults 0 0 [root@kvm ~]# mount -a mount: /dev/sr0 寫保護,將以只讀方式掛載 [root@kvm ~]# df -Th 文件系統 類型 容量 已用 可用 已用% 掛載點 ...省略部分 /dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt

    ● 環境優化
    設置DNS反向解析

    #是否反解DNS,設置為NO可以讓客戶端連接服務器更快 [root@kvm ~]# vim /etc/ssh/sshd_config 115 UseDNS no#取消DNS注釋,改為NO

    ● 制作本地YUM倉庫

    [root@kvm ~]# cd /etc/yum.repos.d/ [root@kvm yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo [root@kvm yum.repos.d]# mkdir backup [root@kvm yum.repos.d]# ls backup CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-CR.repo CentOS-Media.repo [root@kvm yum.repos.d]# mv C* backup/ [root@kvm yum.repos.d]# ls backup [root@kvm yum.repos.d]# vim local.repo[local] name=centos baseurl=file:///mnt gpgcheck=0 enable=1 [root@kvm yum.repos.d]# yum clean all#清空yum倉庫 [root@kvm yum.repos.d]# yum makecache #加載yum數據

    ● 關閉防火墻、核心防護

    [root@kvm ~]# systemctl stop firewalld [root@kvm ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@kvm ~]# setenforce 0

    ● 安裝KVM基本組件

    #安裝 GNOME 桌面環境,如果裝了圖形界面可以不需要裝 yum groupinstall -y "GNOME Desktop" #KVM 模塊 yum -y install qemu-kvm #安裝KVM 調試工具,可不安裝 yum -y install qemu-kvm-tools #構建虛擬機的命令行工具 yum -y install virt-install #qemu 組件,創建磁盤、啟動虛擬機等 yum -y install qemu-img #網絡支持工具 yum -y install bridge-utils #虛擬機管理工具 yum -y install libvirt #圖形界面管理虛擬機 yum -y install virt-manager [root@kvm ~]# yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager

    ● 檢測CPU是否支持虛擬化
    AMD處理器查看svm
    Intel處理器查看vmx

    [root@kvm ~]# cat /proc/cpuinfo | grep svm

    ● 查看CPU是否支持虛擬化

    ● 查看KVM模塊是否已安裝

    [root@kvm ~]# lsmod | grep kvm#lsmod:顯示已載入的系統模塊


    ● 設置開啟啟動界面的顯示模式

    [root@kvm ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

    ● 設置KVM網絡
    KVM網絡的兩種模式:

  • NAT: 默認設置,數據包由 NAT 方式通過主機的接口進行
    傳送,可以訪問外網,但是無法從外部訪問虛擬機網絡
  • 網橋:這種模式允許虛擬機像一臺獨立的主機一樣擁有網絡,外部的機器可以直接訪問到虛擬機內部,但需要網卡支持(一般有線網卡都支持)
  • ● 使用Bridge網橋模式進行部署
    修改ens-33網卡

    [root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none #IPADDR=192.168.112.111 #NETMASK=255.255.255.0 #GATEWAY=192.168.112.2 #DNS=192.168.112.2 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=2c8a16a0-7b41-4a34-b480-046a227efb9d DEVICE=ens33 ONBOOT=yes BRIDGE=br0#刪除原先地址,設置為網橋模式,關聯br0網卡


    ● 創建、編輯橋接網卡

    [root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0 TYPE=Bridge BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=br0 DEVICE=br0 ONBOOT=yes IPADDR=192.168.112.111 NETMASK=255.255.255.0 GATEWAY=192.168.112.2


    ● KVM部署與管理
    創建KVM存儲和鏡像數據的目錄、上傳centos7鏡像

    [root@kvm network-scripts]# mkdir -p /data_kvm/iso [root@kvm network-scripts]# mkdir -p /data_kvm/store#虛擬機存儲的目錄 [root@kvm ~]# cd /data_kvm/iso/[root@kvm iso]# ls CentOS-7-x86_64-DVD-1708.iso

    ● 使用虛擬系統管理器管理虛擬機

    [root@kvm iso]# virt-manager

  • 創建存儲池




    iso用于放置鏡像文件
    store用于安裝新系統
  • 創建存儲卷

  • 創建虛擬機








  • 總結

    以上是生活随笔為你收集整理的编译安装KVM虚拟化技术的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。