需要較慢/快取的 Linux 檔案系統

需要較慢/快取的 Linux 檔案系統

我知道這聽起來很奇怪,但我需要一個較慢或快取的檔案系統。

我有很多防火牆將其資料系統記錄到一對Linux 虛擬機,這些虛擬機將這些檔案寫入其「本地」(實際上是FC SAN 連接的)ext3 格式磁盤,並將訊息轉發到我們的Splunk 伺服器。

問題在於,系統日誌伺服器正在將這些系統日誌訊息以每秒數百甚至數千個約4k 的微小寫入寫入回我們的FC SAN - 現在可以處理此工作負載,但我們的FW 流量將至少成長一個在接下來的幾個月(真的)5000% 的因素,這對 SAN 來說將是一個痛苦,我想在它成為問題之前解決根本原因。

因此,我需要一些幫助來找出一種方法,以某種方式從“物理”磁碟緩存或推遲這些寫入,以便虛擬機觸發更大但頻率較低的寫入- 沒有辦法避免這些寫入,但有沒必要做那麼多小事。

我查看了各種 ext3 選項,設定了 noatime 和 nodiratime,但這並沒有對問題產生太大影響。顯然,我正在研究其他文件系統,但我想我會把它扔掉,以防其他人將來遇到同樣的問題。

哦,我不能只是將這些訊息轉發到 Splunk,我們的防火牆團隊堅持認為它們採用原始格式用於診斷目的。

答案1

也許commitext3 掛載選​​項會對您有幫助?例如,commit=60每分鐘僅刷新一次所有資料和元資料。

強制性警告:這可能會導致最多一分鐘的資料遺失(如果您傳遞 commit=60 值)。

答案2

檔案系統:如果您的裝置正在使用寫入障礙,請停用它們,並全面停用 atime 更新。

但您也可以調整系統日誌,但在發生故障事件(電源等)時會損失更多資料。

來自的範例指令syslog-ng(可能不是您正在使用的):

  • flush_lines()指定一次要將多少行刷新到目標。 Syslog-ng 等待此行數累積並在單一批次中傳送它們。

  • flush_timeout()指定 syslog-ng 等待行在其輸出緩衝區中累積的時間。有關更多信息,請參閱flush_lines選項。

在這種情況下,目標是磁碟檔案。

相關內容