揭秘 SATA 熱插拔

揭秘 SATA 熱插拔

我有一個 BIOS,可以選擇在各個連接埠上啟用熱插拔。我有一個用於 HDD 和 SSD 的滑動外殼(只不過是一個電源直通器和一個SATA端口),它允許我在物理移動驅動器之前切斷驅動器的電源。

我希望能夠方便地在那裡插入和移除 HDD/SSD,而無需每次都關閉電腦。

但是,在研究 SATA 熱插拔時,在昂貴的企業解決方案中,有可靠的資訊。我什至嘗試查看專利。我找不到一個可靠的來源來告訴我消費者世界中的熱插拔有多可靠/不可靠。

所以,我的 BIOS、主機板和外殼確實有支援。我從未見過在規格上提到可熱插拔的驅動程序,甚至在企業驅動程序上也是如此。為了這種便利,我將面臨多大的資料遺失風險?

然後,除了硬體之外,還有軟體問題。我需要作業系統支援嗎?是否有任何AT命令必須發出來拔掉驅動器,或者是否會自動將其頭停在斷電狀態?在軟體方面有一個稍微有見識的討論這裡


編輯:找到了一些有關熱插拔的更多資訊。來自Western Digital:它表示每一個根據標準定義支援SATA的驅動程式都已經支援熱插拔。

因此,SATA 相容設備無需進一步修改即可熱插拔,並為強大的熱插拔解決方案提供必要的構建塊,通常包括: 即使在插座斷電的情況下也能進行設備檢測(典型的伺服器應用)

預充電電阻可被動限制驅動器插入期間的突波電流

熱插拔控制器可主動限制驅動器插入期間的突波電流

來源:http://wdc.custhelp.com/app/answers/detail/a_id/941/~/hot-swap-or-hot-plug-wd-sata-drives


但是,上述又引發了另一個疑問。它說:

為了利用串行 ATA 硬碟的熱插拔功能,您必須使用串行 ATA 電源連接,而不是傳統 (Molex) 電源連接。傳統 (Molex) 電源連接不支援熱插拔。

我的一些驅動程式是從molex->SATA電源連接的,只是因為我的PSU上沒有SATA電源連接埠。據我所知,一些 molex 和 Sata 電源來自同一個 12V 電源軌。而且SATA插頭看起來沒有任何邏輯。它只是愚蠢的塑料。這是否意味著我很安全且文件指的是支援SATA和molex的驅動程式?

答案1

為了這種便利,我將面臨多大的資料遺失風險? 除非驅動器損壞,否則資料遺失的風險並不大。硬碟在處理意外斷電方面非常可靠。 SSD 在意外斷電方面較不可靠。也就是說,如果驅動器上沒有發生任何活動,熱插拔是非常安全的。我幾乎每天都這樣做。

我需要作業系統支援嗎? 不,驅動器不關心作業系統。如果作業系統不支援熱插拔,則表示作業系統可能需要重新啟動才能檢測驅動器,並且它不會向驅動器發送命令以進行更正常的關閉。最糟糕的情況是作業系統崩潰,但您的驅動器不會有問題。請記住,只要驅動器上沒有任何活動,就可以安全地拔掉它。

是否有任何AT命令必須發出來拔掉驅動器,或者它是否會自動將其頭停在斷電狀態? 有命令強制驅動器停放其磁頭,但當驅動器上沒有活動時它也會這樣做。不能保證它會在斷電時自動停止頭部,因為我們不能保證它有足夠的電力來做到這一點。

哦,這裡有一個警告。某些作業系統可能會延遲將資料傳送到驅動器,或將檔案系統資訊儲存到驅動器。這時您應該使用「安全刪除」或「卸載」功能。這僅適用於新寫入的資料。

答案2

而且SATA插頭看起來沒有任何邏輯。它只是愚蠢的塑料。

那是錯的。 SATA電源插頭中包含的邏輯是被動邏輯,但它仍然存在。在硬碟機引腳的圖片中更容易看到,但它也存在於電源連接器中。注意到下面的一些引腳比其他引腳短嗎?這是為了使引腳按特定順序連接。 (我不記得哪個順序,但我相信在電源線上,較長的引腳首先接地並連接。)資料引腳也以相同的方式設定。

維基百科上的資料SATA 腳

答案3

我買了一個SATA Bay,它物理上允許熱插拔。所以我就想知道這個問題。現在我得到了奇怪的結果。在從 nvme 啟動的 Linux 中,熱插拔是有效的。但在從SATA磁碟機載入的Linux中,熱插拔另一個磁碟機會導致重新啟動。不確定是否涉及一些內核參數,稍後再探討。並且也會使用 Windows 作業系統進行測試。

在 Linux 中,我使用了以下命令,其中我選擇了我認為可能相關的欄位:

$ lsblk -d -o NAME,MAJ:MIN,RM,HOTPLUG,MODEL,ROTA,TYPE,TRAN,SUBSYSTEMS,VENDOR

它說我的 SSD 不可拆卸(注意R M熱插拔列):

NAME    MAJ:MIN RM HOTPLUG MODEL                     ROTA TYPE TRAN   SUBSYSTEMS         VENDOR
sda       8:0    0       0 Samsung_SSD_850_EVO_500GB    0 disk sata   block:scsi:pci     ATA     
sdb       8:16   0       0 Samsung_SSD_860_EVO_500GB    0 disk sata   block:scsi:pci     ATA     
sdc       8:32   1       1 Portable_2_Plus              1 disk usb    block:scsi:usb:pci Live Gam
nvme0n1 259:0    0       0 Samsung SSD 960 EVO 1TB      0 disk nvme   block:nvme:pci

但是,我不知道 lsblk 的資訊有多準確。至少,我注意到sdc顯示為可旋轉磁碟(ROTA為1),但這是錯誤的,因為它只是一個sd卡。

即使我在 uefi BIOS 中為每個連接埠啟用了熱插拔,RM 和 HOTPLUG 欄位仍保持為 0。奇怪...我認為至少HOTPLUG 字段應該變成1。 ,但是,RM儘管在伺服器的 BIOS 中啟用或停用了熱插拔設置,但 HOTPLUG 也始終為 0。

答案4

您可以在以下位置查看我的回答:

https://serverfault.com/questions/690609/in-which-order-do-i-plug-the-sata-power-and-data-cables-for-hotplug/1137222#1137222

不久之後,消費者領域將不支援熱插拔。

相關內容