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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

从网上搜索到的虚拟化笔记

發(fā)布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从网上搜索到的虚拟化笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一課時

[S1 虛擬化與云計算]

通過網(wǎng)絡獲取所需服務

分為三類:

SaaS EndUsers 基礎設施類

PaaS ApplicationDeveloper 平臺服務

IaaS NetworkArchitects 軟件服務


私有云:

1.部署在企業(yè)內(nèi)部網(wǎng)絡

2.部署在云服務商上


現(xiàn)大規(guī)模商用的廠家

亞馬遜IaaS 全球最大的公有云服務提供商

威瑞VMware vSphere 私有云占有率最高的虛擬化解決方案

思杰Citrix Xen

RHEV

IBM藍云


虛擬化分類:

1.軟件虛擬化

2.硬件方案

1.準虛擬化 缺乏硬件支持情況

2.全虛擬化


KVM:Kernel Virtual Machine:內(nèi)核虛擬機

優(yōu)勢:

1.內(nèi)存管理:Kernel Same-page Merging,KSM)

2.存儲

3.設備驅(qū)動程序

4.性能和可伸縮性:KVM宿主機支持4096個CPU核心,64TB內(nèi)存


[S2KVM核心基礎功能]

硬件平臺和軟件版本說明

1.硬件平臺:硬件要支持輔助虛擬化(Intel VT-x)

2.KVM內(nèi)核:在linux.git源碼倉庫中執(zhí)行

# git tag

v3.4-rc6

v3.4-rc7

v3.5-rc1

...

#git checkout v3.5

在kvm.git中,沒有v標簽,可以

# git log

# git checkout 73bcc499

在qemu-kvm.git中,可以使用git tag

在編譯qemu時,configure加上 --disable-sdl

使用qemu命令行,默認開啟對KVM支持,# qemu-kvm 查看KVM默認打開,需要啟動QEMU命令行上加上-enable-kvm


CPU配置

QEMU/KVM為客戶機提供一套完整的硬件系統(tǒng)環(huán)境

客戶機所擁有的CPU是vCPU

在KVM環(huán)境中,每個客戶機都是一個標準的Linux進程(QEMU進程)

每一個vCPU在宿主機中是QEMU進程派生的一個普通線程

客戶機的命令模擬實現(xiàn):

1.用戶模式

處理I/O模擬和管理,由QEMU代碼實現(xiàn)

2.內(nèi)核模式

處理需要高性能和安全相關指令。處理客戶模式下I/O指令或其他特權指令引起的退出,處理影子內(nèi)存管理

3.客戶模式

執(zhí)行Guest中的大部分指令,I/O和一些特權指令除外(引起VM-Exit,被hypervisor截獲并模擬)


SMP支持

多處理,多進程

邏輯CPU個數(shù)

# cat /proc/cpuinfo | grep "pro"|wc -l

多線程支持

# cat /proc/cpuinfo | grep -qi "core id" |echo $?

實際CPU個數(shù)

# cat /proc/cpuinfo | grep "physical id" |sort | uniq | wc -l

每個物理CPU中邏輯CPU的個數(shù)

logical_cpu_per_phy_cpu=$(cat /proc/cpuinfo |grep "siblings"| sort | uniq | awk -F: '{print $2}')

echo $logical_cpu_per_phy_cpu

在qemu的命令行中,模擬客戶機的SMP系統(tǒng),參數(shù)

-qemu n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]

n 邏輯cpu數(shù)量

maxcpus 最大可被使用的cpu數(shù)量

cores 每個cpu socket上的core數(shù)量

threads 每個cpu core上的線程數(shù)

sockets 客戶機中看的總的cops socket數(shù)量


8個客戶機logical cpu即宿主機的8個線程

logical cpu 8

physical cpu 2

core cpu 2

logical cpu 4

8個邏輯cpu

2個物理

PUC socket 每個socket有兩個核,每個核有2個線程


CPU模型

查看當前qemu支持的所有CPU模型

# qemu-system-x86_64 -cpu ?

啟動鏡像時,可以使用上命令的結果的CPU模型啟動

# qemu-system-x86_64 /root/.../...img -cpu SandyBridge

隔離其他CPU不供客戶機使用

grub 文件

root=UUID.... isolcpus=2,3

查看隔離成功

# ps -eLo psr|grep 0|wc-l

然后改變0,檢查各個CPU的進程數(shù)

把一個有兩個的vCPU的客戶機綁定到宿主機的兩個CPU上

# qemu-system-x86_64 rhel6u3.img -smp 2 -m 512 -daemonize

查看代表vCPU的QEMU的線程

#ps -eLo ruser,pid,ppid,lwp,psr,args |grep qemgrep -v grep

綁定整個客戶機的QEMU進程,運行在CPU2上

#taskset -p 0x4 3963

#綁定第一個cCPU線程,使其運行在cpu2上

# taskset -p 0x4 3967

第二個

#taskset -p 0x8 3968


內(nèi)存配置

QEMU啟動命令

-m megs 設置客戶機的內(nèi)存為MB大小

# free -m 查看內(nèi)存

# dmesg|grep Memory

內(nèi)存轉(zhuǎn)換

客戶機->宿主機(GVA->GPA)執(zhí)行者:客戶機操作系統(tǒng)

客戶機<-宿主機(GVA<-GPA)執(zhí)行者:hypervisor

在EPT加入之后,直接在硬件上支持虛擬化內(nèi)存地址轉(zhuǎn)換

查看支持EPT VPID

# grep ept /proc/cpuinfo

# cat /sys/module/kvm_intel/parameters/ept

# cat /sys/module/kvm_intel/parameters/vpid

加載ept vpid模塊

# modprobe kvm_intel ept=0,vpid=0

# rmmod kvm_intel

# modprobe kvm_intelept=1,vpid=1

大頁

x86默認提供4kb內(nèi)存頁面

x86_64支持2MB大小的大頁

# getconf PAGESIZE

# cat /proc/meminfo

掛載大頁

# mount -t hugetlbfs hugetlbfs /dev/hugepages

# sysctl vm.nr_hugepages=1024

然后讓qemu啟動項內(nèi)存參數(shù)使用大頁

-mem-path /dev/hugepages

掛載大頁內(nèi)存可以顯著提高客戶機性能,但是,不能使用swap

內(nèi)存過載使用

1.內(nèi)存交換(swaping)

2.氣球(ballooning):通過virio_balloon驅(qū)動來實現(xiàn)宿主機Hyperviosr和宿主機的合作

3.頁共享(page sharing):通過KSMkernel Samepage Merging合并多個客戶機使用的相同內(nèi)存頁。

存儲配置

存儲配置和啟動順序

存儲的基本配置選項

-hda file :將file作為客戶機第一個IDE設備,序號0,客戶機中表現(xiàn)/dev/hda或/dev/sda設備

-hdb /-hdc..

-fda file 軟盤

-cdrom,cdrom作為hdc,不能共同使用

-mtdblock file 作為客戶機自帶的一個FLASH存儲器 閃存

-sd file sd 卡

驅(qū)動器

-driver file=file 文件作為鏡像文件加載到客戶機的驅(qū)動器中

if=interface 指定驅(qū)動器使用的接口類型

bus=bus,unit=unit 總線編號,單元編號

index=index 索引編號

media=media 設置驅(qū)動器中沒接的類型

snapshot=snapshot on/off ~~~~~

....

配置客戶機啟動順序的參數(shù)

-boot order=drivers,once=drives,menu=on|off,splash=splashfile,splash-time=sp-time

ex:-boot order=dc,menu=on 按F12

存儲配置示例

啟動客戶機命令

# qemu-system-x86_64 -m 1024 -smp 2 rhel6u3.img

# qemu-system-x86_64 -m 1024 -smp 2-hda rhel6u3.img

# qemu-system-x86_64 -m 1024 -smp 2-drive file=rhl6u3.img,if=ide,cache=writehrough?

qemu命令

qemu-img:qemu磁盤管理工具

check [-f fmt] filename

fmt:qcow2 qed vdi

create [-f fmt][-o options] filename [size] 創(chuàng)建鏡像文件

convert 鏡像轉(zhuǎn)換

# qemu-img convertmy-vmware.vmdk my-kvm.img #用這個轉(zhuǎn)換

# qemu-img convert -O qcow2 rhel6u3.img rhel6u3-a.gcow2

info [-f fmt] filename

展示filename鏡像文件信息

snapshot [-l|-a snapshot|-c snapshot|-d snapshot] filenamne

rebase

resize filename [+|-] size

QEMU支持的鏡像文件格式

1.raw

2.host_device

3.qcow2

4.qcow

cow,vid.vmdk,vpc,sheepdog

客戶機存儲方式

1.本地

2.物理磁盤或磁盤分區(qū)

3.LVM

4.NFS

5.ISCSI

6.本地或光纖通道LUN

7.GFS2

高性能IO使用半虛擬化virtio作為磁盤驅(qū)動程序


QEMU支持的網(wǎng)絡模式

1.基于網(wǎng)橋(bridge)的虛擬網(wǎng)卡

2.基于NAT(Network Address Translation)的虛擬網(wǎng)絡

3.QEMU內(nèi)置的用戶模式網(wǎng)絡

4.直接分配網(wǎng)絡設備的網(wǎng)絡(包括VT-d 和 SR-IOV)

-net nic,model=? 會列出默認虛擬網(wǎng)卡

-net nic,model=e1000 會模擬出一個interl e1000的網(wǎng)卡供客戶使用

第二課時

半虛擬化驅(qū)動

KVM必須要求有硬件虛擬化輔助技術(Intel VT-x,AMD-V)的hypervisor

(QEMU提供了全虛擬化環(huán)境

缺點:每次I/O操作路徑較長,有較多的VMentry,VMExit,需要多次上下文切換,也需要多次數(shù)據(jù)復制,性能較差。)

半虛擬化驅(qū)動virtio:利用物理機驅(qū)動批量處理虛擬機的I/O請求,效率高。


  • linux中virtio驅(qū)動

  • 內(nèi)核已自帶

    CONFIG.*VIRTIO.*=m ?#內(nèi)核編譯配置文件與virtio有關的

    編譯好內(nèi)核后,查看驅(qū)動

    # find /lib/modules/2.6.32-279.el6.x86_64/ -name "virtio*.ko"

    會顯示一些virtio_net.ko?virtio_pci.ko virt-ring.ko

    查看已加載的

    # lsmod|grep virtio

    2.安裝windows中的virtio驅(qū)動

    # yum install virto-win

    安裝后可看到/usr/share/virtio-win/目錄下有一個virtio-win.iso文件。

    啟動win7客戶機,

    #qemu-system-x86_64 win7.img -smp 2 -m 2048 -cdrom /usr/share/virti-win/virtio-win.iso -vnc :0 -usbdevice tablet

    然后進入win7,安裝驅(qū)動

    安裝后使用virtio驅(qū)動后重新啟動


    使用virtio_balloon

    系統(tǒng)運行時改變內(nèi)存大小

    啟動virtio_balloon

    編譯內(nèi)核時選項 CONFIG_VIRTIO_BALLOON=m

    操作步驟

    1)啟動客戶機

    # qemu-system-x86_64 rhel6u3.img -smp2 -m 2048-balloon virtio

    2)在客戶機中查看內(nèi)存使用情況

    # lspci

    查看是否加載驅(qū)動

    # lspci -s 00:04.0 -v|grep virtio-pci

    # free -m

    3)在qemu monitor 中查看和改變客戶機占用的內(nèi)存

    (qemu) info balloon

    balloon:actual=2048

    (qemu) balloon 512

    (qemu)info balloon

    balloon: actual=512

    -----

    KVM動態(tài)調(diào)整內(nèi)存工具:virsh setmem <domain-id or domain-name><Amount of memory in KB>



    設備直接分配(VT-d)

    VT-d

    1)Emulated device :QEMU純軟件模擬設備

    2) Virtio device :實現(xiàn)VIRTIO API的半虛擬化驅(qū)動的設備

    3) PCI device assignment: PCI 設備直接分配

    VT-D不需要與Hypervisor(KVM)參與,極大的提高IO性能。

    需要硬件支持 VT-D

    配置:

    1)打開主板VT-D選項

    2)編譯配置,REDHAT6.3+默認

    啟動系統(tǒng)后

    # dmesg | grep DMAR -i

    # dmesg | grep IOMMU -i # 如未打開 那么在內(nèi)核配置文件中CONFIG_PCI_STUB=m

    3)在宿主機中隱藏設備

    # modprobe pci_stub

    # lsmod | grep stub

    ls /sys/bus/pci/drivers/pci-stub/

    都有顯示回復即可

    查看設備的vendorID deviceID?

    # lspci -Dn -s 08:00:00

    -D domain,-n 用數(shù)字顯示ID,-s

    綁定設備到pci_stub驅(qū)動

    echo -n "8086 10b9" > /sys/bus/pci/drivers/pci-stub/new_id

    echo 0000:08:00.0 > /sys/bus/pci/devices/0000:08:00.0/driver/unbind

    echo 0000:08:00.0 > /sys/bus/pci/drivers/pci-stub/bind

    # lspci -k -s 08:00.0

    設備驅(qū)動是intel的e1000e,綁定后為pci_stub

    第三課時

    主、從服務器系統(tǒng)版本:

    Red Hat Enterprise Linux Server release 5.5 (Tikanga

    客戶端系統(tǒng)版本:

    Red Hat Enterprise Linux AS release 4 (Nahant Update 7)


    配置過程


    1,配置主服務器


    為便于區(qū)分主從服務器,建議修改node3,node9的主機名


    將node3修改為nis,將node9 修改為slavenis


    1)編輯/etc/sysconfig /network文件


    HOSTNAME=nis


    2)修改/etc/hosts文件


    192.168.111.3nis.godson.ictnisnis


    192.168.111.9 slavenis.godson.ictslavenisslavenis


    重啟網(wǎng)絡:


    /etc/init.d/network restart


    3)修改/etc/yp.conf文件,加入一條


    domain godson.ict server slavenis ?#指定備用服務器


    4)修改/var/yp/Makefile文件


    NOPUSH=false ?#允許主服務器向從服務器傳遞數(shù)據(jù)庫文件


    vim /var/yp/ypservices ?添加從服務器主機名

    slavenis.godson.ict?


    重啟服務:


    /etc/init.d/ypserv restart


    /etc/init.d/ypbind restart


    /etc/init.d/yppasswdd restart


    /etc/init.d/ypxfrd restart


    5)查看服務是否啟動:


    rpcinfo -p


    6)將服務設置開機啟動:


    chkconfig --level 35 ypxfrd on


    7)建立主服務器的數(shù)據(jù)庫文件:


    /usr/lib64/yp/ypinit -m


    2,配置從服務器


    1)修改/etc/sysconfig/network文件


    HOSTNAME=slavenis


    NISDOMAIN=godson.ict


    2)修改/etc/rc.local文件


    echo “/bin/nisdomainname godson.ict”>>/etc/rc.local


    3)修改/etc/hosts文件


    192.168.111.3nis.godson.ictnisnis


    192.168.111.9 slavenis.godson.ictslavenisslavenis


    重啟網(wǎng)絡:


    /etc/init.d/network restart


    4)安裝rpm包:ypserv,ypbind,yp-tools,portmap


    5)修改/etc/nsswitch.conf文件


    6)修改/etc/yp.conf文件


    domain godson.ict server nis


    domain godson.ict server slavenis


    ypserver nis ? ? ? ? ??


    7)修改/etc/ypserv.conf文件


    * ? ? ? ? ?: godson.ict : * ? ?: none


    重啟服務:


    /etc/init.d/ypserv restart


    /etc/init.d/ypxfrd restart


    /etc/init.d/ypbind restart


    /etc/init.d/portmap restart


    8)將服務設置開機啟動:


    chkconfig --level 35 ypxfrd on


    chkconfig --level 35 ypbind on


    chkconfig --level 35 ypserv on


    chkconfig --level 35 portmap on


    9)同步主服務器的數(shù)據(jù)庫文件:


    /usr/lib64/yp/ypinit -s nis


    轉(zhuǎn)載于:https://blog.51cto.com/hobowizard/1782392

    總結

    以上是生活随笔為你收集整理的从网上搜索到的虚拟化笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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