Solaris 伺服器未來是否能夠容忍 ZFS 池?

Solaris 伺服器未來是否能夠容忍 ZFS 池?

我對 ZFS 的體驗通常是這樣的它就是有效的,所以我希望答案是,這不是問題 - 但我有一個數據池,如果它失敗的話,它會毀掉我的一月,所以我想仔細檢查一下。

這個問題實際上可能在涉及單獨資料池的兩種不同情況下出現。現在我正在處理第一個,但我也想知道第二個:

  • 系統碟的儲存空間(即持有的rpool)發生故障,但資料池的儲存完好,因此您希望從備份中還原系統盤,但繼續使用資料池的即時儲存。
  • 您在 VM 中執行 Solaris,並希望回滾到虛擬機器管理程式拍攝的快照 (不是的 ZFS 快照rpool),但資料池儲存在「獨立」模式的磁碟、RDM 等上,因此不會回滾。

在這兩種情況下,當 Solaris 重新啟動時,它將看到一個它知道的資料池,但該資料池處於它從未(據其記憶)將其放入的狀態。

我主要只關心系統磁碟迴繞之前系統已完全關閉的情況,以及系統在迴繞到映像之前已完全關閉的情況。我預計運行狀態之間的切換可能會有點棘手。

另請注意,在我的特定情況下,池的儲存幾何結構和儲存路徑並未更改。再說一遍,如果他們這樣做的話,我預計事情會變得更加棘手。

對於 Windows 和 NTFS,我甚至不會問這個問題,因為這是一個相對簡單的解耦系統,因此很難理解為什麼會這樣不會工作。然而,Solaris 似乎保留了某種池元數據帶外,正如您應該在系統之間移動池的事實所證明的那樣zpool exportzpool import感謝 VMware,我從未以這種方式這樣做過)。我對此元資料及其用途的了解有限,因此我很難推斷這種情況下的影響。 (對此的解釋會很棒!)

實際上我仍然可以存取預回滾系統。它位於由 HP SmartArray 支援的 VMFS 資料儲存中,在一次不幸的預防性維護磁碟變更(由於 SmartArray 比 ZFS 更笨,導致資料遺失)後,HP SmartArray 拋出了 1716 POST 警告。所有重要的虛擬機器看起來仍然很好,並且對其檔案系統的掃描沒有發現錯誤,但我計劃無論如何從最近的備份中恢復陣列,因為我有理由懷疑 ESXi默默地清零壞扇區,而不是將錯誤傳遞給客人,所以我不想冒一些歸零扇區潛伏在某個地方稍後咬我屁股的風險。

對於 Solaris VM,我不必擔心歸零扇區,因為 ZFS 會捕獲該問題,但大多數其他 VM 使用啞文件系統。不過,備份是整個 VMware 資料儲存的映像,因此修復它們也會回滾 Solaris VM。實際上,我對此虛擬機進行了清理rpool,沒有發現任何錯誤,所以,如果我願意,我可以將其 VMDK 存儲在其他地方,並在回滾後將其複製回來,然後整個問題就是沒有實際意義。我想如果沒有人回答的話我就會這麼做,哈哈。但這是我想知道有一段時間的事情,所以我還是會問。

所以,問題是,我可以直接回滾系統磁碟的儲存並完成它嗎? 或者我必須從預回滾系統導出池,回滾,在附加其存儲之前刪除池,然後附加存儲並導入池?我不喜歡後者的聲音,部分原因是該池同時提供 CIFS 和 iSCSI 服務,而且我不記得我是如何設置它們的,甚至不記得如何做到這一點,所以如果它們損壞了我'會生氣的。 (看得出來我們沒有全職系統管理員嗎?哈哈)

VM 運行的是舊版 Solaris 11.0。

(順便說一句,它更舊的部分原因是同樣的問題。我想在嘗試升級之前對虛擬機進行快照,以防我破壞它,但後來我擔心回滾的系統可能會對獨立池做出反應,所以只是是的,我意識到我也可以拍攝快照rpool,但這對於不每天使用 Solaris 的人來說並沒有帶來同樣程度的舒適感。

答案1

這是“zfs 正常工作”類型的答案之一...

池元資料實際上儲存在池中,而不是本機作業系統上。因此,例如,如果系統崩潰且未完全關閉,則池中的元資料知道該池未完全「匯出」。如果您嘗試將此池匯入到新系統中,您會收到關於它未匯出且屬於另一個系統的投訴。那時,您只需執行 zpool import -f (強制),它就會乾淨地輸入。

因此,對於您的資料池,無論您何時/何地再次嘗試匯入該池​​,其中的資料都是安全的。如果您要啟動至「已復原」的 rpool,則該 rpool 上的作業系統會知道它應該匯入的池,並且只會匯入資料池。它不會追蹤池是否已導出,除了一旦導出池,作業系統就根本不再跟上它的事實。

現在,關於 rpool 問題。從虛擬機器快照、磁帶備份等還原它不會改變它處理資料池的方式,除非備份是在最初建立或匯入資料池之前進行的。如果是這種情況,您只需在作業系統恢復後導入該池即可。無論rpool的狀況如何,資料池上的資料都是安全的。

我希望這有幫助。

順便說一句,您提到您不願意升級Solaris,因為您不確定它會對資料池有何反應。不用擔心這個。升級將保留已知池並根據需要導入它們。

另請注意,Solaris OS 升級在各個「引導環境 (BE)」中是獨立的。因此,當您進行作業系統升級時,它實際上會建立一個包含新版本的完全獨立的作業系統安裝...而您的作業系統仍在啟動並運行。然後,當您重新啟動時,它將出現在新作業系統上。如果新作業系統有問題——即。對庫的更改等您沒有預料到的 - 您只需再次重新啟動並進入原始 11.0 版本,它將處於與升級之前完全相同的狀態。這是進行作業系統升級的好方法!

相關內容