ESXI PCI SATA Controller Passthrough


Recommended Posts

I have an ESXI 5.1 server based on the Gigabyte GA-Z77N-WIFI motherboard. What i want to do is to combine this and my NAS, which currently consists of 5x 2TB drives formatted as NTFS, with the view of adding more drives in the future.

My plan is to add a HighPoint Rocket 2720SGL SATA controller to the free PCI Express slot in my ESXI server, then pass that through to a Windows based Virtual Machine.

From what I gather it shouldn't really matter if ESXI has drivers or not for the HighPoint Rocket 2720SGL. All i want to do is use it in a dedicated Windows Virtual Machine. So basically passthrough to the Windows VM, install the drivers in Windows, then windows will see any drives i add to the HighPoint Rocket 2720SGL.

 

The end result would be my Windows VM has native access to any drives connected to the HighPoint Rocket 2720SGL and ESXI can use any drives connected to the motherboards SATA ports for datastores, as its doing now.

Basically i'm just looking to confirm I can do what I think i can before purchasing the HighPoint Rocket 2720SGL. I'm not bothered about raid as i keep my own backups on separate external drives.

Passthrough is sketchy at best, I've tried to passthrough an adaptec SCSI-320 controller and it just refused to work entirely on windows, it partially worked on linux. I also tried an NVIDIA Quadro GFX card and the VM didn't even boot, it was going weird, and then the whole server froze.

If it works, it probably works well, if it doesn't work, it'll screw your entire server.

Yes this will work, I have done this myself.  As long as you plan on using the Rocket Raid as a eSata device, and not some soft raid.  As esx doesn't support software raid.  However, with this being said, I was able to get my 12tb array to be detected and install the drivers in the guest os (host doesn't need any) but my raid showed up as "uninitialized or unformated".  I wasn't going to wipe out all my data to see if it was "functional", so I'll never know for sure.  You may also want to try connecting your eSata connection directly to a built in motherboard port and use a physical rdm passthrough of the drive to the VM.  See the second part of; http://www.vm-help.com/esx40i/SATA_RDMs.php for Physical RDM's  You can use a eSata Bracket to easily connect to the internal motherboard port.

 

As much as all this works in theory, I wasn't able to get my raid to work in the end.  But it could be my raid array just not working properly with this sort of thing.

 

And as others have stated, I would assume your already aware that vT-d is required by the processor, BUT it is also required by the motherboard.  IE; if you don't see a vt-d option in the bios, your screwed.  Luckily, some brands have updated bios that enable the support so check that out if needed.  Mine was a Gigabyte Z77 also and had updated bios.  And "k" series, intel processors, do not support VT-d :(

Intel make it even more confusing going by their ark lookup listing Q77 as having VT-d support but not Z77 and I really don't see why Intel would not list support for the Z77 since its the CPU that has the VT-d anyway.


http://ark.intel.com/compare/64027,64024


 

Intel make it even more confusing going by their ark lookup listing Q77 as having VT-d support but not Z77 and I really don't see why Intel would not list support for the Z77 since its the CPU that has the VT-d anyway.

http://ark.intel.com/compare/64027,64024

 

 

The CPU has the goods, the motherboard has to be able to utilize those goods, and the Z77 does as I'm using it right now.

Yup, I built my ESXI server aware that both the processor and motherboard had to support Vt-d. The processor is an i7 3770T which supports VT-d, the motherboard allow for it to be enabled.

 

The on-board Wi-Fi works when passed through to a VM, just seems to be hit and miss with sata / raid controllers from what i read sadly.

 

2sbx006.jpg

 

 

Yes this will work, I have done this myself.  As long as you plan on using the Rocket Raid as a eSata device, and not some soft raid.  As esx doesn't support software raid.  However, with this being said, I was able to get my 12tb array to be detected and install the drivers in the guest os (host doesn't need any) but my raid showed up as "uninitialized or unformated".  I wasn't going to wipe out all my data to see if it was "functional", so I'll never know for sure.  You may also want to try connecting your eSata connection directly to a built in motherboard port and use a physical rdm passthrough of the drive to the VM.  See the second part of; http://www.vm-help.com/esx40i/SATA_RDMs.php for Physical RDM's  You can use a eSata Bracket to easily connect to the internal motherboard port.

 

As much as all this works in theory, I wasn't able to get my raid to work in the end.  But it could be my raid array just not working properly with this sort of thing.

 

And as others have stated, I would assume your already aware that vT-d is required by the processor, BUT it is also required by the motherboard.  IE; if you don't see a vt-d option in the bios, your screwed.  Luckily, some brands have updated bios that enable the support so check that out if needed.  Mine was a Gigabyte Z77 also and had updated bios.  And "k" series, intel processors, do not support VT-d  :(

 

I basically want to just use the Rocket Raid to connect hard drives and use each drive as an individual drive. I don't actually wish to use raid or anything.

 

So you were able to pass a Rocket Raid card through on your build, or was this a different card / build?

 

I'm guessing in theory it should, my worry is like n_K mentioned ESXi seems to be really fussy with what will work after it's passed though.

"I basically want to just use the Rocket Raid to connect hard drives and use each drive as an individual drive."

You don't need passthru for that.. If the host sees the card and can see the disks, then you can just raw map the drives to the VM.

http://blog.davidwarburton.net/2010/10/25/rdm-mapping-of-local-sata-storage-for-esxi/

http://www.vm-help.com/esx40i/SATA_RDMs.php

http://www.experts-exchange.com/Software/VMWare/A_9174-HOW-TO-Add-Local-Storage-e-g-a-SATA-disk-as-a-Raw-Disk-Mapping-RDM-or-Mapped-RAW-LUN-to-a-virtual-machine-hosted-on-ESXi.html

Google for other guides/tutorials on how to do it

This is how I give access to the disks on N40L to my storage VM..

post-14624-0-47844400-1377086014.png

  • Like 1
  • 2 months later...

Just to confirm to anyone who find's this post in the future the HighPoint Rocket 2720SGL does indeed pass though perfectly to a VM with no trouble on my ESXi setup.

 

So far no problems what so ever, I will have a couple of 4TB drives to add later this week. All been well that is my storage needs sorted for the next couple of years!

 

hb0j.png

This topic is now closed to further replies.
  • Posts

    • We have disabled advertising in the forums for now for an undetermined period. If you feel like you get a lot of value out of the site please do whitelist ads on the news articles, and/or consider getting a subscription, we offer two tiers, one at: $14 per year (support the site for just over a dollar a month) or the $28/year tier (just over $2/month) that disables advertising and affiliate link tracking throughout the site (so also on the news side). We also have a 'Buy us a coffee' page if you just want to make a one-time donation. I am not mincing words when I say it is becoming harder and harder to monetize publications like Neowin, it's a fact of life that when we can no longer afford to pay for everything we'll go like many other sites already have. It doesn't have to cost you anything There are other ways to support Neowin too, like posting on topic content in the forums (technical support/questions/helping others) and sharing our news articles.. this costs nothing but your time and is just as important as subscribing or making a monetary donation! Anyway thanks for your time and continued support of Neowin. Now in our 26th year, and hopefully many more! For all the lurkers out there that whitelist us, make a free member account, and see fewer (only inline) ads on the news side  
    • BATorrent 3.0.2 by Razvan Serea BATorrent is a lightweight, open-source BitTorrent client built with modern C++ and Qt 6, offering a clean, fast, and privacy-focused alternative to traditional torrent apps. It supports magnet links, .torrent files, resume data, sequential downloading, per-file priorities, and even imports from qBittorrent. Power users benefit from integrated RSS auto-download with regex filtering, duplicate detection, and automatic tracker lists from Stremio. Streaming is seamless thanks to auto-detected players like VLC and IINA. BATorrent includes robust VPN tools—interface binding, auto-detection for WireGuard-based services like Mullvad and NordLynx, kill switch, proxy support, and IP filtering. A full WebUI enables remote control, while integrations with Plex, Jellyfin, and Emby automate library updates. With themes, speed scheduling, system-tray alerts, and cross-platform support for Windows, Linux, and macOS, BATorrent delivers a polished, high-performance torrenting experience. BATorrent features: Core .torrent file and magnet link support Resume data — picks up where you left off after restart Import torrents from qBittorrent Create .torrent files from any file or folder Sequential download mode Per-file priority control (skip, low, normal, high) Seed ratio limits with auto-pause DHT, PEX, UPnP, NAT-PMP RSS Auto-Download Subscribe to RSS feeds — automatically download new torrents as they appear Regex filters — match only what you want (e.g. 1080p|720p, S01E\d+) Per-feed settings — custom save path, check interval (5–1440 min), enable/disable Auto-download — matched items are downloaded automatically in the background Supports magnet links, .torrent URLs, and tags Tray notifications when items are auto-downloaded Duplicate detection — never downloads the same item twice Stremio Stremio Addon System pre-installed — works out of the box Auto tracker list from ngosang/trackerslist Streaming Play while downloading — stream video files before the download is complete Supports mp4, mkv, avi, mov, wmv, flv, webm, m4v, ts Auto-detects installed players (VLC, IINA, system default) VPN & Privacy Interface binding — lock torrent traffic to a specific network interface (e.g. tun0) Auto VPN detection — identifies VPN interfaces (tun, tap, WireGuard, Mullvad, NordLynx, ProtonVPN) Kill switch — automatically pauses all torrents if the VPN interface drops Auto-resume — resumes only the torrents paused by the kill switch when VPN reconnects Proxy support — SOCKS5 and HTTP proxy with optional authentication IP filtering — load P2P blocklists to block unwanted IP ranges Protocol encryption (enabled / forced / disabled) WebUI Remote management — control torrents from any browser at http://localhost:8080 REST API with JSON responses Add torrents via magnet link or .torrent upload Pause, resume, remove torrents remotely View peers and files per torrent Dark theme matching the desktop app HTTP Basic Auth with SHA-256 password hashing Configurable port and remote access (localhost vs 0.0.0.0) Interface 3 themes: Dark, Light, Midnight (bat/vampire aesthetic) Real-time speed graph Detailed panel with tabs: General, Peers, Files, Trackers Filter bar: search by name, filter by state (Active, Downloading, Seeding, Paused, Finished) Drag & drop .torrent files and magnet links Drag & drop reorder in torrent list System tray with notifications (download complete, kill switch events, RSS auto-downloads) Splash screen with bat animation Bilingual: English and Portuguese (BR), auto-detected from system locale Bandwidth Scheduler Alternative speed limits — set different download/upload limits on a schedule Time range — configure active hours (e.g. 01:00 to 07:00), supports overnight ranges Per-day control — choose which days of the week the schedule applies Automatically switches between normal and alternative speeds Media Server Integration Plex — automatically trigger library scan when a download completes Jellyfin / Emby — same automatic library refresh via API Configure server URL and authentication token/key in Settings System Cross-platform: Windows, Linux, macOS Auto-shutdown — automatically shut down PC when all downloads complete (60s cancellable countdown) Auto-update system (AppImage on Linux, installer on Windows, DMG on macOS) CLI arguments: pass .torrent files or magnet: URIs directly Keyboard shortcuts: Space to toggle pause, Ctrl+A to select all, Ctrl+O to open BATorrent 3.0.2 changelog: Phone pairing & WebUI The browser WebUI was reskinned to match the desktop app — same dark palette, Inter font, flat surfaces, the real BATorrent logo (it was a random bat before), and a proper magnet icon. It now looks like the same product, not a separate dashboard. Pairing is one tap and zero typing: the generated WebUI password is now copyable, and the QR code carries the credentials — scanning it from your phone logs straight in (no typing the IP or password), then drops the credentials from the address bar. Search Two new providers: RuTor (CIS sources, no login, via a public TorAPI relay) and Torrents-CSV. Results are sorted by seeders (healthiest first), and each search now times out after 15 s so one dead provider can't hang the UI. Files & trackers Per-file priority is back: right-click a file in the detail panel to set Skip / Low / Normal / High. Rename an individual file inside a torrent (double-click or the file menu), separate from renaming the torrent. Remove a tracker from a torrent (the ✕ on a tracker row); adding was already there. Smart Paste on Ctrl+V — paste a magnet, a 40-char info-hash, or a .torrent URL straight from the clipboard and it's added immediately (text fields still paste text normally). Covers & titles Anime fansub naming ([Group] Title - NN) now resolves to the right show. Audio channel layouts in titles (DDP5.1, 7.1, …) are stripped so they don't pollute cover matching. Under the hood The legacy QWidget interface is gone. QML had been the only UI since 3.0.0 (reachable old code lived behind a hidden --legacy flag); with parity confirmed, the entire QWidget layer — main window, every dialog, the theme manager — was removed (~13,400 lines). The four restored actions above were features that backend already supported but the QML port had never wired. macOS: the WebUI password hash moved out of the keychain into app settings, so launching the app no longer pops a login-keychain password prompt on unsigned builds. The actual password still lives in the keychain. Cleanup: ~400 orphaned translation strings and a batch of dead code removed; internal duplication collapsed; an ARCHITECTURE.md added for contributors. Unit / security / memory tests and the ASan/UBSan/TSan sanitizers stay green. Download: BATorrent 3.0.2 | 30.5 MB (Open Source) Download: BATorrent Portable | 42.3 MB Links: BATorrent Website | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • How about a global switch to turn the awful things off instead of a registry hack? Then everyone wins.
    • This doesn't strike me as so shocking when... " IT admins do have some control over this rollout. If they choose to opt out, devices in their tenant won't automatically get the dreaded Copilot app"
  • Recent Achievements

    • Mentor
      grik went up a rank
      Mentor
    • Dedicated
      JKR earned a badge
      Dedicated
    • One Year In
      CHUNWEI earned a badge
      One Year In
    • Conversation Starter
      FBSPL earned a badge
      Conversation Starter
    • Week One Done
      I2D earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      475
    2. 2
      PsYcHoKiLLa
      262
    3. 3
      Skyfrog
      79
    4. 4
      ATLien_0
      60
    5. 5
      FloatingFatMan
      60
  • Tell a friend

    Love Neowin? Tell a friend!