1
0

KVM:安装配置

This commit is contained in:
周中平 2024-07-17 20:01:45 +08:00
parent a631118fad
commit 174d98055b
Signed by: zhouzhongping
GPG Key ID: 6666822800008000

View File

@ -23,14 +23,14 @@ date: 2024-07-16
在部署 KVM 前,需要确保系统的 CPU 支持硬件虚拟化技术。这些技术包括 Intel 的 VT-x 和 AMD 的 AMD-V。以下是检查方法 在部署 KVM 前,需要确保系统的 CPU 支持硬件虚拟化技术。这些技术包括 Intel 的 VT-x 和 AMD 的 AMD-V。以下是检查方法
1. Intel CPU使用命令 `grep -E "vmx" /proc/cpuinfo` 检查 CPU 是否支持 VT-x。 1. **Intel CPU**:使用命令 `grep -E "vmx" /proc/cpuinfo` 检查 CPU 是否支持 VT-x。
2. AMD CPU使用命令 `grep -E "svm" /proc/cpuinfo` 检查 CPU 是否支持 AMD-V。 2. **AMD CPU**:使用命令 `grep -E "svm" /proc/cpuinfo` 检查 CPU 是否支持 AMD-V。
如果命令输出中包含 `vmx``svm`,则表示 CPU 支持相应的虚拟化技术。 如果命令输出中包含 `vmx``svm`,则表示 CPU 支持相应的虚拟化技术。
#### 启用 BIOS/UEFI 中的虚拟化支持 #### 启用 BIOS/UEFI 中的虚拟化支持
即使 CPU 支持虚拟化技术,也需要在 BIOS/UEFI 中启用相应的功能。以下是通用的启用步骤,具体步骤可能因主板制造商不同而有所差异: **即使 CPU 支持虚拟化技术,也需要在 BIOS/UEFI 中启用相应的功能。**以下是通用的启用步骤,具体步骤可能因主板制造商不同而有所差异:
1. 启动计算机并进入 BIOS/UEFI 设置界面(通常按 `Delete`、`F2`、`F10` 或 `Esc` 键)。 1. 启动计算机并进入 BIOS/UEFI 设置界面(通常按 `Delete`、`F2`、`F10` 或 `Esc` 键)。
2. 在 BIOS/UEFI 设置中,找到“高级”或“处理器”选项。 2. 在 BIOS/UEFI 设置中,找到“高级”或“处理器”选项。
@ -41,9 +41,9 @@ date: 2024-07-16
KVM 作为 Linux 内核的一部分,主要在 Linux 操作系统上运行。以下是一些常用的、支持 KVM 的 Linux 发行版: KVM 作为 Linux 内核的一部分,主要在 Linux 操作系统上运行。以下是一些常用的、支持 KVM 的 Linux 发行版:
- **Ubuntu**:广泛使用的发行版,提供了良好的社区支持和文档。
- **CentOS**:企业级发行版,基于 Red Hat Enterprise Linux (RHEL) 的源代码构建,适合服务器环境。 - **CentOS**:企业级发行版,基于 Red Hat Enterprise Linux (RHEL) 的源代码构建,适合服务器环境。
- **RHEL**Red Hat Enterprise Linux提供商业支持和长期维护广泛应用于企业环境。 - **RHEL**Red Hat Enterprise Linux提供商业支持和长期维护广泛应用于企业环境。
- **Ubuntu**:广泛使用的发行版,提供了良好的社区支持和文档。
## 安装 KVM 和 QEMU ## 安装 KVM 和 QEMU
@ -58,7 +58,7 @@ KVM 作为 Linux 内核的一部分,主要在 Linux 操作系统上运行。
2. 安装 KVM、QEMU 和相关工具: 2. 安装 KVM、QEMU 和相关工具:
```bash ```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 服务: 3. 启用并启动 libvirtd 服务:
@ -72,13 +72,13 @@ KVM 作为 Linux 内核的一部分,主要在 Linux 操作系统上运行。
1. 更新系统: 1. 更新系统:
```shell ```shell
sudo yum update sudo dnf update
``` ```
2. 安装 KVM、QEMU 和相关工具: 2. 安装 KVM、QEMU 和相关工具:
```shell ```shell
sudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install sudo dnf install qemu-kvm libvirt virt-install
``` ```
3. 启用并启动 libvirtd 服务: 3. 启用并启动 libvirtd 服务:
@ -130,7 +130,7 @@ sudo systemctl enable --now libvirtd
- 在 CentOS/RHEL 上安装: - 在 CentOS/RHEL 上安装:
```shell ```shell
sudo yum install virt-manager sudo dnf install virt-manager
``` ```
- 在其他 Linux 发行版上安装: - 在其他 Linux 发行版上安装:
@ -206,6 +206,7 @@ sudo systemctl enable --now libvirtd
QEMU: Checking for device /dev/kvm: PASS QEMU: Checking for device /dev/kvm: PASS
QEMU: Checking for device /dev/vhost-net: PASS QEMU: Checking for device /dev/vhost-net: PASS
QEMU: Checking for device /dev/net/tun: PASS QEMU: Checking for device /dev/net/tun: PASS
……
``` ```
通过以上步骤,可以确保 KVM 及其相关工具已正确安装并配置好。接下来可以开始创建和管理虚拟机,充分利用 KVM 提供的虚拟化功能。 通过以上步骤,可以确保 KVM 及其相关工具已正确安装并配置好。接下来可以开始创建和管理虚拟机,充分利用 KVM 提供的虚拟化功能。
@ -214,7 +215,7 @@ sudo systemctl enable --now libvirtd
### 配置网络桥接 ### 配置网络桥接
网络桥接允许虚拟机直接与主机网络进行通信,使其像物理机一样访问网络。以下是创建和配置虚拟网络桥接的详细步骤: 网络桥接允许虚拟机直接与主机网络进行通信,使其像物理机一样访问网络。以下是使用 `nmcli` 创建和配置虚拟网络桥接的详细步骤:
#### 创建虚拟网络桥接(桥接模式) #### 创建虚拟网络桥接(桥接模式)
@ -223,75 +224,64 @@ sudo systemctl enable --now libvirtd
- 在 Ubuntu 上: - 在 Ubuntu 上:
```shell ```shell
sudo apt install bridge-utils sudo apt update
sudo apt install network-manager
``` ```
- 在 CentOS/RHEL 上: - 在 CentOS/RHEL 上:
```shell ```shell
sudo yum install bridge-utils sudo dnf install NetworkManager
``` ```
2. **配置网络桥接** 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 ```shell
sudo netplan apply sudo nmcli connection add type bridge ifname br0
``` ```
- **在 CentOS/RHEL 上** 创建或编辑 `/etc/sysconfig/network-scripts/ifcfg-br0` 文件 - 将物理接口连接到网桥上,例如假设你正在使用 `eth0` 接口:
```ini ```shell
DEVICE=br0 sudo nmcli connection add type bridge-slave ifname eth0 master br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
``` ```
编辑 `/etc/sysconfig/network-scripts/ifcfg-eth0` 文件 - 建议禁用网桥接口 IPv4 和 IPv6网桥接口仅作为二层设备使用
```ini ```shell
DEVICE=eth0 sudo nmcli connection modify br0 ipv4.method disable
BOOTPROTO=none sudo nmcli connection modify br0 ipv6.method disable
ONBOOT=yes
BRIDGE=br0
``` ```
重启网络服务 - 激活网桥和物理接口
``` ```shell
sudo systemctl restart network sudo nmcli connection up br0
sudo nmcli connection up eth0
``` ```
#### 配置桥接网络的详细步骤 #### 验证桥接配置
1. **验证桥接配置** 1. **检查网桥接口状态**
```shell ```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 ```xml
<network> <network>
@ -301,7 +291,7 @@ sudo systemctl enable --now libvirtd
</network> </network>
``` ```
定义并启动该网络 2. **定义并启动该网络**
```shell ```shell
sudo virsh net-define /etc/libvirt/qemu/networks/bridged.xml sudo virsh net-define /etc/libvirt/qemu/networks/bridged.xml
@ -309,6 +299,8 @@ sudo systemctl enable --now libvirtd
sudo virsh net-autostart bridged sudo virsh net-autostart bridged
``` ```
通过这些步骤,您可以在 Ubuntu 和 CentOS 系列系统中使用 `nmcli` 来统一配置和管理网络桥接。这确保了配置的一致性,并简化了网络管理。
### 配置存储池和存储卷 ### 配置存储池和存储卷
存储池和存储卷管理是 KVM 中虚拟机存储管理的重要组成部分。存储池可以是目录、LVM 或 NFS 等类型,存储卷则是具体的磁盘映像文件。 存储池和存储卷管理是 KVM 中虚拟机存储管理的重要组成部分。存储池可以是目录、LVM 或 NFS 等类型,存储卷则是具体的磁盘映像文件。
@ -371,7 +363,7 @@ sudo systemctl enable --now libvirtd
- 在 CentOS/RHEL 上: - 在 CentOS/RHEL 上:
```shell ```shell
sudo yum install nfs-utils sudo dnf install nfs-utils
``` ```
- 定义存储池: - 定义存储池:
@ -520,7 +512,7 @@ sudo systemctl enable --now libvirtd
- 在 CentOS/RHEL 上: - 在 CentOS/RHEL 上:
```shell ```shell
sudo yum install virt-manager sudo dnf install virt-manager
``` ```
2. **启动 `virt-manager`** 2. **启动 `virt-manager`**