Sql-Server
為什麼在 SAN 中數據和日誌文件是否共享同一個磁碟並不重要?
我有一個硬碟。我在上面創建了 3 個驅動器。一個用於作業系統。一種用於 sql 數據文件。一個用於 sql 日誌文件。
但是,我正在閱讀假設我的儲存層不是硬碟,而是基於 SAN 的基礎架構,那麼數據和日誌文件的放置位置無關緊要,因為所有訪問都是隨機的。
這是什麼意思?
在 SAN 上,您不會寫入一個特定的磁碟,而是寫入一組磁碟(在 SAN 級別進行管理)。
當您使用物理磁碟時,您希望拆分 IO 以防止 IO 瓶頸導致性能問題(Ps 拆分數據和日誌是一個老習慣,可能不是拆分 IO 的最佳方式……但您可能需要確保tempdb 在不同的磁碟上)。當您寫入 SAN 時,您的 IO 已經被 SAN 拆分到不同的磁碟上,因此它不需要是不同的虛擬磁碟。
您可以這樣做以簡化故障排除(例如,確定您的日誌中的問題)。例如,如果它位於不同的虛擬驅動器上,您將能夠從 perf mon 中獲得隔離的“統計資訊”。
除此之外,我想不出在使用 SAN 基礎架構時創建多個磁碟的任何充分理由。
- 重點似乎是性能。但是,您還需要關注其他一些事情。例如:
- 磁碟故障:如果在同一個磁碟上,那麼您會失去數據和日誌,否則如果日誌是安全的,您可以恢復數據庫
- 磁碟已滿:如果在同一個磁碟上,如果日誌執行太大並填滿磁碟,則寫入數據將失敗,反之亦然。通過保持文件系統分離,您可以最大限度地減少影響
- 即使在性能方面,磁碟儲存方面的情況也可能相同,但在作業系統方面則不然:
- 作業系統仍然看到兩個單獨的磁碟(不知道它們駐留在同一個 SAN 上),並相應地處理它們,為每個磁碟分配單獨的資源。所以應該更快。
- 您可以單獨配置磁碟屬性以獲得更好的性能。數據是讀取次數多於寫入次數的隨機 I/O,但日誌是順序和寫入操作。您可以微調磁碟、緩衝區、塊大小等,以獲得這些不同工作負載的最大性能。如果一個磁碟上的所有內容都沒有很好的微調選項。