为了保护虚拟机上的数据免受外部访问,您可以启用 SCSI 持久保留并配置 LUN 支持的虚拟机磁盘以在多个虚拟机之间共享。通过启用共享选项,您可以使用高级 SCSI 命令(例如 Windows 故障转移群集实现所需的命令)来管理底层存储。
当存储卷配置为 LUN
磁盘类型时,虚拟机可以使用该卷作为逻辑单元号 (LUN) 设备。因此,虚拟机可以使用 SCSI 命令部署和管理磁盘。
您可以通过 SCSI 持久保留选项保留 LUN。要启用保留,请
-
配置功能网关选项
-
激活 LUN 磁盘上的功能网关选项以发出虚拟机所需的 SCSI 设备特定输入和输出控制 (IOCTL)。
您可以为每个 LUN 磁盘设置错误策略。错误策略控制在磁盘读写操作发生输入/输出错误时虚拟机的行为。默认行为是停止客户机并生成 Kubernetes 事件。
对于具有 SCSi 连接和持久保留的 LUN 磁盘(共享卷的 Windows 故障转移群集所需),请将错误策略设置为 report
。
先决条件
-
您必须拥有集群管理员权限才能配置功能网关选项。
-
如果共享磁盘的虚拟机运行在不同的节点上,则卷访问模式必须为 ReadWriteMany
(RWX)。
如果共享磁盘的虚拟机运行在同一节点上,则 ReadWriteOnce
(RWO) 卷访问模式就足够了。
-
存储提供程序必须支持使用光纤通道 (FC)、以太网光纤通道 (FCoE) 或 iSCSI 存储协议的容器存储接口 (CSI) 驱动程序。
-
如果您是集群管理员并打算使用 LUN 配置磁盘共享,则必须在 HyperConverged
自定义资源 (CR) 上启用集群的功能网关。
-
您要共享的磁盘必须处于块模式。
步骤
-
编辑或创建虚拟机的 VirtualMachine
清单以设置所需的值,如下例所示
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: vm-0
spec:
template:
spec:
domain:
devices:
disks:
- disk:
bus: sata
name: rootdisk
- errorPolicy: report (1)
lun: (2)
bus: scsi
reservation: true (3)
name: na-shared
serial: shared1234
volumes:
- dataVolume:
name: vm-0
name: rootdisk
- name: na-shared
persistentVolumeClaim:
claimName: pvc-na-share
1 |
标识错误策略。 |
2 |
标识 LUN 磁盘。 |
3 |
标识已启用持久保留。 |
-
保存 VirtualMachine
清单文件以应用更改。
使用 LUN 和 Web 控制台配置磁盘共享
您可以使用 OpenShift Container Platform Web 控制台通过 LUN 配置磁盘共享。
步骤
-
在 Web 控制台中单击**虚拟化** → **虚拟机**。
-
选择一个虚拟机以打开**虚拟机详细信息**页面。
-
展开**存储**。
-
在**磁盘**选项卡上,单击**添加磁盘**。
-
指定**名称**、**源**、**大小**、**接口**和**存储类**。
-
选择**LUN**作为**类型**。
-
选择**共享访问 (RWX)** 作为**访问模式**。
-
选择**块**作为**卷模式**。
-
展开**高级设置**,并选中两个复选框。
-
单击**保存**。
使用命令行配置磁盘共享
步骤
-
编辑或创建虚拟机的 VirtualMachine
清单以设置所需的值,如下例所示
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: vm-0
spec:
template:
spec:
domain:
devices:
disks:
- disk:
bus: sata
name: rootdisk
- errorPolicy: report
lun: (1)
bus: scsi
reservation: true (2)
name: na-shared
serial: shared1234
volumes:
- dataVolume:
name: vm-0
name: rootdisk
- name: na-shared
persistentVolumeClaim:
claimName: pvc-na-share
1 |
标识 LUN 磁盘。 |
2 |
标识已启用持久保留。 |
-
保存 VirtualMachine
清单文件以应用更改。