TTY Log指的就是LSI的Firmware Debug Log. 他是一種Hardware RAID Logging操作方式. 簡單來說, 可以用一句話來表達:
HWRAID Logs are sved in NVRAM
這份Log是被儲存在硬體式NVRAM. NVRAM在LSI RAID Controller中是非常重要的機制, 他實現了幾種操作:
1. RAID Controller部份組態儲存
2. Logging建立與追蹤
3. Write-journaling機制
比方說, 在LSISAS2108 RoC產品包含了32KB的NVRAM, 而LSISAS2208則是128KB NVRAM. 在這一篇會說明何謂TTY Logging, 要如何使用?!
甚麼是TTY Logging呢? 下面的簡要描述便說明了他的應用:
1. TTY Log is a FW transaction log and is held in controller memory and saved to NRAM during power down
2. Memory resident TTY log is lost during power interruption unless a battery is present
3. The last three saved TTY log are available in NVRAM
TTY Log是韌體控制操作, 並且被操作在控制器專屬的記憶體(Hot buffer), 在電源丟失的情況下會快速寫入到NVRAM. 如果沒有透過BBU緒電的話, 那Hot buffer上的TTY log便會丟失, 而NVRAM至少會保留最後三筆TTY log資訊.
前面提到過, TTY Log可稱之為Firmware Debug Log, 他表達的三種情況與功用:
1. 即使RAID發生啟動錯誤了, 她依然在工作.
2. 提供更為詳細的資訊
3. 適用於較複雜的情況
How to get TTY Log?/我該如何取得TTY Log數據?
我們可以透過兩種方式取得這方面資訊:
1. 使用MegaRAID Storage Manager(MSM)來進行GUI介面操作
2. 透過MegaCLI的CLI介面來鍵入相關命令來取得log資訊
針對1的情況透過MSM工具在控制器圖樣的項目選擇按右鍵選取Save TTY Log便會提出相關數據可保存在一份txt文字檔. 在2的情況下則是鍵入相關命令來取得相關數據, 如下所示:
megacli -fwtermlog -a0 > ttylog.txt
使用上述的命令便可取得TTY log數據. 針對TTY log的資訊組成有幾個部分:
1. Controller Properties/控制器屬性與組態
2. 已被偵測出來的實體儲存裝置相關屬性和組態
3. 邏輯裝置(Logical Device)相關屬性和組態
4. 錯誤日誌和感測代碼(Sense Code)日誌資訊
5. 以時間為基準的FW交易日誌, 也就是控制器做了哪些行為.
一個典型的TTY log範例如下所示:
T0: Initializing memory pool size=002FDD24 bytes
這段資訊表示控制器正在初始化可用的記憶體大小界定. T這個字眼表示了甚麼意思呢? Tx也就是x為number, T是代表了從秒數下時間(T: Time)基準的當前情況, 他搭配了數字組合. number x會參考當前的韌體操作控制器操作行為的時間值.
根據上面範例, 在經過T0階段以後, 控制器已被初始化, 透過韌體操作的行為方式, 那取得的debug日誌資訊會包含系統日期與時間. 根據該範例可以知道, TTY log作為觀察韌體操作控制器行為以及所發生的例外情況進行追蹤是非常有意義的, 雖然它呈現的資訊頗複雜, 但正是因為如此, 才可提供遠比Event log更為詳細的資訊.