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。以下是检查方法
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
<network>
@ -301,7 +291,7 @@ sudo systemctl enable --now libvirtd
</network>
```
定义并启动该网络
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`**