SCSI 控制器和其他 VMware 控制器类型

存储控制器将磁盘驱动器连接到计算机。有不同的标准和类型的存储控制器,例如IDE、SATA和SCSI控制器。在虚拟机中,虚拟存储控制器连接虚拟和物理磁盘到这些机器。VMware虚拟机有不同类型的存储控制器可用于连接磁盘和CD/DVD驱动器。

每种类型的存储控制器都有其自己的优点和限制,但本博文主要关注SCSI控制器。然后,我将SCSI控制器与VMware vSphere虚拟机设置中提供的其他类型的存储控制器进行比较,以找出哪种存储控制器在特定情况下最好。

关于存储控制器的一般信息

创建VMware vSphere VM时,默认情况下至少会在VM配置中创建一个虚拟存储控制器。如果虚拟磁盘和CD/DVD驱动器连接到不同的存储控制器,则在创建VM后您可以拥有两个存储控制器。您还可以在创建VM时添加更多存储控制器以连接磁盘驱动器。

通过使用VMware Host Client或VMware vSphere Client,在ESXi主机上创建虚拟机,或在VMware Workstation上创建虚拟机时,将自动选择最佳的存储控制器,以为所选的客户操作系统提供最佳性能。正如我们将要看到的,这使得在VM创建向导中选择适当的客户操作系统成为一项非常重要的任务。

重视选择正确的存储控制器至关重要。较新的存储控制器类型可能不受较旧的操作系统支持。因此,在选择最佳默认控制器时应考虑所选客户操作系统中包含的驱动程序。虚拟机硬件兼容性(VMware 硬件版本)和设备类型(虚拟硬盘或 DVD-ROM)也是重要因素。较新的硬件版本支持更多的存储控制器。

在更改用于引导磁盘的存储控制器之前,您应确保客户操作系统(OS)支持此控制器类型,并且在客户操作系统中安装了适当的驱动程序。当将存储设备连接到多个存储控制器时,与将所有磁盘驱动器连接到单个存储控制器相比,输入/输出性能可以提高。因此,如果为 VM 使用了多个 SCSI 控制器,则建议的做法是将虚拟磁盘分布在这些 SCSI 控制器上,以获得更好的性能。

添加存储控制器的另一个原因是当您超过连接到控制器的最大支持磁盘设备数量时。在这种情况下,如何添加新控制器变得重要。某些控制器可以通过使用热添加功能添加到 VM 配置中。其他存储控制器类型需要冷操作,即首先关闭 VM。

虚拟机上第一个存储控制器的默认编号为0。如果添加第二个存储控制器,则分配的编号为1,依此类推。之后的控制器将按顺序编号。连接到存储控制器的存储设备的编号也是从0开始的。例如,如果您的虚拟机有一个存储控制器,并且有一个虚拟磁盘连接到该控制器,那么该磁盘的编号为(0:0)。如果向同一控制器添加第二个虚拟磁盘,则编号为(0:1)。如果在第二个存储控制器上连接另一个虚拟磁盘,则在这种情况下,磁盘的编号为(1:1)。连接节点的完整名称和编号包含控制器接口、控制器编号和磁盘编号,例如SCSI (0:0),SCSI (1:3),SATA (1:7),IDE (0:0)等。在控制器选项中无法分配SCSI (z:7),因为此编号为虚拟设备节点保留。

可用的VMware存储控制器

有许多类型的存储控制器可用。VMware vSphere虚拟机的存储控制器类型包括SCSI、IDE、AHCI SATA和NVM Express (NVMe)。

在SCSI控制器中,有四种子类型:

  • BusLogic Parallel
  • LSI Logic Parallel
  • LSI Logic SAS
  • VMware Paravirtual SCSI

A maximum of four SCSI controllers are supported per VMware virtual machine. There is a 15-device limit for devices connected to a single SCSI controller.

BusLogic Parallel

这个 VMware SCSI 控制器是为 VMware vSphere 虚拟机仿真的首批存储控制器类型之一。较旧的 Windows 版本默认包含对此控制器类型的驱动程序,因此可以在虚拟机配置中使用此控制器来安装较旧版本的 Windows(例如,Windows 2000)。BusLogic 并行 SCSI 控制器现已被视为传统控制器。不支持大于 2 TB 的磁盘的虚拟机。驱动程序将队列深度限制为 1,并对性能产生影响。如果需要更高性能的 VM 存储,请考虑使用 LSI Logic 并行 SCSI 存储控制器。

LSI Logic 并行

LSI Logic 并行以前称为 LSI Logic SCSI 控制器。这是另一个 VMware SCSI 存储控制器,从 VMware 虚拟化平台的最初版本开始就可用。LSI Logic 并行 SCSI 控制器也是仿真的,并受到许多操作系统的支持,包括旧操作系统,因为它们默认包含对此存储控制器的驱动程序。这些驱动程序支持 32 的队列深度,这使得这个 VMware SCSI 控制器成为许多客户操作系统的常见选择和默认选择。创建 Windows Server 2003 VM 时,默认选择 LSI Logic 并行,因为此存储控制器支持 SCSI2 命令,而 Windows Server 2003 支持此 SCSI 标准。

LSI Logic SAS

LSI逻辑并行存储控制器演变成LSI逻辑SAS控制器。从Windows Server 2008开始,创建新的虚拟机时默认选择LSI逻辑SAS控制器,因为LSI逻辑SAS兼容SCSI3命令,而且更新的Windows操作系统也支持较新的标准。在许多情况下,使用这个VMware SCSI控制器是首选。

兼容性:ESXi 4.x或更高版本。

VMware Paravirtual SCSI

与本文中描述的以前的VMware SCSI控制器不同,这个控制器是虚拟化感知的,支持高吞吐量。与模拟的VMware存储控制器相比,CPU负载更低。VMware paravirtual SCSI控制器(PVSCI)没有真实的硬件等效物,因此许多操作系统(主要是较旧的操作系统)不支持此控制器。必须手动安装驱动程序,使操作系统与VMware paravirtual SCSI控制器配合工作。此控制器被采用以实现高IOPS性能(每秒输入/输出操作次数)。

如果与paravirtual SCSI控制器连接的虚拟磁盘有快照,或者主机上的内存过量使用,那么使用此存储控制器类型的VM的性能可能低于预期。

兼容性:ESXi 4.x或更高版本。支持Windows Server 2003或更高版本。

需要H2

请注意,当安装了客户操作系统时更改 VMware VM 的存储控制器可能会导致现有虚拟磁盘无法访问,如果所需的驱动程序未在客户操作系统上安装。客户操作系统上必须安装 VMware Tools,因为 VMware Tools 包含与 VMware 仿真 SCSI 控制器配合使用所需的驱动程序。

当在虚拟机上安装 Windows 并将系统磁盘连接到 VMware 仿真 SCSI 控制器时,您可能需要插入包含驱动程序的虚拟软盘映像,并在安装过程中选择控制器的驱动程序以使 Windows 检测到安装磁盘。

要向虚拟机配置添加 VMware 仿真 SCSI 控制器,您可能需要添加其中一个受支持的高级 SCSI 控制器,比如 LSI 逻辑控制器,安装 VMware Tools,关闭虚拟机,将 VMware 仿真 SCSI 控制器添加到虚拟机配置中,最后,将虚拟磁盘附加到 VMware 仿真 SCSI 控制器(或将现有存储控制器类型更改为仿真 SCSI 控制器)。

AHCI SATA

这个存储控制器是新的,并且自 VMware vSphere 5.5 与虚拟硬件 10 可用。您可以通过使用 AHCI SATA 存储控制器将大量存储(包括高容量虚拟磁盘)连接到 VMware VM。SATA 存储控制器可用于引导磁盘以引导客户操作系统(OS)。确保 AHCI SATA 控制器受操作系统支持。性能不如 PVSCI 或 LSI Logic 控制器高。最好使用其他控制器来运行对磁盘性能敏感的应用程序。SATA 控制器通常默认用于 VM 的 CD/DVD 驱动器。

兼容性:ESXi 5.5 或更高版本虚拟硬件兼容性。每个 VM 支持最多四个 SATA 控制器。可以连接到单个 SATA 控制器的存储设备的最大数量为 30(0-29)。

NVMe

NVM Express 或 NVMe(非易失性存储)控制器是专为与 SSD 存储一起工作而设计的控制器。采用 NVMe 协议用于非磁性磁盘,以提供最佳性能和多队列通信。VMware vSphere 支持 NVMe 协议,您可以在 VM 配置中添加 NVMe 存储控制器。队列的最大数量为 65535,队列深度的最大值为 64000。

要求:VMware vSphere 6.5 和 VM 硬件版本 13。客户操作系统必须具有 NVMe 支持。最多支持四个 NVMe 控制器,单个 NVMe 控制器可连接 15 个磁盘(0-14)。

IDE 存储控制器

模拟IDE存储控制器是最古老的存储控制器类型之一。每个虚拟机最多可以连接一个IDE控制器和四个存储设备(两个通道 – 主要和次要,每个通道有两个设备 – 主设备和从设备)。不支持磁盘热插拔和调整大小。您需要关闭虚拟机以编辑磁盘配置。IDE控制器使用ATAPI。

您可以连接到虚拟机的磁盘总数取决于下表中显示的控制器类型。

一般建议

有一般建议可供选择VMware vSphere VM配置存储控制器,从性能和兼容性的角度考虑。

如果您不确定要为VM使用哪种SCSI控制器,请按照以下顺序(优先级)进行操作:

  1. VMware Paravirtual(PVSCI)(如果客户操作系统支持)
  2. LSI Logic SAS(如果客户操作系统支持)
  3. LSI Logic Parallel
  4. BusLogic Parallel(如果其他方法均无效)

如果要更改引导磁盘的存储控制器,必须确保存储控制器驱动程序已安装在引导模式中。如果VM配置为使用BIOS,则可能需要修改VM配置和BIOS设置。如果VM配置为使用UEFI,则更改引导磁盘的存储控制器选项更加灵活,在大多数情况下不需要额外设置。

请参考兼容性表,查看更改VM存储控制器配置后,客户操作系统是否可以引导。

请参考使用不同存储控制器类型的常规建议表。

VMware存储控制器配置

现在我们熟悉了VMware vSphere中可用的存储控制器类型,让我们看看如何在VMware vSphere Client中编辑存储控制器设置。在我的示例中,我有一个带有默认存储控制器的虚拟机,并且在此虚拟机上安装了Ubuntu Linux。

编辑虚拟机存储控制器设置需要虚拟机配置。添加或删除设备权限。

打开VMware vSphere Client,转到主机和集群,选择所需的主机,然后选择所需的虚拟机。右键单击虚拟机,在打开的菜单中点击编辑设置。您也可以点击操作 > 编辑设置

更改控制器类型

编辑设置窗口中,我看到我的虚拟机使用SCSI控制器 0,SCSI存储控制器类型为LSI Logic Parallel。下方,您可以找到SATA控制器 0,用于连接虚拟CD/DVD驱动器到虚拟机。点击SCSI控制器以展开选项,然后在更改类型行中,点击下拉菜单以更改现有存储控制器的类型。点击确定保存设置。请记住,虚拟机和客户操作系统必须支持所选控制器。如果引导磁盘连接到此存储控制器,则这一点尤为重要。

添加新存储控制器

要将新存储控制器添加到VM配置中,在编辑设置窗口中点击添加新设备,在打开的菜单中选择所需的控制器(在控制器部分)。在我的示例中,我可以选择NVMe控制器、SATA控制器或SCSI控制器。让我们将SATA控制器添加到VM配置中。

注意:如果您想使用USB透传并将物理USB设备(例如USB硬盘驱动器或闪存驱动器)直接连接到虚拟机(USB设备必须连接到主机的物理USB端口),则应添加USB控制器。

已添加SATA控制器1。最初,新控制器的名称为新SATA控制器。当您点击确定保存VM设置后,SATA存储控制器的名称将保存为SATA控制器1

连接虚拟磁盘到存储控制器

让我们添加一个新的虚拟硬盘,并将这个虚拟硬盘连接到SATA存储控制器。在编辑设置窗口中,点击添加新设备 > 硬盘

新硬盘现在显示在虚拟机配置中,但您需要配置虚拟硬盘选项,如磁盘大小,thin or thick provisioning,位置,并在Virtual Device Node选项中选择所需的存储控制器。您还可以配置共享选项,磁盘模式和 IOPs 限制(如果需要)。点击确定保存设置后,新硬盘的名称将保存为硬盘 2

如果您需要将现有虚拟硬盘连接到另一个存储控制器,请按照相同原则操作 – 打开虚拟机设置,展开磁盘设置并编辑虚拟设备节点选项。

如果我将新虚拟硬盘连接到连接了 CD/DVD 驱动器的SATA 控制器 0,我可以选择除了 SATA (0:0) 之外的 SATA (0:1),SATA (0:2) 或其他 (0:x) 节点,因为虚拟 DVD-ROM 使用 SATA (0:0)。如果我将新虚拟硬盘连接到新的SATA 控制器 1,那么我可以选择 SATA (1:0),SATA (1:1) 和该存储控制器上的任何其他空闲节点。

编辑 VMX 配置文件

您可以通过编辑 VMX 配置文件来编辑 VM 的 SCSI 控制器类型和其他存储控制器类型。这种方法是编辑 VMware vSphere Client GUI 中配置的替代方法,并可在命令行界面中使用。通常建议您使用 VMware vSphere Client,并仅

让我们在添加任何额外存储控制器和虚拟磁盘之前,探索我们的Ubuntu VM的初始VMX配置文件。在下面显示的配置部分中,仅显示与存储配置相关的行。完整的配置文件还包含其他设置,但我将跳过它们,专注于本博文中的存储配置和存储控制器。

config.version = “8”

virtualHW.version = “17”

vmci0.present = “TRUE”

scsi0.virtualDev = “lsilogic”

scsi0.present = “TRUE”

sata0.present = “TRUE”

scsi0:0.deviceType = “scsi-hardDisk”

scsi0:0.fileName = “blog-Ubuntu1.vmdk”

sched.scsi0:0.shares = “normal”

sched.scsi0:0.throughputCap = “off”

scsi0:0.present = “TRUE”

sata0:0.deviceType = “cdrom-raw”

sata0:0.clientDevice = “TRUE”

sata0:0.fileName = “emptyBackingString”

sata0:0.present = “TRUE”

displayName = “blog-Ubuntu1”

guestOS = “ubuntu-64”

最有趣的配置行是:

scsi0.virtualDev = “lsilogic”是用于连接虚拟硬盘的LSI Logic Parallel SCSI控制器。

scsi0:0.deviceType = “scsi-hardDisk”是连接到SCSI(0:0)的存储设备类型。

scsi0:0.fileName = “blog-Ubuntu1.vmdk”是连接到SCSI(0:0)节点的虚拟磁盘文件的名称。

在我添加了第二个SATA存储控制器和连接到SATA控制器的第二个虚拟磁盘后,以下行被添加到VMX配置文件中:

sata1.present = “TRUE”

sata1:0.fileName = “blog-Ubuntu1_1.vmdk”

sched.sata1:0.shares = “normal”

sched.sata1:0.throughputCap = “off”

sata1:0.present = “TRUE”

如果我们将VM配置中的LSI Logic Parallel SCSI控制器更改为LSI Logic SAS,则应编辑该行

scsi0.virtualDev = “lsilogic”

scsi0.virtualDev = “lsisas1068”

让我们看看与存储控制器相关的VMX配置参数,包括SCSI控制器。根据您的VM配置,您可能需要将0、0:0和其他值(x:x)更改为适当的值。

scsi0.present = “” – 定义SCSI控制器0是否存在(可能的值为TRUE或FALSE)。

scsi0:0.deviceType = “” 用于定义SCSI ID。支持的值有“scsi-hardDisk”、“PhysicalDrive0”、“rawDisk”、“scsi-passthru”、“scsi-nonpassThru-rdm”、“scsi-passthru”、“scsi-passthruscsi-passThru-rdm”。

scsi0:0.fileName = “diskname.vmdk” – 定义附加到定义的虚拟设备节点(在本例中为SCSI(0:0))的虚拟磁盘文件的文件名。如果虚拟磁盘文件位于同一目录中,则设置“diskname.vmdk”就足够了。如果虚拟磁盘文件位于另一个目录中,则必须定义到VMDK文件的完整路径。

sched.scsi0:0.throughputCap = “off” – 禁用带宽和吞吐量限制。设置此参数的限制的示例是sched.scsi0:0.throughputCap = 80IOPS、10KIOps、4GBps等。

scsi0:0.present = “” – 定义SCSI存储设备是否存在。可以是TRUE或FALSE。

scsi0.virtualDev = “” – 定义SCSI控制器的类型。

定义SCSI控制器类型的参数scsi0.virtualDev = “”的所有支持的值:

  • buslogic – BusLogic SCSI
  • lsilogic – LSI Logic SCSI
  • lsisas1068 – LSI Logic SAS
  • pvscsi – VMware Paravirtual SCSI

您可以使用本博客文章中介绍的流程来编辑在VMware Workstation和VMware Player上运行的虚拟机的存储控制器配置,并连接所需的存储设备到存储控制器。您也可以通过配置VMware家庭实验室在vSphere 6.7和vSphere 7中进行练习。

结论

VMware存储控制器用于连接诸如虚拟磁盘之类的存储设备到虚拟机。本博客文章介绍了各种虚拟存储控制器,包括SATA、IDE、NVMe和SCSI存储控制器,以及在VMware vSphere客户端的GUI中配置这些控制器。存储系统的性能和客户操作系统的正常工作取决于选择正确的控制器类型。在VM配置中默认选择最佳存储控制器,但您始终可以编辑VM设置并更改或添加另一种控制器类型。

不要忘记保护您的VMware虚拟机并及时执行备份。考虑使用NAKIVO进行VM备份和复制,以保护您的虚拟机和其他工作负载。

Source:
https://www.nakivo.com/blog/scsi-controller-and-other-vmware-controller-types/