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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

KVM虚拟化

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

KVM虛擬化

虛擬化技術

  • 虛擬化技術就是對資源的抽象,如虛擬機,虛擬內存等

  • 虛擬化(Virtualization)技術最早出現在 20 世紀 60 年代的 IBM 大型機系統,在70年代的 System370 系列中逐漸流行起來,這些機器通過一種叫**虛擬機監控器(Virtual Machine Monitor,VMM)**的程序在物理硬件之上生成許多可以運行獨立操作系統軟件的虛擬機(Virtual Machine)實例

  • VMM虛擬機監控器也叫做Hypervisor,就是為了虛擬化而引入的一個軟件層。它向下掌控實際的物理資源,向上呈現出N份邏輯資源。

  • 虛擬機監控器運行的實際物理環境,稱為宿主機;其上虛擬出來的邏輯主機,稱為客戶機。

  • 分類

    • 從資源提供角度分

      • 平臺虛擬化:把CPU,內存,外設等作為資源提供給虛擬機使用。在同一個X86平臺上面,可以虛擬多個X86平臺,每個平臺可以運行自己完全獨立的操作系統。如QEMU,KVM,VMware等所管理的虛擬機
      • 操作系統虛擬化:如果把操作系統及其提供的系統調用作為資源,那虛擬化就表現為操作系統虛擬化,例如Linux容器虛擬化技術就是在同一個Linux操作系統之上,虛擬出多個同樣的操作系統,每個應用程序認為自己運行在一個獨立的OS。如LXC或Docker等所管理的容器
    • 從虛擬化實現方式分

      • Type I:虛擬機直接運行在系統硬件上,被稱為裸機型,沒有所謂的宿主機操作系統。他們直接控制硬件資源以及客戶機。這種方案的性能處于主機虛擬化與操作系統虛擬化之間。如xen和vmware ESX
      • Type II:虛擬機運行在傳統操作系統上,同樣創建的是硬件全仿真實例,被稱為**托管(宿主)**型。Hypervisor構建出一整套虛擬硬件平臺,使用者根據需要安裝新的操作系統和應用軟件,底層和上層的操作系統可以完全無關化。簡單的說這類VMM通常就是宿主機操作系統上的一個應用程序,像其他應用程序一樣受宿主機操作系統的管理,通常抽象為進程。如VMware workstation、KVM。主機虛擬化中VM的應用程序調用硬件資源時需要經過:VM內核->Hypervisor->主機內核,相對來說,性能是幾種虛擬化技術中最差的
  • Hypervisor管理工具的對比

工具廠商主CPU目標CPU主系統目標系統
qemuFebrice,BellardInter,AMD,ARMx86/x86-64/ARMWindows,Linux,Mac OSLinux
kvmRed HatInter/AMDx86/x86-64LinuxWindows/Linux
Xen劍橋大學,Inter/AMDInter/AMDx86/x86-64Windows/Linux/SolarisWindows/Linux
Hyper-V微軟Inter/AMDx86/x86-64WindowsWindows/Linux
VMware ESXi ServerVMwareInter/AMDx86/x86-64裸機安裝Windows/Linux
Oracle VMOracleInter/AMDx86/x86-64裸機安裝Windows/Linux

KVM架構

KVM內核模塊

  • 它屬于標準Linux內核的一部分,是一個專門提供虛擬化功能的模塊,主要負責CPU和內存的虛擬化
  • 本質上,KVM是管理虛擬硬件設備的驅動,該驅動使用字符設備**/dev/kvm**(由KVM本身創建)作為管理接口,主要負責vCPU的創建,虛擬內存的分配,vCPU寄存器的讀寫以及vCPU的運行

QEMU

  • QEMU是用戶態工具,可以為客戶機提供設備模擬的功能,包括模擬BIOS、數據總線、磁盤、網卡、顯卡、聲卡、鍵盤、鼠標等。

  • 我們知道KVM只負責CPU和內存的虛擬化,加載了它以后,用戶就可以進一步通過工具創建虛擬機(KVM提供接口),但僅有KVM還是不夠的,用戶無法直接控制內核去做事情(KVM只提供接口,怎么創建虛擬機,分配vCPU等并不在它上面進行),還必須有個運行在用戶空間的工具才行,KVM的開發者選擇了比較成熟的開源虛擬化軟件QEMU來作為這個工具,并對其進行了修改,最后形成了QEMU-KVM。

  • 在QEMU-KVM中,KVM運行在內核空間QEMU運行在用戶空間,實際模擬創建,管理各種虛擬硬件,QEMU將KVM整合了進來,通過/ioctl 調用 /dev/kvm,從而將CPU指令的部分交給內核模塊來做,KVM實現了CPU和內存的虛擬化,但kvm不能虛擬其他硬件設備,因此qemu還有模擬IO設備(磁盤,網卡,顯卡等)的作用,KVM加上QEMU后就是完整意義上的服務器虛擬化。但是,由于qemu模擬io設備效率不高的原因,現在常常采用半虛擬化的virtio方式來虛擬IO設備。

  • KVM負責提供對cpu,內存的虛擬

  • QEMU負責除CPU和內存外的其他設備的虛擬以及對各種虛擬設備的創建與調用

libvirt

  • libvirt是一套免費、開源的支持Linux下主流虛擬化管理程序的C函數庫,其旨在為包括KVM在內的各種虛擬化管理程序提供一套方便、可靠的編程接口。 當前主流Linux平臺上默認的虛擬化管理工具virt-manager,virsh等都是基于libvirt開發。
  • libvirt是一個針對各種虛擬化平臺的虛擬機管理的API庫。一些常用的虛擬機管理工具如virsh(類似vim編輯器),virt-install,virt-manager等和云計算框架平臺(如OpenStack,OpenNebula,Eucalyptus等)都在底層使用libvirt提供的應用程序接口。
  • libvirt主要由三個部分組成:API庫,一個守護進程 libvirtd 和一個默認命令行管理工具 virsh。

總結

  • QEMU是一個獨立的虛擬化解決方案,并不依賴KVM(它本身自己可以做CPU和內存的模擬,只不過效率較低)。而KVM是另一套虛擬化解決方案,對CPU進行虛擬效率較高(采用了硬件輔助虛擬化),但本身不提供其他設備的虛擬化,借用了QEMU的代碼進行了定制,所以KVM方案一定要依賴QEMU。即使后來RedHat后來開發了libvirt,也只能簡單的認為libvirt是個虛擬機管理工具,仍然需要通過用戶空間QEMU來與KVM進行交互。

KVM虛擬機部署

環境準備

  • Linux主機需要安裝圖形化桌面

最小化——>圖形

  • yum groupinstall -y “GNOME 桌面”

  • 重啟

  • startx臨時開啟終端(不推薦)

  • systemctl set-default graphical.targer

    [root@server1 ~]# systemctl get-default
    graphical.target

  • 注意合理分配CPU,內存,磁盤空間等

  • 確保開啟硬件輔助虛擬化

[root@server5 ~]# lscpu|grep '虛擬化' 虛擬化: VT-x 虛擬化類型: 完全
  • 查看CPU支持的功能(vmx:INTEL的虛擬化功能|svm:AMD的虛擬化功能)
[root@server5 ~]# grep -E 'svm|vmx' /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat pku ospke md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities

安裝kvm

清理干凈KVM相關的預裝環境 [root@server5 ~]# yum remove `rpm -qa |egrep 'qemu|virt|kvm'` [root@server5 ~]# rm -rf /var/lib/libvirt/ [root@server5 ~]# rm -rf /etc/libvirt/查看分組 [root@server5 ~]# yum grouplist安裝kvm分組(可譯為虛擬化的包都會被安裝) [root@server5 ~]# yum install *qemu* *virt* librbd1-devel -y開啟libvirt [root@server5 ~]# systemctl start libvirtd [root@server5 ~]# systemctl enable libvirtd [root@server5 ~]# systemctl status libvirtd [root@server5 ~]# virsh list --allId 名稱 狀態 ----------------------------------------------------確保kvm模塊已被加載 [root@server5 ~]# lsmod |grep kvm kvm_intel 188740 0 kvm 637515 1 kvm_intel irqbypass 13503 1 kvm設置防火墻規則 [root@server5 ~]# systemctl start firewalld.service [root@server5 ~]# systemctl enable firewalld.service [root@server5 ~]# firewall-cmd --zone=public --add-masquerade --permanent success [root@server5 ~]# firewall-cmd --zone=public --add-masquerade success [root@server5 ~]# firewall-cmd --zone=public --list-all public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: dhcpv6-client sshports: protocols: masquerade: yesforward-ports: source-ports: icmp-blocks: rich rules:

Guest OS安裝

圖形化安裝

  • 調出虛擬系統管理器
[root@server5 ~]# virt-manager

  • 上傳系統鏡像
[root@server5 ~]# rz[root@server5 ~]# ls anaconda-ks.cfg 公共 視頻 文檔 音樂 CentOS-7-x86_64-Minimal-2009.iso 模板 圖片 下載 桌面
  • 使用鏡像安裝

  • 自定義配置(配置完成后點擊:左上角開始安裝)

  • 安裝過程中可以參考CentOS7的安裝

命令行安裝

  • 幫助信息
[root@server5 ~]# virt-install --help # 僅保留常用選型 usage: virt-install --name NAME --memory MB STORAGE INSTALL [options] 選項:-h, --help show this help message and exit-n NAME, --name NAME 客戶機實例名稱--memory MEMORY Configure guest memory allocation. Ex:--memory 1024 (in MiB)--memory 512,maxmemory=1024--vcpus VCPUS Number of vcpus to configure for your guest. Ex:--vcpus 5--vcpus 5,maxvcpus=10,cpuset=1-4,6,8--cdrom CDROM 光驅安裝介質--disk DISK 指定存儲的各種選項。例如:--disk size=10 (在默認位置創建 10GiB 鏡像)--disk /my/existing/disk,cache=none--disk device=cdrom,bus=scsi--disk=?-w NETWORK, --network NETWORK配置客戶機網絡接口。例如:--network bridge=mybr0--network network=my_libvirt_virtual_net--network --graphics GRAPHICS 配置客戶機顯示設置。例如:--graphics vnc--graphics spice,port=5901,tlsport=5902--graphics none--graphics vnc,password=foobar,port=5910,keymap=ja--arch ARCH 模擬 CPU 架構--autostart 主機啟動時自動啟動域。--noautoconsole 不要自動嘗試連接到客戶端控制臺
  • 安裝示例
[root@server5 ~]# virt-install \--name=centos7.6-1 \--vcpus=1 \--ram=1024 \--arch=x86_64 \--os-type=linux \--os-variant=rhel7 \--graphics vnc,listen=0.0.0.0,port=5901,keymap=en-us \--disk path=/var/lib/libvirt/images/centos7.6-1.img,size=3,format=qcow2 \--cdrom=/home/CentOS-7-x86_64-Minimal-2009.iso \--network bridge=virbr0 選型(為空表示可追加)可更換為
–graphics vnc,listen=0.0.0.0,
port=5901,keymap=en-us
–nographics
–noautoconsole
–network bridge=virbr0–bridge=virbr0
–ram=1024–memory 512,maxmemory=1024
–vcpus=1–vcpus 1,maxvcpus=4
–autostart

基本使用

  • 查看客戶機
查看正在運行的虛擬機 [root@server5 ~]# virsh list Id 名稱 狀態 ----------------------------------------------------查看所有虛擬機 [root@server5 ~]# virsh list --all Id 名稱 狀態 ----------------------------------------------------- centos7.6-1 關閉查看域信息 [root@server5 ~]# virsh dominfo centos7.6-1 Id: 1 名稱: centos7.6-1 UUID: 92891b9c-37cc-4511-9bf6-59a8170c434c OS 類型: hvm 狀態: running CPU: 1 CPU 時間: 20.5s 最大內存: 1048576 KiB 使用的內存: 1048576 KiB 持久: 是 自動啟動: 禁用 管理的保存: 否 安全性模式: none 安全性 DOI: 0查看虛擬機資源占用情況 [root@server5 ~]# virt-top

  • 啟動客戶機
啟動虛擬機 [root@server5 ~]# virsh start centos7.6-1 域 centos7.6-1 已開始 [root@server5 ~]# virsh listId 名稱 狀態 ----------------------------------------------------1 centos7.6-1 running設置開機自啟 [root@server5 ~]# virsh autostart centos7.6-1 域 centos7.6-1標記為自動開始 [root@server5 ~]# virsh dominfo centos7.6-1 Id: 1 名稱: centos7.6-1 UUID: 92891b9c-37cc-4511-9bf6-59a8170c434c OS 類型: hvm 狀態: running CPU: 1 CPU 時間: 20.7s 最大內存: 1048576 KiB 使用的內存: 1048576 KiB 持久: 是 自動啟動: 啟用 管理的保存: 否 安全性模式: none 安全性 DOI: 0
  • 修改配置文件/etc/libvirt/qemu/centos7.6-1.xml
文件位置/etc/libvirt/qemu/centos7.6-1.xml [root@server5 ~]# head -20 /etc/libvirt/qemu/centos7.6-1.xml <!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:virsh edit centos7.6-1 命令行修改方法 or other application using the libvirt API. --><domain type='kvm'><name>centos7.6-1</name><uuid>92891b9c-37cc-4511-9bf6-59a8170c434c</uuid><memory unit='KiB'>1048576</memory><currentMemory unit='KiB'>1048576</currentMemory><vcpu placement='static'>1</vcpu><os><type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type><boot dev='hd'/></os><features><acpi/><apic/>[root@server5 ~]# virsh edit centos7.6-1
  • 網絡配置文件/etc/libvirt/qemu/networks/
[root@server5 ~]# cd /etc/libvirt/qemu/networks/ [root@server5 networks]# ls autostart default.xml <!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:virsh net-edit default 命令行修改方法 or other application using the libvirt API. --><network><name>default</name><uuid>481578d7-6728-48fa-8569-09eac31a0273</uuid><forward mode='nat'/><bridge name='virbr0' stp='on' delay='0'/><mac address='52:54:00:61:66:bb'/><ip address='192.168.122.1' netmask='255.255.255.0'><dhcp><range start='192.168.122.2' end='192.168.122.254'/></dhcp></ip> </network>
  • 存儲池配置文件/etc/libvirt/storage/
[root@server5 ~]# cd /etc/libvirt/storage/ [root@server5 storage]# ls autostart home.xml [root@server5 storage]# vim home.xml <!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:virsh pool-edit home or other application using the libvirt API. --><pool type='dir'><name>home</name><uuid>74ccd74f-30ea-4462-bc85-ca363520a1cf</uuid><capacity unit='bytes'>0</capacity><allocation unit='bytes'>0</allocation><available unit='bytes'>0</available><source></source><target><path>/home</path></target> </pool>
  • CPU熱添加
[root@centos7.6-1 ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 1 On-line CPU(s) list: 0命令行添加 [root@server5 ~]# virsh setvcpus centos7.6-1 2 --live[root@centos7.6-1 ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1
  • 內存氣球

KVM內存氣球技術可以對虛擬機使用的內存按需調節,從而提高內存的利用率。linux默認就支持內存氣球

  • 半虛擬化驅動

    • 全虛擬化驅動

    • 半虛擬化驅動

      通過驅動對操作系統進行了修改,即Virtio技術,,虛擬機直接訪問虛擬化層,步驟減少,轉化效率高

    • 配置半虛擬化驅動

      • 網絡選擇virtio

      • 客戶機查看是否支持半虛擬化驅動

      [root@server5 ~]# virt-what kvm [root@server5 ~]# ethtool -i eth0 driver: virtio_net version: 1.0.0 firmware-version: expansion-rom-version: bus-info: 0000:00:03.0 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no
      • 軟件獲取:http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers

配置

添加網卡

  • virt-manager圖形化配置

[root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# ls [root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-ens9 修改相應的配置文件
  • virsh命令行添加
確保客戶機運行 [root@server5 ~]# virsh listId 名稱 狀態 ----------------------------------------------------1 centos7.6-1 running查看已有網卡 [root@server5 ~]# virsh domiflist centos7.6-1 接口 類型 源 型號 MAC ------------------------------------------------------- vnet0 bridge virbr0 virtio 52:54:00:65:4d:a5 vnet1 network default rtl8139 52:54:00:9a:18:f7添加網卡 [root@server5 ~]# virsh attach-interface centos7.6-1 \--type network \--source default \--model virtio \--config 成功附加接口 [root@server5 ~]# virsh domiflist centos7.6-1 接口 類型 源 型號 MAC ------------------------------------------------------- vnet0 bridge virbr0 virtio 52:54:00:65:4d:a5 vnet1 network default rtl8139 52:54:00:9a:18:f7重啟(需要先關機,再開機,才能生效) [root@server5 ~]# virsh domiflist centos7.6-1 接口 類型 源 型號 MAC ------------------------------------------------------- vnet0 bridge virbr0 virtio 52:54:00:65:4d:a5 vnet1 network default rtl8139 52:54:00:9a:18:f7 vnet2 network default virtio 52:54:00:83:7b:f1
  • 配置文件添加
配置文件地址 [root@server5 ~]# cd /etc/libvirt/qemu/ [root@server5 qemu]# vim centos7.6-1.xml </interface><interface type='network'><mac address='52:54:00:83:7b:f1'/><source network='default'/><model type='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/></interface>

創建虛擬網絡

virt-manager添加網絡

  • 驗證網絡可用性
[root@server5 ~]# ip a 8: virbr1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:b6:35:e2 brd ff:ff:ff:ff:ff:ffinet 192.168.10.1/24 brd 192.168.10.255 scope global virbr1valid_lft forever preferred_lft forever
  • xshell連接新創建的網絡

  • 生效:強制關機,再次開機
查看ip地址 [root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 52:54:00:80:94:b0 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 52:54:00:da:57:16 brd ff:ff:ff:ff:ff:ffinet 192.168.10.150/24 brd 192.168.10.255 scope global noprefixroute dynamic eth1valid_lft 2714sec preferred_lft 2714secinet6 fe80::82c0:907:6163:5dd8/64 scope link noprefixroute valid_lft forever preferred_lft forever查看網關 [root@localhost ~]# ip route default via 192.168.10.1 dev eth1 proto dhcp metric 100 192.168.10.0/24 dev eth1 proto kernel scope link src 192.168.10.150 metric 100ping網關 [root@localhost ~]# ping 192.168.10.1150ping宿主機 [root@localhost ~]# ping 192.168.139.50ping宿主機的網關 [root@localhost ~]# ping 192.168.139.2ping域名 [root@localhost ~]# ping www.baidu.com虛擬機連接 [root@server5 ~]# ssh root@192.168.10.150 The authenticity of host '192.168.10.150 (192.168.10.150)' can't be established. ECDSA key fingerprint is SHA256:0j755uJHNYtgaiAvD5muWjnq1Qxtuvo83VBMx2a85Wc. ECDSA key fingerprint is MD5:17:5d:03:0d:b8:f5:6d:86:06:6e:35:1d:51:e7:56:a9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.10.150' (ECDSA) to the list of known hosts. root@192.168.10.150's password: Last login: Sun Jan 2 19:48:52 2022 [root@localhost ~]#

通過配置文件生成網絡

  • 編寫網絡配置文件
獲得網絡編寫模板文件 [root@server5 ~]# cd /etc/libvirt/qemu/networks/ [root@server5 networks]# cp network1.xml network2.xml [root@server5 networks]# ls autostart default.xml network1.xml network2.xml生成UUID [root@server5 networks]# uuidgen e63b6f45-8c1a-4378-8d46-18c8faab3271生成MAC地址 [root@server5 networks]# openssl rand -hex 6 |sed -r 's/(..)/\1:/g;s/.$//' 25:a4:ac:61:62:96 # 該設備名為52:54:00:xx:xx:xx,可以只更改后面部分修改配置文件 [root@server5 networks]# vim network2.xml <network><name>network2</name> 自定義<uuid>e63b6f45-8c1a-4378-8d46-18c8faab3271</uuid> 自生成<forward mode='nat'/> 網絡模式<bridge name='virbr2' stp='on' delay='0'/> 自定義網橋名稱<mac address='52:54:00:61:62:96'/> 自生成<domain name='network2'/> 同自定義name<ip address='192.168.20.1' netmask='255.255.255.0'><dhcp><range start='192.168.20.10' end='192.168.20.250'/></dhcp></ip> </network>
  • 基于配置文件生成網絡
[root@server5 networks]# virsh net-define network2.xml 從 network2定義網絡network2.xml開啟網絡 [root@server5 networks]# virsh net-start network2 網絡 network2 已開始開機自啟 [root@server5 networks]# virsh net-autostart network2 網絡network2標記為自動啟動查看 [root@server5 networks]# virsh net-list --all名稱 狀態 自動開始 持久 ----------------------------------------------------------default 活動 否 否network1 活動 是 是network2 活動 是 是

橋接模式

  • 停用NetworkManager并備份網卡文件
[root@server5 ~]# systemctl stop NetworkManager [root@server5 ~]# systemctl disable NetworkManager[root@server5 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /root/
  • 創建網橋

  • 查看
[root@server5 ~]# cd /etc/sysconfig/network-scripts/ [root@server5 network-scripts]# ls ifcfg-br1 ifcfg-br1 [root@server5 network-scripts]# cat ifcfg-br1 DEVICE="br1" ONBOOT="no" HOTPLUG="yes" TYPE="Bridge" BOOTPROTO="none" IPADDR="192.168.139.50" NETMASK="255.255.255.0" GATEWAY="192.168.139.2" IPV6INIT="yes" IPV6_AUTOCONF="yes" DHCPV6C="no" STP="on" DELAY="0.0" [root@server5 network-scripts]# cat ifcfg-ens33 DEVICE="ens33" ONBOOT="no" HOTPLUG="yes" BRIDGE="br1" # 該文件被修改了,所以之前要備份
  • 客戶機使用網橋

修改網卡文件 [root@localhost~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# vim ifcfg-eth0

[root@localhost network-scripts]# systemctl restart network

橋接模式改為net模式

  • 客戶機接口更改

  • 宿主機停止網橋接口

  • 刪除相關網卡文件
[root@server5 network-scripts]# rm -rf ifcfg-br1 [root@server5 network-scripts]# rm -rf ifcfg-ens33
  • 恢復原網卡文件
[root@server5 network-scripts]# mv /root/ifcfg-ens33 ./重啟網絡 [root@server5 network-scripts]# systemctl restart network啟動NetworkManager [root@server5 network-scripts]# systemctl start NetworkManager [root@server5 network-scripts]# systemctl enable NetworkManager

添加硬盤(熱插拔)

virt-manager圖形化添加

[root@guest ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 5G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 4G 0 part ├─centos-root 253:0 0 3.5G 0 lvm /└─centos-swap 253:1 0 512M 0 lvm [SWAP] vdb 252:16 0 2G 0 disk

virsh命令添加

  • 創建并使用
[root@server5 ~]# virsh listId 名稱 狀態 ----------------------------------------------------1 my1 running[root@server5 ~]# virsh domblklist my1 目標 源 ------------------------------------------------ vda /var/lib/libvirt/images/my1.qcow2 vdb /var/lib/libvirt/images/my1-1.qcow2 hdb -創建磁盤 [root@server5 ~]# qemu-img create -f qcow2 /root/disk.img 1G Formatting '/root/disk.img', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 lazy_refcounts=off # 或者使用dd命令模式 dd if=/dev/zero of=/root/disk.img bs=1M count=1024附加磁盤 [root@server5 ~]# virsh attach-disk my1 --source=/root/disk.img --target vdc --cache writeback --subdriver qcow2 成功附加磁盤查看 [root@guest ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 5G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 4G 0 part ├─centos-root 253:0 0 3.5G 0 lvm /└─centos-swap 253:1 0 512M 0 lvm [SWAP] vdb 252:16 0 2G 0 disk vdc 252:32 0 1G 0 disk
  • 刪除磁盤
[root@server5 ~]# virsh detach-disk my1 vdc 成功分離磁盤
  • 持久化附加磁盤
[root@server5 ~]# virsh attach-disk my1 --source=/root/disk.img --target vdc --cache writeback --subdriver qcow2 --persistent 成功附加磁盤刪除 [root@server5 ~]# virsh detach-disk my1 vdc 成功分離磁盤

存儲池管理

查看存儲池

[root@server5 ~]# virsh pool-list --all名稱 狀態 自動開始 -------------------------------------------default 活動 是 root 活動 是

添加本地存儲池

  • 創建目錄
[root@server5 ~]# mkdir /home/storage
  • 添加

添加網絡存儲池

網絡存儲端 [root@server1 ~]# yum install -y nfs-utils.x86_64 [root@server1 ~]# systemctl start nfs-server [root@server1 ~]# mkdir /home/nfs-storage [root@server1 ~]# vim /etc/exports [root@server1 ~]# cat /etc/exports /home/nfs-storage 192.168.139.0/24(rw,sync,no_root_squash)KVM虛擬機 [root@server5 ~]# showmount -e 192.168.139.10 Export list for 192.168.139.10: /home/nfs-storage 192.168.139.0/24 [root@server5 ~]# mkdir /home/remote-storage
  • 添加網絡存儲池

總結

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

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