KVM:安装配置
This commit is contained in:
parent
a631118fad
commit
174d98055b
@ -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`**:
|
||||||
|
Loading…
Reference in New Issue
Block a user