From 174d98055b379b60fd64e8c7e7d3900bf0f79f92 Mon Sep 17 00:00:00 2001 From: 7Wate Date: Wed, 17 Jul 2024 20:01:45 +0800 Subject: [PATCH] =?UTF-8?q?KVM=EF=BC=9A=E5=AE=89=E8=A3=85=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2.KVM虚拟化/2. KVM 安装配置.md | 98 +++++++++---------- 1 file changed, 45 insertions(+), 53 deletions(-) diff --git a/Tech/operating-system/Virtualization/2.KVM虚拟化/2. KVM 安装配置.md b/Tech/operating-system/Virtualization/2.KVM虚拟化/2. KVM 安装配置.md index c1051950..095a3535 100644 --- a/Tech/operating-system/Virtualization/2.KVM虚拟化/2. KVM 安装配置.md +++ b/Tech/operating-system/Virtualization/2.KVM虚拟化/2. KVM 安装配置.md @@ -23,14 +23,14 @@ date: 2024-07-16 在部署 KVM 前,需要确保系统的 CPU 支持硬件虚拟化技术。这些技术包括 Intel 的 VT-x 和 AMD 的 AMD-V。以下是检查方法: -1. Intel CPU:使用命令 `grep -E "vmx" /proc/cpuinfo` 检查 CPU 是否支持 VT-x。 -2. AMD CPU:使用命令 `grep -E "svm" /proc/cpuinfo` 检查 CPU 是否支持 AMD-V。 +1. **Intel CPU**:使用命令 `grep -E "vmx" /proc/cpuinfo` 检查 CPU 是否支持 VT-x。 +2. **AMD CPU**:使用命令 `grep -E "svm" /proc/cpuinfo` 检查 CPU 是否支持 AMD-V。 如果命令输出中包含 `vmx` 或 `svm`,则表示 CPU 支持相应的虚拟化技术。 #### 启用 BIOS/UEFI 中的虚拟化支持 -即使 CPU 支持虚拟化技术,也需要在 BIOS/UEFI 中启用相应的功能。以下是通用的启用步骤,具体步骤可能因主板制造商不同而有所差异: +**即使 CPU 支持虚拟化技术,也需要在 BIOS/UEFI 中启用相应的功能。**以下是通用的启用步骤,具体步骤可能因主板制造商不同而有所差异: 1. 启动计算机并进入 BIOS/UEFI 设置界面(通常按 `Delete`、`F2`、`F10` 或 `Esc` 键)。 2. 在 BIOS/UEFI 设置中,找到“高级”或“处理器”选项。 @@ -41,9 +41,9 @@ date: 2024-07-16 KVM 作为 Linux 内核的一部分,主要在 Linux 操作系统上运行。以下是一些常用的、支持 KVM 的 Linux 发行版: -- **Ubuntu**:广泛使用的发行版,提供了良好的社区支持和文档。 - **CentOS**:企业级发行版,基于 Red Hat Enterprise Linux (RHEL) 的源代码构建,适合服务器环境。 - **RHEL**:Red Hat Enterprise Linux,提供商业支持和长期维护,广泛应用于企业环境。 +- **Ubuntu**:广泛使用的发行版,提供了良好的社区支持和文档。 ## 安装 KVM 和 QEMU @@ -58,7 +58,7 @@ KVM 作为 Linux 内核的一部分,主要在 Linux 操作系统上运行。 2. 安装 KVM、QEMU 和相关工具: ```bash - sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils + apt -y install qemu-kvm libvirt-daemon-system libvirt-daemon virtinst libosinfo-bin ``` 3. 启用并启动 libvirtd 服务: @@ -72,13 +72,13 @@ KVM 作为 Linux 内核的一部分,主要在 Linux 操作系统上运行。 1. 更新系统: ```shell - sudo yum update + sudo dnf update ``` 2. 安装 KVM、QEMU 和相关工具: ```shell - sudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install + sudo dnf install qemu-kvm libvirt virt-install ``` 3. 启用并启动 libvirtd 服务: @@ -130,7 +130,7 @@ sudo systemctl enable --now libvirtd - 在 CentOS/RHEL 上安装: ```shell - sudo yum install virt-manager + sudo dnf install virt-manager ``` - 在其他 Linux 发行版上安装: @@ -206,6 +206,7 @@ sudo systemctl enable --now libvirtd QEMU: Checking for device /dev/kvm: PASS QEMU: Checking for device /dev/vhost-net: PASS QEMU: Checking for device /dev/net/tun: PASS + …… ``` 通过以上步骤,可以确保 KVM 及其相关工具已正确安装并配置好。接下来可以开始创建和管理虚拟机,充分利用 KVM 提供的虚拟化功能。 @@ -214,7 +215,7 @@ sudo systemctl enable --now libvirtd ### 配置网络桥接 -网络桥接允许虚拟机直接与主机网络进行通信,使其像物理机一样访问网络。以下是创建和配置虚拟网络桥接的详细步骤: +网络桥接允许虚拟机直接与主机网络进行通信,使其像物理机一样访问网络。以下是使用 `nmcli` 创建和配置虚拟网络桥接的详细步骤: #### 创建虚拟网络桥接(桥接模式) @@ -223,75 +224,64 @@ sudo systemctl enable --now libvirtd - 在 Ubuntu 上: ```shell - sudo apt install bridge-utils + sudo apt update + sudo apt install network-manager ``` - 在 CentOS/RHEL 上: ```shell - sudo yum install bridge-utils + sudo dnf install NetworkManager ``` 2. **配置网络桥接**: - - 编辑网络配置文件以添加桥接配置。例如,假设你正在使用 `eth0` 接口。 - - - **在 Ubuntu 上**: 编辑 `/etc/netplan/01-netcfg.yaml` 文件(具体文件名可能不同): - - ```yaml - network: - version: 2 - renderer: networkd - ethernets: - eth0: - dhcp4: no - bridges: - br0: - interfaces: [eth0] - dhcp4: yes - ``` - - 应用配置: + - 创建一个新的网桥接口: ```shell - sudo netplan apply + sudo nmcli connection add type bridge ifname br0 ``` - - **在 CentOS/RHEL 上**: 创建或编辑 `/etc/sysconfig/network-scripts/ifcfg-br0` 文件: + - 将物理接口连接到网桥上,例如假设你正在使用 `eth0` 接口: - ```ini - DEVICE=br0 - TYPE=Bridge - BOOTPROTO=dhcp - ONBOOT=yes + ```shell + sudo nmcli connection add type bridge-slave ifname eth0 master br0 ``` - 编辑 `/etc/sysconfig/network-scripts/ifcfg-eth0` 文件: + - 建议禁用网桥接口 IPv4 和 IPv6,网桥接口仅作为二层设备使用: - ```ini - DEVICE=eth0 - BOOTPROTO=none - ONBOOT=yes - BRIDGE=br0 + ```shell + sudo nmcli connection modify br0 ipv4.method disable + sudo nmcli connection modify br0 ipv6.method disable ``` - 重启网络服务: + - 激活网桥和物理接口: - ``` - sudo systemctl restart network + ```shell + sudo nmcli connection up br0 + sudo nmcli connection up eth0 ``` -#### 配置桥接网络的详细步骤 +#### 验证桥接配置 -1. **验证桥接配置**: +1. **检查网桥接口状态**: ```shell - ip a + nmcli connection show + nmcli device status ``` - 应该看到 `br0` 接口与 `eth0` 接口关联,且获得了 IP 地址。 + 应该看到类似以下的输出,表示网桥 `br0` 和物理接口 `eth0` 已经配置并启用: -2. **配置 libvirt 使用桥接网络**: 编辑或创建网络配置文件,例如 `/etc/libvirt/qemu/networks/bridged.xml`: + ```text + NAME UUID TYPE DEVICE + br0 12345678-1234-1234-1234-123456789abc bridge br0 + eth0 87654321-4321-4321-4321-abcdefabcdef ethernet eth0 + ``` + +#### 配置 Libvirt 使用桥接网络 + +1. **编辑或创建网络配置文件**:例如 `/etc/libvirt/qemu/networks/bridged.xml`: ```xml @@ -301,7 +291,7 @@ sudo systemctl enable --now libvirtd ``` - 定义并启动该网络: +2. **定义并启动该网络**: ```shell sudo virsh net-define /etc/libvirt/qemu/networks/bridged.xml @@ -309,6 +299,8 @@ sudo systemctl enable --now libvirtd sudo virsh net-autostart bridged ``` +通过这些步骤,您可以在 Ubuntu 和 CentOS 系列系统中使用 `nmcli` 来统一配置和管理网络桥接。这确保了配置的一致性,并简化了网络管理。 + ### 配置存储池和存储卷 存储池和存储卷管理是 KVM 中虚拟机存储管理的重要组成部分。存储池可以是目录、LVM 或 NFS 等类型,存储卷则是具体的磁盘映像文件。 @@ -371,7 +363,7 @@ sudo systemctl enable --now libvirtd - 在 CentOS/RHEL 上: ```shell - sudo yum install nfs-utils + sudo dnf install nfs-utils ``` - 定义存储池: @@ -520,7 +512,7 @@ sudo systemctl enable --now libvirtd - 在 CentOS/RHEL 上: ```shell - sudo yum install virt-manager + sudo dnf install virt-manager ``` 2. **启动 `virt-manager`**: