# VMware虚机环境

{% hint style="danger" %}
道云只支持物理机作为PX的生产环境，**不支持虚拟机作为PX的生产环境。**
{% endhint %}

{% hint style="danger" %}
本章节描述在VMware虚拟机环境中**测试PX**时，如何尽可能的让PX稳定运行。**如果虚拟机环境不满足此章的要求，无论PX出现的任何问题，道云都不予解答**。
{% endhint %}

## VMware虚机的配置要求

{% hint style="info" %}
指导原则是要求**最高级别的资源优先级**，禁止其它任何虚机同PX的虚机抢夺资源。

有\*的要求是尽力而为
{% endhint %}

| #   | 要求       | 描述                                                                                                                         |
| --- | -------- | -------------------------------------------------------------------------------------------------------------------------- |
| 1   | 虚机环境独享   | PX的存储节点必须跑在独立的虚机里。这个虚机不跑任何其它的业务。                                                                                           |
| 2   | vCPU资源独享 | 虚机的vCPU资源必须全部预留(Reserve)                                                                                                   |
| 3   | vCPU单槽位  | vCPU配置单槽位(Socket)，因为PX进程只能识别一个槽位的vCPU                                                                                      |
| 4   | 内存资源独享   | 虚机的内存资源必须全部预留锁定(Reserve and Lock)                                                                                          |
| 5   | 根盘资源独享   | <p>虚机的根盘必须是来自<strong>非共享</strong>的Datastore, </p><p>并且是厚置备置零(Thick Provisioning Eager Zero)</p>                            |
| 6   | 数据盘资源独享  | <p>虚机的数据盘必须</p><p>是RAID卡的PCI穿透(PCI Pass Through)<br>或者是裸设备映射(Raw Device Mapping)</p><p><strong>或者虚拟盘VMDK用dd写零</strong></p> |
| 7\* | 优先响应     | 虚机的延迟敏感度(Latency Sensitivity)必须设置为高(High)                                                                                  |
| 8\* | NUMA绑定   | 虚机的必须锁定在一个NUMA NODE上                                                                                                       |
| 9\* | 网卡独享     | 虚机里的PX使用PCI穿透的网卡                                                                                                           |

## 虚拟盘(VMDK)如何用dd写零

{% hint style="danger" %}
对裸设备做dd写零会彻底抹除数据，请务必确认是空盘，而且在PX安装之前操作。如果dd失败报错，或者dd速度小于50MB/s, **则此虚拟盘不可用。**
{% endhint %}

```
dd if=/dev/zero of=/dev/sdX bs=1M oflag=sync status=progress
```

如果盘上已经有数据，例如根盘，请按以下操作。

```
dd if=/dev/zero of=/dd.file bs=1M oflag=sync status=progress
# 切勿重启
rm -f /dd.file
```

## 网卡类型

| 网卡类型        | 额外要求                                                   |
| ----------- | ------------------------------------------------------ |
| 网卡PCI穿透     | 最佳，延迟最低                                                |
| VMXNET3虚拟网卡 | <p>虚机内必须安装vmtools；</p><p>必须全预留虚机的CPU和内存资源，网络延迟才能稳定</p> |

## 配置截图示例

### vCPU配置

![](https://510983296-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVqwY6bgSucE8kQKsAL%2F-L_raWmlCdiTvu0p9ML4%2F-L_rbR0f5wTUQyC9gxzl%2Fimage.png?alt=media\&token=8d71df58-4878-40c3-8a2e-3ac5751b15ba)

### 内存配置

![](https://510983296-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVqwY6bgSucE8kQKsAL%2F-L_raWmlCdiTvu0p9ML4%2F-L_rbZTMGYWR7Y6GdZpv%2Fimage.png?alt=media\&token=ad2e0093-a3d0-4dde-9296-103979bc83d5)

### 根盘配置

![](https://510983296-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVqwY6bgSucE8kQKsAL%2F-L_raWmlCdiTvu0p9ML4%2F-L_rbrfJxXGVfJPPErT8%2Fimage.png?alt=media\&token=160b8756-06b1-4061-8853-c021180f35f0)

### 数据盘RAID卡PCI穿透

![](https://510983296-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVqwY6bgSucE8kQKsAL%2F-L_reOcIODgDPDJn4uap%2F-L_reVmUgtnlDloxmVXv%2Fimage.png?alt=media\&token=800c0ffa-8623-470e-8d70-3de28356cd99)

### 延迟敏感度配置

![](https://510983296-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVqwY6bgSucE8kQKsAL%2F-L_raWmlCdiTvu0p9ML4%2F-L_rcPG9hedSn0x2Tal4%2Fimage.png?alt=media\&token=581a5ca3-084b-437b-9640-645162a81cf9)

### NUMA NODE绑定

![](https://510983296-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVqwY6bgSucE8kQKsAL%2F-L_raWmlCdiTvu0p9ML4%2F-L_rcc6yDfwJBN9Gmn8W%2Fimage.png?alt=media\&token=865b472f-6c33-4808-a350-0a0864d9dd4d)

### 网卡PCI穿透

![](https://510983296-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVqwY6bgSucE8kQKsAL%2F-L_raWmlCdiTvu0p9ML4%2F-L_rcjHYmnBu2l3Rg0Hr%2Fimage.png?alt=media\&token=78d856ea-3810-4d37-9b4b-2a71a832acb5)
