我有一个 ESXi 4.1 在可以运行 4 个 16 通道 PCI-e 卡的硬件上运行。我想从 Linux VM 访问底层硬件,以运行一些 CUDA 程序。
到目前为止,我从 Linux VM 内部只能看到通用的 VMware 显卡。我安装了 VMware 工具,lspci
但仍然给我相同的结果VGA compatible controller: VMware SVGA II Adapter.
是否可以从 VM 来宾访问 CUDA 设备?
我有一台 2005 年的老式服务器(双 3GHz Xeon,LSI53C1030T RAID/SCSI 控制器,具有 256MB 缓存,8GB RAM),我将其重新用于一些轻型 VM 存储任务。
首先尝试将 4x300GB 驱动器放入硬件 RAID5,然后在其上安装 Openfiler 的 LVM 和 iSCSI。这导致读取速度非常不一致(20MB/秒到 2GB/秒,但这可能是缓存),以及可怕但一致的 8MB/秒写入。所有这些结果都是通过本地 dd 和网络上的实际大文件传输来测量的,两者都产生了相似的结果。
所以经过大量阅读后,我发现前面提到的 LSI 控制器对于硬件 RAID 来说并不是那么好,所以我用 4x300GB 驱动器关闭了通道上的 RAID 功能,使用 mdadm 软件 RAID 制作了 RAID 阵列,并将 LVM 放在上面它。我做了更多的测试,结果有所改善(20MB/秒写入),但这仍然相当糟糕。我又花了一天时间对齐分区、优化块、条带宽度、步幅大小、使用 ext4 选项、不同的日志选项等,但没有明显的改进。
我做的另一个实验是hdparm -tT
在 /dev/md0 与 /dev/mapper/vg0-lv0(它只是整个 md0 的映射)上运行,我在通过 LVM 时速度降低了 2 倍。我读过 LVM 会引入一些速度损失,但将速度减半是不可接受的。
由于这些都没有意义,我回到了基础,在单个驱动器上创建了一个分区,没有 LVM、RAID,只是普通的旧 SCSI320 并对其进行了一些测试。我通过多次运行和多个程序获得了 ~75MB/sec 的读取和 ~55MB/sec 的写入。
因此,如果一个驱动器可以进行 75MB/秒的读取和 55MB/秒的写入,为什么其中 3 个的 RAID5(硬件或软件!)会获得如此可怕的速度?我究竟做错了什么?我还应该尝试什么?
更新 1:在继续实验时,我注意到其中一个磁盘有时不想分区;parted 和 fdisk 只会拒绝将分区实际写入它。因此,我在所有其他磁盘上尝试了相同的命令,以确保它不是系统性问题,并且看起来仅与该磁盘隔离。我继续对其进行smartctl
健康测试,一切都很好。 …