From 453adf5e8f1da4b729888101b802e03195ca9dff Mon Sep 17 00:00:00 2001 From: amyMayun Date: Wed, 27 May 2020 18:39:04 +0800 Subject: [PATCH 01/12] merge makedown files of virtualization user guide --- .../CPU\344\273\275\351\242\235.md" | 78 -- .../IOThread\351\205\215\347\275\256.md" | 59 -- .../Libvirt\351\211\264\346\235\203.md" | 84 -- .../NUMA\347\256\200\344\273\213.md" | 6 - .../PCI\347\233\264\351\200\232.md" | 84 -- .../SR-IOV\347\233\264\351\200\232.md" | 171 ---- ...07\344\273\266\347\244\272\344\276\213.md" | 140 --- .../zh/docs/Virtualization/halt-polling.md | 19 - ...24\347\246\273\347\273\221\345\256\232.md" | 14 - content/zh/docs/Virtualization/qemu-ga.md | 63 -- .../sVirt\344\277\235\346\212\244.md" | 62 -- ...70\345\205\263\351\205\215\347\275\256.md" | 59 -- ...06\347\240\201\347\231\273\345\275\225.md" | 42 - ...01\351\205\215\347\275\256\351\241\271.md" | 50 -- ...70\347\224\250\350\256\276\345\244\207.md" | 67 -- ...05\345\255\230\345\244\247\351\241\265.md" | 59 -- ...77\347\224\250\347\216\257\345\242\203.md" | 550 ++++++++---- ...25\345\257\274\345\233\272\344\273\266.md" | 62 -- ...06\345\244\207\347\216\257\345\242\203.md" | 1 - ...37\346\234\272\351\225\234\345\203\217.md" | 99 -- .../\345\211\215\350\250\200.md" | 32 - ...37\346\234\272\351\205\215\347\275\256.md" | 37 - ...30\345\202\250\345\277\253\347\205\247.md" | 41 - ...30\345\202\250\350\256\276\345\244\207.md" | 130 --- ...00\344\275\263\345\256\236\350\267\265.md" | 2 - ...11\350\243\205\346\214\207\345\215\227.md" | 5 - ...11\350\243\205\346\226\271\346\263\225.md" | 31 - ...05\350\231\232\346\213\237\345\214\226.md" | 244 +++-- ...70\345\277\203\347\273\204\344\273\266.md" | 2 - ...24\347\224\250\345\234\272\346\231\257.md" | 14 - ...00\344\275\263\345\256\236\350\267\265.md" | 1 - ...\344\275\223\344\273\213\347\273\215-0.md" | 60 -- ...\344\275\223\344\273\213\347\273\215-1.md" | 6 - ...73\344\275\223\344\273\213\347\273\215.md" | 41 - ...73\347\272\277\351\205\215\347\275\256.md" | 163 ---- ...54\344\273\266\350\246\201\346\261\202.md" | 10 - ...00\344\275\263\345\256\236\350\267\265.md" | 438 ++++++++- ...14\347\274\251\347\225\245\350\257\255.md" | 139 --- ...37\346\234\272\344\277\241\346\201\257.md" | 205 ----- ...25\345\276\213\345\243\260\346\230\216.md" | 14 - ...46\346\235\237\351\231\220\345\210\266.md" | 19 - ...01\347\247\273\346\223\215\344\275\234.md" | 99 -- ...73\350\231\232\346\213\237\346\234\272.md" | 149 ++- ...06\345\221\230\346\214\207\345\215\227.md" | 3 - ...25\350\231\232\346\213\237\346\234\272.md" | 4 - .../\347\244\272\344\276\213.md" | 69 -- ...41\347\220\206\345\221\275\344\273\244.md" | 95 -- ...73\347\273\237\350\265\204\346\272\220.md" | 308 ++++++- ...347\220\206\350\231\232\346\213\237CPU.md" | 1 - ...32\346\213\237\345\206\205\345\255\230.md" | 2 - ...06\350\231\232\346\213\237\346\234\272.md" | 651 +++++++++++++- ...350\231\232\346\213\237\346\234\272USB.md" | 3 - ...32\346\213\237\347\243\201\347\233\230.md" | 48 - ...32\346\213\237\347\275\221\345\215\241.md" | 44 - ...41\347\220\206\350\256\276\345\244\207.md" | 640 ++++++++++++- ...76\345\244\207\347\233\264\351\200\232.md" | 6 - ...350\207\263\347\211\251\347\220\206CPU.md" | 48 - ...21\347\273\234\350\256\276\345\244\207.md" | 109 --- ...32\346\213\237\345\206\205\345\255\230.md" | 38 - ...37\346\234\272\346\217\217\350\277\260.md" | 28 - ...37\345\221\275\345\221\250\346\234\237.md" | 2 - ...37\346\234\272\351\205\215\347\275\256.md" | 850 +++++++++++++++++- ...76\345\244\207\346\230\240\345\260\204.md" | 54 -- ...06\350\231\232\346\213\237\345\214\226.md" | 14 +- ...21\345\256\232\345\205\263\347\263\273.md" | 57 -- .../\351\205\215\347\275\256Guest-NUMA.md" | 36 - .../\351\205\215\347\275\256Host-NUMA.md" | 46 - ...SB\346\216\247\345\210\266\345\231\250.md" | 45 - ...64\351\200\232\350\256\276\345\244\207.md" | 91 -- ...275\256VNC-TLS\347\231\273\345\275\225.md" | 122 --- ...32\346\213\237\344\270\262\345\217\243.md" | 33 - ...Ie\346\216\247\345\210\266\345\231\250.md" | 57 -- ...32\346\213\237\350\256\276\345\244\207.md" | 3 - .../\351\231\204\345\275\225.md" | 148 ++- content/zh/menu/index.md | 99 +- 75 files changed, 3692 insertions(+), 3713 deletions(-) delete mode 100644 "content/zh/docs/Virtualization/CPU\344\273\275\351\242\235.md" delete mode 100644 "content/zh/docs/Virtualization/IOThread\351\205\215\347\275\256.md" delete mode 100644 "content/zh/docs/Virtualization/Libvirt\351\211\264\346\235\203.md" delete mode 100644 "content/zh/docs/Virtualization/NUMA\347\256\200\344\273\213.md" delete mode 100644 "content/zh/docs/Virtualization/PCI\347\233\264\351\200\232.md" delete mode 100644 "content/zh/docs/Virtualization/SR-IOV\347\233\264\351\200\232.md" delete mode 100644 "content/zh/docs/Virtualization/XML\351\205\215\347\275\256\346\226\207\344\273\266\347\244\272\344\276\213.md" delete mode 100644 content/zh/docs/Virtualization/halt-polling.md delete mode 100644 "content/zh/docs/Virtualization/kworker\351\232\224\347\246\273\347\273\221\345\256\232.md" delete mode 100644 content/zh/docs/Virtualization/qemu-ga.md delete mode 100644 "content/zh/docs/Virtualization/sVirt\344\277\235\346\212\244.md" delete mode 100644 "content/zh/docs/Virtualization/\344\275\223\347\263\273\346\236\266\346\236\204\347\233\270\345\205\263\351\205\215\347\275\256.md" delete mode 100644 "content/zh/docs/Virtualization/\344\275\277\347\224\250VNC\345\257\206\347\240\201\347\231\273\345\275\225.md" delete mode 100644 "content/zh/docs/Virtualization/\345\205\266\344\273\226\345\270\270\350\247\201\351\205\215\347\275\256\351\241\271.md" delete mode 100644 "content/zh/docs/Virtualization/\345\205\266\345\256\203\345\270\270\347\224\250\350\256\276\345\244\207.md" delete mode 100644 "content/zh/docs/Virtualization/\345\206\205\345\255\230\345\244\247\351\241\265.md" rename "content/zh/docs/Virtualization/\345\207\206\345\244\207\350\231\232\346\213\237\346\234\272\347\275\221\347\273\234.md" => "content/zh/docs/Virtualization/\345\207\206\345\244\207\344\275\277\347\224\250\347\216\257\345\242\203.md" (51%) delete mode 100644 "content/zh/docs/Virtualization/\345\207\206\345\244\207\345\274\225\345\257\274\345\233\272\344\273\266.md" delete mode 100644 "content/zh/docs/Virtualization/\345\207\206\345\244\207\347\216\257\345\242\203.md" delete mode 100644 "content/zh/docs/Virtualization/\345\207\206\345\244\207\350\231\232\346\213\237\346\234\272\351\225\234\345\203\217.md" delete mode 100644 "content/zh/docs/Virtualization/\345\211\215\350\250\200.md" delete mode 100644 "content/zh/docs/Virtualization/\345\234\250\347\272\277\344\277\256\346\224\271\350\231\232\346\213\237\346\234\272\351\205\215\347\275\256.md" delete mode 100644 "content/zh/docs/Virtualization/\345\255\230\345\202\250\345\277\253\347\205\247.md" delete mode 100644 "content/zh/docs/Virtualization/\345\255\230\345\202\250\350\256\276\345\244\207.md" delete mode 100644 "content/zh/docs/Virtualization/\345\256\211\345\205\250\346\234\200\344\275\263\345\256\236\350\267\265.md" delete mode 100644 "content/zh/docs/Virtualization/\345\256\211\350\243\205\346\214\207\345\215\227.md" delete mode 100644 "content/zh/docs/Virtualization/\345\256\211\350\243\205\346\226\271\346\263\225.md" rename "content/zh/docs/Virtualization/\351\252\214\350\257\201\345\256\211\350\243\205\346\230\257\345\220\246\346\210\220\345\212\237.md" => "content/zh/docs/Virtualization/\345\256\211\350\243\205\350\231\232\346\213\237\345\214\226.md" (73%) delete mode 100644 "content/zh/docs/Virtualization/\345\256\211\350\243\205\350\231\232\346\213\237\345\214\226\346\240\270\345\277\203\347\273\204\344\273\266.md" delete mode 100644 "content/zh/docs/Virtualization/\345\272\224\347\224\250\345\234\272\346\231\257.md" delete mode 100644 "content/zh/docs/Virtualization/\346\200\247\350\203\275\346\234\200\344\275\263\345\256\236\350\267\265.md" delete mode 100644 "content/zh/docs/Virtualization/\346\200\273\344\275\223\344\273\213\347\273\215-0.md" delete mode 100644 "content/zh/docs/Virtualization/\346\200\273\344\275\223\344\273\213\347\273\215-1.md" delete mode 100644 "content/zh/docs/Virtualization/\346\200\273\344\275\223\344\273\213\347\273\215.md" delete mode 100644 "content/zh/docs/Virtualization/\346\200\273\347\272\277\351\205\215\347\275\256.md" delete mode 100644 "content/zh/docs/Virtualization/\346\234\200\344\275\216\347\241\254\344\273\266\350\246\201\346\261\202.md" delete mode 100644 "content/zh/docs/Virtualization/\346\234\257\350\257\255\345\222\214\347\274\251\347\225\245\350\257\255.md" delete mode 100644 "content/zh/docs/Virtualization/\346\237\245\350\257\242\350\231\232\346\213\237\346\234\272\344\277\241\346\201\257.md" delete mode 100644 "content/zh/docs/Virtualization/\346\263\225\345\276\213\345\243\260\346\230\216.md" delete mode 100644 "content/zh/docs/Virtualization/\346\263\250\346\204\217\344\272\213\351\241\271\345\222\214\347\272\246\346\235\237\351\231\220\345\210\266.md" delete mode 100644 "content/zh/docs/Virtualization/\347\203\255\350\277\201\347\247\273\346\223\215\344\275\234.md" delete mode 100644 "content/zh/docs/Virtualization/\347\224\250\346\210\267\345\222\214\347\256\241\347\220\206\345\221\230\346\214\207\345\215\227.md" delete mode 100644 "content/zh/docs/Virtualization/\347\231\273\345\275\225\350\231\232\346\213\237\346\234\272.md" delete mode 100644 "content/zh/docs/Virtualization/\347\244\272\344\276\213.md" delete mode 100644 "content/zh/docs/Virtualization/\347\256\241\347\220\206\345\221\275\344\273\244.md" delete mode 100644 "content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237CPU.md" delete mode 100644 "content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\345\206\205\345\255\230.md" delete mode 100644 "content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\346\234\272USB.md" delete mode 100644 "content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\347\243\201\347\233\230.md" delete mode 100644 "content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\347\275\221\345\215\241.md" delete mode 100644 "content/zh/docs/Virtualization/\347\256\241\347\220\206\350\256\276\345\244\207\347\233\264\351\200\232.md" delete mode 100644 "content/zh/docs/Virtualization/\347\273\221\345\256\232qemu\350\277\233\347\250\213\350\207\263\347\211\251\347\220\206CPU.md" delete mode 100644 "content/zh/docs/Virtualization/\347\275\221\347\273\234\350\256\276\345\244\207.md" delete mode 100644 "content/zh/docs/Virtualization/\350\231\232\346\213\237CPU\345\222\214\350\231\232\346\213\237\345\206\205\345\255\230.md" delete mode 100644 "content/zh/docs/Virtualization/\350\231\232\346\213\237\346\234\272\346\217\217\350\277\260.md" delete mode 100644 "content/zh/docs/Virtualization/\350\231\232\346\213\237\346\234\272\347\224\237\345\221\275\345\221\250\346\234\237.md" delete mode 100644 "content/zh/docs/Virtualization/\350\243\270\350\256\276\345\244\207\346\230\240\345\260\204.md" delete mode 100644 "content/zh/docs/Virtualization/\350\260\203\346\225\264\350\231\232\346\213\237CPU\347\273\221\345\256\232\345\205\263\347\263\273.md" delete mode 100644 "content/zh/docs/Virtualization/\351\205\215\347\275\256Guest-NUMA.md" delete mode 100644 "content/zh/docs/Virtualization/\351\205\215\347\275\256Host-NUMA.md" delete mode 100644 "content/zh/docs/Virtualization/\351\205\215\347\275\256USB\346\216\247\345\210\266\345\231\250.md" delete mode 100644 "content/zh/docs/Virtualization/\351\205\215\347\275\256USB\347\233\264\351\200\232\350\256\276\345\244\207.md" delete mode 100644 "content/zh/docs/Virtualization/\351\205\215\347\275\256VNC-TLS\347\231\273\345\275\225.md" delete mode 100644 "content/zh/docs/Virtualization/\351\205\215\347\275\256\350\231\232\346\213\237\344\270\262\345\217\243.md" delete mode 100644 "content/zh/docs/Virtualization/\351\205\215\347\275\256\350\231\232\346\213\237\346\234\272PCIe\346\216\247\345\210\266\345\231\250.md" delete mode 100644 "content/zh/docs/Virtualization/\351\205\215\347\275\256\350\231\232\346\213\237\350\256\276\345\244\207.md" diff --git "a/content/zh/docs/Virtualization/CPU\344\273\275\351\242\235.md" "b/content/zh/docs/Virtualization/CPU\344\273\275\351\242\235.md" deleted file mode 100644 index 984f5d256..000000000 --- "a/content/zh/docs/Virtualization/CPU\344\273\275\351\242\235.md" +++ /dev/null @@ -1,78 +0,0 @@ -# CPU份额 - -## 概述 - -虚拟化环境下,同一主机上的多个虚拟机竞争使用物理CPU。为了防止某些虚拟机占用过多的物理CPU资源,影响相同主机上其他虚拟机的性能,需要平衡虚拟机vCPU的调度,避免物理CPU的过度竞争。 - -CPU份额表示一个虚拟机竞争物理CPU计算资源的能力大小总和。用户通过调整cpu\_shares值能够设置虚拟机抢占物理CPU资源的能力。cpu\_shares值无单位,是一个相对值。虚拟机获得的CPU计算资源,是与其他虚拟机的CPU份额,按相对比例,瓜分物理CPU除预留外可用计算资源。通过调整CPU份额来保证虚拟机CPU计算资源服务质量。 - -## 操作步骤 - -通过修改分配给虚拟机的运行时间的cpu\_shares值,来平衡vCPU之间的调度。 - -- 查看虚拟机的当前CPU份额: - - ``` - # virsh schedinfo - Scheduler : posix - cpu_shares : 1024 - vcpu_period : 100000 - vcpu_quota : -1 - emulator_period: 100000 - emulator_quota : -1 - global_period : 100000 - global_quota : -1 - iothread_period: 100000 - iothread_quota : -1 - ``` - - -- 在线修改:修改处于running状态的虚拟机的当前CPU份额,使用带**--live**参数的virsh schedinfo命令: - - ``` - # virsh schedinfo --live cpu_shares= - ``` - - 比如将正在运行的虚拟机openEulerVM的CPU份额从1024改为2048: - - ``` - # virsh schedinfo openEulerVM --live cpu_shares=2048 - Scheduler : posix - cpu_shares : 2048 - vcpu_period : 100000 - vcpu_quota : -1 - emulator_period: 100000 - emulator_quota : -1 - global_period : 100000 - global_quota : -1 - iothread_period: 100000 - iothread_quota : -1 - ``` - - 对cpu\_shares值的修改立即生效,虚拟机_openEulerVM_能得到的运行时间将是原来的2倍。但是这一修改将在虚拟机关机并重新启动后失效。 - -- 持久化修改:在libvirt内部配置中修改虚拟机的CPU份额,使用带**--config**参数的virsh schedinfo命令: - - ``` - # virsh schedinfo --config cpu_shares= - ``` - - 比如将虚拟机openEulerVM的CPU份额从1024改为2048: - - ``` - # virsh schedinfo openEulerVM --config cpu_shares=2048 - Scheduler : posix - cpu_shares : 2048 - vcpu_period : 0 - vcpu_quota : 0 - emulator_period: 0 - emulator_quota : 0 - global_period : 0 - global_quota : 0 - iothread_period: 0 - iothread_quota : 0 - ``` - - 对cpu\_shares值的修改不会立即生效,在虚拟机openEulerVM下一次启动后才生效,并持久生效。虚拟机euler能得到的运行时间将是原来的2倍。 - - diff --git "a/content/zh/docs/Virtualization/IOThread\351\205\215\347\275\256.md" "b/content/zh/docs/Virtualization/IOThread\351\205\215\347\275\256.md" deleted file mode 100644 index a81c17cab..000000000 --- "a/content/zh/docs/Virtualization/IOThread\351\205\215\347\275\256.md" +++ /dev/null @@ -1,59 +0,0 @@ -# IOThread配置 - -## 概述 - -KVM平台上,对虚拟磁盘的读写在后端默认由QEMU主线程负责处理。这样会造成如下问题: - -- 虚拟机的I/O请求都由一个QEMU主线程进行处理,因此单线程的CPU利用率成为虚拟机I/O性能的瓶颈。 -- 虚拟机I/O在QEMU主线程处理时会持有QEMU全局锁\(qemu\_global\_mutex\),一旦I/O处理耗时较长,QEMU主线程长时间占有全局锁,会导致虚拟机vCPU无法正常调度,影响虚拟机整体性能及用户体验。 - -可以为virtio-blk磁盘或者virtio-scsi控制器配置IOThread属性,在QEMU后端单独开辟IOThread线程处理虚拟磁盘读写请求,IOThread线程和virtio-blk磁盘或virtio-scsi控制器可配置成一对一的映射关系,尽可能地减少对QEMU主线程的影响,提高虚拟机整体I/O性能,提升用户体验。 - -## 配置说明 - -使用IOThread线程处理虚拟机磁盘读写请求,需要修改虚拟机配置,这里给出具体的配置说明。 - -- 配置虚拟机高性能虚拟磁盘的总数。例如通过配置IOThread线程的总数为4: - - ``` - - VMName - 4194304 - 4194304 - 4 - 4 - ``` - -- 给virtio-blk磁盘配置IOThread属性。**<**iothread**\>**表示IOThread线程编号,编号从1开始配置,最大为的配置值,且编号不能重复使用。例如将编号为2的IOThread配置给virtio-blk磁盘使用: - - ``` - - - - -
- - ``` - -- 给virtio-scsi控制器配置IOThread属性。例如将编号为2的IOThread配置给virtio-scsi控制器使用: - - ``` - - - -
- - ``` - -- IOThread线程绑定物理CPU - - 虚拟磁盘IOThread线程的绑核配置,将IOThread线程绑定到用户指定的物理CPU范围内,不影响vCPU线程的资源占用诉求。表示IOThread线程编号,表示绑定的物理CPU编号。 - - ``` - - - - - ``` - - diff --git "a/content/zh/docs/Virtualization/Libvirt\351\211\264\346\235\203.md" "b/content/zh/docs/Virtualization/Libvirt\351\211\264\346\235\203.md" deleted file mode 100644 index b2523aea5..000000000 --- "a/content/zh/docs/Virtualization/Libvirt\351\211\264\346\235\203.md" +++ /dev/null @@ -1,84 +0,0 @@ -# Libvirt鉴权 - -## 简介 - -用户使用libvirt远程调用功能时,如果不进行任何鉴权校验,所有连接到主机所在网络的第三方程序都可以通过libvirt的远程调用操作虚拟机,存在安全隐患。为了提升系统安全性,openEuler提供了libvirt鉴权功能,即用户通过libvirt远程调用操作虚拟机前,必须经过身份校验,只有特定用户允许访问虚拟机,从而保护组网中的虚拟机。 - -## 开启libvirt鉴权 - -openEuler默认关闭libvirt远程调用功能,这里给出开启libvirt远程调用和libvirt鉴权功能的方法。 - -1. 登录主机。 -2. 修改libvirt服务配置文件/etc/libvirt/libvirtd.conf,开启libvirt远程调用和libvirt鉴权功能。例如使用基于SASL(Simple Authentication and Security Layer)协议的TCP远程调用配置参考如下: - - ``` - # 传输层安全协议,0表示关闭,1表示开启,由用户自行配置 - listen_tls = 0 - # 开启基于TCP的远程调用,开启libvirt远程调用和libvirt鉴权功能必须配置为1 - listen_tcp = 1 - # TCP远程调用所使用的协议,由用户自行配置,此处以sasl为例 - auth_tcp = "sasl" - ``` - -3. 修改/etc/sasl2/libvirt.conf配置文件,设置SASL认证机制和sasldb数据库。 - - ``` - # sasl协议的认证机制 - mech_list: digest-md5 - # 存放用户和用户密码的数据库 - sasldb_path: /etc/libvirt/passwd.db - ``` - -4. 添加用于SASL验证的用户并设置其密码,假设用户名为userName,命令参考如下: - - ``` - # saslpasswd2 -a libvirt userName - Password: - Again (for verification): - ``` - -5. 修改/etc/sysconfig/libvirtd配置文件,开启libvirt侦听选项。 - - ``` - LIBVIRTD_ARGS="--listen" - ``` - -6. 重启libvirtd服务,使修改生效。 - - ``` - # systemctl restart libvirtd - ``` - -7. 确认libvirt远程调用的鉴权功能是否生效。根据提示输入用户名和密码能够成功连接libvirt服务,说明开启成功。 - - ``` - # virsh -c qemu+tcp://192.168.0.1/system - Please enter your authentication name: openeuler - Please enter your password: - Welcome to virsh, the virtualization interactive terminal. - - Type: 'help' for help with commands - 'quit' to quit - - virsh # - ``` - - -## 管理SASL - -这里给出管理SASL用户的操作。 - -- 查询数据库中存在的用户 - - ``` - # sasldblistusers2 -f /etc/libvirt/passwd.db - user@localhost.localdomain: userPassword - ``` - -- 从数据库中删除用户user - - ``` - # saslpasswd2 -a libvirt -d user - ``` - - diff --git "a/content/zh/docs/Virtualization/NUMA\347\256\200\344\273\213.md" "b/content/zh/docs/Virtualization/NUMA\347\256\200\344\273\213.md" deleted file mode 100644 index 5f86e2384..000000000 --- "a/content/zh/docs/Virtualization/NUMA\347\256\200\344\273\213.md" +++ /dev/null @@ -1,6 +0,0 @@ -# NUMA简介 - -传统的多核运算使用SMP(Symmetric Multi-Processor)模式:将多个处理器与一个集中的存储器和I/O总线相连。所有处理器只能访问同一个物理存储器,因此SMP系统也被称为一致存储器访问(UMA)系统。一致性指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。很显然,SMP的缺点是可伸缩性有限,因为在存储器和I/O接口达到饱和的时候,增加处理器并不能获得更高的性能。 - -NUMA(Non Uniform Memory Access Architecture) 模式是一种分布式存储器访问方式,处理器可以同时访问不同的存储器地址,大幅度提高并行性。 NUMA模式下,处理器被划分成多个“节点”(NODE), 每个节点分配一块本地存储器空间。所有节点中的处理器都可以访问全部的物理存储器,但是访问本节点内的存储器所需要的时间,比访问某些远程节点内的存储器所花的时间要少得多。 - diff --git "a/content/zh/docs/Virtualization/PCI\347\233\264\351\200\232.md" "b/content/zh/docs/Virtualization/PCI\347\233\264\351\200\232.md" deleted file mode 100644 index 6a5f81583..000000000 --- "a/content/zh/docs/Virtualization/PCI\347\233\264\351\200\232.md" +++ /dev/null @@ -1,84 +0,0 @@ -# PCI直通 - -PCI直通是指将host上的物理PCI设备直接呈现给一台虚拟机,供虚拟机直接访问的一种使用方式。PCI直通使用了vfio设备直通方式,为虚拟机配置PCI直通的xml配置如下: - -``` - - - -
- - -
- -``` - -**表 1** PCI直通设备配置项 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

参数名

-

说明

-

取值

-

hostdev.source.address.domain

-

host OS上的PCI设备的domain号。

-

>=0

-

hostdev.source.address.bus

-

host OS上的PCI设备bus号。

-

>=1

-

hostdev.source.address.slot

-

host OS上的PCI设备的device号。

-

>=0

-

hostdev.source.address.function

-

host OS上的PCI设备的function号。

-

>=0

-

hostdev.driver.name

-

可选配置项,指定PCI直通的后端驱动。

-

vfio(默认配置项)

-

hostdev.rom

-

直通设备的ROM是否呈现给虚拟机。

-

可以配置为“on/off”,默认为“on”。

-
  • on:表示直通设备的ROM呈现给虚拟机,例如:直通网卡虚拟机需要从该网卡的PXE启动时,可以将该选项配置为“on”,HBA卡直通虚拟机需要从ROM中启动时可以将该选项配置为“on”。
  • off:表示直通设备的ROM不呈现给虚拟机。
-

hostdev.address type

-

PCI设备呈现的Guest内bdf号。

-

[0x03-0x1e](slot范围)

-

说明:

-
  • domain为域信息,bus为总线号,slot为插槽号,function为功能
  • 除了slot插槽号,这里其余均默认为0。
  • 第一个slot插槽号0x00被系统占用,第二个slot号0x01被IDE控制器和USB控制器占用,第三个slot号0x02被video占用。
  • 最后一个slot号0x1f被pvchannel占用。
-
- ->![](public_sys-resources/icon-note.gif) **说明:** ->VFIO直通方式的最小直通单位是iommu\_group,host根据硬件上的ACS位,来划分iommu\_group。同一个iommu\_group中的设备只允许直通给同一台虚拟机(一个PCI设备上的若干个function,如果属于同一个iommu\_group,只允许直通给一个虚拟机使用)。 - diff --git "a/content/zh/docs/Virtualization/SR-IOV\347\233\264\351\200\232.md" "b/content/zh/docs/Virtualization/SR-IOV\347\233\264\351\200\232.md" deleted file mode 100644 index 26845f952..000000000 --- "a/content/zh/docs/Virtualization/SR-IOV\347\233\264\351\200\232.md" +++ /dev/null @@ -1,171 +0,0 @@ -# SR-IOV直通 - -## 概述 - -SR-IOV(Single Root I/O Virtualizaiton)是一种基于硬件的虚拟化解决方案,通过SR-IOV技术可以将一个PF(Physical Function)虚拟成多个VF(Virtual Function),每个VF都可以单独被直通给一个虚拟机,极大地提升了硬件资源利用率和虚拟机的I/O性能。一种典型的应用场景就是网卡SR-IOV设备直通,利用SR-IOV技术可以将一个物理网卡(PF)虚拟成多个VF网卡,再把VF直通给虚拟机使用。 - ->![](public_sys-resources/icon-note.gif) **说明:** ->- SR-IOV需要物理硬件支持,使用SR-IOV前请确保要直通的硬件设备支持该能力,并且Host侧的设备驱动程序工作在SR-IOV模式下。 ->- 查询网卡具体型号的办法如下: ->例如下述回显,第一列为网卡的PCI号,19e5:1822为网卡的厂商号设备号。 ->``` -># lspci | grep Ether ->05:00.0 Ethernet controller: Device 19e5:1822 (rev 45) ->07:00.0 Ethernet controller: Device 19e5:1822 (rev 45) ->09:00.0 Ethernet controller: Device 19e5:1822 (rev 45) ->0b:00.0 Ethernet controller: Device 19e5:1822 (rev 45) ->81:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) ->81:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) ->``` - -## 操作方法 - -配置SR-IOV直通网卡的操作步骤如下: - -1. 开启网卡的SR-IOV模式。 - 1. 请确保Guest OS有网卡供应商提供的VF驱动支持,否则Guest OS内VF无法正常工作。 - 2. 在host OS的BIOS中开启SMMU/IOMMU的支持。不同厂家服务器的开启方式可能不同,请参考各服务器的帮助文档。 - 3. HOST驱动配置,开启SR-IOV的VF模式。这里以Hi1822网卡为例,开启16个VF。 - - ``` - echo 16 > /sys/class/net/ethX/device/sriov_numvfs - ``` - -2. 获取PF和VF的PCI BDF信息。 - 1. 获取当前单板上的网卡资源列表,参考命令如下: - - ``` - # lspci | grep Eth - 03:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45) - 04:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45) - 05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45) - 06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45) - 7d:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Device a222 (rev 20) - 7d:00.1 Ethernet controller: Huawei Technologies Co., Ltd. Device a222 (rev 20) - 7d:00.2 Ethernet controller: Huawei Technologies Co., Ltd. Device a221 (rev 20) - 7d:00.3 Ethernet controller: Huawei Technologies Co., Ltd. Device a221 (rev 20) - ``` - - 2. 查看VF的PCI BDF信息,参考命令如下: - - ``` - # lspci | grep "Virtual Function" - 03:00.1 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Function (rev 45) - 03:00.2 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Function (rev 45) - 03:00.3 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Function (rev 45) - 03:00.4 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Function (rev 45) - 03:00.5 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Function (rev 45) - 03:00.6 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Function (rev 45) - 03:00.7 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Function (rev 45) - 03:01.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Function (rev 45) - 03:01.1 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Function (rev 45) - 03:01.2 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Function (rev 45) - ``` - - 3. 选择一个可用的VF,根据其BDF信息将其配置写入虚拟机的配置文件中。以03:00.1设备为例,对应的bus号是03,slot号是00,function号是1。 - -3. 识别和管理PF/VF对应关系。 - 1. 识别PF对应的VF关系,以PF 03.00.0为例: - - ``` - # ls -l /sys/bus/pci/devices/0000\:03\:00.0/ - ``` - - 可下显示如下的软链接信息,根据信息可以获得其对应的VF编号(virtfnX)和PCI BDF号。 - - 2. 识别VF对应的PF关系,以VF 03:00.1为例: - - ``` - # ls -l /sys/bus/pci/devices/0000\:03\:00.1/ - ``` - - 可显示下述软连接信息,即可获得其对应PF的PCI BDF号。 - - ``` - lrwxrwxrwx 1 root root 0 Mar 28 22:44 physfn -> ../0000:03:00.0 - ``` - - 3. 获知PF/VF对应的网卡设备名称,例如: - - ``` - # ls /sys/bus/pci/devices/0000:03:00.0/net - eth0 - ``` - - 4. 设置VF的mac/vlan/qos信息,确保VF在直通之前处于UP状态。以VF 03:00.1为例,假设PF为eth0,VF编号为0。 - - ``` - # ip link set eth0 vf 0 mac 90:E2:BA:21:XX:XX # 设置mac地址 - # ifconfig eth0 up - # ip link set eth0 vf 0 rate 100 # 设置VF出口速率,单位Mbps - # ip link show eth0 # 查看mac/vlan/qos信息,确认设置成功 - ``` - -4. 挂载SR-IOV网卡到虚拟机中。 - - 创建虚拟机时,在虚拟机配置文件中增加SR-IOV直通的配置项。 - - ``` - - - -
- - - - - - ``` - - **表 1** SR-IOV配置选项说明 - - - - - - - - - - - - - - - - - - - - - - - - -

参数名

-

说明

-

取值

-

hostdev.managed

-

libvirt处理PCI设备的两种模式。

-

no:默认配置,表示直通设备由用户自行管理。

-

yes:表示直通设备由libvirt管理。SR-IOV直通场景需要配置为yes。

-

hostdev.source.address.bus

-

host OS上的PCI设备bus号。

-

>=1

-

hostdev.source.address.slot

-

host OS上的PCI设备device号。

-

>=0

-

hostdev.source.address.function

-

host OS上的PCI设备function号。

-

>=0

-
- - >![](public_sys-resources/icon-note.gif) **说明:** - >关闭SR-IOV功能。 - >在虚拟机使用完毕后(虚拟机关机,所有的VF均没有在使用中的时候),若要关闭SR-IOV功能。执行操作如下: - >这里以Hi1822网卡(eth0对应PF的网口名称)为例: - >``` - >echo 0 > /sys/class/net/eth0/device/sriov_numvfs - >``` - - diff --git "a/content/zh/docs/Virtualization/XML\351\205\215\347\275\256\346\226\207\344\273\266\347\244\272\344\276\213.md" "b/content/zh/docs/Virtualization/XML\351\205\215\347\275\256\346\226\207\344\273\266\347\244\272\344\276\213.md" deleted file mode 100644 index d5c8cf830..000000000 --- "a/content/zh/docs/Virtualization/XML\351\205\215\347\275\256\346\226\207\344\273\266\347\244\272\344\276\213.md" +++ /dev/null @@ -1,140 +0,0 @@ -# XML配置文件示例 - -## 概述 - -本节给出一个基本的AArch64虚拟机和一个x86\_64虚拟机的XML配置文件示例,供用户参考。 - -## 示例一 - -一个包含基本元素的AArch64架构虚拟机的XML配置文件,其内容示例如下: - -``` - - openEulerVM - 8 - 4 - - hvm - /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw - /var/lib/libvirt/qemu/nvram/openEulerVM.fd - - - - - - - - - 1 - - destroy - restart - restart - - /usr/libexec/qemu-kvm - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -## 示例二 - -一个包含基本元素及总线元素x86\_64架构虚拟机的XML配置文件,其配置示例如下: - -``` - - openEulerVM - 8388608 - 8388608 - 4 - 1 - - hvm - - - - - - - - - destroy - restart - restart - - /usr/libexec/qemu-kvm - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - - - - - -