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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

虚拟化技术的概述及使用

發(fā)布時(shí)間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 虚拟化技术的概述及使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

云計(jì)算基礎(chǔ)

一.虛擬化技術(shù)

1.虛擬化與云技算的概述

2.虛擬化的開啟

3.虛擬化的架構(gòu)

4.linux虛擬化平臺(tái)安裝

5.虛擬機(jī)的構(gòu)成

二.虛擬化管理

1.虛擬化網(wǎng)絡(luò)管理

2.虛擬機(jī)配置管理

3.寫一個(gè)腳本以后就可以直接創(chuàng)建

4.安裝會(huì)總:

一.虛擬化技術(shù)

1.虛擬化與云技算的概述

1)虛擬化:

虛擬化是一種技術(shù),顧名思義,就是將不可拆分的實(shí)體資源變成可以自由劃分的邏輯資源,從而實(shí)現(xiàn)資源的整合、隔離、在分配, 云計(jì)算就是利用了虛擬化技術(shù)的這個(gè)特點(diǎn)。

2)云計(jì)算:

云計(jì)算是一種服務(wù)模式(IAAS) , 其思想就是把各種資源整合起 來, 然后租給有需要的用戶, 其中的資源包括處理器(CPU) 、內(nèi) 存、存儲(chǔ)、網(wǎng)絡(luò)和其它基本的計(jì)算資源。通常我們通過虛擬化手 段把這些資源分割打包提供給用戶使用。

2.虛擬化的開啟

1)虛擬化主要廠商

系列pc/服務(wù)器版代表
VMwareVMware Workstation,vSphere
MicrosoftVirtual PC,Hyper-V
RedHatKVM,RHEV
CitrixXen
OracleOracle VM VirtualBox

2)開啟虛擬化

當(dāng)在windows平臺(tái)的VMware中安裝系統(tǒng)時(shí),如果電腦沒有開啟虛擬化,在安裝過程中,會(huì)發(fā)生錯(cuò)誤。

查看電腦是否開啟虛擬化,【任務(wù)管理器】

windows如未開啟則:

intel CPU開啟虛擬化

開機(jī)進(jìn)入BIOS,在coufiguration選項(xiàng)中,將【 Intel Virtual Technology】選項(xiàng)由【disable】調(diào)整為【enable】。

AMD CPU開啟虛擬化

開機(jī)進(jìn)入BIOS,在coufiguration選項(xiàng)中,將【 AMD SVM Technology】選項(xiàng)由【disable】調(diào)整為【enable】。

linux查看支持虛擬化

# 查看CPU是否支持虛擬化 ~]# grep -P "vmx|svm" /proc/cpuinfoflags : ... ... vmx # 查看kernel(內(nèi)核)是否有虛擬化內(nèi)核 ~]# lsmod |grep kvm kvm_intel 294912 8 kvm ? ? ? 786432 1 kvm_intel irqbypass ?16384 7 kvm ? #如沒有模塊則添加 ~]# modprobe kvm ~]# modprobe kvm-intel

3.虛擬化的架構(gòu)

虛擬層,仿真層,管理層

-KVM是linux內(nèi)核模塊, 它需要CPU指令集(Intel-VT/AMD-V) 的支持,是一種硬件輔助虛擬化技術(shù)

-QEMU是一個(gè)虛擬化的仿真工具, 通過ioctI與內(nèi)核模塊交互 完成對(duì)硬件的虛擬化支持

-Libvirt是一個(gè)對(duì)虛擬化管理的接口和工具, 提供客戶端程 序,例如: virsh,virt-manager

4.linux虛擬化平臺(tái)安裝

虛擬化平臺(tái)必須的四個(gè)軟件包

qemu-kvm -為kvm提供底層系統(tǒng)設(shè)備仿真支撐

libvirt-daemon -libvirtd守護(hù)進(jìn)程,管理虛擬機(jī)

libvirt-client -客戶端軟件,提供客戶端管理命令

libvirt-daemon-driver-qemu -libvirtd連接qemu的驅(qū)動(dòng)

1)安裝軟件

~]# yum -y install qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu ~]# systemctl enable --now libvirtd ~]# virsh version Compiled against library: libvirt 4.5.0 Using library: libvirt 4.5.0 Using API: QEMU 4.5.0

5.虛擬機(jī)的構(gòu)成

1)配置文件與儲(chǔ)存文件

虛擬配置文件(*.xml)(擴(kuò)展標(biāo)記語言)

? ? ? -文件默認(rèn)路徑:/etc/libvirt/qemu

? ? ? -用途:配置虛擬機(jī)資源參數(shù)

存儲(chǔ)文件(*.img)

? ? ? ?-文件默認(rèn)路徑:/var/lib/libvirt/images/

? ? ? ?-用途:仿真虛擬磁盤,儲(chǔ)存所有數(shù)據(jù)信息

2)cow技術(shù)的原理

Copy On Write 寫實(shí)復(fù)制技術(shù)

????????-直接映射原始盤的數(shù)據(jù)內(nèi)容

????????-當(dāng)數(shù)據(jù)有寫入需求時(shí),在寫入之前自動(dòng)將數(shù)據(jù)塊拷貝存入前端盤后,對(duì)前端盤進(jìn)行修改

????????-原始盤始終是只讀的

3)linux使用后端磁盤的命令

注:每一個(gè)虛擬機(jī)應(yīng)該有單獨(dú)的磁盤

qemu-img 是虛擬機(jī)的磁盤管理命令,支持非常多的磁盤

格式,例如 raw, qcow2,vdi,vmdk等等

qemu-img命令格式

-qemu-img子命令 子命令參數(shù) 塊文件名稱 大小-常用子命令有:-create 創(chuàng)建一個(gè)磁盤-convert 專換磁盤格式-info 查看磁盤信息-f 磁盤格式-b 原始盤 #創(chuàng)建后端盤 ~]# cd /var/lib/libvirt/images ~]# qemu-img create -f qcow2 master.img 10G Formatting 'master.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off ~]# ls node.img ~]# qemu-img info master.img image: master.img file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 196K cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false ? # 創(chuàng)建鏈接盤 ~]# qemu-img create -f qcow2 -b master.img node.img 30G

二.虛擬化管理

1.虛擬化網(wǎng)絡(luò)管理

1)網(wǎng)橋的概述

早期的網(wǎng)橋就是將兩個(gè)計(jì)算機(jī)連接起來的網(wǎng)絡(luò)通信設(shè)備,但是在現(xiàn)在很多虛擬化技術(shù),無論是虛擬機(jī)還是容器技術(shù)想要進(jìn)行網(wǎng)絡(luò)通信所以提出了個(gè)虛擬網(wǎng)橋的概念。虛擬網(wǎng)橋的概念的提出含義就是使用網(wǎng)橋搭建一個(gè)局域網(wǎng)而虛擬機(jī)和容器和宿主機(jī)是局域網(wǎng)內(nèi)同等級(jí)別節(jié)點(diǎn)。用一句話總結(jié)就是現(xiàn)在虛擬化技術(shù)就是通過網(wǎng)橋技術(shù)將宿主機(jī)和虛擬機(jī)和容器搭建成局域網(wǎng),是虛擬機(jī)和宿主機(jī)之間可以通信。

所以一般創(chuàng)建虛擬機(jī)想要上外網(wǎng)一般有兩種方式一種是通過橋接借助宿主機(jī)的物理連接,然后和宿主機(jī)配上相同的上網(wǎng)環(huán)境的就可以上網(wǎng),還有一種是用橋接的方式是虛擬機(jī)和宿主機(jī)之間能夠通信,然后借助NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)使用宿主機(jī)代理上網(wǎng)。而docker就是使用的這種技術(shù)。

2)網(wǎng)絡(luò)管理命令

命令說明
virsh tnet-list [--all]列出虛擬網(wǎng)絡(luò)
virsh net-start啟動(dòng)虛擬交換機(jī)
virsh net -destroy強(qiáng)制停止虛擬交換機(jī)
virsh net-define根據(jù)xml文件創(chuàng)建虛擬網(wǎng)絡(luò)
virsh net- rundefine刪除一個(gè)虛擬網(wǎng)絡(luò)設(shè)備
virsh net-edit修改虛擬交換機(jī)的配置
virsh net-autostart設(shè)置開機(jī)自啟動(dòng)

3)虛擬網(wǎng)橋創(chuàng)建(xml擴(kuò)展標(biāo)記語言)

注:官網(wǎng)手冊(cè) https://libvirt.org/format.html

直接看network中的nat就行,其他先用直接套用

~]# cd /etc/libvirt/qemu/networks ~]# vim vbr.xml <network> <name>vbr</name> <forward mode='nat'/> <bridge name='vbr' stp='on' delay='0'/> <ip address='192.168.100.254' netmask='255.255.255.0'><dhcp><range start='192.168.100.100' end='192.168.100.200'/></dhcp> </ip> </network> # vbr設(shè)備名 # 網(wǎng)橋的模式 mode='nat'可以上網(wǎng) # bridge name='vbr':ifconfig可以看到的名字 # address,netmask:網(wǎng)橋的IP地址與子網(wǎng)掩碼 # range start=開始ip,end=結(jié)束ip ? ## 創(chuàng)建網(wǎng)橋設(shè)備 ~]# virsh net-define /etc/libvirt/qemu/networks/vbr.xml Network vbr defined from /etc/libvirt/qemu/networks/vbr.xml ? # 查看網(wǎng)橋設(shè)備 ~]# virsh net-list --all Name ? ? ? ? ? ? ? ? State ? ? Autostart ? ? Persistent ---------------------------------------------------------- vbr ? ? ? ? ? ? ? ? inactive ? no ? ? ? ? ? ?yes ? --all ? 顯示所有網(wǎng)橋因?yàn)闆]有設(shè)置開啟 # Name 網(wǎng)橋名;State 啟動(dòng)狀態(tài)(inactive【沒有啟動(dòng)】);Autostart 是否開機(jī)自啟 ## 設(shè)置開啟自啟 ~]# virsh net-autostart vbr Network vbr marked as autostarted ? ~]# virsh net-list --all Name ? ? ? ? ? ? ? ? State ? ? Autostart ? ? Persistent ---------------------------------------------------------- vbr ? ? ? ? ? ? ? ? inactive ? yes ? ? ? ? ? yes ## 啟動(dòng)網(wǎng)橋 ~]# virsh net-start vbr Network vbr started ? ## 查看是否啟動(dòng) ~]# virsh net-list Name ? ? ? ? ? ? ? ? State ? ? Autostart ? ? Persistent ---------------------------------------------------------- vbr ? ? ? ? ? ? ? ? active ? ? yes ? ? ? ? ? yes ~]# ifconfig vbr: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 192.168.100.254 netmask 255.255.255.0 broadcast 192.168.100.255ether 52:54:00:a8:36:ce txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 # active 啟動(dòng) ## 修改網(wǎng)橋設(shè)備 ~]# virsh net-edit vbr Network vbr XML configuration not changed. ? ## 重啟生效 ~]# virsh net-destroy vbr Network vbr destroyed ~]# virsh net-start vbr Network vbr started

2.虛擬機(jī)配置管理

1)創(chuàng)建虛擬機(jī)配置文件

官網(wǎng)文件參拷 https://libvirt.org/format.html

~]# vim node_bash.xml<name>node_base</name><memory unit='KB'>2248000</memory><currentMemory unit='KB'>2248000</currentMemory><vcpu placement='static'>2</vcpu><os><type arch='x86_64' machine='pc'>hvm</type><boot dev='hd'/><bootmenu enable='yes'/><bios useserial='yes'/></os><features><acpi/><apic/></features><cpu mode='host-passthrough'></cpu><clock offset='localtime'/><on_poweroff>destroy</on_poweroff><on_reboot>restart</on_reboot><on_crash>restart</on_crash><devices><emulator>/usr/libexec/qemu-kvm</emulator><disk type='file' device='disk'><driver name='qemu' type='qcow2'/><source file='/var/lib/libvirt/images/node_base.img'/><target dev='vda' bus='virtio'/></disk><interface type='bridge'><source bridge='vbr'/><model type='virtio'/></interface><channel type='unix'><target type='virtio' name='org.qemu.guest_agent.0'/></channel><serial type='pty'></serial><console type='pty'><target type='serial'/></console><memballoon model='virtio'></memballoon></devices> </domain> ? ? # <domain ...>證明是一個(gè)kvm的虛擬機(jī) # <name....>虛擬機(jī)的名字 # <memory..>虛擬最大內(nèi)存;<currentMemory...>虛擬機(jī)有效內(nèi)存;一般生產(chǎn)環(huán)境當(dāng)兩個(gè)內(nèi)存相同時(shí)最合適(測(cè)試環(huán)境可不同;如該服務(wù)最少幾個(gè)G能起來【8:2】) # <vcpu...> 幾CPU # <os...> 系統(tǒng)啟動(dòng)引導(dǎo)配置;32位的64位的系統(tǒng)的區(qū)別;32位代表2的32次冪的字長(zhǎng)(4G),最大只能識(shí)別4G;64位就是2的64次冪的字長(zhǎng)(16E);所以arch='x86_64';machine=類型;boot dev=硬盤驅(qū)動(dòng)(hd)【cdrom光驅(qū)啟動(dòng){可裝windows}】,<bootmenu 菜單管理;<bios bios管理; # <features> 電源(配置休眠策略); # <cpu mode=cpu類型(host-passthrough表示使用真機(jī)的cpu) # <clock offset='localtime'>使用本機(jī)的時(shí)間 # <on_poweroff...><on_reboot...><on_crash..>重置,重啟,電源(相當(dāng)于服務(wù)器上的電源) ? ##<devices>定義硬件設(shè)備 #<emulator>仿真程序的路徑; # <disk...>定義虛擬機(jī)硬盤路徑<source...>;<target...> 設(shè)備的識(shí)別名,設(shè)備的種線與驅(qū)動(dòng); #<interface ..>網(wǎng)卡配置;<source bridge=默認(rèn)vbr可寫多個(gè)不同的設(shè)備 # <channel..>虛擬機(jī)的管理程序 # <console>;<memballoon>連接設(shè)備

2)創(chuàng)建虛擬機(jī)

~]# cp node_bash.xml /etc/libvirt/qemu/vmhost.xml ~]# virsh define /etc/libvirt/qemu/node_base.xml Domain vmhost defined from /etc/libvirt/qemu/node_base.xml ? ~]# virsh list --allId ? Name ? ? ? ? ? ? ? ? ? ? ? ? ? State ----------------------------------------------------- ? ? vmhost ? ? ? ? ? ? ? ? ? ? ? ? shut off # 開啟虛擬機(jī) ~]# virsh start vmhost Domain vmhost started ~]# virsh list --allId ? Name ? ? ? ? ? ? ? ? ? ? ? ? ? State ----------------------------------------------------- ? ? vmhost ? ? ? ? ? ? ? ? ? ? ? ? running# 進(jìn)入虛擬機(jī)~]# virsh console vmhost注:多拍幾次回車密碼與用戶會(huì)顯示在屏幕上

3)虛擬機(jī)管理命令

命令說明
virsh list --all列出虛擬機(jī)
virsh start/shutdown啟動(dòng)/關(guān)閉虛擬機(jī)
virsh destroy強(qiáng)制停止虛擬機(jī)
virsh define/undefine創(chuàng)建/刪除虛擬機(jī)
virsh ttyconsole顯示終端設(shè)備
virsh console連接虛擬機(jī)console
virsh edit修改虛擬機(jī)配置
virsh autostart設(shè)置虛擬機(jī)自啟動(dòng)
virsh dominfo查看虛擬機(jī)摘要信息
virsh domiflist查看虛擬機(jī)網(wǎng)卡信息
virsh domblklist查看虛擬機(jī)硬盤信息

# 查看虛擬機(jī)網(wǎng)卡信息 ~]# virsh domiflist vmhost Interface Type ? ? ? Source ? ? Model ? ? ? MAC ------------------------------------------------------- vnet0 ? ? ? ? bridge ? ? vbr ? ? ? virtio ? ? ?52:54:00:2e:bc:20 ~]# ifconfig vnet: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500ether 52:54:00:a8:36:ce txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ? # 查看虛擬機(jī)硬盤信息 ~]# virsh domblklist vmhost Target ? ? Source ------------------------------------------------ vda ? ? ? /var/lib/libvirt/images/node.img ? # 修改虛擬機(jī)配置 ~]# virsh edit vmhost Domain vmhost XML configuration not changed. ? # 刪除虛擬機(jī)~]# virsh undefine vmhost Domain vmhost has been undefined ~]# virsh list --allId ? Name ? ? ? ? ? ? ? ? ? ? ? ? ? State ----------------------------------------------------

3.寫一個(gè)腳本以后就可以直接創(chuàng)建

~]# vim clone.sh #!/bin/bash cd /var/lib/libvirt/images qemu-img create -f qcow2 -b master.qcow2 ${1}.img 30G sed "s,node_base,${1}," node_bash.xml > /etc/libvirt/qemu/${1}.xml virsh define /etc/libvirt/qemu/${1}.xml # 執(zhí)行測(cè)試 ~]# mv node_bash.xml /var/lib/libvirt/images ~]# ./clone.sh keke Formatting 'keke.img', fmt=qcow2 size=32212254720 backing_file='cirros.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off Domain keke defined from /etc/libvirt/qemu/keke.xml ? ~]# virsh list --allId ? Name ? ? ? ? ? ? ? ? ? ? ? ? ? State ----------------------------------------------------- ? ? keke ? ? ? ? ? ? ? ? ? ? ? ? ? shut off

修改腳本1

~]# vim clone.sh #!/bin/bash if (( $# == 1 ));thencd /var/lib/libvirt/imagesqemu-img create -f qcow2 -b master.qcow2 ${1}.img 30Gsed "s,node_base,${1}," node_base.xml >/etc/libvirt/qemu/${1}.xmlvirsh define /etc/libvirt/qemu/${1}.xml elseecho $0 vmname fi

修改腳本2

~]# vim clone.sh #!/bin/bash read -p "請(qǐng)輸入要?jiǎng)?chuàng)建的名字:" keke if (( $? == 0 ));thenfor i in $(echo $keke)do ?cd /var/lib/libvirt/imagesqemu-img create -f qcow2 -b master.qcow2 ${i}.img 30Gsed "s,node_base,${i}," node_bash.xml > /etc/libvirt/qemu/${i}.xmlvirsh define /etc/libvirt/qemu/${i}.xmldone elseecho $0 輸入錯(cuò)誤 fi ~]# mv clone.sh /usr/sbin/clone ? ## 測(cè)試 ~]# clone 請(qǐng)輸入要?jiǎng)?chuàng)建的名字:node1 node2 node3 node4 Formatting 'node1.img', fmt=qcow2 size=32212254720 backing_file='cirros.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off Domain node1 defined from /etc/libvirt/qemu/node1.xml ? Formatting 'node2.img', fmt=qcow2 size=32212254720 backing_file='cirros.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off Domain node2 defined from /etc/libvirt/qemu/node2.xml ? Formatting 'node3.img', fmt=qcow2 size=32212254720 backing_file='cirros.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off Domain node3 defined from /etc/libvirt/qemu/node3.xml ? Formatting 'node4.img', fmt=qcow2 size=32212254720 backing_file='cirros.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off Domain node4 defined from /etc/libvirt/qemu/node4.xml ? ~]# virsh list --allId ? Name ? ? ? ? ? ? ? ? ? ? ? ? ? State ----------------------------------------------------- ? ? node1 ? ? ? ? ? ? ? ? ? ? ? ? shut off- ? ? node2 ? ? ? ? ? ? ? ? ? ? ? ? shut off- ? ? node3 ? ? ? ? ? ? ? ? ? ? ? ? shut off- ? ? node4 ? ? ? ? ? ? ? ? ? ? ? ? shut off

批量刪除

~]# vim remove.sh #!/bin/bash virsh list --all | ?awk 'NR>2{print $2}' | xargs -i virsh undefine {} ~]# chmod +x remove.sh ~]# ./remove.sh ? Domain node1 has been undefined ? Domain node2 has been undefined ? Domain node3 has been undefined ? Domain node4 has been undefined ? Domain node_base has been undefined ? [root@VM-0-98-centos ~]# virsh list --allId ? Name ? ? ? ? ? ? ? ? ? ? ? ? ? State ----------------------------------------------------

4.安裝會(huì)總:

1)裝包,與測(cè)試是否支持虛擬化

2)創(chuàng)建后端盤并連接一個(gè)

文件位置 :/var/lib/libvirt/images

3)創(chuàng)建虛擬機(jī)配置文件

文件位置 :/etc/libvirt/qemu/

4)使用方法

總結(jié)

以上是生活随笔為你收集整理的虚拟化技术的概述及使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。